1 #include "nit__typing.sep.0.h"
2 /* method typing#ToolContext#typing_phase for (self: ToolContext): Phase */
3 val
* nit__typing___ToolContext___typing_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_nit__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_nit__typing
, 25);
16 /* method typing#TypingPhase#process_npropdef for (self: TypingPhase, APropdef) */
17 void nit__typing___nit__typing__TypingPhase___nit__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_nit__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_nit__phase
, 201);
36 var3
= nit__modelbuilder_base___ToolContext___modelbuilder(var
);
39 ((void (*)(val
* self
, val
* p0
))(var_npropdef
->class->vft
[COLOR_nit__typing__APropdef__do_typing
]))(var_npropdef
, var3
) /* do_typing on <var_npropdef:APropdef>*/;
43 /* method typing#TypeVisitor#modelbuilder for (self: TypeVisitor): ModelBuilder */
44 val
* nit__typing___nit__typing__TypeVisitor___modelbuilder(val
* self
) {
45 val
* var
/* : ModelBuilder */;
46 val
* var1
/* : ModelBuilder */;
47 var1
= self
->attrs
[COLOR_nit__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_nit__typing
, 34);
57 /* method typing#TypeVisitor#modelbuilder= for (self: TypeVisitor, ModelBuilder) */
58 void nit__typing___nit__typing__TypeVisitor___modelbuilder_61d(val
* self
, val
* p0
) {
59 self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
= p0
; /* _modelbuilder on <self:TypeVisitor> */
62 /* method typing#TypeVisitor#mmodule for (self: TypeVisitor): MModule */
63 val
* nit__typing___nit__typing__TypeVisitor___mmodule(val
* self
) {
64 val
* var
/* : MModule */;
65 val
* var1
/* : MModule */;
66 var1
= self
->attrs
[COLOR_nit__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_nit__typing
, 36);
76 /* method typing#TypeVisitor#mmodule= for (self: TypeVisitor, MModule) */
77 void nit__typing___nit__typing__TypeVisitor___mmodule_61d(val
* self
, val
* p0
) {
78 self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
= p0
; /* _mmodule on <self:TypeVisitor> */
81 /* method typing#TypeVisitor#anchor for (self: TypeVisitor): nullable MClassType */
82 val
* nit__typing___nit__typing__TypeVisitor___anchor(val
* self
) {
83 val
* var
/* : nullable MClassType */;
84 val
* var1
/* : nullable MClassType */;
85 var1
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
90 /* method typing#TypeVisitor#anchor= for (self: TypeVisitor, nullable MClassType) */
91 void nit__typing___nit__typing__TypeVisitor___anchor_61d(val
* self
, val
* p0
) {
92 self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
= p0
; /* _anchor on <self:TypeVisitor> */
95 /* method typing#TypeVisitor#mclassdef for (self: TypeVisitor): nullable MClassDef */
96 val
* nit__typing___nit__typing__TypeVisitor___mclassdef(val
* self
) {
97 val
* var
/* : nullable MClassDef */;
98 val
* var1
/* : nullable MClassDef */;
99 var1
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mclassdef
].val
; /* _mclassdef on <self:TypeVisitor> */
104 /* method typing#TypeVisitor#mclassdef= for (self: TypeVisitor, nullable MClassDef) */
105 void nit__typing___nit__typing__TypeVisitor___mclassdef_61d(val
* self
, val
* p0
) {
106 self
->attrs
[COLOR_nit__typing__TypeVisitor___mclassdef
].val
= p0
; /* _mclassdef on <self:TypeVisitor> */
109 /* method typing#TypeVisitor#mpropdef for (self: TypeVisitor): nullable MPropDef */
110 val
* nit__typing___nit__typing__TypeVisitor___mpropdef(val
* self
) {
111 val
* var
/* : nullable MPropDef */;
112 val
* var1
/* : nullable MPropDef */;
113 var1
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
118 /* method typing#TypeVisitor#mpropdef= for (self: TypeVisitor, nullable MPropDef) */
119 void nit__typing___nit__typing__TypeVisitor___mpropdef_61d(val
* self
, val
* p0
) {
120 self
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:TypeVisitor> */
123 /* method typing#TypeVisitor#selfvariable for (self: TypeVisitor): Variable */
124 val
* nit__typing___nit__typing__TypeVisitor___selfvariable(val
* self
) {
125 val
* var
/* : Variable */;
126 val
* var1
/* : Variable */;
127 var1
= self
->attrs
[COLOR_nit__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_nit__typing
, 50);
137 /* method typing#TypeVisitor#selfvariable= for (self: TypeVisitor, Variable) */
138 void nit__typing___nit__typing__TypeVisitor___selfvariable_61d(val
* self
, val
* p0
) {
139 self
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
= p0
; /* _selfvariable on <self:TypeVisitor> */
142 /* method typing#TypeVisitor#is_toplevel_context for (self: TypeVisitor): Bool */
143 short int nit__typing___nit__typing__TypeVisitor___is_toplevel_context(val
* self
) {
144 short int var
/* : Bool */;
145 short int var1
/* : Bool */;
146 var1
= self
->attrs
[COLOR_nit__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 nit__typing___nit__typing__TypeVisitor___is_toplevel_context_61d(val
* self
, short int p0
) {
153 self
->attrs
[COLOR_nit__typing__TypeVisitor___is_toplevel_context
].s
= p0
; /* _is_toplevel_context on <self:TypeVisitor> */
156 /* method typing#TypeVisitor#init for (self: TypeVisitor) */
157 void nit__typing___nit__typing__TypeVisitor___standard__kernel__Object__init(val
* self
) {
158 val
* var
/* : nullable MPropDef */;
159 val
* var2
/* : nullable MPropDef */;
160 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
161 val
* var3
/* : null */;
162 short int var4
/* : Bool */;
163 short int var5
/* : Bool */;
164 val
* var_other
/* var other: nullable Object */;
165 short int var7
/* : Bool */;
166 short int var8
/* : Bool */;
167 val
* var10
/* : MClassDef */;
168 val
* var12
/* : MClassDef */;
169 val
* var_mclassdef
/* var mclassdef: MClassDef */;
170 val
* var14
/* : MClassType */;
171 val
* var16
/* : MClassType */;
172 val
* var18
/* : MClass */;
173 val
* var20
/* : MClass */;
174 val
* var_mclass
/* var mclass: MClass */;
175 val
* var21
/* : Variable */;
177 val
* var22
/* : String */;
178 char* var23
/* : NativeString */;
179 long var24
/* : Int */;
180 val
* var25
/* : FlatString */;
181 val
* var_selfvariable
/* var selfvariable: Variable */;
182 val
* var27
/* : MClassType */;
183 val
* var29
/* : MClassType */;
184 val
* var31
/* : MProperty */;
185 val
* var33
/* : MProperty */;
186 val
* var_mprop
/* var mprop: MProperty */;
187 short int var34
/* : Bool */;
188 short int var35
/* : Bool */;
191 short int var_
/* var : Bool */;
192 short int var36
/* : Bool */;
193 short int var37
/* : Bool */;
194 short int var39
/* : Bool */;
195 short int var_40
/* var : Bool */;
196 short int var41
/* : Bool */;
197 short int var43
/* : Bool */;
198 short int var44
/* : Bool */;
200 { /* Inline typing#TypeVisitor#mpropdef (self) on <self:TypeVisitor> */
201 var2
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
208 if (var_mpropdef
== NULL
) {
209 var4
= 0; /* is null */
211 var4
= 1; /* arg is null and recv is not */
214 { /* Inline kernel#Object#!= (var_mpropdef,var3) on <var_mpropdef:nullable MPropDef> */
217 var7
= ((short int (*)(val
* self
, val
* p0
))(var_mpropdef
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mpropdef
, var_other
) /* == on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
228 { /* Inline typing#TypeVisitor#mpropdef= (self,var_mpropdef) on <self:TypeVisitor> */
229 self
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
= var_mpropdef
; /* _mpropdef on <self:TypeVisitor> */
234 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MPropDef(MPropDef)> */
235 var12
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MPropDef(MPropDef)> */
236 if (unlikely(var12
== NULL
)) {
237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
238 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
245 var_mclassdef
= var10
;
247 { /* Inline typing#TypeVisitor#mclassdef= (self,var_mclassdef) on <self:TypeVisitor> */
248 self
->attrs
[COLOR_nit__typing__TypeVisitor___mclassdef
].val
= var_mclassdef
; /* _mclassdef on <self:TypeVisitor> */
253 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
254 var16
= var_mclassdef
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
255 if (unlikely(var16
== NULL
)) {
256 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
257 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 495);
265 { /* Inline typing#TypeVisitor#anchor= (self,var14) on <self:TypeVisitor> */
266 self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
= var14
; /* _anchor on <self:TypeVisitor> */
271 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
272 var20
= var_mclassdef
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef:MClassDef> */
273 if (unlikely(var20
== NULL
)) {
274 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
275 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 492);
283 var21
= NEW_nit__Variable(&type_nit__Variable
);
289 var25
= standard___standard__NativeString___to_s_with_length(var23
, var24
);
294 ((void (*)(val
* self
, val
* p0
))(var21
->class->vft
[COLOR_nit__scope__Variable__name_61d
]))(var21
, var22
) /* name= on <var21:Variable>*/;
297 ((void (*)(val
* self
))(var21
->class->vft
[COLOR_standard__kernel__Object__init
]))(var21
) /* init on <var21:Variable>*/;
299 var_selfvariable
= var21
;
301 { /* Inline typing#TypeVisitor#selfvariable= (self,var_selfvariable) on <self:TypeVisitor> */
302 self
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
= var_selfvariable
; /* _selfvariable on <self:TypeVisitor> */
307 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
308 var29
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:MClass> */
309 if (unlikely(var29
== NULL
)) {
310 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
311 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
319 { /* Inline typing#Variable#declared_type= (var_selfvariable,var27) on <var_selfvariable:Variable> */
320 var_selfvariable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var27
; /* _declared_type on <var_selfvariable:Variable> */
325 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MPropDef(MPropDef)> */
326 var33
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:nullable MPropDef(MPropDef)> */
327 if (unlikely(var33
== NULL
)) {
328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
329 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
337 /* <var_mprop:MProperty> isa MMethod */
338 cltype
= type_nit__MMethod
.color
;
339 idtype
= type_nit__MMethod
.id
;
340 if(cltype
>= var_mprop
->type
->table_size
) {
343 var35
= var_mprop
->type
->type_table
[cltype
] == idtype
;
348 { /* Inline model#MMethod#is_toplevel (var_mprop) on <var_mprop:MProperty(MMethod)> */
349 var39
= var_mprop
->attrs
[COLOR_nit__model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mprop:MProperty(MMethod)> */
359 { /* Inline model#MMethod#is_new (var_mprop) on <var_mprop:MProperty(MMethod)> */
360 var43
= var_mprop
->attrs
[COLOR_nit__model__MMethod___is_new
].s
; /* _is_new on <var_mprop:MProperty(MMethod)> */
374 { /* Inline typing#TypeVisitor#is_toplevel_context= (self,var44) on <self:TypeVisitor> */
375 self
->attrs
[COLOR_nit__typing__TypeVisitor___is_toplevel_context
].s
= var44
; /* _is_toplevel_context on <self:TypeVisitor> */
385 /* method typing#TypeVisitor#anchor_to for (self: TypeVisitor, MType): MType */
386 val
* nit__typing___nit__typing__TypeVisitor___anchor_to(val
* self
, val
* p0
) {
387 val
* var
/* : MType */;
388 val
* var_mtype
/* var mtype: MType */;
389 val
* var1
/* : nullable MClassType */;
390 val
* var3
/* : nullable MClassType */;
391 val
* var_anchor
/* var anchor: nullable MClassType */;
392 val
* var4
/* : null */;
393 short int var5
/* : Bool */;
394 short int var6
/* : Bool */;
395 val
* var_other
/* var other: nullable Object */;
396 short int var8
/* : Bool */;
397 short int var10
/* : Bool */;
398 short int var11
/* : Bool */;
399 short int var12
/* : Bool */;
400 val
* var13
/* : MModule */;
401 val
* var15
/* : MModule */;
402 val
* var16
/* : MType */;
405 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
406 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
413 if (var_anchor
== NULL
) {
414 var5
= 1; /* is null */
416 var5
= 0; /* arg is null but recv is not */
419 { /* Inline kernel#Object#== (var_anchor,var4) on <var_anchor:nullable MClassType> */
422 { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on <var_anchor:nullable MClassType(MClassType)> */
423 var10
= var_anchor
== var_other
;
437 var11
= ((short int (*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
440 if (unlikely(!var12
)) {
441 PRINT_ERROR("Runtime error: %s", "Assert failed");
442 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 84);
450 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
451 var15
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
452 if (unlikely(var15
== NULL
)) {
453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
454 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
462 var16
= ((val
* (*)(val
* self
, val
* p0
, val
* p1
))(var_mtype
->class->vft
[COLOR_nit__model__MType__anchor_to
]))(var_mtype
, var13
, var_anchor
) /* anchor_to on <var_mtype:MType>*/;
469 /* method typing#TypeVisitor#is_subtype for (self: TypeVisitor, MType, MType): Bool */
470 short int nit__typing___nit__typing__TypeVisitor___is_subtype(val
* self
, val
* p0
, val
* p1
) {
471 short int var
/* : Bool */;
472 val
* var_sub
/* var sub: MType */;
473 val
* var_sup
/* var sup: MType */;
474 val
* var1
/* : MModule */;
475 val
* var3
/* : MModule */;
476 val
* var4
/* : nullable MClassType */;
477 val
* var6
/* : nullable MClassType */;
478 short int var7
/* : Bool */;
482 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
483 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
484 if (unlikely(var3
== NULL
)) {
485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
486 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
494 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
495 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
501 var7
= nit___nit__MType___is_subtype(var_sub
, var1
, var4
, var_sup
);
508 /* method typing#TypeVisitor#resolve_for for (self: TypeVisitor, MType, MType, Bool): MType */
509 val
* nit__typing___nit__typing__TypeVisitor___resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
510 val
* var
/* : MType */;
511 val
* var_mtype
/* var mtype: MType */;
512 val
* var_subtype
/* var subtype: MType */;
513 short int var_for_self
/* var for_self: Bool */;
514 val
* var1
/* : nullable MClassType */;
515 val
* var3
/* : nullable MClassType */;
516 val
* var4
/* : MModule */;
517 val
* var6
/* : MModule */;
518 short int var7
/* : Bool */;
519 val
* var8
/* : MType */;
520 val
* var_res
/* var res: MType */;
525 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
526 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
532 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
533 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
534 if (unlikely(var6
== NULL
)) {
535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
536 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
543 var7
= !var_for_self
;
545 var8
= ((val
* (*)(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
))(var_mtype
->class->vft
[COLOR_nit__model__MType__resolve_for
]))(var_mtype
, var_subtype
, var1
, var4
, var7
) /* resolve_for on <var_mtype:MType>*/;
553 /* method typing#TypeVisitor#check_subtype for (self: TypeVisitor, ANode, MType, MType): nullable MType */
554 val
* nit__typing___nit__typing__TypeVisitor___check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
555 val
* var
/* : nullable MType */;
556 val
* var_node
/* var node: ANode */;
557 val
* var_sub
/* var sub: MType */;
558 val
* var_sup
/* var sup: MType */;
559 short int var1
/* : Bool */;
560 val
* var2
/* : MType */;
561 short int var3
/* : Bool */;
562 val
* var4
/* : ModelBuilder */;
563 val
* var6
/* : ModelBuilder */;
565 val
* var7
/* : String */;
566 char* var8
/* : NativeString */;
567 long var9
/* : Int */;
568 val
* var10
/* : FlatString */;
569 static val
* varonce11
;
570 val
* var12
/* : String */;
571 char* var13
/* : NativeString */;
572 long var14
/* : Int */;
573 val
* var15
/* : FlatString */;
574 val
* var16
/* : Array[Object] */;
575 long var17
/* : Int */;
576 val
* var18
/* : NativeArray[Object] */;
577 val
* var19
/* : String */;
578 val
* var20
/* : null */;
583 var1
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_sub
, var_sup
);
591 var2
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_sup
);
594 var3
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_sub
, var2
);
602 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
603 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
604 if (unlikely(var6
== NULL
)) {
605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
606 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
616 var8
= "Type error: expected ";
618 var10
= standard___standard__NativeString___to_s_with_length(var8
, var9
);
627 var15
= standard___standard__NativeString___to_s_with_length(var13
, var14
);
631 var16
= NEW_standard__Array(&type_standard__Array__standard__Object
);
632 { /* var16 = array_instance Array[Object] */
634 var18
= NEW_standard__NativeArray(var17
, &type_standard__NativeArray__standard__Object
);
635 ((struct instance_standard__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
636 ((struct instance_standard__NativeArray
*)var18
)->values
[1] = (val
*) var_sup
;
637 ((struct instance_standard__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
638 ((struct instance_standard__NativeArray
*)var18
)->values
[3] = (val
*) var_sub
;
640 ((void (*)(val
* self
, val
* p0
, long p1
))(var16
->class->vft
[COLOR_standard__array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
644 var19
= ((val
* (*)(val
* self
))(var16
->class->vft
[COLOR_standard__string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
647 nit___nit__ModelBuilder___error(var4
, var_node
, var19
); /* Direct call modelbuilder_base#ModelBuilder#error on <var4:ModelBuilder>*/
655 /* method typing#TypeVisitor#visit_stmt for (self: TypeVisitor, nullable AExpr) */
656 void nit__typing___nit__typing__TypeVisitor___visit_stmt(val
* self
, val
* p0
) {
657 val
* var_nexpr
/* var nexpr: nullable AExpr */;
658 val
* var
/* : null */;
659 short int var1
/* : Bool */;
660 short int var2
/* : Bool */;
661 val
* var_other
/* var other: nullable Object */;
662 short int var4
/* : Bool */;
663 short int var6
/* : Bool */;
666 if (var_nexpr
== NULL
) {
667 var1
= 1; /* is null */
669 var1
= 0; /* arg is null but recv is not */
672 { /* Inline kernel#Object#== (var_nexpr,var) on <var_nexpr:nullable AExpr> */
675 { /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
676 var6
= var_nexpr
== var_other
;
693 ((void (*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_nit__typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:nullable AExpr(AExpr)>*/;
697 /* method typing#TypeVisitor#visit_expr for (self: TypeVisitor, AExpr): nullable MType */
698 val
* nit__typing___nit__typing__TypeVisitor___visit_expr(val
* self
, val
* p0
) {
699 val
* var
/* : nullable MType */;
700 val
* var_nexpr
/* var nexpr: AExpr */;
701 val
* var1
/* : nullable MType */;
702 val
* var_mtype
/* var mtype: nullable MType */;
703 val
* var2
/* : null */;
704 short int var3
/* : Bool */;
705 short int var4
/* : Bool */;
706 val
* var_other
/* var other: nullable Object */;
707 short int var6
/* : Bool */;
708 short int var7
/* : Bool */;
709 short int var8
/* : Bool */;
710 short int var10
/* : Bool */;
711 short int var11
/* : Bool */;
712 val
* var12
/* : ModelBuilder */;
713 val
* var14
/* : ModelBuilder */;
714 val
* var15
/* : ToolContext */;
715 val
* var17
/* : ToolContext */;
716 long var18
/* : Int */;
717 long var20
/* : Int */;
718 long var21
/* : Int */;
719 short int var22
/* : Bool */;
720 short int var24
/* : Bool */;
723 const char* var_class_name
;
724 short int var25
/* : Bool */;
725 short int var26
/* : Bool */;
726 val
* var27
/* : ModelBuilder */;
727 val
* var29
/* : ModelBuilder */;
728 val
* var30
/* : ToolContext */;
729 val
* var32
/* : ToolContext */;
730 long var33
/* : Int */;
731 long var35
/* : Int */;
732 long var36
/* : Int */;
733 short int var37
/* : Bool */;
734 short int var39
/* : Bool */;
737 const char* var_class_name42
;
738 short int var43
/* : Bool */;
740 val
* var44
/* : String */;
741 char* var45
/* : NativeString */;
742 long var46
/* : Int */;
743 val
* var47
/* : FlatString */;
744 val
* var48
/* : null */;
745 static val
* varonce49
;
746 val
* var50
/* : String */;
747 char* var51
/* : NativeString */;
748 long var52
/* : Int */;
749 val
* var53
/* : FlatString */;
750 val
* var54
/* : null */;
753 ((void (*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_nit__typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:AExpr>*/;
756 var1
= ((val
* (*)(val
* self
))(var_nexpr
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var_nexpr
) /* mtype on <var_nexpr:AExpr>*/;
760 if (var_mtype
== NULL
) {
761 var3
= 0; /* is null */
763 var3
= 1; /* arg is null and recv is not */
766 { /* Inline kernel#Object#!= (var_mtype,var2) on <var_mtype:nullable MType> */
769 var6
= ((short int (*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other
) /* == on <var_mtype:nullable MType(MType)>*/;
784 { /* Inline typing#AExpr#is_typed (var_nexpr) on <var_nexpr:AExpr> */
785 var10
= var_nexpr
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
; /* _is_typed on <var_nexpr:AExpr> */
793 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
794 var14
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
795 if (unlikely(var14
== NULL
)) {
796 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
797 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
805 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var12) on <var12:ModelBuilder> */
806 var17
= var12
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var12:ModelBuilder> */
807 if (unlikely(var17
== NULL
)) {
808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
809 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
817 { /* Inline toolcontext#ToolContext#error_count (var15) on <var15:ToolContext> */
818 var20
= var15
->attrs
[COLOR_nit__toolcontext__ToolContext___error_count
].l
; /* _error_count on <var15:ToolContext> */
825 { /* Inline kernel#Int#> (var18,var21) on <var18:Int> */
826 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
827 /* <var21:Int> isa OTHER */
828 var24
= 1; /* easy <var21:Int> isa OTHER*/
829 if (unlikely(!var24
)) {
830 var_class_name
= type_standard__Int
.name
;
831 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
832 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
835 var25
= var18
> var21
;
844 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
845 var29
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
846 if (unlikely(var29
== NULL
)) {
847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
848 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
856 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var27) on <var27:ModelBuilder> */
857 var32
= var27
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var27:ModelBuilder> */
858 if (unlikely(var32
== NULL
)) {
859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
860 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
868 { /* Inline toolcontext#ToolContext#verbose_level (var30) on <var30:ToolContext> */
869 var35
= var30
->attrs
[COLOR_nit__toolcontext__ToolContext___verbose_level
].l
; /* _verbose_level on <var30:ToolContext> */
876 { /* Inline kernel#Int#> (var33,var36) on <var33:Int> */
877 /* Covariant cast for argument 0 (i) <var36:Int> isa OTHER */
878 /* <var36:Int> isa OTHER */
879 var39
= 1; /* easy <var36:Int> isa OTHER*/
880 if (unlikely(!var39
)) {
881 var_class_name42
= type_standard__Int
.name
;
882 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42
);
883 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
886 var43
= var33
> var36
;
896 var45
= "No return type but no error.";
898 var47
= standard___standard__NativeString___to_s_with_length(var45
, var46
);
903 nit___nit__ANode___debug(var_nexpr
, var44
); /* Direct call parser_nodes#ANode#debug on <var_nexpr:AExpr>*/
917 var51
= "Type error: expected expression.";
919 var53
= standard___standard__NativeString___to_s_with_length(var51
, var52
);
924 nit__typing___nit__typing__TypeVisitor___error(self
, var_nexpr
, var50
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
932 /* method typing#TypeVisitor#visit_expr_subtype for (self: TypeVisitor, AExpr, nullable MType): nullable MType */
933 val
* nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
934 val
* var
/* : nullable MType */;
935 val
* var_nexpr
/* var nexpr: AExpr */;
936 val
* var_sup
/* var sup: nullable MType */;
937 val
* var1
/* : nullable MType */;
938 val
* var_sub
/* var sub: nullable MType */;
939 val
* var2
/* : null */;
940 short int var3
/* : Bool */;
941 short int var4
/* : Bool */;
942 val
* var_other
/* var other: nullable Object */;
943 short int var6
/* : Bool */;
944 short int var8
/* : Bool */;
945 val
* var9
/* : null */;
946 val
* var10
/* : null */;
947 short int var11
/* : Bool */;
948 short int var12
/* : Bool */;
949 short int var14
/* : Bool */;
950 short int var16
/* : Bool */;
951 val
* var17
/* : null */;
952 val
* var18
/* : nullable MType */;
953 val
* var_res
/* var res: nullable MType */;
954 short int var19
/* : Bool */;
955 short int var20
/* : Bool */;
956 val
* var_other22
/* var other: nullable Object */;
957 short int var23
/* : Bool */;
958 short int var24
/* : Bool */;
962 var1
= nit__typing___nit__typing__TypeVisitor___visit_expr(self
, var_nexpr
);
966 if (var_sub
== NULL
) {
967 var3
= 1; /* is null */
969 var3
= 0; /* arg is null but recv is not */
972 { /* Inline kernel#Object#== (var_sub,var2) on <var_sub:nullable MType> */
975 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:nullable MType(MType)> */
976 var8
= var_sub
== var_other
;
995 if (var_sup
== NULL
) {
996 var11
= 1; /* is null */
998 var11
= 0; /* arg is null but recv is not */
1001 { /* Inline kernel#Object#== (var_sup,var10) on <var_sup:nullable MType> */
1004 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1005 var16
= var_sup
== var_other
;
1008 RET_LABEL15
:(void)0;
1013 RET_LABEL13
:(void)0;
1024 var18
= nit__typing___nit__typing__TypeVisitor___check_subtype(self
, var_nexpr
, var_sub
, var_sup
);
1027 if (var_res
== NULL
) {
1028 var19
= 1; /* <var_sub:nullable MType(MType)> cannot be null */
1030 { /* Inline kernel#Object#!= (var_res,var_sub) on <var_res:nullable MType> */
1031 var_other22
= var_sub
;
1033 var23
= ((short int (*)(val
* self
, val
* p0
))(var_res
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_res
, var_other22
) /* == on <var_res:nullable MType(MType)>*/;
1038 RET_LABEL21
:(void)0;
1044 { /* Inline typing#AExpr#implicit_cast_to= (var_nexpr,var_res) on <var_nexpr:AExpr> */
1045 var_nexpr
->attrs
[COLOR_nit__typing__AExpr___implicit_cast_to
].val
= var_res
; /* _implicit_cast_to on <var_nexpr:AExpr> */
1046 RET_LABEL25
:(void)0;
1056 /* method typing#TypeVisitor#visit_expr_bool for (self: TypeVisitor, AExpr): nullable MType */
1057 val
* nit__typing___nit__typing__TypeVisitor___visit_expr_bool(val
* self
, val
* p0
) {
1058 val
* var
/* : nullable MType */;
1059 val
* var_nexpr
/* var nexpr: AExpr */;
1060 val
* var1
/* : nullable MType */;
1061 val
* var2
/* : nullable MType */;
1064 var1
= nit__typing___nit__typing__TypeVisitor___type_bool(self
, var_nexpr
);
1067 var2
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var_nexpr
, var1
);
1074 /* method typing#TypeVisitor#visit_expr_cast for (self: TypeVisitor, ANode, AExpr, AType): nullable MType */
1075 val
* nit__typing___nit__typing__TypeVisitor___visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1076 val
* var
/* : nullable MType */;
1077 val
* var_node
/* var node: ANode */;
1078 val
* var_nexpr
/* var nexpr: AExpr */;
1079 val
* var_ntype
/* var ntype: AType */;
1080 val
* var1
/* : nullable MType */;
1081 val
* var_sub
/* var sub: nullable MType */;
1082 val
* var2
/* : null */;
1083 short int var3
/* : Bool */;
1084 short int var4
/* : Bool */;
1085 val
* var_other
/* var other: nullable Object */;
1086 short int var6
/* : Bool */;
1087 short int var8
/* : Bool */;
1088 val
* var9
/* : null */;
1089 val
* var10
/* : nullable MType */;
1090 val
* var_sup
/* var sup: nullable MType */;
1091 val
* var11
/* : null */;
1092 short int var12
/* : Bool */;
1093 short int var13
/* : Bool */;
1094 short int var15
/* : Bool */;
1095 short int var17
/* : Bool */;
1096 val
* var18
/* : null */;
1097 short int var19
/* : Bool */;
1098 short int var21
/* : Bool */;
1099 short int var23
/* : Bool */;
1100 val
* var24
/* : ModelBuilder */;
1101 val
* var26
/* : ModelBuilder */;
1102 static val
* varonce
;
1103 val
* var27
/* : String */;
1104 char* var28
/* : NativeString */;
1105 long var29
/* : Int */;
1106 val
* var30
/* : FlatString */;
1107 static val
* varonce31
;
1108 val
* var32
/* : String */;
1109 char* var33
/* : NativeString */;
1110 long var34
/* : Int */;
1111 val
* var35
/* : FlatString */;
1112 static val
* varonce36
;
1113 val
* var37
/* : String */;
1114 char* var38
/* : NativeString */;
1115 long var39
/* : Int */;
1116 val
* var40
/* : FlatString */;
1117 val
* var41
/* : Array[Object] */;
1118 long var42
/* : Int */;
1119 val
* var43
/* : NativeArray[Object] */;
1120 val
* var44
/* : String */;
1121 short int var45
/* : Bool */;
1122 val
* var46
/* : ModelBuilder */;
1123 val
* var48
/* : ModelBuilder */;
1124 static val
* varonce49
;
1125 val
* var50
/* : String */;
1126 char* var51
/* : NativeString */;
1127 long var52
/* : Int */;
1128 val
* var53
/* : FlatString */;
1129 static val
* varonce54
;
1130 val
* var55
/* : String */;
1131 char* var56
/* : NativeString */;
1132 long var57
/* : Int */;
1133 val
* var58
/* : FlatString */;
1134 static val
* varonce59
;
1135 val
* var60
/* : String */;
1136 char* var61
/* : NativeString */;
1137 long var62
/* : Int */;
1138 val
* var63
/* : FlatString */;
1139 static val
* varonce64
;
1140 val
* var65
/* : String */;
1141 char* var66
/* : NativeString */;
1142 long var67
/* : Int */;
1143 val
* var68
/* : FlatString */;
1144 val
* var69
/* : Array[Object] */;
1145 long var70
/* : Int */;
1146 val
* var71
/* : NativeArray[Object] */;
1147 val
* var72
/* : String */;
1152 var1
= nit__typing___nit__typing__TypeVisitor___visit_expr(self
, var_nexpr
);
1156 if (var_sub
== NULL
) {
1157 var3
= 1; /* is null */
1159 var3
= 0; /* arg is null but recv is not */
1162 { /* Inline kernel#Object#== (var_sub,var2) on <var_sub:nullable MType> */
1165 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:nullable MType(MType)> */
1166 var8
= var_sub
== var_other
;
1185 var10
= nit__typing___nit__typing__TypeVisitor___resolve_mtype(self
, var_ntype
);
1189 if (var_sup
== NULL
) {
1190 var12
= 1; /* is null */
1192 var12
= 0; /* arg is null but recv is not */
1195 { /* Inline kernel#Object#== (var_sup,var11) on <var_sup:nullable MType> */
1198 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1199 var17
= var_sup
== var_other
;
1202 RET_LABEL16
:(void)0;
1207 RET_LABEL14
:(void)0;
1218 { /* Inline kernel#Object#== (var_sup,var_sub) on <var_sup:nullable MType(MType)> */
1219 var_other
= var_sub
;
1221 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1222 var23
= var_sup
== var_other
;
1225 RET_LABEL22
:(void)0;
1230 RET_LABEL20
:(void)0;
1235 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1236 var26
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1237 if (unlikely(var26
== NULL
)) {
1238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1239 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1243 RET_LABEL25
:(void)0;
1249 var28
= "useless-type-test";
1251 var30
= standard___standard__NativeString___to_s_with_length(var28
, var29
);
1258 var33
= "Warning: Expression is already a ";
1260 var35
= standard___standard__NativeString___to_s_with_length(var33
, var34
);
1269 var40
= standard___standard__NativeString___to_s_with_length(var38
, var39
);
1273 var41
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1274 { /* var41 = array_instance Array[Object] */
1276 var43
= NEW_standard__NativeArray(var42
, &type_standard__NativeArray__standard__Object
);
1277 ((struct instance_standard__NativeArray
*)var43
)->values
[0] = (val
*) var32
;
1278 ((struct instance_standard__NativeArray
*)var43
)->values
[1] = (val
*) var_sup
;
1279 ((struct instance_standard__NativeArray
*)var43
)->values
[2] = (val
*) var37
;
1281 ((void (*)(val
* self
, val
* p0
, long p1
))(var41
->class->vft
[COLOR_standard__array__Array__with_native
]))(var41
, var43
, var42
) /* with_native on <var41:Array[Object]>*/;
1285 var44
= ((val
* (*)(val
* self
))(var41
->class->vft
[COLOR_standard__string__Object__to_s
]))(var41
) /* to_s on <var41:Array[Object]>*/;
1288 nit___nit__ModelBuilder___warning(var24
, var_node
, var27
, var44
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var24:ModelBuilder>*/
1292 var45
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_sub
, var_sup
);
1296 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1297 var48
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1298 if (unlikely(var48
== NULL
)) {
1299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1300 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1304 RET_LABEL47
:(void)0;
1310 var51
= "useless-type-test";
1312 var53
= standard___standard__NativeString___to_s_with_length(var51
, var52
);
1319 var56
= "Warning: Expression is already a ";
1321 var58
= standard___standard__NativeString___to_s_with_length(var56
, var57
);
1328 var61
= " since it is a ";
1330 var63
= standard___standard__NativeString___to_s_with_length(var61
, var62
);
1339 var68
= standard___standard__NativeString___to_s_with_length(var66
, var67
);
1343 var69
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1344 { /* var69 = array_instance Array[Object] */
1346 var71
= NEW_standard__NativeArray(var70
, &type_standard__NativeArray__standard__Object
);
1347 ((struct instance_standard__NativeArray
*)var71
)->values
[0] = (val
*) var55
;
1348 ((struct instance_standard__NativeArray
*)var71
)->values
[1] = (val
*) var_sup
;
1349 ((struct instance_standard__NativeArray
*)var71
)->values
[2] = (val
*) var60
;
1350 ((struct instance_standard__NativeArray
*)var71
)->values
[3] = (val
*) var_sub
;
1351 ((struct instance_standard__NativeArray
*)var71
)->values
[4] = (val
*) var65
;
1353 ((void (*)(val
* self
, val
* p0
, long p1
))(var69
->class->vft
[COLOR_standard__array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
1357 var72
= ((val
* (*)(val
* self
))(var69
->class->vft
[COLOR_standard__string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
1360 nit___nit__ModelBuilder___warning(var46
, var_node
, var50
, var72
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var46:ModelBuilder>*/
1370 /* method typing#TypeVisitor#null_test for (self: TypeVisitor, ABinopExpr) */
1371 void nit__typing___nit__typing__TypeVisitor___null_test(val
* self
, val
* p0
) {
1372 val
* var_anode
/* var anode: ABinopExpr */;
1373 val
* var
/* : AExpr */;
1374 val
* var2
/* : AExpr */;
1375 val
* var3
/* : nullable MType */;
1376 val
* var_mtype
/* var mtype: nullable MType */;
1377 val
* var4
/* : AExpr */;
1378 val
* var6
/* : AExpr */;
1379 val
* var7
/* : nullable MType */;
1380 val
* var_mtype2
/* var mtype2: nullable MType */;
1381 short int var8
/* : Bool */;
1382 val
* var9
/* : null */;
1383 short int var10
/* : Bool */;
1384 short int var11
/* : Bool */;
1385 val
* var_other
/* var other: nullable Object */;
1386 short int var13
/* : Bool */;
1387 short int var15
/* : Bool */;
1388 short int var_
/* var : Bool */;
1389 val
* var16
/* : null */;
1390 short int var17
/* : Bool */;
1391 short int var18
/* : Bool */;
1392 short int var20
/* : Bool */;
1393 short int var22
/* : Bool */;
1394 short int var23
/* : Bool */;
1397 short int var24
/* : Bool */;
1398 short int var25
/* : Bool */;
1401 short int var28
/* : Bool */;
1402 val
* var29
/* : MType */;
1403 short int var30
/* : Bool */;
1406 short int var33
/* : Bool */;
1407 val
* var34
/* : ModelBuilder */;
1408 val
* var36
/* : ModelBuilder */;
1409 static val
* varonce
;
1410 val
* var37
/* : String */;
1411 char* var38
/* : NativeString */;
1412 long var39
/* : Int */;
1413 val
* var40
/* : FlatString */;
1414 static val
* varonce41
;
1415 val
* var42
/* : String */;
1416 char* var43
/* : NativeString */;
1417 long var44
/* : Int */;
1418 val
* var45
/* : FlatString */;
1419 static val
* varonce46
;
1420 val
* var47
/* : String */;
1421 char* var48
/* : NativeString */;
1422 long var49
/* : Int */;
1423 val
* var50
/* : FlatString */;
1424 val
* var51
/* : Array[Object] */;
1425 long var52
/* : Int */;
1426 val
* var53
/* : NativeArray[Object] */;
1427 val
* var54
/* : String */;
1428 val
* var55
/* : AExpr */;
1429 val
* var57
/* : AExpr */;
1430 val
* var58
/* : nullable Variable */;
1431 val
* var_variable
/* var variable: nullable Variable */;
1432 val
* var59
/* : null */;
1433 short int var60
/* : Bool */;
1434 short int var61
/* : Bool */;
1435 short int var63
/* : Bool */;
1436 short int var65
/* : Bool */;
1437 short int var66
/* : Bool */;
1440 val
* var69
/* : nullable FlowContext */;
1441 val
* var71
/* : nullable FlowContext */;
1442 val
* var72
/* : FlowContext */;
1443 val
* var74
/* : FlowContext */;
1444 val
* var75
/* : nullable FlowContext */;
1445 val
* var77
/* : nullable FlowContext */;
1446 val
* var78
/* : FlowContext */;
1447 val
* var80
/* : FlowContext */;
1448 val
* var81
/* : MType */;
1449 val
* var83
/* : MType */;
1450 short int var84
/* : Bool */;
1453 val
* var87
/* : nullable FlowContext */;
1454 val
* var89
/* : nullable FlowContext */;
1455 val
* var90
/* : FlowContext */;
1456 val
* var92
/* : FlowContext */;
1457 val
* var93
/* : nullable FlowContext */;
1458 val
* var95
/* : nullable FlowContext */;
1459 val
* var96
/* : FlowContext */;
1460 val
* var98
/* : FlowContext */;
1461 val
* var99
/* : MType */;
1462 val
* var101
/* : MType */;
1465 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
1466 var2
= var_anode
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
1467 if (unlikely(var2
== NULL
)) {
1468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1469 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1802);
1477 var3
= ((val
* (*)(val
* self
))(var
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var
) /* mtype on <var:AExpr>*/;
1481 { /* Inline parser_nodes#ABinopExpr#n_expr2 (var_anode) on <var_anode:ABinopExpr> */
1482 var6
= var_anode
->attrs
[COLOR_nit__parser_nodes__ABinopExpr___n_expr2
].val
; /* _n_expr2 on <var_anode:ABinopExpr> */
1483 if (unlikely(var6
== NULL
)) {
1484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1485 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1809);
1493 var7
= ((val
* (*)(val
* self
))(var4
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
1497 if (var_mtype
== NULL
) {
1498 var10
= 1; /* is null */
1500 var10
= 0; /* arg is null but recv is not */
1503 { /* Inline kernel#Object#== (var_mtype,var9) on <var_mtype:nullable MType> */
1506 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1507 var15
= var_mtype
== var_other
;
1510 RET_LABEL14
:(void)0;
1515 RET_LABEL12
:(void)0;
1524 if (var_mtype2
== NULL
) {
1525 var17
= 1; /* is null */
1527 var17
= 0; /* arg is null but recv is not */
1530 { /* Inline kernel#Object#== (var_mtype2,var16) on <var_mtype2:nullable MType> */
1533 { /* Inline kernel#Object#is_same_instance (var_mtype2,var_other) on <var_mtype2:nullable MType(MType)> */
1534 var22
= var_mtype2
== var_other
;
1537 RET_LABEL21
:(void)0;
1542 RET_LABEL19
:(void)0;
1552 /* <var_mtype2:nullable MType(MType)> isa MNullType */
1553 cltype
= type_nit__MNullType
.color
;
1554 idtype
= type_nit__MNullType
.id
;
1555 if(cltype
>= var_mtype2
->type
->table_size
) {
1558 var23
= var_mtype2
->type
->type_table
[cltype
] == idtype
;
1565 /* <var_mtype:nullable MType(MType)> isa MNullableType */
1566 cltype26
= type_nit__MNullableType
.color
;
1567 idtype27
= type_nit__MNullableType
.id
;
1568 if(cltype26
>= var_mtype
->type
->table_size
) {
1571 var25
= var_mtype
->type
->type_table
[cltype26
] == idtype27
;
1576 var29
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_mtype
);
1578 /* <var29:MType> isa MNullableType */
1579 cltype31
= type_nit__MNullableType
.color
;
1580 idtype32
= type_nit__MNullableType
.id
;
1581 if(cltype31
>= var29
->type
->table_size
) {
1584 var30
= var29
->type
->type_table
[cltype31
] == idtype32
;
1589 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1590 var36
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1591 if (unlikely(var36
== NULL
)) {
1592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1593 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1597 RET_LABEL35
:(void)0;
1603 var38
= "useless-null-test";
1605 var40
= standard___standard__NativeString___to_s_with_length(var38
, var39
);
1612 var43
= "Warning: expression is not null, since it is a `";
1614 var45
= standard___standard__NativeString___to_s_with_length(var43
, var44
);
1623 var50
= standard___standard__NativeString___to_s_with_length(var48
, var49
);
1627 var51
= NEW_standard__Array(&type_standard__Array__standard__Object
);
1628 { /* var51 = array_instance Array[Object] */
1630 var53
= NEW_standard__NativeArray(var52
, &type_standard__NativeArray__standard__Object
);
1631 ((struct instance_standard__NativeArray
*)var53
)->values
[0] = (val
*) var42
;
1632 ((struct instance_standard__NativeArray
*)var53
)->values
[1] = (val
*) var_mtype
;
1633 ((struct instance_standard__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
1635 ((void (*)(val
* self
, val
* p0
, long p1
))(var51
->class->vft
[COLOR_standard__array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
1639 var54
= ((val
* (*)(val
* self
))(var51
->class->vft
[COLOR_standard__string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
1642 nit___nit__ModelBuilder___warning(var34
, var_anode
, var37
, var54
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var34:ModelBuilder>*/
1650 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
1651 var57
= var_anode
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
1652 if (unlikely(var57
== NULL
)) {
1653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1654 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1802);
1658 RET_LABEL56
:(void)0;
1662 var58
= ((val
* (*)(val
* self
))(var55
->class->vft
[COLOR_nit__typing__AExpr__its_variable
]))(var55
) /* its_variable on <var55:AExpr>*/;
1664 var_variable
= var58
;
1666 if (var_variable
== NULL
) {
1667 var60
= 1; /* is null */
1669 var60
= 0; /* arg is null but recv is not */
1672 { /* Inline kernel#Object#== (var_variable,var59) on <var_variable:nullable Variable> */
1675 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
1676 var65
= var_variable
== var_other
;
1679 RET_LABEL64
:(void)0;
1684 RET_LABEL62
:(void)0;
1692 /* <var_anode:ABinopExpr> isa AEqExpr */
1693 cltype67
= type_nit__AEqExpr
.color
;
1694 idtype68
= type_nit__AEqExpr
.id
;
1695 if(cltype67
>= var_anode
->type
->table_size
) {
1698 var66
= var_anode
->type
->type_table
[cltype67
] == idtype68
;
1702 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(AEqExpr)> */
1703 var71
= var_anode
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(AEqExpr)> */
1705 RET_LABEL70
:(void)0;
1708 if (var69
== NULL
) {
1709 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1710 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 221);
1713 { /* Inline flow#FlowContext#when_true (var69) on <var69:nullable FlowContext> */
1714 if (unlikely(var69
== NULL
)) {
1715 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1716 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
1719 var74
= var69
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var69:nullable FlowContext> */
1720 if (unlikely(var74
== NULL
)) {
1721 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1722 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
1726 RET_LABEL73
:(void)0;
1730 nit__typing___FlowContext___set_var(var72
, var_variable
, var_mtype2
); /* Direct call typing#FlowContext#set_var on <var72:FlowContext>*/
1733 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(AEqExpr)> */
1734 var77
= var_anode
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(AEqExpr)> */
1736 RET_LABEL76
:(void)0;
1739 if (var75
== NULL
) {
1740 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1741 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 222);
1744 { /* Inline flow#FlowContext#when_false (var75) on <var75:nullable FlowContext> */
1745 if (unlikely(var75
== NULL
)) {
1746 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1747 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
1750 var80
= var75
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var75:nullable FlowContext> */
1751 if (unlikely(var80
== NULL
)) {
1752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1753 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
1757 RET_LABEL79
:(void)0;
1761 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:nullable MType(MNullableType)> */
1762 var83
= var_mtype
->attrs
[COLOR_nit__model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:nullable MType(MNullableType)> */
1763 if (unlikely(var83
== NULL
)) {
1764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1765 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1506);
1769 RET_LABEL82
:(void)0;
1773 nit__typing___FlowContext___set_var(var78
, var_variable
, var81
); /* Direct call typing#FlowContext#set_var on <var78:FlowContext>*/
1776 /* <var_anode:ABinopExpr> isa ANeExpr */
1777 cltype85
= type_nit__ANeExpr
.color
;
1778 idtype86
= type_nit__ANeExpr
.id
;
1779 if(cltype85
>= var_anode
->type
->table_size
) {
1782 var84
= var_anode
->type
->type_table
[cltype85
] == idtype86
;
1786 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(ANeExpr)> */
1787 var89
= var_anode
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(ANeExpr)> */
1789 RET_LABEL88
:(void)0;
1792 if (var87
== NULL
) {
1793 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1794 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 224);
1797 { /* Inline flow#FlowContext#when_false (var87) on <var87:nullable FlowContext> */
1798 if (unlikely(var87
== NULL
)) {
1799 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
1803 var92
= var87
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var87:nullable FlowContext> */
1804 if (unlikely(var92
== NULL
)) {
1805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
1806 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 227);
1810 RET_LABEL91
:(void)0;
1814 nit__typing___FlowContext___set_var(var90
, var_variable
, var_mtype2
); /* Direct call typing#FlowContext#set_var on <var90:FlowContext>*/
1817 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(ANeExpr)> */
1818 var95
= var_anode
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(ANeExpr)> */
1820 RET_LABEL94
:(void)0;
1823 if (var93
== NULL
) {
1824 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1825 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 225);
1828 { /* Inline flow#FlowContext#when_true (var93) on <var93:nullable FlowContext> */
1829 if (unlikely(var93
== NULL
)) {
1830 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1831 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
1834 var98
= var93
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var93:nullable FlowContext> */
1835 if (unlikely(var98
== NULL
)) {
1836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
1837 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 224);
1841 RET_LABEL97
:(void)0;
1845 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:nullable MType(MNullableType)> */
1846 var101
= var_mtype
->attrs
[COLOR_nit__model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:nullable MType(MNullableType)> */
1847 if (unlikely(var101
== NULL
)) {
1848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1849 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1506);
1853 RET_LABEL100
:(void)0;
1857 nit__typing___FlowContext___set_var(var96
, var_variable
, var99
); /* Direct call typing#FlowContext#set_var on <var96:FlowContext>*/
1860 PRINT_ERROR("Runtime error: %s", "Aborted");
1861 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 227);
1867 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: TypeVisitor, ANode, MType, String): nullable MProperty */
1868 val
* nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1869 val
* var
/* : nullable MProperty */;
1870 val
* var_anode
/* var anode: ANode */;
1871 val
* var_mtype
/* var mtype: MType */;
1872 val
* var_name
/* var name: String */;
1873 val
* var1
/* : ModelBuilder */;
1874 val
* var3
/* : ModelBuilder */;
1875 val
* var4
/* : MModule */;
1876 val
* var6
/* : MModule */;
1877 val
* var7
/* : nullable MProperty */;
1882 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1883 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1884 if (unlikely(var3
== NULL
)) {
1885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1886 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1894 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
1895 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
1896 if (unlikely(var6
== NULL
)) {
1897 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1898 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
1906 var7
= nit___nit__ModelBuilder___try_get_mproperty_by_name2(var1
, var_anode
, var4
, var_mtype
, var_name
);
1913 /* method typing#TypeVisitor#resolve_mtype for (self: TypeVisitor, AType): nullable MType */
1914 val
* nit__typing___nit__typing__TypeVisitor___resolve_mtype(val
* self
, val
* p0
) {
1915 val
* var
/* : nullable MType */;
1916 val
* var_node
/* var node: AType */;
1917 val
* var1
/* : ModelBuilder */;
1918 val
* var3
/* : ModelBuilder */;
1919 val
* var4
/* : MModule */;
1920 val
* var6
/* : MModule */;
1921 val
* var7
/* : nullable MClassDef */;
1922 val
* var9
/* : nullable MClassDef */;
1923 val
* var10
/* : nullable MType */;
1926 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1927 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1928 if (unlikely(var3
== NULL
)) {
1929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1930 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1938 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
1939 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
1940 if (unlikely(var6
== NULL
)) {
1941 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1942 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
1950 { /* Inline typing#TypeVisitor#mclassdef (self) on <self:TypeVisitor> */
1951 var9
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mclassdef
].val
; /* _mclassdef on <self:TypeVisitor> */
1957 var10
= nit__modelize_class___ModelBuilder___resolve_mtype(var1
, var4
, var7
, var_node
);
1964 /* method typing#TypeVisitor#try_get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1965 val
* nit__typing___nit__typing__TypeVisitor___try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1966 val
* var
/* : nullable MClass */;
1967 val
* var_node
/* var node: ANode */;
1968 val
* var_name
/* var name: String */;
1969 val
* var1
/* : ModelBuilder */;
1970 val
* var3
/* : ModelBuilder */;
1971 val
* var4
/* : MModule */;
1972 val
* var6
/* : MModule */;
1973 val
* var7
/* : nullable MClass */;
1974 val
* var_mclass
/* var mclass: nullable MClass */;
1978 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1979 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1980 if (unlikely(var3
== NULL
)) {
1981 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1982 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1990 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
1991 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
1992 if (unlikely(var6
== NULL
)) {
1993 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1994 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2002 var7
= nit___nit__ModelBuilder___try_get_mclass_by_name(var1
, var_node
, var4
, var_name
);
2010 /* method typing#TypeVisitor#get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
2011 val
* nit__typing___nit__typing__TypeVisitor___get_mclass(val
* self
, val
* p0
, val
* p1
) {
2012 val
* var
/* : nullable MClass */;
2013 val
* var_node
/* var node: ANode */;
2014 val
* var_name
/* var name: String */;
2015 val
* var1
/* : ModelBuilder */;
2016 val
* var3
/* : ModelBuilder */;
2017 val
* var4
/* : MModule */;
2018 val
* var6
/* : MModule */;
2019 val
* var7
/* : nullable MClass */;
2020 val
* var_mclass
/* var mclass: nullable MClass */;
2021 val
* var8
/* : null */;
2022 short int var9
/* : Bool */;
2023 short int var10
/* : Bool */;
2024 val
* var_other
/* var other: nullable Object */;
2025 short int var12
/* : Bool */;
2026 short int var14
/* : Bool */;
2027 val
* var15
/* : ModelBuilder */;
2028 val
* var17
/* : ModelBuilder */;
2029 static val
* varonce
;
2030 val
* var18
/* : String */;
2031 char* var19
/* : NativeString */;
2032 long var20
/* : Int */;
2033 val
* var21
/* : FlatString */;
2034 static val
* varonce22
;
2035 val
* var23
/* : String */;
2036 char* var24
/* : NativeString */;
2037 long var25
/* : Int */;
2038 val
* var26
/* : FlatString */;
2039 val
* var27
/* : Array[Object] */;
2040 long var28
/* : Int */;
2041 val
* var29
/* : NativeArray[Object] */;
2042 val
* var30
/* : String */;
2046 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2047 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2048 if (unlikely(var3
== NULL
)) {
2049 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2050 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2058 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2059 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2060 if (unlikely(var6
== NULL
)) {
2061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2062 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2070 var7
= nit___nit__ModelBuilder___try_get_mclass_by_name(var1
, var_node
, var4
, var_name
);
2074 if (var_mclass
== NULL
) {
2075 var9
= 1; /* is null */
2077 var9
= 0; /* arg is null but recv is not */
2080 { /* Inline kernel#Object#== (var_mclass,var8) on <var_mclass:nullable MClass> */
2083 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2084 var14
= var_mclass
== var_other
;
2087 RET_LABEL13
:(void)0;
2092 RET_LABEL11
:(void)0;
2098 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2099 var17
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2100 if (unlikely(var17
== NULL
)) {
2101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2106 RET_LABEL16
:(void)0;
2112 var19
= "Type Error: missing primitive class `";
2114 var21
= standard___standard__NativeString___to_s_with_length(var19
, var20
);
2123 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
2127 var27
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2128 { /* var27 = array_instance Array[Object] */
2130 var29
= NEW_standard__NativeArray(var28
, &type_standard__NativeArray__standard__Object
);
2131 ((struct instance_standard__NativeArray
*)var29
)->values
[0] = (val
*) var18
;
2132 ((struct instance_standard__NativeArray
*)var29
)->values
[1] = (val
*) var_name
;
2133 ((struct instance_standard__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
2135 ((void (*)(val
* self
, val
* p0
, long p1
))(var27
->class->vft
[COLOR_standard__array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
2139 var30
= ((val
* (*)(val
* self
))(var27
->class->vft
[COLOR_standard__string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
2142 nit___nit__ModelBuilder___error(var15
, var_node
, var30
); /* Direct call modelbuilder_base#ModelBuilder#error on <var15:ModelBuilder>*/
2151 /* method typing#TypeVisitor#type_bool for (self: TypeVisitor, ANode): nullable MType */
2152 val
* nit__typing___nit__typing__TypeVisitor___type_bool(val
* self
, val
* p0
) {
2153 val
* var
/* : nullable MType */;
2154 val
* var_node
/* var node: ANode */;
2155 static val
* varonce
;
2156 val
* var1
/* : String */;
2157 char* var2
/* : NativeString */;
2158 long var3
/* : Int */;
2159 val
* var4
/* : FlatString */;
2160 val
* var5
/* : nullable MClass */;
2161 val
* var_mclass
/* var mclass: nullable MClass */;
2162 val
* var6
/* : null */;
2163 short int var7
/* : Bool */;
2164 short int var8
/* : Bool */;
2165 val
* var_other
/* var other: nullable Object */;
2166 short int var10
/* : Bool */;
2167 short int var12
/* : Bool */;
2168 val
* var13
/* : null */;
2169 val
* var14
/* : MClassType */;
2170 val
* var16
/* : MClassType */;
2177 var4
= standard___standard__NativeString___to_s_with_length(var2
, var3
);
2182 var5
= nit__typing___nit__typing__TypeVisitor___get_mclass(self
, var_node
, var1
);
2186 if (var_mclass
== NULL
) {
2187 var7
= 1; /* is null */
2189 var7
= 0; /* arg is null but recv is not */
2192 { /* Inline kernel#Object#== (var_mclass,var6) on <var_mclass:nullable MClass> */
2195 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2196 var12
= var_mclass
== var_other
;
2199 RET_LABEL11
:(void)0;
2215 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2216 var16
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2217 if (unlikely(var16
== NULL
)) {
2218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2219 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
2223 RET_LABEL15
:(void)0;
2231 /* method typing#TypeVisitor#get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
2232 val
* nit__typing___nit__typing__TypeVisitor___get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
2233 val
* var
/* : nullable CallSite */;
2234 val
* var_node
/* var node: ANode */;
2235 val
* var_recvtype
/* var recvtype: MType */;
2236 val
* var_name
/* var name: String */;
2237 short int var_recv_is_self
/* var recv_is_self: Bool */;
2238 val
* var1
/* : MType */;
2239 val
* var_unsafe_type
/* var unsafe_type: MType */;
2240 short int var2
/* : Bool */;
2243 short int var3
/* : Bool */;
2244 short int var4
/* : Bool */;
2245 static val
* varonce
;
2246 val
* var5
/* : String */;
2247 char* var6
/* : NativeString */;
2248 long var7
/* : Int */;
2249 val
* var8
/* : FlatString */;
2250 short int var9
/* : Bool */;
2251 short int var_
/* var : Bool */;
2252 static val
* varonce10
;
2253 val
* var11
/* : String */;
2254 char* var12
/* : NativeString */;
2255 long var13
/* : Int */;
2256 val
* var14
/* : FlatString */;
2257 short int var15
/* : Bool */;
2258 short int var_16
/* var : Bool */;
2259 static val
* varonce17
;
2260 val
* var18
/* : String */;
2261 char* var19
/* : NativeString */;
2262 long var20
/* : Int */;
2263 val
* var21
/* : FlatString */;
2264 short int var22
/* : Bool */;
2265 val
* var23
/* : MModule */;
2266 val
* var25
/* : MModule */;
2267 val
* var26
/* : MClassType */;
2268 val
* var27
/* : MType */;
2269 static val
* varonce28
;
2270 val
* var29
/* : String */;
2271 char* var30
/* : NativeString */;
2272 long var31
/* : Int */;
2273 val
* var32
/* : FlatString */;
2274 static val
* varonce33
;
2275 val
* var34
/* : String */;
2276 char* var35
/* : NativeString */;
2277 long var36
/* : Int */;
2278 val
* var37
/* : FlatString */;
2279 val
* var38
/* : Array[Object] */;
2280 long var39
/* : Int */;
2281 val
* var40
/* : NativeArray[Object] */;
2282 val
* var41
/* : String */;
2283 val
* var42
/* : null */;
2284 val
* var43
/* : nullable MProperty */;
2285 val
* var_mproperty
/* var mproperty: nullable MProperty */;
2286 short int var44
/* : Bool */;
2287 static val
* varonce45
;
2288 val
* var46
/* : String */;
2289 char* var47
/* : NativeString */;
2290 long var48
/* : Int */;
2291 val
* var49
/* : FlatString */;
2292 short int var50
/* : Bool */;
2293 short int var_51
/* var : Bool */;
2294 val
* var52
/* : null */;
2295 short int var53
/* : Bool */;
2296 short int var54
/* : Bool */;
2297 val
* var_other
/* var other: nullable Object */;
2298 short int var56
/* : Bool */;
2299 short int var58
/* : Bool */;
2300 static val
* varonce59
;
2301 val
* var60
/* : String */;
2302 char* var61
/* : NativeString */;
2303 long var62
/* : Int */;
2304 val
* var63
/* : FlatString */;
2305 val
* var64
/* : nullable MProperty */;
2306 val
* var65
/* : null */;
2307 short int var66
/* : Bool */;
2308 short int var67
/* : Bool */;
2309 short int var69
/* : Bool */;
2310 short int var71
/* : Bool */;
2311 val
* var72
/* : ModelBuilder */;
2312 val
* var74
/* : ModelBuilder */;
2313 static val
* varonce75
;
2314 val
* var76
/* : String */;
2315 char* var77
/* : NativeString */;
2316 long var78
/* : Int */;
2317 val
* var79
/* : FlatString */;
2318 static val
* varonce80
;
2319 val
* var81
/* : String */;
2320 char* var82
/* : NativeString */;
2321 long var83
/* : Int */;
2322 val
* var84
/* : FlatString */;
2323 static val
* varonce85
;
2324 val
* var86
/* : String */;
2325 char* var87
/* : NativeString */;
2326 long var88
/* : Int */;
2327 val
* var89
/* : FlatString */;
2328 val
* var90
/* : Array[Object] */;
2329 long var91
/* : Int */;
2330 val
* var92
/* : NativeArray[Object] */;
2331 val
* var93
/* : String */;
2332 val
* var94
/* : ModelBuilder */;
2333 val
* var96
/* : ModelBuilder */;
2334 static val
* varonce97
;
2335 val
* var98
/* : String */;
2336 char* var99
/* : NativeString */;
2337 long var100
/* : Int */;
2338 val
* var101
/* : FlatString */;
2339 static val
* varonce102
;
2340 val
* var103
/* : String */;
2341 char* var104
/* : NativeString */;
2342 long var105
/* : Int */;
2343 val
* var106
/* : FlatString */;
2344 static val
* varonce107
;
2345 val
* var108
/* : String */;
2346 char* var109
/* : NativeString */;
2347 long var110
/* : Int */;
2348 val
* var111
/* : FlatString */;
2349 val
* var112
/* : Array[Object] */;
2350 long var113
/* : Int */;
2351 val
* var114
/* : NativeArray[Object] */;
2352 val
* var115
/* : String */;
2353 val
* var116
/* : null */;
2354 short int var117
/* : Bool */;
2357 short int var120
/* : Bool */;
2358 short int var121
/* : Bool */;
2359 short int var122
/* : Bool */;
2360 short int var124
/* : Bool */;
2361 short int var_125
/* var : Bool */;
2362 short int var_126
/* var : Bool */;
2363 short int var127
/* : Bool */;
2364 short int var129
/* : Bool */;
2365 short int var130
/* : Bool */;
2366 static val
* varonce131
;
2367 val
* var132
/* : String */;
2368 char* var133
/* : NativeString */;
2369 long var134
/* : Int */;
2370 val
* var135
/* : FlatString */;
2371 static val
* varonce136
;
2372 val
* var137
/* : String */;
2373 char* var138
/* : NativeString */;
2374 long var139
/* : Int */;
2375 val
* var140
/* : FlatString */;
2376 val
* var141
/* : Array[Object] */;
2377 long var142
/* : Int */;
2378 val
* var143
/* : NativeArray[Object] */;
2379 val
* var144
/* : String */;
2380 short int var145
/* : Bool */;
2381 short int var146
/* : Bool */;
2382 short int var_147
/* var : Bool */;
2383 short int var148
/* : Bool */;
2384 short int var150
/* : Bool */;
2385 static val
* varonce151
;
2386 val
* var152
/* : String */;
2387 char* var153
/* : NativeString */;
2388 long var154
/* : Int */;
2389 val
* var155
/* : FlatString */;
2390 static val
* varonce156
;
2391 val
* var157
/* : String */;
2392 char* var158
/* : NativeString */;
2393 long var159
/* : Int */;
2394 val
* var160
/* : FlatString */;
2395 val
* var161
/* : Array[Object] */;
2396 long var162
/* : Int */;
2397 val
* var163
/* : NativeArray[Object] */;
2398 val
* var164
/* : String */;
2399 short int var165
/* : Bool */;
2400 short int var166
/* : Bool */;
2401 short int var167
/* : Bool */;
2402 val
* var168
/* : MVisibility */;
2403 val
* var170
/* : MVisibility */;
2404 val
* var171
/* : MVisibility */;
2405 short int var172
/* : Bool */;
2406 short int var174
/* : Bool */;
2407 short int var176
/* : Bool */;
2408 short int var_177
/* var : Bool */;
2409 short int var178
/* : Bool */;
2410 short int var_179
/* var : Bool */;
2411 val
* var180
/* : MModule */;
2412 val
* var182
/* : MModule */;
2413 val
* var183
/* : MClassDef */;
2414 val
* var185
/* : MClassDef */;
2415 val
* var186
/* : MModule */;
2416 val
* var188
/* : MModule */;
2417 val
* var189
/* : MVisibility */;
2418 val
* var190
/* : MVisibility */;
2419 short int var191
/* : Bool */;
2420 short int var_192
/* var : Bool */;
2421 val
* var193
/* : ModelBuilder */;
2422 val
* var195
/* : ModelBuilder */;
2423 val
* var196
/* : ToolContext */;
2424 val
* var198
/* : ToolContext */;
2425 val
* var199
/* : OptionBool */;
2426 val
* var201
/* : OptionBool */;
2427 val
* var202
/* : nullable Object */;
2428 val
* var204
/* : nullable Object */;
2429 short int var205
/* : Bool */;
2430 short int var206
/* : Bool */;
2431 val
* var207
/* : ModelBuilder */;
2432 val
* var209
/* : ModelBuilder */;
2433 static val
* varonce210
;
2434 val
* var211
/* : String */;
2435 char* var212
/* : NativeString */;
2436 long var213
/* : Int */;
2437 val
* var214
/* : FlatString */;
2438 static val
* varonce215
;
2439 val
* var216
/* : String */;
2440 char* var217
/* : NativeString */;
2441 long var218
/* : Int */;
2442 val
* var219
/* : FlatString */;
2443 val
* var220
/* : Array[Object] */;
2444 long var221
/* : Int */;
2445 val
* var222
/* : NativeArray[Object] */;
2446 val
* var223
/* : String */;
2447 val
* var224
/* : null */;
2448 val
* var225
/* : nullable MDeprecationInfo */;
2449 val
* var227
/* : nullable MDeprecationInfo */;
2450 val
* var_info
/* var info: nullable MDeprecationInfo */;
2451 short int var228
/* : Bool */;
2452 val
* var229
/* : null */;
2453 short int var230
/* : Bool */;
2454 short int var231
/* : Bool */;
2455 val
* var_other233
/* var other: nullable Object */;
2456 short int var234
/* : Bool */;
2457 short int var235
/* : Bool */;
2458 short int var_236
/* var : Bool */;
2459 val
* var237
/* : nullable MPropDef */;
2460 val
* var239
/* : nullable MPropDef */;
2461 val
* var240
/* : MProperty */;
2462 val
* var242
/* : MProperty */;
2463 val
* var243
/* : nullable MDeprecationInfo */;
2464 val
* var245
/* : nullable MDeprecationInfo */;
2465 val
* var246
/* : null */;
2466 short int var247
/* : Bool */;
2467 short int var248
/* : Bool */;
2468 short int var250
/* : Bool */;
2469 short int var252
/* : Bool */;
2470 val
* var253
/* : nullable MDoc */;
2471 val
* var255
/* : nullable MDoc */;
2472 val
* var_mdoc
/* var mdoc: nullable MDoc */;
2473 val
* var256
/* : null */;
2474 short int var257
/* : Bool */;
2475 short int var258
/* : Bool */;
2476 short int var260
/* : Bool */;
2477 short int var261
/* : Bool */;
2478 val
* var262
/* : ModelBuilder */;
2479 val
* var264
/* : ModelBuilder */;
2480 static val
* varonce265
;
2481 val
* var266
/* : String */;
2482 char* var267
/* : NativeString */;
2483 long var268
/* : Int */;
2484 val
* var269
/* : FlatString */;
2485 static val
* varonce270
;
2486 val
* var271
/* : String */;
2487 char* var272
/* : NativeString */;
2488 long var273
/* : Int */;
2489 val
* var274
/* : FlatString */;
2490 static val
* varonce275
;
2491 val
* var276
/* : String */;
2492 char* var277
/* : NativeString */;
2493 long var278
/* : Int */;
2494 val
* var279
/* : FlatString */;
2495 val
* var280
/* : Array[String] */;
2496 val
* var282
/* : Array[String] */;
2497 val
* var283
/* : nullable Object */;
2498 val
* var284
/* : Array[Object] */;
2499 long var285
/* : Int */;
2500 val
* var286
/* : NativeArray[Object] */;
2501 val
* var287
/* : String */;
2502 val
* var288
/* : ModelBuilder */;
2503 val
* var290
/* : ModelBuilder */;
2504 static val
* varonce291
;
2505 val
* var292
/* : String */;
2506 char* var293
/* : NativeString */;
2507 long var294
/* : Int */;
2508 val
* var295
/* : FlatString */;
2509 static val
* varonce296
;
2510 val
* var297
/* : String */;
2511 char* var298
/* : NativeString */;
2512 long var299
/* : Int */;
2513 val
* var300
/* : FlatString */;
2514 static val
* varonce301
;
2515 val
* var302
/* : String */;
2516 char* var303
/* : NativeString */;
2517 long var304
/* : Int */;
2518 val
* var305
/* : FlatString */;
2519 val
* var306
/* : Array[Object] */;
2520 long var307
/* : Int */;
2521 val
* var308
/* : NativeArray[Object] */;
2522 val
* var309
/* : String */;
2523 val
* var310
/* : MModule */;
2524 val
* var312
/* : MModule */;
2525 val
* var313
/* : Array[MPropDef] */;
2526 val
* var_propdefs
/* var propdefs: Array[MMethodDef] */;
2527 long var314
/* : Int */;
2528 long var316
/* : Int */;
2529 long var317
/* : Int */;
2530 short int var318
/* : Bool */;
2531 short int var320
/* : Bool */;
2532 val
* var321
/* : ModelBuilder */;
2533 val
* var323
/* : ModelBuilder */;
2534 static val
* varonce324
;
2535 val
* var325
/* : String */;
2536 char* var326
/* : NativeString */;
2537 long var327
/* : Int */;
2538 val
* var328
/* : FlatString */;
2539 static val
* varonce329
;
2540 val
* var330
/* : String */;
2541 char* var331
/* : NativeString */;
2542 long var332
/* : Int */;
2543 val
* var333
/* : FlatString */;
2544 val
* var334
/* : Array[Object] */;
2545 long var335
/* : Int */;
2546 val
* var336
/* : NativeArray[Object] */;
2547 val
* var337
/* : String */;
2548 val
* var338
/* : null */;
2549 long var339
/* : Int */;
2550 long var341
/* : Int */;
2551 long var342
/* : Int */;
2552 short int var343
/* : Bool */;
2553 short int var345
/* : Bool */;
2554 val
* var346
/* : nullable Object */;
2555 val
* var_mpropdef
/* var mpropdef: nullable Object */;
2556 val
* var347
/* : ModelBuilder */;
2557 val
* var349
/* : ModelBuilder */;
2558 static val
* varonce350
;
2559 val
* var351
/* : String */;
2560 char* var352
/* : NativeString */;
2561 long var353
/* : Int */;
2562 val
* var354
/* : FlatString */;
2563 static val
* varonce355
;
2564 val
* var356
/* : String */;
2565 char* var357
/* : NativeString */;
2566 long var358
/* : Int */;
2567 val
* var359
/* : FlatString */;
2568 static val
* varonce360
;
2569 val
* var361
/* : String */;
2570 char* var362
/* : NativeString */;
2571 long var363
/* : Int */;
2572 val
* var364
/* : FlatString */;
2573 static val
* varonce365
;
2574 val
* var366
/* : String */;
2575 char* var367
/* : NativeString */;
2576 long var368
/* : Int */;
2577 val
* var369
/* : FlatString */;
2578 static val
* varonce370
;
2579 val
* var371
/* : String */;
2580 char* var372
/* : NativeString */;
2581 long var373
/* : Int */;
2582 val
* var374
/* : FlatString */;
2583 val
* var375
/* : String */;
2584 val
* var376
/* : Array[Object] */;
2585 long var377
/* : Int */;
2586 val
* var378
/* : NativeArray[Object] */;
2587 val
* var379
/* : String */;
2588 val
* var380
/* : MPropDef */;
2589 val
* var382
/* : MPropDef */;
2590 val
* var383
/* : MSignature */;
2591 val
* var384
/* : nullable MSignature */;
2592 val
* var386
/* : nullable MSignature */;
2593 val
* var387
/* : nullable MSignature */;
2594 val
* var389
/* : nullable MSignature */;
2595 val
* var_msignature
/* var msignature: MSignature */;
2596 val
* var390
/* : MType */;
2597 short int var391
/* : Bool */;
2600 const char* var_class_name
;
2601 short int var394
/* : Bool */;
2602 short int var_erasure_cast
/* var erasure_cast: Bool */;
2603 val
* var395
/* : nullable MSignature */;
2604 val
* var397
/* : nullable MSignature */;
2605 val
* var398
/* : nullable MType */;
2606 val
* var400
/* : nullable MType */;
2607 val
* var_rettype
/* var rettype: nullable MType */;
2608 short int var401
/* : Bool */;
2609 short int var402
/* : Bool */;
2610 short int var_403
/* var : Bool */;
2611 val
* var404
/* : null */;
2612 short int var405
/* : Bool */;
2613 short int var406
/* : Bool */;
2614 short int var408
/* : Bool */;
2615 short int var409
/* : Bool */;
2616 val
* var410
/* : MType */;
2617 short int var411
/* : Bool */;
2620 val
* var414
/* : nullable MType */;
2621 val
* var416
/* : nullable MType */;
2622 val
* var_erased_rettype
/* var erased_rettype: nullable MType */;
2623 val
* var417
/* : null */;
2624 short int var418
/* : Bool */;
2625 short int var419
/* : Bool */;
2626 short int var421
/* : Bool */;
2627 short int var422
/* : Bool */;
2628 short int var423
/* : Bool */;
2629 val
* var424
/* : CallSite */;
2630 val
* var425
/* : MModule */;
2631 val
* var427
/* : MModule */;
2632 val
* var428
/* : nullable MClassType */;
2633 val
* var430
/* : nullable MClassType */;
2634 val
* var_callsite
/* var callsite: CallSite */;
2638 var_recv_is_self
= p3
;
2640 var1
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_recvtype
);
2642 var_unsafe_type
= var1
;
2643 /* <var_recvtype:MType> isa MNullType */
2644 cltype
= type_nit__MNullType
.color
;
2645 idtype
= type_nit__MNullType
.id
;
2646 if(cltype
>= var_recvtype
->type
->table_size
) {
2649 var2
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
2657 var8
= standard___standard__NativeString___to_s_with_length(var6
, var7
);
2662 var9
= ((short int (*)(val
* self
, val
* p0
))(var_name
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_name
, var5
) /* == on <var_name:String>*/;
2673 var14
= standard___standard__NativeString___to_s_with_length(var12
, var13
);
2678 var15
= ((short int (*)(val
* self
, val
* p0
))(var_name
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_name
, var11
) /* == on <var_name:String>*/;
2689 var19
= "is_same_instance";
2691 var21
= standard___standard__NativeString___to_s_with_length(var19
, var20
);
2696 var22
= ((short int (*)(val
* self
, val
* p0
))(var_name
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_name
, var18
) /* == on <var_name:String>*/;
2702 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2703 var25
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2704 if (unlikely(var25
== NULL
)) {
2705 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2706 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2710 RET_LABEL24
:(void)0;
2714 var26
= nit__model___MModule___object_type(var23
);
2717 var27
= nit___nit__MType___as_nullable(var26
);
2719 var_unsafe_type
= var27
;
2724 var30
= "Error: Method \'";
2726 var32
= standard___standard__NativeString___to_s_with_length(var30
, var31
);
2733 var35
= "\' call on \'null\'.";
2735 var37
= standard___standard__NativeString___to_s_with_length(var35
, var36
);
2739 var38
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2740 { /* var38 = array_instance Array[Object] */
2742 var40
= NEW_standard__NativeArray(var39
, &type_standard__NativeArray__standard__Object
);
2743 ((struct instance_standard__NativeArray
*)var40
)->values
[0] = (val
*) var29
;
2744 ((struct instance_standard__NativeArray
*)var40
)->values
[1] = (val
*) var_name
;
2745 ((struct instance_standard__NativeArray
*)var40
)->values
[2] = (val
*) var34
;
2747 ((void (*)(val
* self
, val
* p0
, long p1
))(var38
->class->vft
[COLOR_standard__array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[Object]>*/;
2751 var41
= ((val
* (*)(val
* self
))(var38
->class->vft
[COLOR_standard__string__Object__to_s
]))(var38
) /* to_s on <var38:Array[Object]>*/;
2754 nit__typing___nit__typing__TypeVisitor___error(self
, var_node
, var41
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
2763 var43
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
2765 var_mproperty
= var43
;
2771 var49
= standard___standard__NativeString___to_s_with_length(var47
, var48
);
2776 var50
= ((short int (*)(val
* self
, val
* p0
))(var_name
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_name
, var46
) /* == on <var_name:String>*/;
2781 if (var_mproperty
== NULL
) {
2782 var53
= 1; /* is null */
2784 var53
= 0; /* arg is null but recv is not */
2787 { /* Inline kernel#Object#== (var_mproperty,var52) on <var_mproperty:nullable MProperty> */
2790 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
2791 var58
= var_mproperty
== var_other
;
2794 RET_LABEL57
:(void)0;
2799 RET_LABEL55
:(void)0;
2813 var63
= standard___standard__NativeString___to_s_with_length(var61
, var62
);
2819 var64
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
2821 var_mproperty
= var64
;
2825 if (var_mproperty
== NULL
) {
2826 var66
= 1; /* is null */
2828 var66
= 0; /* arg is null but recv is not */
2831 { /* Inline kernel#Object#== (var_mproperty,var65) on <var_mproperty:nullable MProperty> */
2834 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
2835 var71
= var_mproperty
== var_other
;
2838 RET_LABEL70
:(void)0;
2843 RET_LABEL68
:(void)0;
2848 if (var_recv_is_self
){
2850 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2851 var74
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2852 if (unlikely(var74
== NULL
)) {
2853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2854 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2858 RET_LABEL73
:(void)0;
2864 var77
= "Error: Method or variable \'";
2866 var79
= standard___standard__NativeString___to_s_with_length(var77
, var78
);
2873 var82
= "\' unknown in ";
2875 var84
= standard___standard__NativeString___to_s_with_length(var82
, var83
);
2884 var89
= standard___standard__NativeString___to_s_with_length(var87
, var88
);
2888 var90
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2889 { /* var90 = array_instance Array[Object] */
2891 var92
= NEW_standard__NativeArray(var91
, &type_standard__NativeArray__standard__Object
);
2892 ((struct instance_standard__NativeArray
*)var92
)->values
[0] = (val
*) var76
;
2893 ((struct instance_standard__NativeArray
*)var92
)->values
[1] = (val
*) var_name
;
2894 ((struct instance_standard__NativeArray
*)var92
)->values
[2] = (val
*) var81
;
2895 ((struct instance_standard__NativeArray
*)var92
)->values
[3] = (val
*) var_recvtype
;
2896 ((struct instance_standard__NativeArray
*)var92
)->values
[4] = (val
*) var86
;
2898 ((void (*)(val
* self
, val
* p0
, long p1
))(var90
->class->vft
[COLOR_standard__array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[Object]>*/;
2902 var93
= ((val
* (*)(val
* self
))(var90
->class->vft
[COLOR_standard__string__Object__to_s
]))(var90
) /* to_s on <var90:Array[Object]>*/;
2905 nit___nit__ModelBuilder___error(var72
, var_node
, var93
); /* Direct call modelbuilder_base#ModelBuilder#error on <var72:ModelBuilder>*/
2909 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2910 var96
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2911 if (unlikely(var96
== NULL
)) {
2912 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2913 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2917 RET_LABEL95
:(void)0;
2923 var99
= "Error: Method \'";
2925 var101
= standard___standard__NativeString___to_s_with_length(var99
, var100
);
2930 var103
= varonce102
;
2932 var104
= "\' doesn\'t exists in ";
2934 var106
= standard___standard__NativeString___to_s_with_length(var104
, var105
);
2936 varonce102
= var103
;
2939 var108
= varonce107
;
2943 var111
= standard___standard__NativeString___to_s_with_length(var109
, var110
);
2945 varonce107
= var108
;
2947 var112
= NEW_standard__Array(&type_standard__Array__standard__Object
);
2948 { /* var112 = array_instance Array[Object] */
2950 var114
= NEW_standard__NativeArray(var113
, &type_standard__NativeArray__standard__Object
);
2951 ((struct instance_standard__NativeArray
*)var114
)->values
[0] = (val
*) var98
;
2952 ((struct instance_standard__NativeArray
*)var114
)->values
[1] = (val
*) var_name
;
2953 ((struct instance_standard__NativeArray
*)var114
)->values
[2] = (val
*) var103
;
2954 ((struct instance_standard__NativeArray
*)var114
)->values
[3] = (val
*) var_recvtype
;
2955 ((struct instance_standard__NativeArray
*)var114
)->values
[4] = (val
*) var108
;
2957 ((void (*)(val
* self
, val
* p0
, long p1
))(var112
->class->vft
[COLOR_standard__array__Array__with_native
]))(var112
, var114
, var113
) /* with_native on <var112:Array[Object]>*/;
2961 var115
= ((val
* (*)(val
* self
))(var112
->class->vft
[COLOR_standard__string__Object__to_s
]))(var112
) /* to_s on <var112:Array[Object]>*/;
2964 nit___nit__ModelBuilder___error(var94
, var_node
, var115
); /* Direct call modelbuilder_base#ModelBuilder#error on <var94:ModelBuilder>*/
2972 /* <var_mproperty:nullable MProperty(MProperty)> isa MMethod */
2973 cltype118
= type_nit__MMethod
.color
;
2974 idtype119
= type_nit__MMethod
.id
;
2975 if(cltype118
>= var_mproperty
->type
->table_size
) {
2978 var117
= var_mproperty
->type
->type_table
[cltype118
] == idtype119
;
2980 if (unlikely(!var117
)) {
2981 PRINT_ERROR("Runtime error: %s", "Assert failed");
2982 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 294);
2986 { /* Inline typing#TypeVisitor#is_toplevel_context (self) on <self:TypeVisitor> */
2987 var124
= self
->attrs
[COLOR_nit__typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <self:TypeVisitor> */
2989 RET_LABEL123
:(void)0;
2994 var121
= var_recv_is_self
;
3001 { /* Inline model#MMethod#is_toplevel (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3002 var129
= var_mproperty
->attrs
[COLOR_nit__model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mproperty:nullable MProperty(MMethod)> */
3004 RET_LABEL128
:(void)0;
3014 var132
= varonce131
;
3016 var133
= "Error: \'";
3018 var135
= standard___standard__NativeString___to_s_with_length(var133
, var134
);
3020 varonce131
= var132
;
3023 var137
= varonce136
;
3025 var138
= "\' is not a top-level method, thus need a receiver.";
3027 var140
= standard___standard__NativeString___to_s_with_length(var138
, var139
);
3029 varonce136
= var137
;
3031 var141
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3032 { /* var141 = array_instance Array[Object] */
3034 var143
= NEW_standard__NativeArray(var142
, &type_standard__NativeArray__standard__Object
);
3035 ((struct instance_standard__NativeArray
*)var143
)->values
[0] = (val
*) var132
;
3036 ((struct instance_standard__NativeArray
*)var143
)->values
[1] = (val
*) var_name
;
3037 ((struct instance_standard__NativeArray
*)var143
)->values
[2] = (val
*) var137
;
3039 ((void (*)(val
* self
, val
* p0
, long p1
))(var141
->class->vft
[COLOR_standard__array__Array__with_native
]))(var141
, var143
, var142
) /* with_native on <var141:Array[Object]>*/;
3043 var144
= ((val
* (*)(val
* self
))(var141
->class->vft
[COLOR_standard__string__Object__to_s
]))(var141
) /* to_s on <var141:Array[Object]>*/;
3046 nit__typing___nit__typing__TypeVisitor___error(self
, var_node
, var144
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3050 var146
= !var_recv_is_self
;
3054 { /* Inline model#MMethod#is_toplevel (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3055 var150
= var_mproperty
->attrs
[COLOR_nit__model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mproperty:nullable MProperty(MMethod)> */
3057 RET_LABEL149
:(void)0;
3066 var152
= varonce151
;
3068 var153
= "Error: cannot call \'";
3070 var155
= standard___standard__NativeString___to_s_with_length(var153
, var154
);
3072 varonce151
= var152
;
3075 var157
= varonce156
;
3077 var158
= "\', a top-level method, with a receiver.";
3079 var160
= standard___standard__NativeString___to_s_with_length(var158
, var159
);
3081 varonce156
= var157
;
3083 var161
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3084 { /* var161 = array_instance Array[Object] */
3086 var163
= NEW_standard__NativeArray(var162
, &type_standard__NativeArray__standard__Object
);
3087 ((struct instance_standard__NativeArray
*)var163
)->values
[0] = (val
*) var152
;
3088 ((struct instance_standard__NativeArray
*)var163
)->values
[1] = (val
*) var_name
;
3089 ((struct instance_standard__NativeArray
*)var163
)->values
[2] = (val
*) var157
;
3091 ((void (*)(val
* self
, val
* p0
, long p1
))(var161
->class->vft
[COLOR_standard__array__Array__with_native
]))(var161
, var163
, var162
) /* with_native on <var161:Array[Object]>*/;
3095 var164
= ((val
* (*)(val
* self
))(var161
->class->vft
[COLOR_standard__string__Object__to_s
]))(var161
) /* to_s on <var161:Array[Object]>*/;
3098 nit__typing___nit__typing__TypeVisitor___error(self
, var_node
, var164
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3103 { /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3104 var170
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___visibility
].val
; /* _visibility on <var_mproperty:nullable MProperty(MMethod)> */
3105 if (unlikely(var170
== NULL
)) {
3106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
3107 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1757);
3111 RET_LABEL169
:(void)0;
3115 var171
= nit__model_base___standard__Object___protected_visibility(self
);
3118 { /* Inline kernel#Object#== (var168,var171) on <var168:MVisibility> */
3121 { /* Inline kernel#Object#is_same_instance (var168,var_other) on <var168:MVisibility> */
3122 var176
= var168
== var_other
;
3125 RET_LABEL175
:(void)0;
3130 RET_LABEL173
:(void)0;
3135 var178
= !var_recv_is_self
;
3143 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3144 var182
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3145 if (unlikely(var182
== NULL
)) {
3146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3147 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
3151 RET_LABEL181
:(void)0;
3155 { /* Inline model#MProperty#intro_mclassdef (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3156 var185
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)> */
3157 if (unlikely(var185
== NULL
)) {
3158 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
3159 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1736);
3163 RET_LABEL184
:(void)0;
3167 { /* Inline model#MClassDef#mmodule (var183) on <var183:MClassDef> */
3168 var188
= var183
->attrs
[COLOR_nit__model__MClassDef___mmodule
].val
; /* _mmodule on <var183:MClassDef> */
3169 if (unlikely(var188
== NULL
)) {
3170 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 489);
3175 RET_LABEL187
:(void)0;
3179 var189
= nit___nit__MModule___visibility_for(var180
, var186
);
3182 var190
= nit__model_base___standard__Object___intrude_visibility(self
);
3185 var191
= nit___nit__MVisibility___standard__kernel__Comparable___60d(var189
, var190
);
3194 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3195 var195
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3196 if (unlikely(var195
== NULL
)) {
3197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3202 RET_LABEL194
:(void)0;
3206 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var193) on <var193:ModelBuilder> */
3207 var198
= var193
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var193:ModelBuilder> */
3208 if (unlikely(var198
== NULL
)) {
3209 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3210 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
3214 RET_LABEL197
:(void)0;
3218 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (var196) on <var196:ToolContext> */
3219 var201
= var196
->attrs
[COLOR_nit__modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <var196:ToolContext> */
3220 if (unlikely(var201
== NULL
)) {
3221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
3222 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 27);
3226 RET_LABEL200
:(void)0;
3230 { /* Inline opts#Option#value (var199) on <var199:OptionBool> */
3231 var204
= var199
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var199:OptionBool> */
3233 RET_LABEL203
:(void)0;
3236 var205
= ((struct instance_standard__Bool
*)var202
)->value
; /* autounbox from nullable Object to Bool */;
3244 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3245 var209
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3246 if (unlikely(var209
== NULL
)) {
3247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3248 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3252 RET_LABEL208
:(void)0;
3256 var211
= varonce210
;
3258 var212
= "Error: Method \'";
3260 var214
= standard___standard__NativeString___to_s_with_length(var212
, var213
);
3262 varonce210
= var211
;
3265 var216
= varonce215
;
3267 var217
= "\' is protected and can only acceded by self.";
3269 var219
= standard___standard__NativeString___to_s_with_length(var217
, var218
);
3271 varonce215
= var216
;
3273 var220
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3274 { /* var220 = array_instance Array[Object] */
3276 var222
= NEW_standard__NativeArray(var221
, &type_standard__NativeArray__standard__Object
);
3277 ((struct instance_standard__NativeArray
*)var222
)->values
[0] = (val
*) var211
;
3278 ((struct instance_standard__NativeArray
*)var222
)->values
[1] = (val
*) var_name
;
3279 ((struct instance_standard__NativeArray
*)var222
)->values
[2] = (val
*) var216
;
3281 ((void (*)(val
* self
, val
* p0
, long p1
))(var220
->class->vft
[COLOR_standard__array__Array__with_native
]))(var220
, var222
, var221
) /* with_native on <var220:Array[Object]>*/;
3285 var223
= ((val
* (*)(val
* self
))(var220
->class->vft
[COLOR_standard__string__Object__to_s
]))(var220
) /* to_s on <var220:Array[Object]>*/;
3288 nit___nit__ModelBuilder___error(var207
, var_node
, var223
); /* Direct call modelbuilder_base#ModelBuilder#error on <var207:ModelBuilder>*/
3296 { /* Inline mdoc#MEntity#deprecation (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3297 var227
= var_mproperty
->attrs
[COLOR_nit__mdoc__MEntity___deprecation
].val
; /* _deprecation on <var_mproperty:nullable MProperty(MMethod)> */
3299 RET_LABEL226
:(void)0;
3304 if (var_info
== NULL
) {
3305 var230
= 0; /* is null */
3307 var230
= 1; /* arg is null and recv is not */
3310 { /* Inline kernel#Object#!= (var_info,var229) on <var_info:nullable MDeprecationInfo> */
3311 var_other233
= var229
;
3313 var234
= ((short int (*)(val
* self
, val
* p0
))(var_info
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_info
, var_other233
) /* == on <var_info:nullable MDeprecationInfo(MDeprecationInfo)>*/;
3318 RET_LABEL232
:(void)0;
3325 { /* Inline typing#TypeVisitor#mpropdef (self) on <self:TypeVisitor> */
3326 var239
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
3328 RET_LABEL238
:(void)0;
3331 if (var237
== NULL
) {
3332 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3333 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 309);
3336 { /* Inline model#MPropDef#mproperty (var237) on <var237:nullable MPropDef> */
3337 if (unlikely(var237
== NULL
)) {
3338 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3339 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
3342 var242
= var237
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var237:nullable MPropDef> */
3343 if (unlikely(var242
== NULL
)) {
3344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3345 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2013);
3349 RET_LABEL241
:(void)0;
3353 { /* Inline mdoc#MEntity#deprecation (var240) on <var240:MProperty> */
3354 var245
= var240
->attrs
[COLOR_nit__mdoc__MEntity___deprecation
].val
; /* _deprecation on <var240:MProperty> */
3356 RET_LABEL244
:(void)0;
3360 if (var243
== NULL
) {
3361 var247
= 1; /* is null */
3363 var247
= 0; /* arg is null but recv is not */
3366 { /* Inline kernel#Object#== (var243,var246) on <var243:nullable MDeprecationInfo> */
3369 { /* Inline kernel#Object#is_same_instance (var243,var_other) on <var243:nullable MDeprecationInfo(MDeprecationInfo)> */
3370 var252
= var243
== var_other
;
3373 RET_LABEL251
:(void)0;
3378 RET_LABEL249
:(void)0;
3388 { /* Inline mdoc#MDeprecationInfo#mdoc (var_info) on <var_info:nullable MDeprecationInfo(MDeprecationInfo)> */
3389 var255
= var_info
->attrs
[COLOR_nit__mdoc__MDeprecationInfo___mdoc
].val
; /* _mdoc on <var_info:nullable MDeprecationInfo(MDeprecationInfo)> */
3391 RET_LABEL254
:(void)0;
3396 if (var_mdoc
== NULL
) {
3397 var257
= 0; /* is null */
3399 var257
= 1; /* arg is null and recv is not */
3402 { /* Inline kernel#Object#!= (var_mdoc,var256) on <var_mdoc:nullable MDoc> */
3403 var_other233
= var256
;
3405 var260
= ((short int (*)(val
* self
, val
* p0
))(var_mdoc
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mdoc
, var_other233
) /* == on <var_mdoc:nullable MDoc(MDoc)>*/;
3410 RET_LABEL259
:(void)0;
3416 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3417 var264
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3418 if (unlikely(var264
== NULL
)) {
3419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3420 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3424 RET_LABEL263
:(void)0;
3428 var266
= varonce265
;
3430 var267
= "deprecated-method";
3432 var269
= standard___standard__NativeString___to_s_with_length(var267
, var268
);
3434 varonce265
= var266
;
3437 var271
= varonce270
;
3439 var272
= "Deprecation Warning: Method \'";
3441 var274
= standard___standard__NativeString___to_s_with_length(var272
, var273
);
3443 varonce270
= var271
;
3446 var276
= varonce275
;
3448 var277
= "\' is deprecated: ";
3450 var279
= standard___standard__NativeString___to_s_with_length(var277
, var278
);
3452 varonce275
= var276
;
3455 { /* Inline mdoc#MDoc#content (var_mdoc) on <var_mdoc:nullable MDoc(MDoc)> */
3456 var282
= var_mdoc
->attrs
[COLOR_nit__mdoc__MDoc___content
].val
; /* _content on <var_mdoc:nullable MDoc(MDoc)> */
3457 if (unlikely(var282
== NULL
)) {
3458 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
3459 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mdoc
, 22);
3463 RET_LABEL281
:(void)0;
3467 var283
= standard___standard__SequenceRead___Collection__first(var280
);
3469 var284
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3470 { /* var284 = array_instance Array[Object] */
3472 var286
= NEW_standard__NativeArray(var285
, &type_standard__NativeArray__standard__Object
);
3473 ((struct instance_standard__NativeArray
*)var286
)->values
[0] = (val
*) var271
;
3474 ((struct instance_standard__NativeArray
*)var286
)->values
[1] = (val
*) var_name
;
3475 ((struct instance_standard__NativeArray
*)var286
)->values
[2] = (val
*) var276
;
3476 ((struct instance_standard__NativeArray
*)var286
)->values
[3] = (val
*) var283
;
3478 ((void (*)(val
* self
, val
* p0
, long p1
))(var284
->class->vft
[COLOR_standard__array__Array__with_native
]))(var284
, var286
, var285
) /* with_native on <var284:Array[Object]>*/;
3482 var287
= ((val
* (*)(val
* self
))(var284
->class->vft
[COLOR_standard__string__Object__to_s
]))(var284
) /* to_s on <var284:Array[Object]>*/;
3485 nit___nit__ModelBuilder___warning(var262
, var_node
, var266
, var287
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var262:ModelBuilder>*/
3489 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3490 var290
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3491 if (unlikely(var290
== NULL
)) {
3492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3493 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3497 RET_LABEL289
:(void)0;
3501 var292
= varonce291
;
3503 var293
= "deprecated-method";
3505 var295
= standard___standard__NativeString___to_s_with_length(var293
, var294
);
3507 varonce291
= var292
;
3510 var297
= varonce296
;
3512 var298
= "Deprecation Warning: Method \'";
3514 var300
= standard___standard__NativeString___to_s_with_length(var298
, var299
);
3516 varonce296
= var297
;
3519 var302
= varonce301
;
3521 var303
= "\' is deprecated.";
3523 var305
= standard___standard__NativeString___to_s_with_length(var303
, var304
);
3525 varonce301
= var302
;
3527 var306
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3528 { /* var306 = array_instance Array[Object] */
3530 var308
= NEW_standard__NativeArray(var307
, &type_standard__NativeArray__standard__Object
);
3531 ((struct instance_standard__NativeArray
*)var308
)->values
[0] = (val
*) var297
;
3532 ((struct instance_standard__NativeArray
*)var308
)->values
[1] = (val
*) var_name
;
3533 ((struct instance_standard__NativeArray
*)var308
)->values
[2] = (val
*) var302
;
3535 ((void (*)(val
* self
, val
* p0
, long p1
))(var306
->class->vft
[COLOR_standard__array__Array__with_native
]))(var306
, var308
, var307
) /* with_native on <var306:Array[Object]>*/;
3539 var309
= ((val
* (*)(val
* self
))(var306
->class->vft
[COLOR_standard__string__Object__to_s
]))(var306
) /* to_s on <var306:Array[Object]>*/;
3542 nit___nit__ModelBuilder___warning(var288
, var_node
, var292
, var309
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var288:ModelBuilder>*/
3548 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3549 var312
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3550 if (unlikely(var312
== NULL
)) {
3551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3552 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
3556 RET_LABEL311
:(void)0;
3560 var313
= nit___nit__MProperty___lookup_definitions(var_mproperty
, var310
, var_unsafe_type
);
3562 var_propdefs
= var313
;
3564 { /* Inline array#AbstractArrayRead#length (var_propdefs) on <var_propdefs:Array[MMethodDef]> */
3565 var316
= var_propdefs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_propdefs:Array[MMethodDef]> */
3567 RET_LABEL315
:(void)0;
3572 { /* Inline kernel#Int#== (var314,var317) on <var314:Int> */
3573 var320
= var314
== var317
;
3576 RET_LABEL319
:(void)0;
3581 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3582 var323
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3583 if (unlikely(var323
== NULL
)) {
3584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3585 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3589 RET_LABEL322
:(void)0;
3593 var325
= varonce324
;
3595 var326
= "Type error: no definition found for property ";
3597 var328
= standard___standard__NativeString___to_s_with_length(var326
, var327
);
3599 varonce324
= var325
;
3602 var330
= varonce329
;
3606 var333
= standard___standard__NativeString___to_s_with_length(var331
, var332
);
3608 varonce329
= var330
;
3610 var334
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3611 { /* var334 = array_instance Array[Object] */
3613 var336
= NEW_standard__NativeArray(var335
, &type_standard__NativeArray__standard__Object
);
3614 ((struct instance_standard__NativeArray
*)var336
)->values
[0] = (val
*) var325
;
3615 ((struct instance_standard__NativeArray
*)var336
)->values
[1] = (val
*) var_name
;
3616 ((struct instance_standard__NativeArray
*)var336
)->values
[2] = (val
*) var330
;
3617 ((struct instance_standard__NativeArray
*)var336
)->values
[3] = (val
*) var_unsafe_type
;
3619 ((void (*)(val
* self
, val
* p0
, long p1
))(var334
->class->vft
[COLOR_standard__array__Array__with_native
]))(var334
, var336
, var335
) /* with_native on <var334:Array[Object]>*/;
3623 var337
= ((val
* (*)(val
* self
))(var334
->class->vft
[COLOR_standard__string__Object__to_s
]))(var334
) /* to_s on <var334:Array[Object]>*/;
3626 nit___nit__ModelBuilder___error(var321
, var_node
, var337
); /* Direct call modelbuilder_base#ModelBuilder#error on <var321:ModelBuilder>*/
3633 { /* Inline array#AbstractArrayRead#length (var_propdefs) on <var_propdefs:Array[MMethodDef]> */
3634 var341
= var_propdefs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_propdefs:Array[MMethodDef]> */
3636 RET_LABEL340
:(void)0;
3641 { /* Inline kernel#Int#== (var339,var342) on <var339:Int> */
3642 var345
= var339
== var342
;
3645 RET_LABEL344
:(void)0;
3650 var346
= standard___standard__SequenceRead___Collection__first(var_propdefs
);
3652 var_mpropdef
= var346
;
3655 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3656 var349
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3657 if (unlikely(var349
== NULL
)) {
3658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3659 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3663 RET_LABEL348
:(void)0;
3667 var351
= varonce350
;
3669 var352
= "property-conflict";
3671 var354
= standard___standard__NativeString___to_s_with_length(var352
, var353
);
3673 varonce350
= var351
;
3676 var356
= varonce355
;
3678 var357
= "Warning: conflicting property definitions for property ";
3680 var359
= standard___standard__NativeString___to_s_with_length(var357
, var358
);
3682 varonce355
= var356
;
3685 var361
= varonce360
;
3689 var364
= standard___standard__NativeString___to_s_with_length(var362
, var363
);
3691 varonce360
= var361
;
3694 var366
= varonce365
;
3698 var369
= standard___standard__NativeString___to_s_with_length(var367
, var368
);
3700 varonce365
= var366
;
3703 var371
= varonce370
;
3707 var374
= standard___standard__NativeString___to_s_with_length(var372
, var373
);
3709 varonce370
= var371
;
3712 var375
= standard__string___Collection___join(var_propdefs
, var371
);
3714 var376
= NEW_standard__Array(&type_standard__Array__standard__Object
);
3715 { /* var376 = array_instance Array[Object] */
3717 var378
= NEW_standard__NativeArray(var377
, &type_standard__NativeArray__standard__Object
);
3718 ((struct instance_standard__NativeArray
*)var378
)->values
[0] = (val
*) var356
;
3719 ((struct instance_standard__NativeArray
*)var378
)->values
[1] = (val
*) var_name
;
3720 ((struct instance_standard__NativeArray
*)var378
)->values
[2] = (val
*) var361
;
3721 ((struct instance_standard__NativeArray
*)var378
)->values
[3] = (val
*) var_unsafe_type
;
3722 ((struct instance_standard__NativeArray
*)var378
)->values
[4] = (val
*) var366
;
3723 ((struct instance_standard__NativeArray
*)var378
)->values
[5] = (val
*) var375
;
3725 ((void (*)(val
* self
, val
* p0
, long p1
))(var376
->class->vft
[COLOR_standard__array__Array__with_native
]))(var376
, var378
, var377
) /* with_native on <var376:Array[Object]>*/;
3729 var379
= ((val
* (*)(val
* self
))(var376
->class->vft
[COLOR_standard__string__Object__to_s
]))(var376
) /* to_s on <var376:Array[Object]>*/;
3732 nit___nit__ModelBuilder___warning(var347
, var_node
, var351
, var379
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var347:ModelBuilder>*/
3735 { /* Inline model#MProperty#intro (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3736 var382
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___intro
].val
; /* _intro on <var_mproperty:nullable MProperty(MMethod)> */
3737 if (unlikely(var382
== NULL
)) {
3738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3739 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1773);
3743 RET_LABEL381
:(void)0;
3746 var_mpropdef
= var380
;
3750 { /* Inline model#MMethodDef#new_msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
3751 var386
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___new_msignature
].val
; /* _new_msignature on <var_mpropdef:nullable Object(MMethodDef)> */
3753 RET_LABEL385
:(void)0;
3760 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
3761 var389
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable Object(MMethodDef)> */
3763 RET_LABEL388
:(void)0;
3766 if (unlikely(var387
== NULL
)) {
3767 PRINT_ERROR("Runtime error: %s", "Cast failed");
3768 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 331);
3773 var_msignature
= var383
;
3775 var390
= nit__typing___nit__typing__TypeVisitor___resolve_for(self
, var_msignature
, var_recvtype
, var_recv_is_self
);
3777 /* <var390:MType> isa MSignature */
3778 cltype392
= type_nit__MSignature
.color
;
3779 idtype393
= type_nit__MSignature
.id
;
3780 if(cltype392
>= var390
->type
->table_size
) {
3783 var391
= var390
->type
->type_table
[cltype392
] == idtype393
;
3785 if (unlikely(!var391
)) {
3786 var_class_name
= var390
== NULL ?
"null" : var390
->type
->name
;
3787 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
3788 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 332);
3791 var_msignature
= var390
;
3793 var_erasure_cast
= var394
;
3795 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
3796 var397
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable Object(MMethodDef)> */
3798 RET_LABEL396
:(void)0;
3801 if (var395
== NULL
) {
3802 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3803 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 335);
3806 { /* Inline model#MSignature#return_mtype (var395) on <var395:nullable MSignature> */
3807 if (unlikely(var395
== NULL
)) {
3808 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3809 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1595);
3812 var400
= var395
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var395:nullable MSignature> */
3814 RET_LABEL399
:(void)0;
3817 var_rettype
= var398
;
3818 var402
= !var_recv_is_self
;
3822 if (var_rettype
== NULL
) {
3823 var405
= 0; /* is null */
3825 var405
= 1; /* arg is null and recv is not */
3828 { /* Inline kernel#Object#!= (var_rettype,var404) on <var_rettype:nullable MType> */
3829 var_other233
= var404
;
3831 var408
= ((short int (*)(val
* self
, val
* p0
))(var_rettype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rettype
, var_other233
) /* == on <var_rettype:nullable MType(MType)>*/;
3836 RET_LABEL407
:(void)0;
3846 var410
= ((val
* (*)(val
* self
))(var_rettype
->class->vft
[COLOR_nit__model__MType__as_notnullable
]))(var_rettype
) /* as_notnullable on <var_rettype:nullable MType(MType)>*/;
3848 var_rettype
= var410
;
3849 /* <var_rettype:nullable MType(MType)> isa MParameterType */
3850 cltype412
= type_nit__MParameterType
.color
;
3851 idtype413
= type_nit__MParameterType
.id
;
3852 if(cltype412
>= var_rettype
->type
->table_size
) {
3855 var411
= var_rettype
->type
->type_table
[cltype412
] == idtype413
;
3859 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
3860 var416
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
3862 RET_LABEL415
:(void)0;
3865 var_erased_rettype
= var414
;
3867 if (var_erased_rettype
== NULL
) {
3868 var418
= 0; /* is null */
3870 var418
= 1; /* arg is null and recv is not */
3873 { /* Inline kernel#Object#!= (var_erased_rettype,var417) on <var_erased_rettype:nullable MType> */
3874 var_other233
= var417
;
3876 var421
= ((short int (*)(val
* self
, val
* p0
))(var_erased_rettype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_erased_rettype
, var_other233
) /* == on <var_erased_rettype:nullable MType(MType)>*/;
3881 RET_LABEL420
:(void)0;
3885 if (unlikely(!var418
)) {
3886 PRINT_ERROR("Runtime error: %s", "Assert failed");
3887 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 340);
3891 var_erasure_cast
= var423
;
3896 var424
= NEW_nit__CallSite(&type_nit__CallSite
);
3898 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3899 var427
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3900 if (unlikely(var427
== NULL
)) {
3901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3902 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
3906 RET_LABEL426
:(void)0;
3910 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
3911 var430
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
3913 RET_LABEL429
:(void)0;
3917 ((void (*)(val
* self
, val
* p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__node_61d
]))(var424
, var_node
) /* node= on <var424:CallSite>*/;
3920 ((void (*)(val
* self
, val
* p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__recv_61d
]))(var424
, var_recvtype
) /* recv= on <var424:CallSite>*/;
3923 ((void (*)(val
* self
, val
* p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__mmodule_61d
]))(var424
, var425
) /* mmodule= on <var424:CallSite>*/;
3926 ((void (*)(val
* self
, val
* p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__anchor_61d
]))(var424
, var428
) /* anchor= on <var424:CallSite>*/;
3929 ((void (*)(val
* self
, short int p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__recv_is_self_61d
]))(var424
, var_recv_is_self
) /* recv_is_self= on <var424:CallSite>*/;
3932 ((void (*)(val
* self
, val
* p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__mproperty_61d
]))(var424
, var_mproperty
) /* mproperty= on <var424:CallSite>*/;
3935 ((void (*)(val
* self
, val
* p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__mpropdef_61d
]))(var424
, var_mpropdef
) /* mpropdef= on <var424:CallSite>*/;
3938 ((void (*)(val
* self
, val
* p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__msignature_61d
]))(var424
, var_msignature
) /* msignature= on <var424:CallSite>*/;
3941 ((void (*)(val
* self
, short int p0
))(var424
->class->vft
[COLOR_nit__typing__CallSite__erasure_cast_61d
]))(var424
, var_erasure_cast
) /* erasure_cast= on <var424:CallSite>*/;
3944 ((void (*)(val
* self
))(var424
->class->vft
[COLOR_standard__kernel__Object__init
]))(var424
) /* init on <var424:CallSite>*/;
3946 var_callsite
= var424
;
3952 /* method typing#TypeVisitor#try_get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
3953 val
* nit__typing___nit__typing__TypeVisitor___try_get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3954 val
* var
/* : nullable CallSite */;
3955 val
* var_node
/* var node: ANode */;
3956 val
* var_recvtype
/* var recvtype: MType */;
3957 val
* var_name
/* var name: String */;
3958 short int var_recv_is_self
/* var recv_is_self: Bool */;
3959 val
* var1
/* : MType */;
3960 val
* var_unsafe_type
/* var unsafe_type: MType */;
3961 val
* var2
/* : nullable MProperty */;
3962 val
* var_mproperty
/* var mproperty: nullable MProperty */;
3963 val
* var3
/* : null */;
3964 short int var4
/* : Bool */;
3965 short int var5
/* : Bool */;
3966 val
* var_other
/* var other: nullable Object */;
3967 short int var7
/* : Bool */;
3968 short int var9
/* : Bool */;
3969 val
* var10
/* : null */;
3970 val
* var11
/* : nullable CallSite */;
3974 var_recv_is_self
= p3
;
3976 var1
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_recvtype
);
3978 var_unsafe_type
= var1
;
3980 var2
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
3982 var_mproperty
= var2
;
3984 if (var_mproperty
== NULL
) {
3985 var4
= 1; /* is null */
3987 var4
= 0; /* arg is null but recv is not */
3990 { /* Inline kernel#Object#== (var_mproperty,var3) on <var_mproperty:nullable MProperty> */
3993 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
3994 var9
= var_mproperty
== var_other
;
4013 var11
= nit__typing___nit__typing__TypeVisitor___get_method(self
, var_node
, var_recvtype
, var_name
, var_recv_is_self
);
4020 /* method typing#TypeVisitor#check_signature for (self: TypeVisitor, ANode, Array[AExpr], String, MSignature): Bool */
4021 short int nit__typing___nit__typing__TypeVisitor___check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
4022 short int var
/* : Bool */;
4023 val
* var_node
/* var node: ANode */;
4024 val
* var_args
/* var args: Array[AExpr] */;
4025 val
* var_name
/* var name: String */;
4026 val
* var_msignature
/* var msignature: MSignature */;
4027 long var1
/* : Int */;
4028 long var3
/* : Int */;
4029 long var_vararg_rank
/* var vararg_rank: Int */;
4030 long var4
/* : Int */;
4031 short int var5
/* : Bool */;
4032 short int var7
/* : Bool */;
4035 const char* var_class_name
;
4036 short int var8
/* : Bool */;
4037 long var9
/* : Int */;
4038 long var11
/* : Int */;
4039 long var12
/* : Int */;
4040 short int var13
/* : Bool */;
4041 short int var15
/* : Bool */;
4044 const char* var_class_name18
;
4045 short int var19
/* : Bool */;
4046 val
* var20
/* : ModelBuilder */;
4047 val
* var22
/* : ModelBuilder */;
4048 static val
* varonce
;
4049 val
* var23
/* : String */;
4050 char* var24
/* : NativeString */;
4051 long var25
/* : Int */;
4052 val
* var26
/* : FlatString */;
4053 static val
* varonce27
;
4054 val
* var28
/* : String */;
4055 char* var29
/* : NativeString */;
4056 long var30
/* : Int */;
4057 val
* var31
/* : FlatString */;
4058 val
* var32
/* : Array[Object] */;
4059 long var33
/* : Int */;
4060 val
* var34
/* : NativeArray[Object] */;
4061 val
* var35
/* : String */;
4062 short int var36
/* : Bool */;
4063 long var37
/* : Int */;
4064 long var39
/* : Int */;
4065 long var40
/* : Int */;
4066 short int var41
/* : Bool */;
4067 short int var43
/* : Bool */;
4068 short int var44
/* : Bool */;
4069 val
* var45
/* : ModelBuilder */;
4070 val
* var47
/* : ModelBuilder */;
4071 static val
* varonce48
;
4072 val
* var49
/* : String */;
4073 char* var50
/* : NativeString */;
4074 long var51
/* : Int */;
4075 val
* var52
/* : FlatString */;
4076 long var53
/* : Int */;
4077 long var55
/* : Int */;
4078 static val
* varonce56
;
4079 val
* var57
/* : String */;
4080 char* var58
/* : NativeString */;
4081 long var59
/* : Int */;
4082 val
* var60
/* : FlatString */;
4083 long var61
/* : Int */;
4084 static val
* varonce62
;
4085 val
* var63
/* : String */;
4086 char* var64
/* : NativeString */;
4087 long var65
/* : Int */;
4088 val
* var66
/* : FlatString */;
4089 val
* var67
/* : Array[Object] */;
4090 long var68
/* : Int */;
4091 val
* var69
/* : NativeArray[Object] */;
4092 val
* var70
/* : Object */;
4093 val
* var71
/* : Object */;
4094 val
* var72
/* : String */;
4095 short int var73
/* : Bool */;
4096 long var74
/* : Int */;
4097 long var76
/* : Int */;
4098 long var77
/* : Int */;
4099 long var78
/* : Int */;
4100 short int var80
/* : Bool */;
4103 const char* var_class_name83
;
4104 long var84
/* : Int */;
4105 long var_vararg_decl
/* var vararg_decl: Int */;
4106 long var85
/* : Int */;
4107 long var_i
/* var i: Int */;
4108 long var86
/* : Int */;
4109 long var_
/* var : Int */;
4110 short int var87
/* : Bool */;
4111 short int var89
/* : Bool */;
4114 const char* var_class_name92
;
4115 short int var93
/* : Bool */;
4116 long var_j
/* var j: Int */;
4117 short int var94
/* : Bool */;
4118 short int var96
/* : Bool */;
4119 short int var97
/* : Bool */;
4120 short int var99
/* : Bool */;
4123 const char* var_class_name102
;
4124 short int var103
/* : Bool */;
4125 long var104
/* : Int */;
4126 short int var106
/* : Bool */;
4129 const char* var_class_name109
;
4130 long var110
/* : Int */;
4131 val
* var111
/* : Array[MParameter] */;
4132 val
* var113
/* : Array[MParameter] */;
4133 val
* var114
/* : nullable Object */;
4134 val
* var115
/* : MType */;
4135 val
* var117
/* : MType */;
4136 val
* var_paramtype
/* var paramtype: MType */;
4137 val
* var118
/* : nullable Object */;
4138 val
* var119
/* : nullable MType */;
4139 long var120
/* : Int */;
4140 long var121
/* : Int */;
4141 long var123
/* : Int */;
4142 short int var124
/* : Bool */;
4143 short int var126
/* : Bool */;
4146 const char* var_class_name129
;
4147 short int var130
/* : Bool */;
4148 val
* var131
/* : Array[MParameter] */;
4149 val
* var133
/* : Array[MParameter] */;
4150 val
* var134
/* : nullable Object */;
4151 val
* var135
/* : MType */;
4152 val
* var137
/* : MType */;
4153 val
* var_paramtype138
/* var paramtype: MType */;
4154 val
* var139
/* : nullable Object */;
4155 val
* var_first
/* var first: AExpr */;
4156 short int var140
/* : Bool */;
4157 long var141
/* : Int */;
4158 short int var142
/* : Bool */;
4159 short int var144
/* : Bool */;
4160 short int var_145
/* var : Bool */;
4161 short int var146
/* : Bool */;
4164 static val
* varonce149
;
4165 val
* var150
/* : String */;
4166 char* var151
/* : NativeString */;
4167 long var152
/* : Int */;
4168 val
* var153
/* : FlatString */;
4169 val
* var154
/* : nullable MClass */;
4170 val
* var_mclass
/* var mclass: nullable MClass */;
4171 val
* var155
/* : null */;
4172 short int var156
/* : Bool */;
4173 short int var157
/* : Bool */;
4174 val
* var_other
/* var other: nullable Object */;
4175 short int var159
/* : Bool */;
4176 short int var161
/* : Bool */;
4177 short int var162
/* : Bool */;
4178 val
* var163
/* : Array[MType] */;
4179 long var164
/* : Int */;
4180 val
* var_165
/* var : Array[MType] */;
4181 val
* var166
/* : MClassType */;
4182 val
* var_array_mtype
/* var array_mtype: MClassType */;
4183 val
* var167
/* : AExpr */;
4184 val
* var169
/* : AExpr */;
4185 val
* var170
/* : nullable MType */;
4186 val
* var171
/* : AExpr */;
4187 val
* var173
/* : AExpr */;
4188 val
* var174
/* : nullable MType */;
4189 long var_j176
/* var j: Int */;
4190 long var177
/* : Int */;
4191 short int var179
/* : Bool */;
4194 const char* var_class_name182
;
4195 long var183
/* : Int */;
4196 long var_184
/* var : Int */;
4197 short int var185
/* : Bool */;
4198 short int var187
/* : Bool */;
4201 const char* var_class_name190
;
4202 short int var191
/* : Bool */;
4203 val
* var192
/* : nullable Object */;
4204 val
* var193
/* : nullable MType */;
4205 long var194
/* : Int */;
4206 long var195
/* : Int */;
4207 short int var197
/* : Bool */;
4211 var_msignature
= p3
;
4213 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
4214 var3
= var_msignature
->attrs
[COLOR_nit__model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:MSignature> */
4219 var_vararg_rank
= var1
;
4222 { /* Inline kernel#Int#>= (var_vararg_rank,var4) on <var_vararg_rank:Int> */
4223 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
4224 /* <var4:Int> isa OTHER */
4225 var7
= 1; /* easy <var4:Int> isa OTHER*/
4226 if (unlikely(!var7
)) {
4227 var_class_name
= type_standard__Int
.name
;
4228 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4229 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 411);
4232 var8
= var_vararg_rank
>= var4
;
4240 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4241 var11
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4243 RET_LABEL10
:(void)0;
4247 var12
= nit___nit__MSignature___arity(var_msignature
);
4250 { /* Inline kernel#Int#< (var9,var12) on <var9:Int> */
4251 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
4252 /* <var12:Int> isa OTHER */
4253 var15
= 1; /* easy <var12:Int> isa OTHER*/
4254 if (unlikely(!var15
)) {
4255 var_class_name18
= type_standard__Int
.name
;
4256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18
);
4257 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
4260 var19
= var9
< var12
;
4263 RET_LABEL14
:(void)0;
4268 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
4269 var22
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
4270 if (unlikely(var22
== NULL
)) {
4271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4272 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
4276 RET_LABEL21
:(void)0;
4282 var24
= "Error: arity mismatch; prototype is \'";
4284 var26
= standard___standard__NativeString___to_s_with_length(var24
, var25
);
4293 var31
= standard___standard__NativeString___to_s_with_length(var29
, var30
);
4297 var32
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4298 { /* var32 = array_instance Array[Object] */
4300 var34
= NEW_standard__NativeArray(var33
, &type_standard__NativeArray__standard__Object
);
4301 ((struct instance_standard__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
4302 ((struct instance_standard__NativeArray
*)var34
)->values
[1] = (val
*) var_name
;
4303 ((struct instance_standard__NativeArray
*)var34
)->values
[2] = (val
*) var_msignature
;
4304 ((struct instance_standard__NativeArray
*)var34
)->values
[3] = (val
*) var28
;
4306 ((void (*)(val
* self
, val
* p0
, long p1
))(var32
->class->vft
[COLOR_standard__array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
4310 var35
= ((val
* (*)(val
* self
))(var32
->class->vft
[COLOR_standard__string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
4313 nit___nit__ModelBuilder___error(var20
, var_node
, var35
); /* Direct call modelbuilder_base#ModelBuilder#error on <var20:ModelBuilder>*/
4322 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4323 var39
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4325 RET_LABEL38
:(void)0;
4329 var40
= nit___nit__MSignature___arity(var_msignature
);
4332 { /* Inline kernel#Int#!= (var37,var40) on <var37:Int> */
4333 var43
= var37
== var40
;
4337 RET_LABEL42
:(void)0;
4342 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
4343 var47
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
4344 if (unlikely(var47
== NULL
)) {
4345 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4346 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
4350 RET_LABEL46
:(void)0;
4356 var50
= "Error: Incorrect number of parameters. Got ";
4358 var52
= standard___standard__NativeString___to_s_with_length(var50
, var51
);
4363 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4364 var55
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4366 RET_LABEL54
:(void)0;
4372 var58
= ", expected ";
4374 var60
= standard___standard__NativeString___to_s_with_length(var58
, var59
);
4379 var61
= nit___nit__MSignature___arity(var_msignature
);
4384 var64
= ". Signature is ";
4386 var66
= standard___standard__NativeString___to_s_with_length(var64
, var65
);
4390 var67
= NEW_standard__Array(&type_standard__Array__standard__Object
);
4391 { /* var67 = array_instance Array[Object] */
4393 var69
= NEW_standard__NativeArray(var68
, &type_standard__NativeArray__standard__Object
);
4394 ((struct instance_standard__NativeArray
*)var69
)->values
[0] = (val
*) var49
;
4395 var70
= BOX_standard__Int(var53
); /* autobox from Int to Object */
4396 ((struct instance_standard__NativeArray
*)var69
)->values
[1] = (val
*) var70
;
4397 ((struct instance_standard__NativeArray
*)var69
)->values
[2] = (val
*) var57
;
4398 var71
= BOX_standard__Int(var61
); /* autobox from Int to Object */
4399 ((struct instance_standard__NativeArray
*)var69
)->values
[3] = (val
*) var71
;
4400 ((struct instance_standard__NativeArray
*)var69
)->values
[4] = (val
*) var63
;
4401 ((struct instance_standard__NativeArray
*)var69
)->values
[5] = (val
*) var_msignature
;
4403 ((void (*)(val
* self
, val
* p0
, long p1
))(var67
->class->vft
[COLOR_standard__array__Array__with_native
]))(var67
, var69
, var68
) /* with_native on <var67:Array[Object]>*/;
4407 var72
= ((val
* (*)(val
* self
))(var67
->class->vft
[COLOR_standard__string__Object__to_s
]))(var67
) /* to_s on <var67:Array[Object]>*/;
4410 nit___nit__ModelBuilder___error(var45
, var_node
, var72
); /* Direct call modelbuilder_base#ModelBuilder#error on <var45:ModelBuilder>*/
4419 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4420 var76
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4422 RET_LABEL75
:(void)0;
4426 var77
= nit___nit__MSignature___arity(var_msignature
);
4429 { /* Inline kernel#Int#- (var74,var77) on <var74:Int> */
4430 /* Covariant cast for argument 0 (i) <var77:Int> isa OTHER */
4431 /* <var77:Int> isa OTHER */
4432 var80
= 1; /* easy <var77:Int> isa OTHER*/
4433 if (unlikely(!var80
)) {
4434 var_class_name83
= type_standard__Int
.name
;
4435 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name83
);
4436 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 416);
4439 var84
= var74
- var77
;
4442 RET_LABEL79
:(void)0;
4445 var_vararg_decl
= var78
;
4449 var86
= nit___nit__MSignature___arity(var_msignature
);
4454 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
4455 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
4456 /* <var_:Int> isa OTHER */
4457 var89
= 1; /* easy <var_:Int> isa OTHER*/
4458 if (unlikely(!var89
)) {
4459 var_class_name92
= type_standard__Int
.name
;
4460 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name92
);
4461 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
4464 var93
= var_i
< var_
;
4467 RET_LABEL88
:(void)0;
4473 { /* Inline kernel#Int#== (var_i,var_vararg_rank) on <var_i:Int> */
4474 var96
= var_i
== var_vararg_rank
;
4477 RET_LABEL95
:(void)0;
4485 { /* Inline kernel#Int#> (var_i,var_vararg_rank) on <var_i:Int> */
4486 /* Covariant cast for argument 0 (i) <var_vararg_rank:Int> isa OTHER */
4487 /* <var_vararg_rank:Int> isa OTHER */
4488 var99
= 1; /* easy <var_vararg_rank:Int> isa OTHER*/
4489 if (unlikely(!var99
)) {
4490 var_class_name102
= type_standard__Int
.name
;
4491 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name102
);
4492 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
4495 var103
= var_i
> var_vararg_rank
;
4498 RET_LABEL98
:(void)0;
4503 { /* Inline kernel#Int#+ (var_i,var_vararg_decl) on <var_i:Int> */
4504 /* Covariant cast for argument 0 (i) <var_vararg_decl:Int> isa OTHER */
4505 /* <var_vararg_decl:Int> isa OTHER */
4506 var106
= 1; /* easy <var_vararg_decl:Int> isa OTHER*/
4507 if (unlikely(!var106
)) {
4508 var_class_name109
= type_standard__Int
.name
;
4509 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name109
);
4510 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
4513 var110
= var_i
+ var_vararg_decl
;
4516 RET_LABEL105
:(void)0;
4523 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
4524 var113
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
4525 if (unlikely(var113
== NULL
)) {
4526 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4527 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
4531 RET_LABEL112
:(void)0;
4535 var114
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var111
, var_i
);
4538 { /* Inline model#MParameter#mtype (var114) on <var114:nullable Object(MParameter)> */
4539 var117
= var114
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var114:nullable Object(MParameter)> */
4540 if (unlikely(var117
== NULL
)) {
4541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4542 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
4546 RET_LABEL116
:(void)0;
4549 var_paramtype
= var115
;
4551 var118
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_args
, var_j
);
4554 var119
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var118
, var_paramtype
);
4556 BREAK_label
: (void)0;
4559 var121
= standard___standard__Int___Discrete__successor(var_i
, var120
);
4563 goto BREAK_label122
;
4566 BREAK_label122
: (void)0;
4569 { /* Inline kernel#Int#>= (var_vararg_rank,var123) on <var_vararg_rank:Int> */
4570 /* Covariant cast for argument 0 (i) <var123:Int> isa OTHER */
4571 /* <var123:Int> isa OTHER */
4572 var126
= 1; /* easy <var123:Int> isa OTHER*/
4573 if (unlikely(!var126
)) {
4574 var_class_name129
= type_standard__Int
.name
;
4575 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name129
);
4576 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 411);
4579 var130
= var_vararg_rank
>= var123
;
4582 RET_LABEL125
:(void)0;
4587 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
4588 var133
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
4589 if (unlikely(var133
== NULL
)) {
4590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4591 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
4595 RET_LABEL132
:(void)0;
4599 var134
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var131
, var_vararg_rank
);
4602 { /* Inline model#MParameter#mtype (var134) on <var134:nullable Object(MParameter)> */
4603 var137
= var134
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var134:nullable Object(MParameter)> */
4604 if (unlikely(var137
== NULL
)) {
4605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4606 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
4610 RET_LABEL136
:(void)0;
4613 var_paramtype138
= var135
;
4615 var139
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_args
, var_vararg_rank
);
4620 { /* Inline kernel#Int#== (var_vararg_decl,var141) on <var_vararg_decl:Int> */
4621 var144
= var_vararg_decl
== var141
;
4624 RET_LABEL143
:(void)0;
4629 /* <var_first:AExpr> isa AVarargExpr */
4630 cltype147
= type_nit__AVarargExpr
.color
;
4631 idtype148
= type_nit__AVarargExpr
.id
;
4632 if(cltype147
>= var_first
->type
->table_size
) {
4635 var146
= var_first
->type
->type_table
[cltype147
] == idtype148
;
4643 var150
= varonce149
;
4647 var153
= standard___standard__NativeString___to_s_with_length(var151
, var152
);
4649 varonce149
= var150
;
4652 var154
= nit__typing___nit__typing__TypeVisitor___get_mclass(self
, var_node
, var150
);
4654 var_mclass
= var154
;
4656 if (var_mclass
== NULL
) {
4657 var156
= 1; /* is null */
4659 var156
= 0; /* arg is null but recv is not */
4662 { /* Inline kernel#Object#== (var_mclass,var155) on <var_mclass:nullable MClass> */
4665 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
4666 var161
= var_mclass
== var_other
;
4669 RET_LABEL160
:(void)0;
4674 RET_LABEL158
:(void)0;
4684 var163
= NEW_standard__Array(&type_standard__Array__nit__MType
);
4687 standard___standard__Array___with_capacity(var163
, var164
); /* Direct call array#Array#with_capacity on <var163:Array[MType]>*/
4691 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_165
, var_paramtype138
); /* Direct call array#AbstractArray#push on <var_165:Array[MType]>*/
4694 var166
= nit___nit__MClass___get_mtype(var_mclass
, var_165
);
4696 var_array_mtype
= var166
;
4698 { /* Inline parser_nodes#AVarargExpr#n_expr (var_first) on <var_first:AExpr(AVarargExpr)> */
4699 var169
= var_first
->attrs
[COLOR_nit__parser_nodes__AVarargExpr___n_expr
].val
; /* _n_expr on <var_first:AExpr(AVarargExpr)> */
4700 if (unlikely(var169
== NULL
)) {
4701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4702 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2343);
4706 RET_LABEL168
:(void)0;
4710 var170
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var167
, var_array_mtype
);
4713 { /* Inline parser_nodes#AVarargExpr#n_expr (var_first) on <var_first:AExpr(AVarargExpr)> */
4714 var173
= var_first
->attrs
[COLOR_nit__parser_nodes__AVarargExpr___n_expr
].val
; /* _n_expr on <var_first:AExpr(AVarargExpr)> */
4715 if (unlikely(var173
== NULL
)) {
4716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4717 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2343);
4721 RET_LABEL172
:(void)0;
4725 var174
= ((val
* (*)(val
* self
))(var171
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var171
) /* mtype on <var171:AExpr>*/;
4728 { /* Inline typing#AExpr#mtype= (var_first,var174) on <var_first:AExpr(AVarargExpr)> */
4729 var_first
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var174
; /* _mtype on <var_first:AExpr(AVarargExpr)> */
4730 RET_LABEL175
:(void)0;
4734 var_j176
= var_vararg_rank
;
4736 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_decl) on <var_vararg_rank:Int> */
4737 /* Covariant cast for argument 0 (i) <var_vararg_decl:Int> isa OTHER */
4738 /* <var_vararg_decl:Int> isa OTHER */
4739 var179
= 1; /* easy <var_vararg_decl:Int> isa OTHER*/
4740 if (unlikely(!var179
)) {
4741 var_class_name182
= type_standard__Int
.name
;
4742 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name182
);
4743 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
4746 var183
= var_vararg_rank
+ var_vararg_decl
;
4749 RET_LABEL178
:(void)0;
4755 { /* Inline kernel#Int#<= (var_j176,var_184) on <var_j176:Int> */
4756 /* Covariant cast for argument 0 (i) <var_184:Int> isa OTHER */
4757 /* <var_184:Int> isa OTHER */
4758 var187
= 1; /* easy <var_184:Int> isa OTHER*/
4759 if (unlikely(!var187
)) {
4760 var_class_name190
= type_standard__Int
.name
;
4761 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name190
);
4762 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 409);
4765 var191
= var_j176
<= var_184
;
4768 RET_LABEL186
:(void)0;
4773 var192
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_args
, var_j176
);
4776 var193
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var192
, var_paramtype138
);
4780 var195
= standard___standard__Int___Discrete__successor(var_j176
, var194
);
4784 goto BREAK_label196
;
4787 BREAK_label196
: (void)0;
4797 /* method typing#TypeVisitor#error for (self: TypeVisitor, ANode, String) */
4798 void nit__typing___nit__typing__TypeVisitor___error(val
* self
, val
* p0
, val
* p1
) {
4799 val
* var_node
/* var node: ANode */;
4800 val
* var_message
/* var message: String */;
4801 val
* var
/* : ModelBuilder */;
4802 val
* var2
/* : ModelBuilder */;
4803 val
* var3
/* : ToolContext */;
4804 val
* var5
/* : ToolContext */;
4805 val
* var6
/* : Location */;
4809 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
4810 var2
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
4811 if (unlikely(var2
== NULL
)) {
4812 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4813 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
4821 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
4822 var5
= var
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var:ModelBuilder> */
4823 if (unlikely(var5
== NULL
)) {
4824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4825 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
4833 var6
= ((val
* (*)(val
* self
))(var_node
->class->vft
[COLOR_nit__parser_nodes__ANode__hot_location
]))(var_node
) /* hot_location on <var_node:ANode>*/;
4836 nit___nit__ToolContext___error(var3
, var6
, var_message
); /* Direct call toolcontext#ToolContext#error on <var3:ToolContext>*/
4840 /* method typing#TypeVisitor#get_variable for (self: TypeVisitor, AExpr, Variable): nullable MType */
4841 val
* nit__typing___nit__typing__TypeVisitor___get_variable(val
* self
, val
* p0
, val
* p1
) {
4842 val
* var
/* : nullable MType */;
4843 val
* var_node
/* var node: AExpr */;
4844 val
* var_variable
/* var variable: Variable */;
4845 val
* var1
/* : nullable FlowContext */;
4846 val
* var3
/* : nullable FlowContext */;
4847 val
* var_flow
/* var flow: nullable FlowContext */;
4848 val
* var4
/* : null */;
4849 short int var5
/* : Bool */;
4850 short int var6
/* : Bool */;
4851 val
* var_other
/* var other: nullable Object */;
4852 short int var8
/* : Bool */;
4853 short int var10
/* : Bool */;
4854 static val
* varonce
;
4855 val
* var11
/* : String */;
4856 char* var12
/* : NativeString */;
4857 long var13
/* : Int */;
4858 val
* var14
/* : FlatString */;
4859 val
* var15
/* : null */;
4860 val
* var16
/* : HashMap[Variable, nullable MType] */;
4861 val
* var18
/* : HashMap[Variable, nullable MType] */;
4862 short int var19
/* : Bool */;
4863 val
* var20
/* : HashMap[Variable, nullable MType] */;
4864 val
* var22
/* : HashMap[Variable, nullable MType] */;
4865 val
* var23
/* : nullable Object */;
4866 val
* var24
/* : nullable Array[nullable MType] */;
4867 val
* var_mtypes
/* var mtypes: nullable Array[nullable MType] */;
4868 short int var25
/* : Bool */;
4869 val
* var26
/* : null */;
4870 short int var27
/* : Bool */;
4871 short int var28
/* : Bool */;
4872 short int var_
/* var : Bool */;
4873 long var29
/* : Int */;
4874 long var31
/* : Int */;
4875 long var32
/* : Int */;
4876 short int var33
/* : Bool */;
4877 short int var35
/* : Bool */;
4878 val
* var36
/* : nullable MType */;
4879 val
* var38
/* : nullable MType */;
4880 long var39
/* : Int */;
4881 long var41
/* : Int */;
4882 long var42
/* : Int */;
4883 short int var43
/* : Bool */;
4884 short int var45
/* : Bool */;
4885 val
* var46
/* : nullable Object */;
4886 val
* var47
/* : nullable MType */;
4887 val
* var_res
/* var res: nullable MType */;
4888 val
* var48
/* : null */;
4889 short int var49
/* : Bool */;
4890 short int var50
/* : Bool */;
4891 short int var52
/* : Bool */;
4892 short int var54
/* : Bool */;
4893 val
* var55
/* : nullable MType */;
4894 val
* var57
/* : nullable MType */;
4898 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
4899 var3
= var_node
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
4906 if (var_flow
== NULL
) {
4907 var5
= 1; /* is null */
4909 var5
= 0; /* arg is null but recv is not */
4912 { /* Inline kernel#Object#== (var_flow,var4) on <var_flow:nullable FlowContext> */
4915 { /* Inline kernel#Object#is_same_instance (var_flow,var_other) on <var_flow:nullable FlowContext(FlowContext)> */
4916 var10
= var_flow
== var_other
;
4932 var12
= "No context!";
4934 var14
= standard___standard__NativeString___to_s_with_length(var12
, var13
);
4939 nit__typing___nit__typing__TypeVisitor___error(self
, var_node
, var11
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
4947 { /* Inline typing#FlowContext#vars (var_flow) on <var_flow:nullable FlowContext(FlowContext)> */
4948 var18
= var_flow
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <var_flow:nullable FlowContext(FlowContext)> */
4949 if (unlikely(var18
== NULL
)) {
4950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
4951 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 512);
4955 RET_LABEL17
:(void)0;
4959 var19
= standard___standard__MapRead___has_key(var16
, var_variable
);
4963 { /* Inline typing#FlowContext#vars (var_flow) on <var_flow:nullable FlowContext(FlowContext)> */
4964 var22
= var_flow
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <var_flow:nullable FlowContext(FlowContext)> */
4965 if (unlikely(var22
== NULL
)) {
4966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
4967 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 512);
4971 RET_LABEL21
:(void)0;
4975 var23
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var20
, var_variable
);
4981 var24
= nit__typing___FlowContext___collect_types(var_flow
, var_variable
);
4985 if (var_mtypes
== NULL
) {
4986 var27
= 1; /* is null */
4988 var27
= 0; /* arg is null but recv is not */
4991 var28
= standard___standard__Array___standard__kernel__Object___61d_61d(var_mtypes
, var26
);
4999 { /* Inline array#AbstractArrayRead#length (var_mtypes) on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])> */
5000 var31
= var_mtypes
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])> */
5002 RET_LABEL30
:(void)0;
5007 { /* Inline kernel#Int#== (var29,var32) on <var29:Int> */
5008 var35
= var29
== var32
;
5011 RET_LABEL34
:(void)0;
5018 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
5019 var38
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
5021 RET_LABEL37
:(void)0;
5028 { /* Inline array#AbstractArrayRead#length (var_mtypes) on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])> */
5029 var41
= var_mtypes
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])> */
5031 RET_LABEL40
:(void)0;
5036 { /* Inline kernel#Int#== (var39,var42) on <var39:Int> */
5037 var45
= var39
== var42
;
5040 RET_LABEL44
:(void)0;
5045 var46
= standard___standard__SequenceRead___Collection__first(var_mtypes
);
5051 var47
= nit__typing___nit__typing__TypeVisitor___merge_types(self
, var_node
, var_mtypes
);
5055 if (var_res
== NULL
) {
5056 var49
= 1; /* is null */
5058 var49
= 0; /* arg is null but recv is not */
5061 { /* Inline kernel#Object#== (var_res,var48) on <var_res:nullable MType> */
5064 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MType(MType)> */
5065 var54
= var_res
== var_other
;
5068 RET_LABEL53
:(void)0;
5073 RET_LABEL51
:(void)0;
5079 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
5080 var57
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
5082 RET_LABEL56
:(void)0;
5096 /* method typing#TypeVisitor#set_variable for (self: TypeVisitor, AExpr, Variable, nullable MType) */
5097 void nit__typing___nit__typing__TypeVisitor___set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5098 val
* var_node
/* var node: AExpr */;
5099 val
* var_variable
/* var variable: Variable */;
5100 val
* var_mtype
/* var mtype: nullable MType */;
5101 val
* var
/* : nullable FlowContext */;
5102 val
* var2
/* : nullable FlowContext */;
5103 val
* var_flow
/* var flow: nullable FlowContext */;
5104 val
* var3
/* : null */;
5105 short int var4
/* : Bool */;
5106 short int var5
/* : Bool */;
5107 val
* var_other
/* var other: nullable Object */;
5108 short int var7
/* : Bool */;
5109 short int var8
/* : Bool */;
5114 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
5115 var2
= var_node
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
5122 if (var_flow
== NULL
) {
5123 var4
= 0; /* is null */
5125 var4
= 1; /* arg is null and recv is not */
5128 { /* Inline kernel#Object#!= (var_flow,var3) on <var_flow:nullable FlowContext> */
5131 var7
= ((short int (*)(val
* self
, val
* p0
))(var_flow
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_flow
, var_other
) /* == on <var_flow:nullable FlowContext(FlowContext)>*/;
5140 if (unlikely(!var4
)) {
5141 PRINT_ERROR("Runtime error: %s", "Assert failed");
5142 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 440);
5146 nit__typing___FlowContext___set_var(var_flow
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var_flow:nullable FlowContext(FlowContext)>*/
5150 /* method typing#TypeVisitor#merge_types for (self: TypeVisitor, ANode, Array[nullable MType]): nullable MType */
5151 val
* nit__typing___nit__typing__TypeVisitor___merge_types(val
* self
, val
* p0
, val
* p1
) {
5152 val
* var
/* : nullable MType */;
5153 val
* var_node
/* var node: ANode */;
5154 val
* var_col
/* var col: Array[nullable MType] */;
5155 long var1
/* : Int */;
5156 long var3
/* : Int */;
5157 long var4
/* : Int */;
5158 short int var5
/* : Bool */;
5159 short int var7
/* : Bool */;
5160 val
* var8
/* : nullable Object */;
5161 val
* var_
/* var : Array[nullable MType] */;
5162 val
* var9
/* : ArrayIterator[nullable Object] */;
5163 val
* var_10
/* var : ArrayIterator[nullable MType] */;
5164 short int var11
/* : Bool */;
5165 val
* var12
/* : nullable Object */;
5166 val
* var_t1
/* var t1: nullable MType */;
5167 val
* var13
/* : null */;
5168 short int var14
/* : Bool */;
5169 short int var15
/* : Bool */;
5170 val
* var_other
/* var other: nullable Object */;
5171 short int var17
/* : Bool */;
5172 short int var19
/* : Bool */;
5173 short int var20
/* : Bool */;
5174 short int var_found
/* var found: Bool */;
5175 val
* var_21
/* var : Array[nullable MType] */;
5176 val
* var22
/* : ArrayIterator[nullable Object] */;
5177 val
* var_23
/* var : ArrayIterator[nullable MType] */;
5178 short int var24
/* : Bool */;
5179 val
* var25
/* : nullable Object */;
5180 val
* var_t2
/* var t2: nullable MType */;
5181 val
* var26
/* : null */;
5182 short int var27
/* : Bool */;
5183 short int var28
/* : Bool */;
5184 short int var30
/* : Bool */;
5185 short int var32
/* : Bool */;
5186 short int var34
/* : Bool */;
5187 short int var35
/* : Bool */;
5190 short int var_36
/* var : Bool */;
5191 short int var37
/* : Bool */;
5194 val
* var40
/* : MType */;
5195 short int var41
/* : Bool */;
5196 short int var42
/* : Bool */;
5197 short int var43
/* : Bool */;
5198 val
* var48
/* : null */;
5202 { /* Inline array#AbstractArrayRead#length (var_col) on <var_col:Array[nullable MType]> */
5203 var3
= var_col
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_col:Array[nullable MType]> */
5210 { /* Inline kernel#Int#== (var1,var4) on <var1:Int> */
5211 var7
= var1
== var4
;
5219 var8
= standard___standard__SequenceRead___Collection__first(var_col
);
5227 var9
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
5232 var11
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_10
);
5236 var12
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_10
);
5240 if (var_t1
== NULL
) {
5241 var14
= 1; /* is null */
5243 var14
= 0; /* arg is null but recv is not */
5246 { /* Inline kernel#Object#== (var_t1,var13) on <var_t1:nullable MType> */
5249 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
5250 var19
= var_t1
== var_other
;
5253 RET_LABEL18
:(void)0;
5258 RET_LABEL16
:(void)0;
5270 var22
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_21
);
5275 var24
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_23
);
5279 var25
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_23
);
5283 if (var_t2
== NULL
) {
5284 var27
= 1; /* is null */
5286 var27
= 0; /* arg is null but recv is not */
5289 { /* Inline kernel#Object#== (var_t2,var26) on <var_t2:nullable MType> */
5292 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
5293 var32
= var_t2
== var_other
;
5296 RET_LABEL31
:(void)0;
5301 RET_LABEL29
:(void)0;
5309 /* <var_t2:nullable MType(MType)> isa MNullableType */
5310 cltype
= type_nit__MNullableType
.color
;
5311 idtype
= type_nit__MNullableType
.id
;
5312 if(cltype
>= var_t2
->type
->table_size
) {
5315 var35
= var_t2
->type
->type_table
[cltype
] == idtype
;
5321 /* <var_t2:nullable MType(MType)> isa MNullType */
5322 cltype38
= type_nit__MNullType
.color
;
5323 idtype39
= type_nit__MNullType
.id
;
5324 if(cltype38
>= var_t2
->type
->table_size
) {
5327 var37
= var_t2
->type
->type_table
[cltype38
] == idtype39
;
5333 var40
= ((val
* (*)(val
* self
))(var_t1
->class->vft
[COLOR_nit__model__MType__as_nullable
]))(var_t1
) /* as_nullable on <var_t1:nullable MType(MType)>*/;
5339 var41
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_t2
, var_t1
);
5347 BREAK_label33
: (void)0;
5349 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_23
); /* Direct call array#ArrayIterator#next on <var_23:ArrayIterator[nullable MType]>*/
5355 BREAK_label44
: (void)0;
5357 { /* Inline abstract_collection#Iterator#finish (var_23) on <var_23:ArrayIterator[nullable MType]> */
5358 RET_LABEL45
:(void)0;
5366 BREAK_label
: (void)0;
5368 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_10
); /* Direct call array#ArrayIterator#next on <var_10:ArrayIterator[nullable MType]>*/
5374 BREAK_label46
: (void)0;
5376 { /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:ArrayIterator[nullable MType]> */
5377 RET_LABEL47
:(void)0;
5386 /* method typing#CallSite#node for (self: CallSite): ANode */
5387 val
* nit___nit__CallSite___node(val
* self
) {
5388 val
* var
/* : ANode */;
5389 val
* var1
/* : ANode */;
5390 var1
= self
->attrs
[COLOR_nit__typing__CallSite___node
].val
; /* _node on <self:CallSite> */
5391 if (unlikely(var1
== NULL
)) {
5392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5393 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 470);
5400 /* method typing#CallSite#node= for (self: CallSite, ANode) */
5401 void nit___nit__CallSite___node_61d(val
* self
, val
* p0
) {
5402 self
->attrs
[COLOR_nit__typing__CallSite___node
].val
= p0
; /* _node on <self:CallSite> */
5405 /* method typing#CallSite#recv for (self: CallSite): MType */
5406 val
* nit___nit__CallSite___recv(val
* self
) {
5407 val
* var
/* : MType */;
5408 val
* var1
/* : MType */;
5409 var1
= self
->attrs
[COLOR_nit__typing__CallSite___recv
].val
; /* _recv on <self:CallSite> */
5410 if (unlikely(var1
== NULL
)) {
5411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5412 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 473);
5419 /* method typing#CallSite#recv= for (self: CallSite, MType) */
5420 void nit___nit__CallSite___recv_61d(val
* self
, val
* p0
) {
5421 self
->attrs
[COLOR_nit__typing__CallSite___recv
].val
= p0
; /* _recv on <self:CallSite> */
5424 /* method typing#CallSite#mmodule for (self: CallSite): MModule */
5425 val
* nit___nit__CallSite___mmodule(val
* self
) {
5426 val
* var
/* : MModule */;
5427 val
* var1
/* : MModule */;
5428 var1
= self
->attrs
[COLOR_nit__typing__CallSite___mmodule
].val
; /* _mmodule on <self:CallSite> */
5429 if (unlikely(var1
== NULL
)) {
5430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5431 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 476);
5438 /* method typing#CallSite#mmodule= for (self: CallSite, MModule) */
5439 void nit___nit__CallSite___mmodule_61d(val
* self
, val
* p0
) {
5440 self
->attrs
[COLOR_nit__typing__CallSite___mmodule
].val
= p0
; /* _mmodule on <self:CallSite> */
5443 /* method typing#CallSite#anchor for (self: CallSite): nullable MClassType */
5444 val
* nit___nit__CallSite___anchor(val
* self
) {
5445 val
* var
/* : nullable MClassType */;
5446 val
* var1
/* : nullable MClassType */;
5447 var1
= self
->attrs
[COLOR_nit__typing__CallSite___anchor
].val
; /* _anchor on <self:CallSite> */
5452 /* method typing#CallSite#anchor= for (self: CallSite, nullable MClassType) */
5453 void nit___nit__CallSite___anchor_61d(val
* self
, val
* p0
) {
5454 self
->attrs
[COLOR_nit__typing__CallSite___anchor
].val
= p0
; /* _anchor on <self:CallSite> */
5457 /* method typing#CallSite#recv_is_self= for (self: CallSite, Bool) */
5458 void nit___nit__CallSite___recv_is_self_61d(val
* self
, short int p0
) {
5459 self
->attrs
[COLOR_nit__typing__CallSite___recv_is_self
].s
= p0
; /* _recv_is_self on <self:CallSite> */
5462 /* method typing#CallSite#mproperty for (self: CallSite): MMethod */
5463 val
* nit___nit__CallSite___mproperty(val
* self
) {
5464 val
* var
/* : MMethod */;
5465 val
* var1
/* : MMethod */;
5466 var1
= self
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <self:CallSite> */
5467 if (unlikely(var1
== NULL
)) {
5468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5469 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
5476 /* method typing#CallSite#mproperty= for (self: CallSite, MMethod) */
5477 void nit___nit__CallSite___mproperty_61d(val
* self
, val
* p0
) {
5478 self
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
= p0
; /* _mproperty on <self:CallSite> */
5481 /* method typing#CallSite#mpropdef for (self: CallSite): MMethodDef */
5482 val
* nit___nit__CallSite___mpropdef(val
* self
) {
5483 val
* var
/* : MMethodDef */;
5484 val
* var1
/* : MMethodDef */;
5485 var1
= self
->attrs
[COLOR_nit__typing__CallSite___mpropdef
].val
; /* _mpropdef on <self:CallSite> */
5486 if (unlikely(var1
== NULL
)) {
5487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
5488 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 490);
5495 /* method typing#CallSite#mpropdef= for (self: CallSite, MMethodDef) */
5496 void nit___nit__CallSite___mpropdef_61d(val
* self
, val
* p0
) {
5497 self
->attrs
[COLOR_nit__typing__CallSite___mpropdef
].val
= p0
; /* _mpropdef on <self:CallSite> */
5500 /* method typing#CallSite#msignature for (self: CallSite): MSignature */
5501 val
* nit___nit__CallSite___msignature(val
* self
) {
5502 val
* var
/* : MSignature */;
5503 val
* var1
/* : MSignature */;
5504 var1
= self
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <self:CallSite> */
5505 if (unlikely(var1
== NULL
)) {
5506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
5507 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
5514 /* method typing#CallSite#msignature= for (self: CallSite, MSignature) */
5515 void nit___nit__CallSite___msignature_61d(val
* self
, val
* p0
) {
5516 self
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
= p0
; /* _msignature on <self:CallSite> */
5519 /* method typing#CallSite#erasure_cast for (self: CallSite): Bool */
5520 short int nit___nit__CallSite___erasure_cast(val
* self
) {
5521 short int var
/* : Bool */;
5522 short int var1
/* : Bool */;
5523 var1
= self
->attrs
[COLOR_nit__typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <self:CallSite> */
5528 /* method typing#CallSite#erasure_cast= for (self: CallSite, Bool) */
5529 void nit___nit__CallSite___erasure_cast_61d(val
* self
, short int p0
) {
5530 self
->attrs
[COLOR_nit__typing__CallSite___erasure_cast
].s
= p0
; /* _erasure_cast on <self:CallSite> */
5533 /* method typing#CallSite#check_signature for (self: CallSite, TypeVisitor, Array[AExpr]): Bool */
5534 short int nit___nit__CallSite___check_signature(val
* self
, val
* p0
, val
* p1
) {
5535 short int var
/* : Bool */;
5536 val
* var_v
/* var v: TypeVisitor */;
5537 val
* var_args
/* var args: Array[AExpr] */;
5538 val
* var1
/* : ANode */;
5539 val
* var3
/* : ANode */;
5540 val
* var4
/* : MMethod */;
5541 val
* var6
/* : MMethod */;
5542 val
* var7
/* : String */;
5543 val
* var9
/* : String */;
5544 val
* var10
/* : MSignature */;
5545 val
* var12
/* : MSignature */;
5546 short int var13
/* : Bool */;
5550 { /* Inline typing#CallSite#node (self) on <self:CallSite> */
5551 var3
= self
->attrs
[COLOR_nit__typing__CallSite___node
].val
; /* _node on <self:CallSite> */
5552 if (unlikely(var3
== NULL
)) {
5553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5554 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 470);
5562 { /* Inline typing#CallSite#mproperty (self) on <self:CallSite> */
5563 var6
= self
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <self:CallSite> */
5564 if (unlikely(var6
== NULL
)) {
5565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5566 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 487);
5574 { /* Inline model#MProperty#name (var4) on <var4:MMethod> */
5575 var9
= var4
->attrs
[COLOR_nit__model__MProperty___name
].val
; /* _name on <var4:MMethod> */
5576 if (unlikely(var9
== NULL
)) {
5577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5578 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1741);
5586 { /* Inline typing#CallSite#msignature (self) on <self:CallSite> */
5587 var12
= self
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <self:CallSite> */
5588 if (unlikely(var12
== NULL
)) {
5589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
5590 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
5594 RET_LABEL11
:(void)0;
5598 var13
= nit__typing___nit__typing__TypeVisitor___check_signature(var_v
, var1
, var_args
, var7
, var10
);
5605 /* method typing#CallSite#init for (self: CallSite) */
5606 void nit___nit__CallSite___standard__kernel__Object__init(val
* self
) {
5608 ((void (*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__CallSite___standard__kernel__Object__init
]))(self
) /* init on <self:CallSite>*/;
5612 /* method typing#Variable#declared_type for (self: Variable): nullable MType */
5613 val
* nit__typing___Variable___declared_type(val
* self
) {
5614 val
* var
/* : nullable MType */;
5615 val
* var1
/* : nullable MType */;
5616 var1
= self
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <self:Variable> */
5621 /* method typing#Variable#declared_type= for (self: Variable, nullable MType) */
5622 void nit__typing___Variable___declared_type_61d(val
* self
, val
* p0
) {
5623 self
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= p0
; /* _declared_type on <self:Variable> */
5626 /* method typing#FlowContext#vars for (self: FlowContext): HashMap[Variable, nullable MType] */
5627 val
* nit__typing___FlowContext___vars(val
* self
) {
5628 val
* var
/* : HashMap[Variable, nullable MType] */;
5629 val
* var1
/* : HashMap[Variable, nullable MType] */;
5630 var1
= self
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
5631 if (unlikely(var1
== NULL
)) {
5632 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
5633 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 512);
5640 /* method typing#FlowContext#cache for (self: FlowContext): HashMap[Variable, nullable Array[nullable MType]] */
5641 val
* nit__typing___FlowContext___cache(val
* self
) {
5642 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5643 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5644 var1
= self
->attrs
[COLOR_nit__typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
5645 if (unlikely(var1
== NULL
)) {
5646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
5647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 514);
5654 /* method typing#FlowContext#set_var for (self: FlowContext, Variable, nullable MType) */
5655 void nit__typing___FlowContext___set_var(val
* self
, val
* p0
, val
* p1
) {
5656 val
* var_variable
/* var variable: Variable */;
5657 val
* var_mtype
/* var mtype: nullable MType */;
5658 val
* var
/* : HashMap[Variable, nullable MType] */;
5659 val
* var2
/* : HashMap[Variable, nullable MType] */;
5660 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5661 val
* var5
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5662 val
* var6
/* : RemovableCollection[nullable Object] */;
5663 val
* var8
/* : RemovableCollection[nullable Object] */;
5667 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
5668 var2
= self
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
5669 if (unlikely(var2
== NULL
)) {
5670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
5671 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 512);
5679 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var
, var_variable
, var_mtype
); /* Direct call hash_collection#HashMap#[]= on <var:HashMap[Variable, nullable MType]>*/
5682 { /* Inline typing#FlowContext#cache (self) on <self:FlowContext> */
5683 var5
= self
->attrs
[COLOR_nit__typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
5684 if (unlikely(var5
== NULL
)) {
5685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
5686 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 514);
5694 { /* Inline hash_collection#HashMap#keys (var3) on <var3:HashMap[Variable, nullable Array[nullable MType]]> */
5695 var8
= var3
->attrs
[COLOR_standard__hash_collection__HashMap___keys
].val
; /* _keys on <var3:HashMap[Variable, nullable Array[nullable MType]]> */
5696 if (unlikely(var8
== NULL
)) {
5697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
5698 PRINT_ERROR(" (%s:%d)\n", FILE_standard__hash_collection
, 275);
5706 ((void (*)(val
* self
, val
* p0
))(var6
->class->vft
[COLOR_standard__abstract_collection__RemovableCollection__remove
]))(var6
, var_variable
) /* remove on <var6:RemovableCollection[nullable Object](RemovableCollection[Variable])>*/;
5710 /* method typing#FlowContext#collect_types for (self: FlowContext, Variable): nullable Array[nullable MType] */
5711 val
* nit__typing___FlowContext___collect_types(val
* self
, val
* p0
) {
5712 val
* var
/* : nullable Array[nullable MType] */;
5713 val
* var_variable
/* var variable: Variable */;
5714 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5715 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5716 short int var4
/* : Bool */;
5717 val
* var5
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5718 val
* var7
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5719 val
* var8
/* : nullable Object */;
5720 val
* var9
/* : null */;
5721 val
* var_res
/* var res: nullable Array[nullable MType] */;
5722 val
* var10
/* : HashMap[Variable, nullable MType] */;
5723 val
* var12
/* : HashMap[Variable, nullable MType] */;
5724 short int var13
/* : Bool */;
5725 val
* var14
/* : HashMap[Variable, nullable MType] */;
5726 val
* var16
/* : HashMap[Variable, nullable MType] */;
5727 val
* var17
/* : nullable Object */;
5728 val
* var_mtype
/* var mtype: nullable MType */;
5729 val
* var18
/* : Array[nullable MType] */;
5730 long var19
/* : Int */;
5731 val
* var_
/* var : Array[nullable MType] */;
5732 val
* var20
/* : Array[FlowContext] */;
5733 val
* var22
/* : Array[FlowContext] */;
5734 short int var23
/* : Bool */;
5735 val
* var24
/* : Array[nullable MType] */;
5736 long var25
/* : Int */;
5737 val
* var_26
/* var : Array[nullable MType] */;
5738 val
* var27
/* : nullable MType */;
5739 val
* var29
/* : nullable MType */;
5740 val
* var30
/* : Array[FlowContext] */;
5741 val
* var32
/* : Array[FlowContext] */;
5742 val
* var_33
/* var : Array[FlowContext] */;
5743 val
* var34
/* : ArrayIterator[nullable Object] */;
5744 val
* var_35
/* var : ArrayIterator[FlowContext] */;
5745 short int var36
/* : Bool */;
5746 val
* var37
/* : nullable Object */;
5747 val
* var_flow
/* var flow: FlowContext */;
5748 short int var38
/* : Bool */;
5749 val
* var39
/* : nullable Array[nullable MType] */;
5750 val
* var_r2
/* var r2: nullable Array[nullable MType] */;
5751 val
* var40
/* : null */;
5752 short int var41
/* : Bool */;
5753 short int var42
/* : Bool */;
5754 val
* var43
/* : null */;
5755 short int var44
/* : Bool */;
5756 short int var45
/* : Bool */;
5757 val
* var46
/* : Array[nullable Object] */;
5758 val
* var_47
/* var : Array[nullable MType] */;
5759 val
* var48
/* : ArrayIterator[nullable Object] */;
5760 val
* var_49
/* var : ArrayIterator[nullable MType] */;
5761 short int var50
/* : Bool */;
5762 val
* var51
/* : nullable Object */;
5763 val
* var_t
/* var t: nullable MType */;
5764 short int var52
/* : Bool */;
5765 short int var53
/* : Bool */;
5766 val
* var58
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5767 val
* var60
/* : HashMap[Variable, nullable Array[nullable MType]] */;
5770 { /* Inline typing#FlowContext#cache (self) on <self:FlowContext> */
5771 var3
= self
->attrs
[COLOR_nit__typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
5772 if (unlikely(var3
== NULL
)) {
5773 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
5774 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 514);
5782 var4
= standard___standard__MapRead___has_key(var1
, var_variable
);
5786 { /* Inline typing#FlowContext#cache (self) on <self:FlowContext> */
5787 var7
= self
->attrs
[COLOR_nit__typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
5788 if (unlikely(var7
== NULL
)) {
5789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
5790 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 514);
5798 var8
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var5
, var_variable
);
5807 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
5808 var12
= self
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
5809 if (unlikely(var12
== NULL
)) {
5810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
5811 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 512);
5815 RET_LABEL11
:(void)0;
5819 var13
= standard___standard__MapRead___has_key(var10
, var_variable
);
5823 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
5824 var16
= self
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
5825 if (unlikely(var16
== NULL
)) {
5826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
5827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 512);
5831 RET_LABEL15
:(void)0;
5835 var17
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var14
, var_variable
);
5838 var18
= NEW_standard__Array(&type_standard__Array__nullable__nit__MType
);
5841 standard___standard__Array___with_capacity(var18
, var19
); /* Direct call array#Array#with_capacity on <var18:Array[nullable MType]>*/
5845 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, var_mtype
); /* Direct call array#AbstractArray#push on <var_:Array[nullable MType]>*/
5850 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
5851 var22
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
5852 if (unlikely(var22
== NULL
)) {
5853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
5854 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 188);
5858 RET_LABEL21
:(void)0;
5862 var23
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var20
);
5865 var24
= NEW_standard__Array(&type_standard__Array__nullable__nit__MType
);
5868 standard___standard__Array___with_capacity(var24
, var25
); /* Direct call array#Array#with_capacity on <var24:Array[nullable MType]>*/
5872 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
5873 var29
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
5875 RET_LABEL28
:(void)0;
5879 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_26
, var27
); /* Direct call array#AbstractArray#push on <var_26:Array[nullable MType]>*/
5884 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
5885 var32
= self
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
5886 if (unlikely(var32
== NULL
)) {
5887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
5888 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 188);
5892 RET_LABEL31
:(void)0;
5897 var34
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_33
);
5902 var36
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_35
);
5906 var37
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_35
);
5910 var38
= nit___nit__FlowContext___is_unreachable(var_flow
);
5917 var39
= nit__typing___FlowContext___collect_types(var_flow
, var_variable
);
5921 if (var_r2
== NULL
) {
5922 var41
= 1; /* is null */
5924 var41
= 0; /* arg is null but recv is not */
5927 var42
= standard___standard__Array___standard__kernel__Object___61d_61d(var_r2
, var40
);
5935 if (var_res
== NULL
) {
5936 var44
= 1; /* is null */
5938 var44
= 0; /* arg is null but recv is not */
5941 var45
= standard___standard__Array___standard__kernel__Object___61d_61d(var_res
, var43
);
5946 var46
= standard__array___Collection___to_a(var_r2
);
5952 var48
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_47
);
5957 var50
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_49
);
5961 var51
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_49
);
5965 var52
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var_res
, var_t
);
5970 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res
, var_t
); /* Direct call array#Array#add on <var_res:nullable Array[nullable MType](Array[nullable MType])>*/
5975 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_49
); /* Direct call array#ArrayIterator#next on <var_49:ArrayIterator[nullable MType]>*/
5981 BREAK_label54
: (void)0;
5983 { /* Inline abstract_collection#Iterator#finish (var_49) on <var_49:ArrayIterator[nullable MType]> */
5984 RET_LABEL55
:(void)0;
5988 BREAK_label
: (void)0;
5990 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_35
); /* Direct call array#ArrayIterator#next on <var_35:ArrayIterator[FlowContext]>*/
5996 BREAK_label56
: (void)0;
5998 { /* Inline abstract_collection#Iterator#finish (var_35) on <var_35:ArrayIterator[FlowContext]> */
5999 RET_LABEL57
:(void)0;
6005 { /* Inline typing#FlowContext#cache (self) on <self:FlowContext> */
6006 var60
= self
->attrs
[COLOR_nit__typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
6007 if (unlikely(var60
== NULL
)) {
6008 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
6009 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 514);
6013 RET_LABEL59
:(void)0;
6017 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var58
, var_variable
, var_res
); /* Direct call hash_collection#HashMap#[]= on <var58:HashMap[Variable, nullable Array[nullable MType]]>*/
6024 /* method typing#APropdef#do_typing for (self: APropdef, ModelBuilder) */
6025 void nit__typing___APropdef___do_typing(val
* self
, val
* p0
) {
6026 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
6027 var_modelbuilder
= p0
;
6030 /* method typing#APropdef#selfvariable= for (self: APropdef, nullable Variable) */
6031 void nit__typing___APropdef___selfvariable_61d(val
* self
, val
* p0
) {
6032 self
->attrs
[COLOR_nit__typing__APropdef___selfvariable
].val
= p0
; /* _selfvariable on <self:APropdef> */
6035 /* method typing#AMethPropdef#do_typing for (self: AMethPropdef, ModelBuilder) */
6036 void nit__typing___AMethPropdef___APropdef__do_typing(val
* self
, val
* p0
) {
6037 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
6038 val
* var
/* : nullable AExpr */;
6039 val
* var2
/* : nullable AExpr */;
6040 val
* var_nblock
/* var nblock: nullable AExpr */;
6041 val
* var3
/* : null */;
6042 short int var4
/* : Bool */;
6043 short int var5
/* : Bool */;
6044 val
* var_other
/* var other: nullable Object */;
6045 short int var7
/* : Bool */;
6046 short int var9
/* : Bool */;
6047 val
* var10
/* : nullable MPropDef */;
6048 val
* var12
/* : nullable MPropDef */;
6049 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
6050 val
* var13
/* : TypeVisitor */;
6051 val
* var14
/* : MClassDef */;
6052 val
* var16
/* : MClassDef */;
6053 val
* var17
/* : MModule */;
6054 val
* var19
/* : MModule */;
6055 val
* var_v
/* var v: TypeVisitor */;
6056 val
* var20
/* : Variable */;
6057 val
* var22
/* : Variable */;
6058 val
* var24
/* : nullable MPropDef */;
6059 val
* var26
/* : nullable MPropDef */;
6060 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
6061 long var27
/* : Int */;
6062 long var_i
/* var i: Int */;
6063 val
* var28
/* : nullable MSignature */;
6064 val
* var30
/* : nullable MSignature */;
6065 long var31
/* : Int */;
6066 long var_
/* var : Int */;
6067 short int var32
/* : Bool */;
6068 short int var34
/* : Bool */;
6071 const char* var_class_name
;
6072 short int var35
/* : Bool */;
6073 val
* var36
/* : nullable MSignature */;
6074 val
* var38
/* : nullable MSignature */;
6075 val
* var39
/* : Array[MParameter] */;
6076 val
* var41
/* : Array[MParameter] */;
6077 val
* var42
/* : nullable Object */;
6078 val
* var43
/* : MType */;
6079 val
* var45
/* : MType */;
6080 val
* var_mtype
/* var mtype: MType */;
6081 val
* var46
/* : nullable MSignature */;
6082 val
* var48
/* : nullable MSignature */;
6083 long var49
/* : Int */;
6084 long var51
/* : Int */;
6085 short int var52
/* : Bool */;
6086 short int var54
/* : Bool */;
6087 val
* var55
/* : nullable ASignature */;
6088 val
* var57
/* : nullable ASignature */;
6089 val
* var58
/* : ANodes[AParam] */;
6090 val
* var60
/* : ANodes[AParam] */;
6091 val
* var61
/* : ANode */;
6092 static val
* varonce
;
6093 val
* var62
/* : String */;
6094 char* var63
/* : NativeString */;
6095 long var64
/* : Int */;
6096 val
* var65
/* : FlatString */;
6097 val
* var66
/* : nullable MClass */;
6098 val
* var_arrayclass
/* var arrayclass: nullable MClass */;
6099 val
* var67
/* : null */;
6100 short int var68
/* : Bool */;
6101 short int var69
/* : Bool */;
6102 short int var71
/* : Bool */;
6103 short int var73
/* : Bool */;
6104 val
* var74
/* : Array[MType] */;
6105 long var75
/* : Int */;
6106 val
* var_76
/* var : Array[MType] */;
6107 val
* var77
/* : MClassType */;
6108 val
* var78
/* : nullable ASignature */;
6109 val
* var80
/* : nullable ASignature */;
6110 val
* var81
/* : ANodes[AParam] */;
6111 val
* var83
/* : ANodes[AParam] */;
6112 val
* var84
/* : ANode */;
6113 val
* var85
/* : nullable Variable */;
6114 val
* var87
/* : nullable Variable */;
6115 val
* var_variable
/* var variable: nullable Variable */;
6116 val
* var88
/* : null */;
6117 short int var89
/* : Bool */;
6118 short int var90
/* : Bool */;
6119 val
* var_other92
/* var other: nullable Object */;
6120 short int var93
/* : Bool */;
6121 short int var94
/* : Bool */;
6122 long var96
/* : Int */;
6123 long var97
/* : Int */;
6124 short int var98
/* : Bool */;
6125 val
* var99
/* : nullable FlowContext */;
6126 val
* var101
/* : nullable FlowContext */;
6127 short int var102
/* : Bool */;
6128 short int var103
/* : Bool */;
6129 short int var_104
/* var : Bool */;
6130 val
* var105
/* : nullable MSignature */;
6131 val
* var107
/* : nullable MSignature */;
6132 val
* var108
/* : nullable MType */;
6133 val
* var110
/* : nullable MType */;
6134 val
* var111
/* : null */;
6135 short int var112
/* : Bool */;
6136 short int var113
/* : Bool */;
6137 short int var115
/* : Bool */;
6138 short int var116
/* : Bool */;
6139 static val
* varonce117
;
6140 val
* var118
/* : String */;
6141 char* var119
/* : NativeString */;
6142 long var120
/* : Int */;
6143 val
* var121
/* : FlatString */;
6144 var_modelbuilder
= p0
;
6146 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
6147 var2
= self
->attrs
[COLOR_nit__parser_nodes__AMethPropdef___n_block
].val
; /* _n_block on <self:AMethPropdef> */
6154 if (var_nblock
== NULL
) {
6155 var4
= 1; /* is null */
6157 var4
= 0; /* arg is null but recv is not */
6160 { /* Inline kernel#Object#== (var_nblock,var3) on <var_nblock:nullable AExpr> */
6163 { /* Inline kernel#Object#is_same_instance (var_nblock,var_other) on <var_nblock:nullable AExpr(AExpr)> */
6164 var9
= var_nblock
== var_other
;
6181 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
6182 var12
= self
->attrs
[COLOR_nit__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AMethPropdef> */
6184 RET_LABEL11
:(void)0;
6187 if (unlikely(var10
== NULL
)) {
6188 PRINT_ERROR("Runtime error: %s", "Cast failed");
6189 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 572);
6192 var_mpropdef
= var10
;
6193 var13
= NEW_nit__typing__TypeVisitor(&type_nit__typing__TypeVisitor
);
6195 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
6196 var16
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MMethodDef> */
6197 if (unlikely(var16
== NULL
)) {
6198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6199 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
6203 RET_LABEL15
:(void)0;
6207 { /* Inline model#MClassDef#mmodule (var14) on <var14:MClassDef> */
6208 var19
= var14
->attrs
[COLOR_nit__model__MClassDef___mmodule
].val
; /* _mmodule on <var14:MClassDef> */
6209 if (unlikely(var19
== NULL
)) {
6210 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6211 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 489);
6215 RET_LABEL18
:(void)0;
6219 ((void (*)(val
* self
, val
* p0
))(var13
->class->vft
[COLOR_nit__typing__TypeVisitor__modelbuilder_61d
]))(var13
, var_modelbuilder
) /* modelbuilder= on <var13:TypeVisitor>*/;
6222 ((void (*)(val
* self
, val
* p0
))(var13
->class->vft
[COLOR_nit__typing__TypeVisitor__mmodule_61d
]))(var13
, var17
) /* mmodule= on <var13:TypeVisitor>*/;
6225 ((void (*)(val
* self
, val
* p0
))(var13
->class->vft
[COLOR_nit__typing__TypeVisitor__mpropdef_61d
]))(var13
, var_mpropdef
) /* mpropdef= on <var13:TypeVisitor>*/;
6228 ((void (*)(val
* self
))(var13
->class->vft
[COLOR_standard__kernel__Object__init
]))(var13
) /* init on <var13:TypeVisitor>*/;
6232 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
6233 var22
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
6234 if (unlikely(var22
== NULL
)) {
6235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
6236 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 50);
6240 RET_LABEL21
:(void)0;
6244 { /* Inline typing#APropdef#selfvariable= (self,var20) on <self:AMethPropdef> */
6245 self
->attrs
[COLOR_nit__typing__APropdef___selfvariable
].val
= var20
; /* _selfvariable on <self:AMethPropdef> */
6246 RET_LABEL23
:(void)0;
6250 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
6251 var26
= self
->attrs
[COLOR_nit__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AMethPropdef> */
6253 RET_LABEL25
:(void)0;
6256 if (unlikely(var24
== NULL
)) {
6257 PRINT_ERROR("Runtime error: %s", "Cast failed");
6258 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 576);
6261 var_mmethoddef
= var24
;
6265 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6266 var30
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
6268 RET_LABEL29
:(void)0;
6271 if (var28
== NULL
) {
6272 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6273 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 577);
6276 var31
= nit___nit__MSignature___arity(var28
);
6281 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
6282 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
6283 /* <var_:Int> isa OTHER */
6284 var34
= 1; /* easy <var_:Int> isa OTHER*/
6285 if (unlikely(!var34
)) {
6286 var_class_name
= type_standard__Int
.name
;
6287 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6288 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
6291 var35
= var_i
< var_
;
6294 RET_LABEL33
:(void)0;
6299 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6300 var38
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
6302 RET_LABEL37
:(void)0;
6305 if (var36
== NULL
) {
6306 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6307 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 578);
6310 { /* Inline model#MSignature#mparameters (var36) on <var36:nullable MSignature> */
6311 if (unlikely(var36
== NULL
)) {
6312 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6313 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
6316 var41
= var36
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var36:nullable MSignature> */
6317 if (unlikely(var41
== NULL
)) {
6318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
6323 RET_LABEL40
:(void)0;
6327 var42
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var39
, var_i
);
6330 { /* Inline model#MParameter#mtype (var42) on <var42:nullable Object(MParameter)> */
6331 var45
= var42
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var42:nullable Object(MParameter)> */
6332 if (unlikely(var45
== NULL
)) {
6333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6334 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
6338 RET_LABEL44
:(void)0;
6343 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6344 var48
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
6346 RET_LABEL47
:(void)0;
6349 if (var46
== NULL
) {
6350 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6351 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 579);
6354 { /* Inline model#MSignature#vararg_rank (var46) on <var46:nullable MSignature> */
6355 if (unlikely(var46
== NULL
)) {
6356 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6357 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1635);
6360 var51
= var46
->attrs
[COLOR_nit__model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var46:nullable MSignature> */
6362 RET_LABEL50
:(void)0;
6366 { /* Inline kernel#Int#== (var49,var_i) on <var49:Int> */
6367 var54
= var49
== var_i
;
6370 RET_LABEL53
:(void)0;
6375 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
6376 var57
= self
->attrs
[COLOR_nit__parser_nodes__AMethPropdef___n_signature
].val
; /* _n_signature on <self:AMethPropdef> */
6378 RET_LABEL56
:(void)0;
6381 if (var55
== NULL
) {
6382 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6383 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 580);
6386 { /* Inline parser_nodes#ASignature#n_params (var55) on <var55:nullable ASignature> */
6387 if (unlikely(var55
== NULL
)) {
6388 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6389 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1506);
6392 var60
= var55
->attrs
[COLOR_nit__parser_nodes__ASignature___n_params
].val
; /* _n_params on <var55:nullable ASignature> */
6393 if (unlikely(var60
== NULL
)) {
6394 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
6395 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1506);
6399 RET_LABEL59
:(void)0;
6403 var61
= nit___nit__ANodes___standard__abstract_collection__SequenceRead___91d_93d(var58
, var_i
);
6410 var65
= standard___standard__NativeString___to_s_with_length(var63
, var64
);
6415 var66
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, var61
, var62
);
6417 var_arrayclass
= var66
;
6419 if (var_arrayclass
== NULL
) {
6420 var68
= 1; /* is null */
6422 var68
= 0; /* arg is null but recv is not */
6425 { /* Inline kernel#Object#== (var_arrayclass,var67) on <var_arrayclass:nullable MClass> */
6428 { /* Inline kernel#Object#is_same_instance (var_arrayclass,var_other) on <var_arrayclass:nullable MClass(MClass)> */
6429 var73
= var_arrayclass
== var_other
;
6432 RET_LABEL72
:(void)0;
6437 RET_LABEL70
:(void)0;
6445 var74
= NEW_standard__Array(&type_standard__Array__nit__MType
);
6448 standard___standard__Array___with_capacity(var74
, var75
); /* Direct call array#Array#with_capacity on <var74:Array[MType]>*/
6452 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_76
, var_mtype
); /* Direct call array#AbstractArray#push on <var_76:Array[MType]>*/
6455 var77
= nit___nit__MClass___get_mtype(var_arrayclass
, var_76
);
6461 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
6462 var80
= self
->attrs
[COLOR_nit__parser_nodes__AMethPropdef___n_signature
].val
; /* _n_signature on <self:AMethPropdef> */
6464 RET_LABEL79
:(void)0;
6467 if (var78
== NULL
) {
6468 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6469 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 584);
6472 { /* Inline parser_nodes#ASignature#n_params (var78) on <var78:nullable ASignature> */
6473 if (unlikely(var78
== NULL
)) {
6474 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6475 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1506);
6478 var83
= var78
->attrs
[COLOR_nit__parser_nodes__ASignature___n_params
].val
; /* _n_params on <var78:nullable ASignature> */
6479 if (unlikely(var83
== NULL
)) {
6480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
6481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1506);
6485 RET_LABEL82
:(void)0;
6489 var84
= nit___nit__ANodes___standard__abstract_collection__SequenceRead___91d_93d(var81
, var_i
);
6492 { /* Inline scope#AParam#variable (var84) on <var84:ANode(AParam)> */
6493 var87
= var84
->attrs
[COLOR_nit__scope__AParam___variable
].val
; /* _variable on <var84:ANode(AParam)> */
6495 RET_LABEL86
:(void)0;
6498 var_variable
= var85
;
6500 if (var_variable
== NULL
) {
6501 var89
= 0; /* is null */
6503 var89
= 1; /* arg is null and recv is not */
6506 { /* Inline kernel#Object#!= (var_variable,var88) on <var_variable:nullable Variable> */
6507 var_other92
= var88
;
6509 var93
= ((short int (*)(val
* self
, val
* p0
))(var_variable
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_variable
, var_other92
) /* == on <var_variable:nullable Variable(Variable)>*/;
6514 RET_LABEL91
:(void)0;
6518 if (unlikely(!var89
)) {
6519 PRINT_ERROR("Runtime error: %s", "Assert failed");
6520 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 585);
6524 { /* Inline typing#Variable#declared_type= (var_variable,var_mtype) on <var_variable:nullable Variable(Variable)> */
6525 var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var_mtype
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
6526 RET_LABEL95
:(void)0;
6531 var97
= standard___standard__Int___Discrete__successor(var_i
, var96
);
6538 BREAK_label
: (void)0;
6540 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var_nblock
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
6543 { /* Inline flow#AExpr#after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
6544 var101
= var_nblock
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
6546 RET_LABEL100
:(void)0;
6549 if (var99
== NULL
) {
6550 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6551 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 590);
6554 var102
= nit___nit__FlowContext___is_unreachable(var99
);
6560 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6561 var107
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
6563 RET_LABEL106
:(void)0;
6566 if (var105
== NULL
) {
6567 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6568 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 590);
6571 { /* Inline model#MSignature#return_mtype (var105) on <var105:nullable MSignature> */
6572 if (unlikely(var105
== NULL
)) {
6573 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6574 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1595);
6577 var110
= var105
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var105:nullable MSignature> */
6579 RET_LABEL109
:(void)0;
6583 if (var108
== NULL
) {
6584 var112
= 0; /* is null */
6586 var112
= 1; /* arg is null and recv is not */
6589 { /* Inline kernel#Object#!= (var108,var111) on <var108:nullable MType> */
6590 var_other92
= var111
;
6592 var115
= ((short int (*)(val
* self
, val
* p0
))(var108
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var108
, var_other92
) /* == on <var108:nullable MType(MType)>*/;
6597 RET_LABEL114
:(void)0;
6607 var118
= varonce117
;
6609 var119
= "Control error: Reached end of function (a \'return\' with a value was expected).";
6611 var121
= standard___standard__NativeString___to_s_with_length(var119
, var120
);
6613 varonce117
= var118
;
6616 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var118
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6622 /* method typing#AAttrPropdef#do_typing for (self: AAttrPropdef, ModelBuilder) */
6623 void nit__typing___AAttrPropdef___APropdef__do_typing(val
* self
, val
* p0
) {
6624 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
6625 val
* var
/* : nullable MPropDef */;
6626 val
* var2
/* : nullable MPropDef */;
6627 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
6628 val
* var3
/* : TypeVisitor */;
6629 val
* var4
/* : MClassDef */;
6630 val
* var6
/* : MClassDef */;
6631 val
* var7
/* : MModule */;
6632 val
* var9
/* : MModule */;
6633 val
* var_v
/* var v: TypeVisitor */;
6634 val
* var10
/* : Variable */;
6635 val
* var12
/* : Variable */;
6636 val
* var14
/* : nullable AExpr */;
6637 val
* var16
/* : nullable AExpr */;
6638 val
* var_nexpr
/* var nexpr: nullable AExpr */;
6639 val
* var17
/* : null */;
6640 short int var18
/* : Bool */;
6641 short int var19
/* : Bool */;
6642 val
* var_other
/* var other: nullable Object */;
6643 short int var21
/* : Bool */;
6644 short int var22
/* : Bool */;
6645 val
* var23
/* : nullable MPropDef */;
6646 val
* var25
/* : nullable MPropDef */;
6647 val
* var26
/* : nullable MType */;
6648 val
* var28
/* : nullable MType */;
6649 val
* var_mtype
/* var mtype: nullable MType */;
6650 val
* var29
/* : nullable MType */;
6651 val
* var30
/* : nullable AExpr */;
6652 val
* var32
/* : nullable AExpr */;
6653 val
* var_nblock
/* var nblock: nullable AExpr */;
6654 val
* var33
/* : null */;
6655 short int var34
/* : Bool */;
6656 short int var35
/* : Bool */;
6657 short int var37
/* : Bool */;
6658 short int var38
/* : Bool */;
6659 val
* var39
/* : nullable FlowContext */;
6660 val
* var41
/* : nullable FlowContext */;
6661 short int var42
/* : Bool */;
6662 short int var43
/* : Bool */;
6663 static val
* varonce
;
6664 val
* var44
/* : String */;
6665 char* var45
/* : NativeString */;
6666 long var46
/* : Int */;
6667 val
* var47
/* : FlatString */;
6668 var_modelbuilder
= p0
;
6670 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
6671 var2
= self
->attrs
[COLOR_nit__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AAttrPropdef> */
6676 if (unlikely(var
== NULL
)) {
6677 PRINT_ERROR("Runtime error: %s", "Cast failed");
6678 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 600);
6682 var3
= NEW_nit__typing__TypeVisitor(&type_nit__typing__TypeVisitor
);
6684 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MAttributeDef> */
6685 var6
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MAttributeDef> */
6686 if (unlikely(var6
== NULL
)) {
6687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6688 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2010);
6696 { /* Inline model#MClassDef#mmodule (var4) on <var4:MClassDef> */
6697 var9
= var4
->attrs
[COLOR_nit__model__MClassDef___mmodule
].val
; /* _mmodule on <var4:MClassDef> */
6698 if (unlikely(var9
== NULL
)) {
6699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6700 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 489);
6708 ((void (*)(val
* self
, val
* p0
))(var3
->class->vft
[COLOR_nit__typing__TypeVisitor__modelbuilder_61d
]))(var3
, var_modelbuilder
) /* modelbuilder= on <var3:TypeVisitor>*/;
6711 ((void (*)(val
* self
, val
* p0
))(var3
->class->vft
[COLOR_nit__typing__TypeVisitor__mmodule_61d
]))(var3
, var7
) /* mmodule= on <var3:TypeVisitor>*/;
6714 ((void (*)(val
* self
, val
* p0
))(var3
->class->vft
[COLOR_nit__typing__TypeVisitor__mpropdef_61d
]))(var3
, var_mpropdef
) /* mpropdef= on <var3:TypeVisitor>*/;
6717 ((void (*)(val
* self
))(var3
->class->vft
[COLOR_standard__kernel__Object__init
]))(var3
) /* init on <var3:TypeVisitor>*/;
6721 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
6722 var12
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
6723 if (unlikely(var12
== NULL
)) {
6724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
6725 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 50);
6729 RET_LABEL11
:(void)0;
6733 { /* Inline typing#APropdef#selfvariable= (self,var10) on <self:AAttrPropdef> */
6734 self
->attrs
[COLOR_nit__typing__APropdef___selfvariable
].val
= var10
; /* _selfvariable on <self:AAttrPropdef> */
6735 RET_LABEL13
:(void)0;
6739 { /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
6740 var16
= self
->attrs
[COLOR_nit__parser_nodes__AAttrPropdef___n_expr
].val
; /* _n_expr on <self:AAttrPropdef> */
6742 RET_LABEL15
:(void)0;
6747 if (var_nexpr
== NULL
) {
6748 var18
= 0; /* is null */
6750 var18
= 1; /* arg is null and recv is not */
6753 { /* Inline kernel#Object#!= (var_nexpr,var17) on <var_nexpr:nullable AExpr> */
6756 var21
= ((short int (*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nexpr
, var_other
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
6761 RET_LABEL20
:(void)0;
6767 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
6768 var25
= self
->attrs
[COLOR_nit__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AAttrPropdef> */
6770 RET_LABEL24
:(void)0;
6773 if (var23
== NULL
) {
6774 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6775 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 606);
6778 { /* Inline model#MAttributeDef#static_mtype (var23) on <var23:nullable MPropDef(nullable MAttributeDef)> */
6779 if (unlikely(var23
== NULL
)) {
6780 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6781 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2180);
6784 var28
= var23
->attrs
[COLOR_nit__model__MAttributeDef___static_mtype
].val
; /* _static_mtype on <var23:nullable MPropDef(nullable MAttributeDef)> */
6786 RET_LABEL27
:(void)0;
6791 var29
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var_nexpr
, var_mtype
);
6796 { /* Inline parser_nodes#AAttrPropdef#n_block (self) on <self:AAttrPropdef> */
6797 var32
= self
->attrs
[COLOR_nit__parser_nodes__AAttrPropdef___n_block
].val
; /* _n_block on <self:AAttrPropdef> */
6799 RET_LABEL31
:(void)0;
6804 if (var_nblock
== NULL
) {
6805 var34
= 0; /* is null */
6807 var34
= 1; /* arg is null and recv is not */
6810 { /* Inline kernel#Object#!= (var_nblock,var33) on <var_nblock:nullable AExpr> */
6813 var37
= ((short int (*)(val
* self
, val
* p0
))(var_nblock
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nblock
, var_other
) /* == on <var_nblock:nullable AExpr(AExpr)>*/;
6818 RET_LABEL36
:(void)0;
6824 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var_nblock
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
6827 { /* Inline flow#AExpr#after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
6828 var41
= var_nblock
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
6830 RET_LABEL40
:(void)0;
6833 if (var39
== NULL
) {
6834 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6835 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 612);
6838 var42
= nit___nit__FlowContext___is_unreachable(var39
);
6845 var45
= "Control error: Reached end of block (a \'return\' with a value was expected).";
6847 var47
= standard___standard__NativeString___to_s_with_length(var45
, var46
);
6852 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var44
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6860 /* method typing#AExpr#mtype for (self: AExpr): nullable MType */
6861 val
* nit__typing___AExpr___mtype(val
* self
) {
6862 val
* var
/* : nullable MType */;
6863 val
* var1
/* : nullable MType */;
6864 var1
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AExpr> */
6869 /* method typing#AExpr#mtype= for (self: AExpr, nullable MType) */
6870 void nit__typing___AExpr___mtype_61d(val
* self
, val
* p0
) {
6871 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= p0
; /* _mtype on <self:AExpr> */
6874 /* method typing#AExpr#is_typed for (self: AExpr): Bool */
6875 short int nit__typing___AExpr___is_typed(val
* self
) {
6876 short int var
/* : Bool */;
6877 short int var1
/* : Bool */;
6878 var1
= self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
6883 /* method typing#AExpr#is_typed= for (self: AExpr, Bool) */
6884 void nit__typing___AExpr___is_typed_61d(val
* self
, short int p0
) {
6885 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= p0
; /* _is_typed on <self:AExpr> */
6888 /* method typing#AExpr#implicit_cast_to for (self: AExpr): nullable MType */
6889 val
* nit__typing___AExpr___implicit_cast_to(val
* self
) {
6890 val
* var
/* : nullable MType */;
6891 val
* var1
/* : nullable MType */;
6892 var1
= self
->attrs
[COLOR_nit__typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <self:AExpr> */
6897 /* method typing#AExpr#implicit_cast_to= for (self: AExpr, nullable MType) */
6898 void nit__typing___AExpr___implicit_cast_to_61d(val
* self
, val
* p0
) {
6899 self
->attrs
[COLOR_nit__typing__AExpr___implicit_cast_to
].val
= p0
; /* _implicit_cast_to on <self:AExpr> */
6902 /* method typing#AExpr#its_variable for (self: AExpr): nullable Variable */
6903 val
* nit__typing___AExpr___its_variable(val
* self
) {
6904 val
* var
/* : nullable Variable */;
6905 val
* var1
/* : null */;
6912 /* method typing#AExpr#accept_typing for (self: AExpr, TypeVisitor) */
6913 void nit__typing___AExpr___accept_typing(val
* self
, val
* p0
) {
6914 val
* var_v
/* var v: TypeVisitor */;
6915 static val
* varonce
;
6916 val
* var
/* : String */;
6917 char* var1
/* : NativeString */;
6918 long var2
/* : Int */;
6919 val
* var3
/* : FlatString */;
6920 val
* var4
/* : String */;
6921 val
* var5
/* : Array[Object] */;
6922 long var6
/* : Int */;
6923 val
* var7
/* : NativeArray[Object] */;
6924 val
* var8
/* : String */;
6929 var1
= "no implemented accept_typing for ";
6931 var3
= standard___standard__NativeString___to_s_with_length(var1
, var2
);
6936 var4
= standard__string___Object___class_name(self
);
6938 var5
= NEW_standard__Array(&type_standard__Array__standard__Object
);
6939 { /* var5 = array_instance Array[Object] */
6941 var7
= NEW_standard__NativeArray(var6
, &type_standard__NativeArray__standard__Object
);
6942 ((struct instance_standard__NativeArray
*)var7
)->values
[0] = (val
*) var
;
6943 ((struct instance_standard__NativeArray
*)var7
)->values
[1] = (val
*) var4
;
6945 ((void (*)(val
* self
, val
* p0
, long p1
))(var5
->class->vft
[COLOR_standard__array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
6949 var8
= ((val
* (*)(val
* self
))(var5
->class->vft
[COLOR_standard__string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
6952 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var8
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
6956 /* method typing#AExpr#comprehension for (self: AExpr): nullable AArrayExpr */
6957 val
* nit__typing___AExpr___comprehension(val
* self
) {
6958 val
* var
/* : nullable AArrayExpr */;
6959 val
* var1
/* : nullable AArrayExpr */;
6960 var1
= self
->attrs
[COLOR_nit__typing__AExpr___comprehension
].val
; /* _comprehension on <self:AExpr> */
6965 /* method typing#AExpr#comprehension= for (self: AExpr, nullable AArrayExpr) */
6966 void nit__typing___AExpr___comprehension_61d(val
* self
, val
* p0
) {
6967 self
->attrs
[COLOR_nit__typing__AExpr___comprehension
].val
= p0
; /* _comprehension on <self:AExpr> */
6970 /* method typing#ABlockExpr#accept_typing for (self: ABlockExpr, TypeVisitor) */
6971 void nit__typing___ABlockExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
6972 val
* var_v
/* var v: TypeVisitor */;
6973 val
* var
/* : ANodes[AExpr] */;
6974 val
* var2
/* : ANodes[AExpr] */;
6975 val
* var_
/* var : ANodes[AExpr] */;
6976 val
* var3
/* : Iterator[ANode] */;
6977 val
* var_4
/* var : Iterator[AExpr] */;
6978 short int var5
/* : Bool */;
6979 val
* var6
/* : nullable Object */;
6980 val
* var_e
/* var e: AExpr */;
6981 short int var8
/* : Bool */;
6984 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
6985 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
6986 if (unlikely(var2
== NULL
)) {
6987 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6988 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1565);
6997 var3
= nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_
);
7002 var5
= ((short int (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_4
) /* is_ok on <var_4:Iterator[AExpr]>*/;
7006 var6
= ((val
* (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_4
) /* item on <var_4:Iterator[AExpr]>*/;
7010 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var_e
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
7013 ((void (*)(val
* self
))(var_4
->class->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_4
) /* next on <var_4:Iterator[AExpr]>*/;
7019 BREAK_label
: (void)0;
7021 { /* Inline abstract_collection#Iterator#finish (var_4) on <var_4:Iterator[AExpr]> */
7027 { /* Inline typing#AExpr#is_typed= (self,var8) on <self:ABlockExpr> */
7028 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var8
; /* _is_typed on <self:ABlockExpr> */
7034 /* method typing#ABlockExpr#mtype for (self: ABlockExpr): nullable MType */
7035 val
* nit__typing___ABlockExpr___AExpr__mtype(val
* self
) {
7036 val
* var
/* : nullable MType */;
7037 val
* var1
/* : ANodes[AExpr] */;
7038 val
* var3
/* : ANodes[AExpr] */;
7039 short int var4
/* : Bool */;
7040 val
* var5
/* : null */;
7041 val
* var6
/* : ANodes[AExpr] */;
7042 val
* var8
/* : ANodes[AExpr] */;
7043 val
* var9
/* : nullable Object */;
7044 val
* var10
/* : nullable MType */;
7046 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
7047 var3
= self
->attrs
[COLOR_nit__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
7048 if (unlikely(var3
== NULL
)) {
7049 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7050 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1565);
7058 var4
= nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var1
);
7067 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
7068 var8
= self
->attrs
[COLOR_nit__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
7069 if (unlikely(var8
== NULL
)) {
7070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7071 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1565);
7079 var9
= standard___standard__SequenceRead___last(var6
);
7082 var10
= ((val
* (*)(val
* self
))(var9
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var9
) /* mtype on <var9:nullable Object(AExpr)>*/;
7089 /* method typing#AVardeclExpr#accept_typing for (self: AVardeclExpr, TypeVisitor) */
7090 void nit__typing___AVardeclExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
7091 val
* var_v
/* var v: TypeVisitor */;
7092 val
* var
/* : nullable Variable */;
7093 val
* var2
/* : nullable Variable */;
7094 val
* var_variable
/* var variable: nullable Variable */;
7095 val
* var3
/* : null */;
7096 short int var4
/* : Bool */;
7097 short int var5
/* : Bool */;
7098 val
* var_other
/* var other: nullable Object */;
7099 short int var7
/* : Bool */;
7100 short int var9
/* : Bool */;
7101 val
* var10
/* : nullable AType */;
7102 val
* var12
/* : nullable AType */;
7103 val
* var_ntype
/* var ntype: nullable AType */;
7104 val
* var13
/* : null */;
7105 short int var14
/* : Bool */;
7106 short int var15
/* : Bool */;
7107 short int var17
/* : Bool */;
7108 short int var19
/* : Bool */;
7109 val
* var20
/* : null */;
7110 val
* var_mtype
/* var mtype: nullable MType */;
7111 val
* var21
/* : nullable MType */;
7112 val
* var22
/* : null */;
7113 short int var23
/* : Bool */;
7114 short int var24
/* : Bool */;
7115 short int var26
/* : Bool */;
7116 short int var28
/* : Bool */;
7117 val
* var29
/* : nullable AExpr */;
7118 val
* var31
/* : nullable AExpr */;
7119 val
* var_nexpr
/* var nexpr: nullable AExpr */;
7120 val
* var32
/* : null */;
7121 short int var33
/* : Bool */;
7122 short int var34
/* : Bool */;
7123 val
* var_other36
/* var other: nullable Object */;
7124 short int var37
/* : Bool */;
7125 short int var38
/* : Bool */;
7126 val
* var39
/* : null */;
7127 short int var40
/* : Bool */;
7128 short int var41
/* : Bool */;
7129 short int var43
/* : Bool */;
7130 short int var44
/* : Bool */;
7131 val
* var45
/* : nullable MType */;
7132 val
* var_etype
/* var etype: nullable MType */;
7133 short int var46
/* : Bool */;
7134 short int var47
/* : Bool */;
7135 short int var49
/* : Bool */;
7136 short int var51
/* : Bool */;
7137 val
* var52
/* : null */;
7138 short int var53
/* : Bool */;
7139 short int var54
/* : Bool */;
7140 short int var56
/* : Bool */;
7141 short int var57
/* : Bool */;
7142 val
* var58
/* : ModelBuilder */;
7143 val
* var60
/* : ModelBuilder */;
7144 static val
* varonce
;
7145 val
* var61
/* : String */;
7146 char* var62
/* : NativeString */;
7147 long var63
/* : Int */;
7148 val
* var64
/* : FlatString */;
7149 static val
* varonce65
;
7150 val
* var66
/* : String */;
7151 char* var67
/* : NativeString */;
7152 long var68
/* : Int */;
7153 val
* var69
/* : FlatString */;
7154 val
* var70
/* : String */;
7155 val
* var72
/* : String */;
7156 static val
* varonce73
;
7157 val
* var74
/* : String */;
7158 char* var75
/* : NativeString */;
7159 long var76
/* : Int */;
7160 val
* var77
/* : FlatString */;
7161 val
* var78
/* : Array[Object] */;
7162 long var79
/* : Int */;
7163 val
* var80
/* : NativeArray[Object] */;
7164 val
* var81
/* : String */;
7165 val
* var82
/* : nullable MType */;
7166 val
* var83
/* : null */;
7167 short int var84
/* : Bool */;
7168 short int var85
/* : Bool */;
7169 short int var87
/* : Bool */;
7170 short int var89
/* : Bool */;
7171 val
* var_decltype
/* var decltype: nullable MType */;
7172 short int var90
/* : Bool */;
7173 val
* var91
/* : null */;
7174 short int var92
/* : Bool */;
7175 short int var93
/* : Bool */;
7176 short int var95
/* : Bool */;
7177 short int var97
/* : Bool */;
7178 short int var_
/* var : Bool */;
7179 short int var98
/* : Bool */;
7182 static val
* varonce99
;
7183 val
* var100
/* : String */;
7184 char* var101
/* : NativeString */;
7185 long var102
/* : Int */;
7186 val
* var103
/* : FlatString */;
7187 val
* var104
/* : nullable MClass */;
7188 val
* var105
/* : MClassType */;
7189 val
* var107
/* : MClassType */;
7190 val
* var108
/* : MType */;
7191 val
* var109
/* : null */;
7192 short int var110
/* : Bool */;
7193 short int var111
/* : Bool */;
7194 short int var113
/* : Bool */;
7195 short int var115
/* : Bool */;
7196 short int var117
/* : Bool */;
7199 { /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
7200 var2
= self
->attrs
[COLOR_nit__scope__AVardeclExpr___variable
].val
; /* _variable on <self:AVardeclExpr> */
7207 if (var_variable
== NULL
) {
7208 var4
= 1; /* is null */
7210 var4
= 0; /* arg is null but recv is not */
7213 { /* Inline kernel#Object#== (var_variable,var3) on <var_variable:nullable Variable> */
7216 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
7217 var9
= var_variable
== var_other
;
7234 { /* Inline parser_nodes#AVardeclExpr#n_type (self) on <self:AVardeclExpr> */
7235 var12
= self
->attrs
[COLOR_nit__parser_nodes__AVardeclExpr___n_type
].val
; /* _n_type on <self:AVardeclExpr> */
7237 RET_LABEL11
:(void)0;
7242 if (var_ntype
== NULL
) {
7243 var14
= 1; /* is null */
7245 var14
= 0; /* arg is null but recv is not */
7248 { /* Inline kernel#Object#== (var_ntype,var13) on <var_ntype:nullable AType> */
7251 { /* Inline kernel#Object#is_same_instance (var_ntype,var_other) on <var_ntype:nullable AType(AType)> */
7252 var19
= var_ntype
== var_other
;
7255 RET_LABEL18
:(void)0;
7260 RET_LABEL16
:(void)0;
7269 var21
= nit__typing___nit__typing__TypeVisitor___resolve_mtype(var_v
, var_ntype
);
7273 if (var_mtype
== NULL
) {
7274 var23
= 1; /* is null */
7276 var23
= 0; /* arg is null but recv is not */
7279 { /* Inline kernel#Object#== (var_mtype,var22) on <var_mtype:nullable MType> */
7282 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7283 var28
= var_mtype
== var_other
;
7286 RET_LABEL27
:(void)0;
7291 RET_LABEL25
:(void)0;
7301 { /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
7302 var31
= self
->attrs
[COLOR_nit__parser_nodes__AVardeclExpr___n_expr
].val
; /* _n_expr on <self:AVardeclExpr> */
7304 RET_LABEL30
:(void)0;
7309 if (var_nexpr
== NULL
) {
7310 var33
= 0; /* is null */
7312 var33
= 1; /* arg is null and recv is not */
7315 { /* Inline kernel#Object#!= (var_nexpr,var32) on <var_nexpr:nullable AExpr> */
7316 var_other36
= var32
;
7318 var37
= ((short int (*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nexpr
, var_other36
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
7323 RET_LABEL35
:(void)0;
7329 if (var_mtype
== NULL
) {
7330 var40
= 0; /* is null */
7332 var40
= 1; /* arg is null and recv is not */
7335 { /* Inline kernel#Object#!= (var_mtype,var39) on <var_mtype:nullable MType> */
7336 var_other36
= var39
;
7338 var43
= ((short int (*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other36
) /* == on <var_mtype:nullable MType(MType)>*/;
7343 RET_LABEL42
:(void)0;
7349 var45
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var_nexpr
, var_mtype
);
7352 if (var_etype
== NULL
) {
7353 var46
= 0; /* <var_mtype:nullable MType(MType)> cannot be null */
7355 { /* Inline kernel#Object#== (var_etype,var_mtype) on <var_etype:nullable MType> */
7356 var_other
= var_mtype
;
7358 { /* Inline kernel#Object#is_same_instance (var_etype,var_other) on <var_etype:nullable MType(MType)> */
7359 var51
= var_etype
== var_other
;
7362 RET_LABEL50
:(void)0;
7367 RET_LABEL48
:(void)0;
7373 if (var_ntype
== NULL
) {
7374 var53
= 0; /* is null */
7376 var53
= 1; /* arg is null and recv is not */
7379 { /* Inline kernel#Object#!= (var_ntype,var52) on <var_ntype:nullable AType> */
7380 var_other36
= var52
;
7382 var56
= ((short int (*)(val
* self
, val
* p0
))(var_ntype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ntype
, var_other36
) /* == on <var_ntype:nullable AType(AType)>*/;
7387 RET_LABEL55
:(void)0;
7391 if (unlikely(!var53
)) {
7392 PRINT_ERROR("Runtime error: %s", "Assert failed");
7393 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 688);
7397 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
7398 var60
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
7399 if (unlikely(var60
== NULL
)) {
7400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7401 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
7405 RET_LABEL59
:(void)0;
7411 var62
= "useless-type";
7413 var64
= standard___standard__NativeString___to_s_with_length(var62
, var63
);
7420 var67
= "Warning: useless type definition for variable `";
7422 var69
= standard___standard__NativeString___to_s_with_length(var67
, var68
);
7427 { /* Inline scope#Variable#name (var_variable) on <var_variable:nullable Variable(Variable)> */
7428 var72
= var_variable
->attrs
[COLOR_nit__scope__Variable___name
].val
; /* _name on <var_variable:nullable Variable(Variable)> */
7429 if (unlikely(var72
== NULL
)) {
7430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7431 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope
, 35);
7435 RET_LABEL71
:(void)0;
7443 var77
= standard___standard__NativeString___to_s_with_length(var75
, var76
);
7447 var78
= NEW_standard__Array(&type_standard__Array__standard__Object
);
7448 { /* var78 = array_instance Array[Object] */
7450 var80
= NEW_standard__NativeArray(var79
, &type_standard__NativeArray__standard__Object
);
7451 ((struct instance_standard__NativeArray
*)var80
)->values
[0] = (val
*) var66
;
7452 ((struct instance_standard__NativeArray
*)var80
)->values
[1] = (val
*) var70
;
7453 ((struct instance_standard__NativeArray
*)var80
)->values
[2] = (val
*) var74
;
7455 ((void (*)(val
* self
, val
* p0
, long p1
))(var78
->class->vft
[COLOR_standard__array__Array__with_native
]))(var78
, var80
, var79
) /* with_native on <var78:Array[Object]>*/;
7459 var81
= ((val
* (*)(val
* self
))(var78
->class->vft
[COLOR_standard__string__Object__to_s
]))(var78
) /* to_s on <var78:Array[Object]>*/;
7462 nit___nit__ModelBuilder___advice(var58
, var_ntype
, var61
, var81
); /* Direct call modelbuilder_base#ModelBuilder#advice on <var58:ModelBuilder>*/
7468 var82
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var_nexpr
);
7472 if (var_mtype
== NULL
) {
7473 var84
= 1; /* is null */
7475 var84
= 0; /* arg is null but recv is not */
7478 { /* Inline kernel#Object#== (var_mtype,var83) on <var_mtype:nullable MType> */
7481 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7482 var89
= var_mtype
== var_other
;
7485 RET_LABEL88
:(void)0;
7490 RET_LABEL86
:(void)0;
7501 var_decltype
= var_mtype
;
7503 if (var_mtype
== NULL
) {
7504 var92
= 1; /* is null */
7506 var92
= 0; /* arg is null but recv is not */
7509 { /* Inline kernel#Object#== (var_mtype,var91) on <var_mtype:nullable MType> */
7512 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7513 var97
= var_mtype
== var_other
;
7516 RET_LABEL96
:(void)0;
7521 RET_LABEL94
:(void)0;
7529 /* <var_mtype:nullable MType(MType)> isa MNullType */
7530 cltype
= type_nit__MNullType
.color
;
7531 idtype
= type_nit__MNullType
.id
;
7532 if(cltype
>= var_mtype
->type
->table_size
) {
7535 var98
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7545 var103
= standard___standard__NativeString___to_s_with_length(var101
, var102
);
7550 var104
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var100
);
7552 if (var104
== NULL
) {
7553 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7554 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 699);
7557 { /* Inline model#MClass#mclass_type (var104) on <var104:nullable MClass> */
7558 if (unlikely(var104
== NULL
)) {
7559 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7560 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
7563 var107
= var104
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var104:nullable MClass> */
7564 if (unlikely(var107
== NULL
)) {
7565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
7566 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 438);
7570 RET_LABEL106
:(void)0;
7574 var108
= nit___nit__MType___as_nullable(var105
);
7576 var_decltype
= var108
;
7578 if (var_mtype
== NULL
) {
7579 var110
= 1; /* is null */
7581 var110
= 0; /* arg is null but recv is not */
7584 { /* Inline kernel#Object#== (var_mtype,var109) on <var_mtype:nullable MType(nullable MNullType)> */
7587 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MNullType(MNullType)> */
7588 var115
= var_mtype
== var_other
;
7591 RET_LABEL114
:(void)0;
7596 RET_LABEL112
:(void)0;
7601 var_mtype
= var_decltype
;
7607 { /* Inline typing#Variable#declared_type= (var_variable,var_decltype) on <var_variable:nullable Variable(Variable)> */
7608 var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var_decltype
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
7609 RET_LABEL116
:(void)0;
7613 nit__typing___nit__typing__TypeVisitor___set_variable(var_v
, self
, var_variable
, var_mtype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
7617 { /* Inline typing#AExpr#is_typed= (self,var117) on <self:AVardeclExpr> */
7618 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var117
; /* _is_typed on <self:AVardeclExpr> */
7619 RET_LABEL118
:(void)0;
7624 /* method typing#AVarExpr#its_variable for (self: AVarExpr): nullable Variable */
7625 val
* nit__typing___AVarExpr___AExpr__its_variable(val
* self
) {
7626 val
* var
/* : nullable Variable */;
7627 val
* var1
/* : nullable Variable */;
7628 val
* var3
/* : nullable Variable */;
7630 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
7631 var3
= self
->attrs
[COLOR_nit__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarExpr> */
7641 /* method typing#AVarExpr#accept_typing for (self: AVarExpr, TypeVisitor) */
7642 void nit__typing___AVarExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
7643 val
* var_v
/* var v: TypeVisitor */;
7644 val
* var
/* : nullable Variable */;
7645 val
* var2
/* : nullable Variable */;
7646 val
* var_variable
/* var variable: nullable Variable */;
7647 val
* var3
/* : null */;
7648 short int var4
/* : Bool */;
7649 short int var5
/* : Bool */;
7650 val
* var_other
/* var other: nullable Object */;
7651 short int var7
/* : Bool */;
7652 short int var9
/* : Bool */;
7653 val
* var10
/* : nullable MType */;
7654 val
* var_mtype
/* var mtype: nullable MType */;
7655 val
* var11
/* : null */;
7656 short int var12
/* : Bool */;
7657 short int var13
/* : Bool */;
7658 val
* var_other15
/* var other: nullable Object */;
7659 short int var16
/* : Bool */;
7660 short int var17
/* : Bool */;
7663 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
7664 var2
= self
->attrs
[COLOR_nit__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarExpr> */
7671 if (var_variable
== NULL
) {
7672 var4
= 1; /* is null */
7674 var4
= 0; /* arg is null but recv is not */
7677 { /* Inline kernel#Object#== (var_variable,var3) on <var_variable:nullable Variable> */
7680 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
7681 var9
= var_variable
== var_other
;
7698 var10
= nit__typing___nit__typing__TypeVisitor___get_variable(var_v
, self
, var_variable
);
7702 if (var_mtype
== NULL
) {
7703 var12
= 0; /* is null */
7705 var12
= 1; /* arg is null and recv is not */
7708 { /* Inline kernel#Object#!= (var_mtype,var11) on <var_mtype:nullable MType> */
7709 var_other15
= var11
;
7711 var16
= ((short int (*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other15
) /* == on <var_mtype:nullable MType(MType)>*/;
7716 RET_LABEL14
:(void)0;
7724 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVarExpr> */
7725 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:AVarExpr> */
7726 RET_LABEL18
:(void)0;
7731 /* method typing#AVarAssignExpr#accept_typing for (self: AVarAssignExpr, TypeVisitor) */
7732 void nit__typing___AVarAssignExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
7733 val
* var_v
/* var v: TypeVisitor */;
7734 val
* var
/* : nullable Variable */;
7735 val
* var2
/* : nullable Variable */;
7736 val
* var_variable
/* var variable: nullable Variable */;
7737 val
* var3
/* : null */;
7738 short int var4
/* : Bool */;
7739 short int var5
/* : Bool */;
7740 val
* var_other
/* var other: nullable Object */;
7741 short int var7
/* : Bool */;
7742 short int var8
/* : Bool */;
7743 val
* var9
/* : AExpr */;
7744 val
* var11
/* : AExpr */;
7745 val
* var12
/* : nullable MType */;
7746 val
* var14
/* : nullable MType */;
7747 val
* var15
/* : nullable MType */;
7748 val
* var_mtype
/* var mtype: nullable MType */;
7749 short int var16
/* : Bool */;
7752 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarAssignExpr> */
7753 var2
= self
->attrs
[COLOR_nit__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarAssignExpr> */
7760 if (var_variable
== NULL
) {
7761 var4
= 0; /* is null */
7763 var4
= 1; /* arg is null and recv is not */
7766 { /* Inline kernel#Object#!= (var_variable,var3) on <var_variable:nullable Variable> */
7769 var7
= ((short int (*)(val
* self
, val
* p0
))(var_variable
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_variable
, var_other
) /* == on <var_variable:nullable Variable(Variable)>*/;
7778 if (unlikely(!var4
)) {
7779 PRINT_ERROR("Runtime error: %s", "Assert failed");
7780 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 734);
7784 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AVarAssignExpr> */
7785 var11
= self
->attrs
[COLOR_nit__parser_nodes__AAssignFormExpr___n_value
].val
; /* _n_value on <self:AVarAssignExpr> */
7786 if (unlikely(var11
== NULL
)) {
7787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
7788 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1772);
7792 RET_LABEL10
:(void)0;
7796 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
7797 var14
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
7799 RET_LABEL13
:(void)0;
7803 var15
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var9
, var12
);
7807 nit__typing___nit__typing__TypeVisitor___set_variable(var_v
, self
, var_variable
, var_mtype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
7811 { /* Inline typing#AExpr#is_typed= (self,var16) on <self:AVarAssignExpr> */
7812 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var16
; /* _is_typed on <self:AVarAssignExpr> */
7813 RET_LABEL17
:(void)0;
7818 /* method typing#AReassignFormExpr#reassign_callsite for (self: AReassignFormExpr): nullable CallSite */
7819 val
* nit__typing___AReassignFormExpr___reassign_callsite(val
* self
) {
7820 val
* var
/* : nullable CallSite */;
7821 val
* var1
/* : nullable CallSite */;
7822 var1
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AReassignFormExpr> */
7827 /* method typing#AReassignFormExpr#reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */
7828 void nit__typing___AReassignFormExpr___reassign_callsite_61d(val
* self
, val
* p0
) {
7829 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
= p0
; /* _reassign_callsite on <self:AReassignFormExpr> */
7832 /* method typing#AReassignFormExpr#read_type for (self: AReassignFormExpr): nullable MType */
7833 val
* nit__typing___AReassignFormExpr___read_type(val
* self
) {
7834 val
* var
/* : nullable MType */;
7835 val
* var1
/* : nullable MType */;
7836 var1
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___read_type
].val
; /* _read_type on <self:AReassignFormExpr> */
7841 /* method typing#AReassignFormExpr#read_type= for (self: AReassignFormExpr, nullable MType) */
7842 void nit__typing___AReassignFormExpr___read_type_61d(val
* self
, val
* p0
) {
7843 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___read_type
].val
= p0
; /* _read_type on <self:AReassignFormExpr> */
7846 /* method typing#AReassignFormExpr#resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */
7847 val
* nit__typing___AReassignFormExpr___resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7848 val
* var
/* : nullable MType */;
7849 val
* var_v
/* var v: TypeVisitor */;
7850 val
* var_readtype
/* var readtype: MType */;
7851 val
* var_writetype
/* var writetype: MType */;
7852 val
* var1
/* : AAssignOp */;
7853 val
* var3
/* : AAssignOp */;
7854 short int var4
/* : Bool */;
7857 static val
* varonce
;
7858 val
* var5
/* : String */;
7859 char* var6
/* : NativeString */;
7860 long var7
/* : Int */;
7861 val
* var8
/* : FlatString */;
7862 val
* var_reassign_name
/* var reassign_name: String */;
7863 val
* var9
/* : AAssignOp */;
7864 val
* var11
/* : AAssignOp */;
7865 short int var12
/* : Bool */;
7868 static val
* varonce15
;
7869 val
* var16
/* : String */;
7870 char* var17
/* : NativeString */;
7871 long var18
/* : Int */;
7872 val
* var19
/* : FlatString */;
7873 short int var21
/* : Bool */;
7874 val
* var22
/* : nullable CallSite */;
7875 val
* var_callsite
/* var callsite: nullable CallSite */;
7876 val
* var23
/* : null */;
7877 short int var24
/* : Bool */;
7878 short int var25
/* : Bool */;
7879 val
* var_other
/* var other: nullable Object */;
7880 short int var27
/* : Bool */;
7881 short int var29
/* : Bool */;
7882 val
* var30
/* : null */;
7883 val
* var32
/* : MSignature */;
7884 val
* var34
/* : MSignature */;
7885 val
* var_msignature
/* var msignature: MSignature */;
7886 val
* var35
/* : nullable MType */;
7887 val
* var37
/* : nullable MType */;
7888 val
* var_rettype
/* var rettype: nullable MType */;
7889 short int var38
/* : Bool */;
7890 long var39
/* : Int */;
7891 long var40
/* : Int */;
7892 short int var41
/* : Bool */;
7893 short int var43
/* : Bool */;
7894 short int var_
/* var : Bool */;
7895 val
* var44
/* : null */;
7896 short int var45
/* : Bool */;
7897 short int var46
/* : Bool */;
7898 val
* var_other48
/* var other: nullable Object */;
7899 short int var49
/* : Bool */;
7900 short int var50
/* : Bool */;
7901 val
* var51
/* : AExpr */;
7902 val
* var53
/* : AExpr */;
7903 val
* var54
/* : Array[MParameter] */;
7904 val
* var56
/* : Array[MParameter] */;
7905 val
* var57
/* : nullable Object */;
7906 val
* var58
/* : MType */;
7907 val
* var60
/* : MType */;
7908 val
* var61
/* : nullable MType */;
7909 val
* var_value_type
/* var value_type: nullable MType */;
7910 val
* var62
/* : null */;
7911 short int var63
/* : Bool */;
7912 short int var64
/* : Bool */;
7913 short int var66
/* : Bool */;
7914 short int var68
/* : Bool */;
7915 val
* var69
/* : null */;
7916 val
* var70
/* : nullable MType */;
7921 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:AReassignFormExpr> */
7922 var3
= self
->attrs
[COLOR_nit__parser_nodes__AReassignFormExpr___n_assign_op
].val
; /* _n_assign_op on <self:AReassignFormExpr> */
7923 if (unlikely(var3
== NULL
)) {
7924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
7925 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1780);
7932 /* <var1:AAssignOp> isa APlusAssignOp */
7933 cltype
= type_nit__APlusAssignOp
.color
;
7934 idtype
= type_nit__APlusAssignOp
.id
;
7935 if(cltype
>= var1
->type
->table_size
) {
7938 var4
= var1
->type
->type_table
[cltype
] == idtype
;
7946 var8
= standard___standard__NativeString___to_s_with_length(var6
, var7
);
7950 var_reassign_name
= var5
;
7953 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:AReassignFormExpr> */
7954 var11
= self
->attrs
[COLOR_nit__parser_nodes__AReassignFormExpr___n_assign_op
].val
; /* _n_assign_op on <self:AReassignFormExpr> */
7955 if (unlikely(var11
== NULL
)) {
7956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
7957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1780);
7961 RET_LABEL10
:(void)0;
7964 /* <var9:AAssignOp> isa AMinusAssignOp */
7965 cltype13
= type_nit__AMinusAssignOp
.color
;
7966 idtype14
= type_nit__AMinusAssignOp
.id
;
7967 if(cltype13
>= var9
->type
->table_size
) {
7970 var12
= var9
->type
->type_table
[cltype13
] == idtype14
;
7978 var19
= standard___standard__NativeString___to_s_with_length(var17
, var18
);
7982 var_reassign_name
= var16
;
7984 PRINT_ERROR("Runtime error: %s", "Aborted");
7985 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 763);
7990 { /* Inline typing#AReassignFormExpr#read_type= (self,var_readtype) on <self:AReassignFormExpr> */
7991 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___read_type
].val
= var_readtype
; /* _read_type on <self:AReassignFormExpr> */
7992 RET_LABEL20
:(void)0;
7997 var22
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, self
, var_readtype
, var_reassign_name
, var21
);
7999 var_callsite
= var22
;
8001 if (var_callsite
== NULL
) {
8002 var24
= 1; /* is null */
8004 var24
= 0; /* arg is null but recv is not */
8007 { /* Inline kernel#Object#== (var_callsite,var23) on <var_callsite:nullable CallSite> */
8010 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
8011 var29
= var_callsite
== var_other
;
8014 RET_LABEL28
:(void)0;
8019 RET_LABEL26
:(void)0;
8030 { /* Inline typing#AReassignFormExpr#reassign_callsite= (self,var_callsite) on <self:AReassignFormExpr> */
8031 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
= var_callsite
; /* _reassign_callsite on <self:AReassignFormExpr> */
8032 RET_LABEL31
:(void)0;
8036 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
8037 var34
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
8038 if (unlikely(var34
== NULL
)) {
8039 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
8040 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 494);
8044 RET_LABEL33
:(void)0;
8047 var_msignature
= var32
;
8049 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
8050 var37
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
8052 RET_LABEL36
:(void)0;
8055 var_rettype
= var35
;
8057 var39
= nit___nit__MSignature___arity(var_msignature
);
8061 { /* Inline kernel#Int#== (var39,var40) on <var39:Int> */
8062 var43
= var39
== var40
;
8065 RET_LABEL42
:(void)0;
8071 if (var_rettype
== NULL
) {
8072 var45
= 0; /* is null */
8074 var45
= 1; /* arg is null and recv is not */
8077 { /* Inline kernel#Object#!= (var_rettype,var44) on <var_rettype:nullable MType> */
8078 var_other48
= var44
;
8080 var49
= ((short int (*)(val
* self
, val
* p0
))(var_rettype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rettype
, var_other48
) /* == on <var_rettype:nullable MType(MType)>*/;
8085 RET_LABEL47
:(void)0;
8093 if (unlikely(!var38
)) {
8094 PRINT_ERROR("Runtime error: %s", "Assert failed");
8095 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 774);
8099 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:AReassignFormExpr> */
8100 var53
= self
->attrs
[COLOR_nit__parser_nodes__AReassignFormExpr___n_value
].val
; /* _n_value on <self:AReassignFormExpr> */
8101 if (unlikely(var53
== NULL
)) {
8102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8103 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1783);
8107 RET_LABEL52
:(void)0;
8111 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
8112 var56
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
8113 if (unlikely(var56
== NULL
)) {
8114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
8115 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1592);
8119 RET_LABEL55
:(void)0;
8123 var57
= standard___standard__SequenceRead___Collection__first(var54
);
8126 { /* Inline model#MParameter#mtype (var57) on <var57:nullable Object(MParameter)> */
8127 var60
= var57
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var57:nullable Object(MParameter)> */
8128 if (unlikely(var60
== NULL
)) {
8129 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8130 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1690);
8134 RET_LABEL59
:(void)0;
8138 var61
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var51
, var58
);
8140 var_value_type
= var61
;
8142 if (var_value_type
== NULL
) {
8143 var63
= 1; /* is null */
8145 var63
= 0; /* arg is null but recv is not */
8148 { /* Inline kernel#Object#== (var_value_type,var62) on <var_value_type:nullable MType> */
8151 { /* Inline kernel#Object#is_same_instance (var_value_type,var_other) on <var_value_type:nullable MType(MType)> */
8152 var68
= var_value_type
== var_other
;
8155 RET_LABEL67
:(void)0;
8160 RET_LABEL65
:(void)0;
8171 var70
= nit__typing___nit__typing__TypeVisitor___check_subtype(var_v
, self
, var_rettype
, var_writetype
);
8178 /* method typing#AVarReassignExpr#accept_typing for (self: AVarReassignExpr, TypeVisitor) */
8179 void nit__typing___AVarReassignExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8180 val
* var_v
/* var v: TypeVisitor */;
8181 val
* var
/* : nullable Variable */;
8182 val
* var2
/* : nullable Variable */;
8183 val
* var_variable
/* var variable: nullable Variable */;
8184 val
* var3
/* : null */;
8185 short int var4
/* : Bool */;
8186 short int var5
/* : Bool */;
8187 val
* var_other
/* var other: nullable Object */;
8188 short int var7
/* : Bool */;
8189 short int var8
/* : Bool */;
8190 val
* var9
/* : nullable MType */;
8191 val
* var_readtype
/* var readtype: nullable MType */;
8192 val
* var10
/* : null */;
8193 short int var11
/* : Bool */;
8194 short int var12
/* : Bool */;
8195 val
* var_other14
/* var other: nullable Object */;
8196 short int var15
/* : Bool */;
8197 short int var17
/* : Bool */;
8198 val
* var19
/* : nullable MType */;
8199 val
* var21
/* : nullable MType */;
8200 val
* var_writetype
/* var writetype: nullable MType */;
8201 val
* var22
/* : null */;
8202 short int var23
/* : Bool */;
8203 short int var24
/* : Bool */;
8204 short int var26
/* : Bool */;
8205 short int var28
/* : Bool */;
8206 val
* var29
/* : nullable MType */;
8207 val
* var_rettype
/* var rettype: nullable MType */;
8208 short int var30
/* : Bool */;
8211 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarReassignExpr> */
8212 var2
= self
->attrs
[COLOR_nit__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarReassignExpr> */
8219 if (var_variable
== NULL
) {
8220 var4
= 0; /* is null */
8222 var4
= 1; /* arg is null and recv is not */
8225 { /* Inline kernel#Object#!= (var_variable,var3) on <var_variable:nullable Variable> */
8228 var7
= ((short int (*)(val
* self
, val
* p0
))(var_variable
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_variable
, var_other
) /* == on <var_variable:nullable Variable(Variable)>*/;
8237 if (unlikely(!var4
)) {
8238 PRINT_ERROR("Runtime error: %s", "Assert failed");
8239 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 788);
8243 var9
= nit__typing___nit__typing__TypeVisitor___get_variable(var_v
, self
, var_variable
);
8245 var_readtype
= var9
;
8247 if (var_readtype
== NULL
) {
8248 var11
= 1; /* is null */
8250 var11
= 0; /* arg is null but recv is not */
8253 { /* Inline kernel#Object#== (var_readtype,var10) on <var_readtype:nullable MType> */
8254 var_other14
= var10
;
8256 { /* Inline kernel#Object#is_same_instance (var_readtype,var_other14) on <var_readtype:nullable MType(MType)> */
8257 var17
= var_readtype
== var_other14
;
8260 RET_LABEL16
:(void)0;
8265 RET_LABEL13
:(void)0;
8274 { /* Inline typing#AReassignFormExpr#read_type= (self,var_readtype) on <self:AVarReassignExpr> */
8275 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___read_type
].val
= var_readtype
; /* _read_type on <self:AVarReassignExpr> */
8276 RET_LABEL18
:(void)0;
8280 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
8281 var21
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
8283 RET_LABEL20
:(void)0;
8286 var_writetype
= var19
;
8288 if (var_writetype
== NULL
) {
8289 var23
= 1; /* is null */
8291 var23
= 0; /* arg is null but recv is not */
8294 { /* Inline kernel#Object#== (var_writetype,var22) on <var_writetype:nullable MType> */
8295 var_other14
= var22
;
8297 { /* Inline kernel#Object#is_same_instance (var_writetype,var_other14) on <var_writetype:nullable MType(MType)> */
8298 var28
= var_writetype
== var_other14
;
8301 RET_LABEL27
:(void)0;
8306 RET_LABEL25
:(void)0;
8315 var29
= nit__typing___AReassignFormExpr___resolve_reassignment(self
, var_v
, var_readtype
, var_writetype
);
8317 var_rettype
= var29
;
8319 nit__typing___nit__typing__TypeVisitor___set_variable(var_v
, self
, var_variable
, var_rettype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
8323 { /* Inline typing#AExpr#is_typed= (self,var30) on <self:AVarReassignExpr> */
8324 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var30
; /* _is_typed on <self:AVarReassignExpr> */
8325 RET_LABEL31
:(void)0;
8330 /* method typing#AContinueExpr#accept_typing for (self: AContinueExpr, TypeVisitor) */
8331 void nit__typing___AContinueExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8332 val
* var_v
/* var v: TypeVisitor */;
8333 val
* var
/* : nullable AExpr */;
8334 val
* var2
/* : nullable AExpr */;
8335 val
* var_nexpr
/* var nexpr: nullable AExpr */;
8336 val
* var3
/* : null */;
8337 short int var4
/* : Bool */;
8338 short int var5
/* : Bool */;
8339 val
* var_other
/* var other: nullable Object */;
8340 short int var7
/* : Bool */;
8341 short int var8
/* : Bool */;
8342 val
* var9
/* : nullable MType */;
8343 short int var10
/* : Bool */;
8346 { /* Inline parser_nodes#AEscapeExpr#n_expr (self) on <self:AContinueExpr> */
8347 var2
= self
->attrs
[COLOR_nit__parser_nodes__AEscapeExpr___n_expr
].val
; /* _n_expr on <self:AContinueExpr> */
8354 if (var_nexpr
== NULL
) {
8355 var4
= 0; /* is null */
8357 var4
= 1; /* arg is null and recv is not */
8360 { /* Inline kernel#Object#!= (var_nexpr,var3) on <var_nexpr:nullable AExpr> */
8363 var7
= ((short int (*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nexpr
, var_other
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
8374 var9
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var_nexpr
);
8380 { /* Inline typing#AExpr#is_typed= (self,var10) on <self:AContinueExpr> */
8381 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var10
; /* _is_typed on <self:AContinueExpr> */
8382 RET_LABEL11
:(void)0;
8387 /* method typing#ABreakExpr#accept_typing for (self: ABreakExpr, TypeVisitor) */
8388 void nit__typing___ABreakExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8389 val
* var_v
/* var v: TypeVisitor */;
8390 val
* var
/* : nullable AExpr */;
8391 val
* var2
/* : nullable AExpr */;
8392 val
* var_nexpr
/* var nexpr: nullable AExpr */;
8393 val
* var3
/* : null */;
8394 short int var4
/* : Bool */;
8395 short int var5
/* : Bool */;
8396 val
* var_other
/* var other: nullable Object */;
8397 short int var7
/* : Bool */;
8398 short int var8
/* : Bool */;
8399 val
* var9
/* : nullable MType */;
8400 short int var10
/* : Bool */;
8403 { /* Inline parser_nodes#AEscapeExpr#n_expr (self) on <self:ABreakExpr> */
8404 var2
= self
->attrs
[COLOR_nit__parser_nodes__AEscapeExpr___n_expr
].val
; /* _n_expr on <self:ABreakExpr> */
8411 if (var_nexpr
== NULL
) {
8412 var4
= 0; /* is null */
8414 var4
= 1; /* arg is null and recv is not */
8417 { /* Inline kernel#Object#!= (var_nexpr,var3) on <var_nexpr:nullable AExpr> */
8420 var7
= ((short int (*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nexpr
, var_other
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
8431 var9
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var_nexpr
);
8437 { /* Inline typing#AExpr#is_typed= (self,var10) on <self:ABreakExpr> */
8438 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var10
; /* _is_typed on <self:ABreakExpr> */
8439 RET_LABEL11
:(void)0;
8444 /* method typing#AReturnExpr#accept_typing for (self: AReturnExpr, TypeVisitor) */
8445 void nit__typing___AReturnExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8446 val
* var_v
/* var v: TypeVisitor */;
8447 val
* var
/* : nullable AExpr */;
8448 val
* var2
/* : nullable AExpr */;
8449 val
* var_nexpr
/* var nexpr: nullable AExpr */;
8450 val
* var3
/* : nullable MPropDef */;
8451 val
* var5
/* : nullable MPropDef */;
8452 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
8453 short int var6
/* : Bool */;
8456 val
* var7
/* : nullable MSignature */;
8457 val
* var9
/* : nullable MSignature */;
8458 val
* var10
/* : nullable MType */;
8459 val
* var12
/* : nullable MType */;
8460 val
* var_ret_type
/* var ret_type: nullable Object */;
8461 short int var13
/* : Bool */;
8464 val
* var16
/* : nullable MType */;
8465 val
* var18
/* : nullable MType */;
8466 val
* var19
/* : null */;
8467 short int var20
/* : Bool */;
8468 short int var21
/* : Bool */;
8469 val
* var_other
/* var other: nullable Object */;
8470 short int var23
/* : Bool */;
8471 short int var24
/* : Bool */;
8472 val
* var25
/* : null */;
8473 short int var26
/* : Bool */;
8474 short int var27
/* : Bool */;
8475 short int var29
/* : Bool */;
8476 short int var30
/* : Bool */;
8477 val
* var31
/* : nullable MType */;
8478 val
* var32
/* : nullable MType */;
8479 static val
* varonce
;
8480 val
* var33
/* : String */;
8481 char* var34
/* : NativeString */;
8482 long var35
/* : Int */;
8483 val
* var36
/* : FlatString */;
8484 val
* var37
/* : null */;
8485 short int var38
/* : Bool */;
8486 short int var39
/* : Bool */;
8487 short int var41
/* : Bool */;
8488 short int var42
/* : Bool */;
8489 static val
* varonce43
;
8490 val
* var44
/* : String */;
8491 char* var45
/* : NativeString */;
8492 long var46
/* : Int */;
8493 val
* var47
/* : FlatString */;
8494 short int var48
/* : Bool */;
8497 { /* Inline parser_nodes#AReturnExpr#n_expr (self) on <self:AReturnExpr> */
8498 var2
= self
->attrs
[COLOR_nit__parser_nodes__AReturnExpr___n_expr
].val
; /* _n_expr on <self:AReturnExpr> */
8505 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
8506 var5
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
8511 var_mpropdef
= var3
;
8512 /* <var_mpropdef:nullable MPropDef> isa MMethodDef */
8513 cltype
= type_nit__MMethodDef
.color
;
8514 idtype
= type_nit__MMethodDef
.id
;
8515 if(var_mpropdef
== NULL
) {
8518 if(cltype
>= var_mpropdef
->type
->table_size
) {
8521 var6
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
8526 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
8527 var9
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
8533 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8534 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 836);
8537 { /* Inline model#MSignature#return_mtype (var7) on <var7:nullable MSignature> */
8538 if (unlikely(var7
== NULL
)) {
8539 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8540 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1595);
8543 var12
= var7
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var7:nullable MSignature> */
8545 RET_LABEL11
:(void)0;
8548 var_ret_type
= var10
;
8550 /* <var_mpropdef:nullable MPropDef> isa MAttributeDef */
8551 cltype14
= type_nit__MAttributeDef
.color
;
8552 idtype15
= type_nit__MAttributeDef
.id
;
8553 if(var_mpropdef
== NULL
) {
8556 if(cltype14
>= var_mpropdef
->type
->table_size
) {
8559 var13
= var_mpropdef
->type
->type_table
[cltype14
] == idtype15
;
8564 { /* Inline model#MAttributeDef#static_mtype (var_mpropdef) on <var_mpropdef:nullable MPropDef(MAttributeDef)> */
8565 var18
= var_mpropdef
->attrs
[COLOR_nit__model__MAttributeDef___static_mtype
].val
; /* _static_mtype on <var_mpropdef:nullable MPropDef(MAttributeDef)> */
8567 RET_LABEL17
:(void)0;
8570 var_ret_type
= var16
;
8572 PRINT_ERROR("Runtime error: %s", "Aborted");
8573 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 840);
8578 if (var_nexpr
== NULL
) {
8579 var20
= 0; /* is null */
8581 var20
= 1; /* arg is null and recv is not */
8584 { /* Inline kernel#Object#!= (var_nexpr,var19) on <var_nexpr:nullable AExpr> */
8587 var23
= ((short int (*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nexpr
, var_other
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
8592 RET_LABEL22
:(void)0;
8598 if (var_ret_type
== NULL
) {
8599 var26
= 0; /* is null */
8601 var26
= 1; /* arg is null and recv is not */
8604 { /* Inline kernel#Object#!= (var_ret_type,var25) on <var_ret_type:nullable Object(nullable MType)> */
8607 var29
= ((short int (*)(val
* self
, val
* p0
))(var_ret_type
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ret_type
, var_other
) /* == on <var_ret_type:nullable MType(MType)>*/;
8612 RET_LABEL28
:(void)0;
8618 var31
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var_nexpr
, var_ret_type
);
8622 var32
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var_nexpr
);
8627 var34
= "Error: Return with value in a procedure.";
8629 var36
= standard___standard__NativeString___to_s_with_length(var34
, var35
);
8634 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var33
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8639 if (var_ret_type
== NULL
) {
8640 var38
= 0; /* is null */
8642 var38
= 1; /* arg is null and recv is not */
8645 { /* Inline kernel#Object#!= (var_ret_type,var37) on <var_ret_type:nullable Object(nullable MType)> */
8648 var41
= ((short int (*)(val
* self
, val
* p0
))(var_ret_type
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ret_type
, var_other
) /* == on <var_ret_type:nullable MType(MType)>*/;
8653 RET_LABEL40
:(void)0;
8661 var45
= "Error: Return without value in a function.";
8663 var47
= standard___standard__NativeString___to_s_with_length(var45
, var46
);
8668 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var44
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8675 { /* Inline typing#AExpr#is_typed= (self,var48) on <self:AReturnExpr> */
8676 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var48
; /* _is_typed on <self:AReturnExpr> */
8677 RET_LABEL49
:(void)0;
8682 /* method typing#AAbortExpr#accept_typing for (self: AAbortExpr, TypeVisitor) */
8683 void nit__typing___AAbortExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8684 val
* var_v
/* var v: TypeVisitor */;
8685 short int var
/* : Bool */;
8689 { /* Inline typing#AExpr#is_typed= (self,var) on <self:AAbortExpr> */
8690 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var
; /* _is_typed on <self:AAbortExpr> */
8696 /* method typing#AIfExpr#accept_typing for (self: AIfExpr, TypeVisitor) */
8697 void nit__typing___AIfExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8698 val
* var_v
/* var v: TypeVisitor */;
8699 val
* var
/* : AExpr */;
8700 val
* var2
/* : AExpr */;
8701 val
* var3
/* : nullable MType */;
8702 val
* var4
/* : nullable AExpr */;
8703 val
* var6
/* : nullable AExpr */;
8704 val
* var7
/* : nullable AExpr */;
8705 val
* var9
/* : nullable AExpr */;
8706 short int var10
/* : Bool */;
8707 short int var12
/* : Bool */;
8708 val
* var13
/* : nullable AExpr */;
8709 val
* var15
/* : nullable AExpr */;
8710 val
* var16
/* : null */;
8711 short int var17
/* : Bool */;
8712 short int var18
/* : Bool */;
8713 val
* var_other
/* var other: nullable Object */;
8714 short int var20
/* : Bool */;
8715 short int var21
/* : Bool */;
8716 short int var_
/* var : Bool */;
8717 val
* var22
/* : nullable AExpr */;
8718 val
* var24
/* : nullable AExpr */;
8719 val
* var25
/* : null */;
8720 short int var26
/* : Bool */;
8721 short int var27
/* : Bool */;
8722 val
* var_other29
/* var other: nullable Object */;
8723 short int var30
/* : Bool */;
8724 short int var32
/* : Bool */;
8725 val
* var33
/* : nullable AExpr */;
8726 val
* var35
/* : nullable AExpr */;
8727 val
* var36
/* : nullable MType */;
8730 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
8731 var2
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_expr
].val
; /* _n_expr on <self:AIfExpr> */
8732 if (unlikely(var2
== NULL
)) {
8733 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8734 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1664);
8742 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var
);
8745 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
8746 var6
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
8752 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var4
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
8755 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
8756 var9
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <self:AIfExpr> */
8762 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var7
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
8766 { /* Inline typing#AExpr#is_typed= (self,var10) on <self:AIfExpr> */
8767 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var10
; /* _is_typed on <self:AIfExpr> */
8768 RET_LABEL11
:(void)0;
8772 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
8773 var15
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
8775 RET_LABEL14
:(void)0;
8779 if (var13
== NULL
) {
8780 var17
= 0; /* is null */
8782 var17
= 1; /* arg is null and recv is not */
8785 { /* Inline kernel#Object#!= (var13,var16) on <var13:nullable AExpr> */
8788 var20
= ((short int (*)(val
* self
, val
* p0
))(var13
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var13
, var_other
) /* == on <var13:nullable AExpr(AExpr)>*/;
8793 RET_LABEL19
:(void)0;
8800 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
8801 var24
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <self:AIfExpr> */
8803 RET_LABEL23
:(void)0;
8807 if (var22
== NULL
) {
8808 var26
= 1; /* is null */
8810 var26
= 0; /* arg is null but recv is not */
8813 { /* Inline kernel#Object#== (var22,var25) on <var22:nullable AExpr> */
8814 var_other29
= var25
;
8816 { /* Inline kernel#Object#is_same_instance (var22,var_other29) on <var22:nullable AExpr(AExpr)> */
8817 var32
= var22
== var_other29
;
8820 RET_LABEL31
:(void)0;
8825 RET_LABEL28
:(void)0;
8835 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
8836 var35
= self
->attrs
[COLOR_nit__parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
8838 RET_LABEL34
:(void)0;
8841 if (var33
== NULL
) {
8842 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8843 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 874);
8846 var36
= ((val
* (*)(val
* self
))(var33
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var33
) /* mtype on <var33:nullable AExpr>*/;
8849 { /* Inline typing#AExpr#mtype= (self,var36) on <self:AIfExpr> */
8850 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var36
; /* _mtype on <self:AIfExpr> */
8851 RET_LABEL37
:(void)0;
8858 /* method typing#AIfexprExpr#accept_typing for (self: AIfexprExpr, TypeVisitor) */
8859 void nit__typing___AIfexprExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8860 val
* var_v
/* var v: TypeVisitor */;
8861 val
* var
/* : AExpr */;
8862 val
* var2
/* : AExpr */;
8863 val
* var3
/* : nullable MType */;
8864 val
* var4
/* : AExpr */;
8865 val
* var6
/* : AExpr */;
8866 val
* var7
/* : nullable MType */;
8867 val
* var_t1
/* var t1: nullable MType */;
8868 val
* var8
/* : AExpr */;
8869 val
* var10
/* : AExpr */;
8870 val
* var11
/* : nullable MType */;
8871 val
* var_t2
/* var t2: nullable MType */;
8872 short int var12
/* : Bool */;
8873 val
* var13
/* : null */;
8874 short int var14
/* : Bool */;
8875 short int var15
/* : Bool */;
8876 val
* var_other
/* var other: nullable Object */;
8877 short int var17
/* : Bool */;
8878 short int var19
/* : Bool */;
8879 short int var_
/* var : Bool */;
8880 val
* var20
/* : null */;
8881 short int var21
/* : Bool */;
8882 short int var22
/* : Bool */;
8883 short int var24
/* : Bool */;
8884 short int var26
/* : Bool */;
8885 val
* var27
/* : Array[MType] */;
8886 long var28
/* : Int */;
8887 val
* var_29
/* var : Array[MType] */;
8888 val
* var30
/* : nullable MType */;
8889 val
* var_t
/* var t: nullable MType */;
8890 val
* var31
/* : null */;
8891 short int var32
/* : Bool */;
8892 short int var33
/* : Bool */;
8893 short int var35
/* : Bool */;
8894 short int var37
/* : Bool */;
8895 static val
* varonce
;
8896 val
* var38
/* : String */;
8897 char* var39
/* : NativeString */;
8898 long var40
/* : Int */;
8899 val
* var41
/* : FlatString */;
8900 static val
* varonce42
;
8901 val
* var43
/* : String */;
8902 char* var44
/* : NativeString */;
8903 long var45
/* : Int */;
8904 val
* var46
/* : FlatString */;
8905 val
* var47
/* : Array[Object] */;
8906 long var48
/* : Int */;
8907 val
* var49
/* : NativeArray[Object] */;
8908 val
* var50
/* : String */;
8911 { /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
8912 var2
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_expr
].val
; /* _n_expr on <self:AIfexprExpr> */
8913 if (unlikely(var2
== NULL
)) {
8914 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8915 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1681);
8923 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var
);
8926 { /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
8927 var6
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_then
].val
; /* _n_then on <self:AIfexprExpr> */
8928 if (unlikely(var6
== NULL
)) {
8929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
8930 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1687);
8938 var7
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var4
);
8942 { /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
8943 var10
= self
->attrs
[COLOR_nit__parser_nodes__AIfexprExpr___n_else
].val
; /* _n_else on <self:AIfexprExpr> */
8944 if (unlikely(var10
== NULL
)) {
8945 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
8946 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1693);
8954 var11
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var8
);
8958 if (var_t1
== NULL
) {
8959 var14
= 1; /* is null */
8961 var14
= 0; /* arg is null but recv is not */
8964 { /* Inline kernel#Object#== (var_t1,var13) on <var_t1:nullable MType> */
8967 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
8968 var19
= var_t1
== var_other
;
8971 RET_LABEL18
:(void)0;
8976 RET_LABEL16
:(void)0;
8985 if (var_t2
== NULL
) {
8986 var21
= 1; /* is null */
8988 var21
= 0; /* arg is null but recv is not */
8991 { /* Inline kernel#Object#== (var_t2,var20) on <var_t2:nullable MType> */
8994 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
8995 var26
= var_t2
== var_other
;
8998 RET_LABEL25
:(void)0;
9003 RET_LABEL23
:(void)0;
9013 var27
= NEW_standard__Array(&type_standard__Array__nit__MType
);
9016 standard___standard__Array___with_capacity(var27
, var28
); /* Direct call array#Array#with_capacity on <var27:Array[MType]>*/
9020 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_29
, var_t1
); /* Direct call array#AbstractArray#push on <var_29:Array[MType]>*/
9023 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_29
, var_t2
); /* Direct call array#AbstractArray#push on <var_29:Array[MType]>*/
9026 var30
= nit__typing___nit__typing__TypeVisitor___merge_types(var_v
, self
, var_29
);
9030 if (var_t
== NULL
) {
9031 var32
= 1; /* is null */
9033 var32
= 0; /* arg is null but recv is not */
9036 { /* Inline kernel#Object#== (var_t,var31) on <var_t:nullable MType> */
9039 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
9040 var37
= var_t
== var_other
;
9043 RET_LABEL36
:(void)0;
9048 RET_LABEL34
:(void)0;
9056 var39
= "Type Error: ambiguous type ";
9058 var41
= standard___standard__NativeString___to_s_with_length(var39
, var40
);
9067 var46
= standard___standard__NativeString___to_s_with_length(var44
, var45
);
9071 var47
= NEW_standard__Array(&type_standard__Array__standard__Object
);
9072 { /* var47 = array_instance Array[Object] */
9074 var49
= NEW_standard__NativeArray(var48
, &type_standard__NativeArray__standard__Object
);
9075 ((struct instance_standard__NativeArray
*)var49
)->values
[0] = (val
*) var38
;
9076 ((struct instance_standard__NativeArray
*)var49
)->values
[1] = (val
*) var_t1
;
9077 ((struct instance_standard__NativeArray
*)var49
)->values
[2] = (val
*) var43
;
9078 ((struct instance_standard__NativeArray
*)var49
)->values
[3] = (val
*) var_t2
;
9080 ((void (*)(val
* self
, val
* p0
, long p1
))(var47
->class->vft
[COLOR_standard__array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
9084 var50
= ((val
* (*)(val
* self
))(var47
->class->vft
[COLOR_standard__string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
9087 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var50
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9092 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:AIfexprExpr> */
9093 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_t
; /* _mtype on <self:AIfexprExpr> */
9094 RET_LABEL51
:(void)0;
9099 /* method typing#ADoExpr#accept_typing for (self: ADoExpr, TypeVisitor) */
9100 void nit__typing___ADoExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9101 val
* var_v
/* var v: TypeVisitor */;
9102 val
* var
/* : nullable AExpr */;
9103 val
* var2
/* : nullable AExpr */;
9104 short int var3
/* : Bool */;
9107 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
9108 var2
= self
->attrs
[COLOR_nit__parser_nodes__ADoExpr___n_block
].val
; /* _n_block on <self:ADoExpr> */
9114 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9118 { /* Inline typing#AExpr#is_typed= (self,var3) on <self:ADoExpr> */
9119 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var3
; /* _is_typed on <self:ADoExpr> */
9125 /* method typing#AWhileExpr#accept_typing for (self: AWhileExpr, TypeVisitor) */
9126 void nit__typing___AWhileExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9127 val
* var_v
/* var v: TypeVisitor */;
9128 val
* var
/* : AExpr */;
9129 val
* var2
/* : AExpr */;
9130 val
* var3
/* : nullable MType */;
9131 val
* var4
/* : nullable AExpr */;
9132 val
* var6
/* : nullable AExpr */;
9133 short int var7
/* : Bool */;
9136 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
9137 var2
= self
->attrs
[COLOR_nit__parser_nodes__AWhileExpr___n_expr
].val
; /* _n_expr on <self:AWhileExpr> */
9138 if (unlikely(var2
== NULL
)) {
9139 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9140 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1705);
9148 var3
= nit__typing___nit__typing__TypeVisitor___visit_expr_bool(var_v
, var
);
9151 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
9152 var6
= self
->attrs
[COLOR_nit__parser_nodes__AWhileExpr___n_block
].val
; /* _n_block on <self:AWhileExpr> */
9158 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var4
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9162 { /* Inline typing#AExpr#is_typed= (self,var7) on <self:AWhileExpr> */
9163 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var7
; /* _is_typed on <self:AWhileExpr> */
9169 /* method typing#ALoopExpr#accept_typing for (self: ALoopExpr, TypeVisitor) */
9170 void nit__typing___ALoopExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9171 val
* var_v
/* var v: TypeVisitor */;
9172 val
* var
/* : nullable AExpr */;
9173 val
* var2
/* : nullable AExpr */;
9174 short int var3
/* : Bool */;
9177 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
9178 var2
= self
->attrs
[COLOR_nit__parser_nodes__ALoopExpr___n_block
].val
; /* _n_block on <self:ALoopExpr> */
9184 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9188 { /* Inline typing#AExpr#is_typed= (self,var3) on <self:ALoopExpr> */
9189 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= var3
; /* _is_typed on <self:ALoopExpr> */
9195 /* method typing#AForExpr#coltype= for (self: AForExpr, nullable MClassType) */
9196 void nit__typing___AForExpr___coltype_61d(val
* self
, val
* p0
) {
9197 self
->attrs
[COLOR_nit__typing__AForExpr___coltype
].val
= p0
; /* _coltype on <self:AForExpr> */
9200 /* method typing#AForExpr#method_iterator for (self: AForExpr): nullable CallSite */
9201 val
* nit__typing___AForExpr___method_iterator(val
* self
) {
9202 val
* var
/* : nullable CallSite */;
9203 val
* var1
/* : nullable CallSite */;
9204 var1
= self
->attrs
[COLOR_nit__typing__AForExpr___method_iterator
].val
; /* _method_iterator on <self:AForExpr> */
9209 /* method typing#AForExpr#method_iterator= for (self: AForExpr, nullable CallSite) */
9210 void nit__typing___AForExpr___method_iterator_61d(val
* self
, val
* p0
) {
9211 self
->attrs
[COLOR_nit__typing__AForExpr___method_iterator
].val
= p0
; /* _method_iterator on <self:AForExpr> */
9214 /* method typing#AForExpr#method_is_ok for (self: AForExpr): nullable CallSite */
9215 val
* nit__typing___AForExpr___method_is_ok(val
* self
) {
9216 val
* var
/* : nullable CallSite */;
9217 val
* var1
/* : nullable CallSite */;
9218 var1
= self
->attrs
[COLOR_nit__typing__AForExpr___method_is_ok
].val
; /* _method_is_ok on <self:AForExpr> */
9223 /* method typing#AForExpr#method_is_ok= for (self: AForExpr, nullable CallSite) */
9224 void nit__typing___AForExpr___method_is_ok_61d(val
* self
, val
* p0
) {
9225 self
->attrs
[COLOR_nit__typing__AForExpr___method_is_ok
].val
= p0
; /* _method_is_ok on <self:AForExpr> */
9228 /* method typing#AForExpr#method_item for (self: AForExpr): nullable CallSite */
9229 val
* nit__typing___AForExpr___method_item(val
* self
) {
9230 val
* var
/* : nullable CallSite */;
9231 val
* var1
/* : nullable CallSite */;
9232 var1
= self
->attrs
[COLOR_nit__typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
9237 /* method typing#AForExpr#method_item= for (self: AForExpr, nullable CallSite) */
9238 void nit__typing___AForExpr___method_item_61d(val
* self
, val
* p0
) {
9239 self
->attrs
[COLOR_nit__typing__AForExpr___method_item
].val
= p0
; /* _method_item on <self:AForExpr> */
9242 /* method typing#AForExpr#method_next for (self: AForExpr): nullable CallSite */
9243 val
* nit__typing___AForExpr___method_next(val
* self
) {
9244 val
* var
/* : nullable CallSite */;
9245 val
* var1
/* : nullable CallSite */;
9246 var1
= self
->attrs
[COLOR_nit__typing__AForExpr___method_next
].val
; /* _method_next on <self:AForExpr> */
9251 /* method typing#AForExpr#method_next= for (self: AForExpr, nullable CallSite) */
9252 void nit__typing___AForExpr___method_next_61d(val
* self
, val
* p0
) {
9253 self
->attrs
[COLOR_nit__typing__AForExpr___method_next
].val
= p0
; /* _method_next on <self:AForExpr> */
9256 /* method typing#AForExpr#method_key for (self: AForExpr): nullable CallSite */
9257 val
* nit__typing___AForExpr___method_key(val
* self
) {
9258 val
* var
/* : nullable CallSite */;
9259 val
* var1
/* : nullable CallSite */;
9260 var1
= self
->attrs
[COLOR_nit__typing__AForExpr___method_key
].val
; /* _method_key on <self:AForExpr> */
9265 /* method typing#AForExpr#method_key= for (self: AForExpr, nullable CallSite) */
9266 void nit__typing___AForExpr___method_key_61d(val
* self
, val
* p0
) {
9267 self
->attrs
[COLOR_nit__typing__AForExpr___method_key
].val
= p0
; /* _method_key on <self:AForExpr> */
9270 /* method typing#AForExpr#method_finish for (self: AForExpr): nullable CallSite */
9271 val
* nit__typing___AForExpr___method_finish(val
* self
) {
9272 val
* var
/* : nullable CallSite */;
9273 val
* var1
/* : nullable CallSite */;
9274 var1
= self
->attrs
[COLOR_nit__typing__AForExpr___method_finish
].val
; /* _method_finish on <self:AForExpr> */
9279 /* method typing#AForExpr#method_finish= for (self: AForExpr, nullable CallSite) */
9280 void nit__typing___AForExpr___method_finish_61d(val
* self
, val
* p0
) {
9281 self
->attrs
[COLOR_nit__typing__AForExpr___method_finish
].val
= p0
; /* _method_finish on <self:AForExpr> */
9284 /* method typing#AForExpr#method_lt for (self: AForExpr): nullable CallSite */
9285 val
* nit__typing___AForExpr___method_lt(val
* self
) {
9286 val
* var
/* : nullable CallSite */;
9287 val
* var1
/* : nullable CallSite */;
9288 var1
= self
->attrs
[COLOR_nit__typing__AForExpr___method_lt
].val
; /* _method_lt on <self:AForExpr> */
9293 /* method typing#AForExpr#method_lt= for (self: AForExpr, nullable CallSite) */
9294 void nit__typing___AForExpr___method_lt_61d(val
* self
, val
* p0
) {
9295 self
->attrs
[COLOR_nit__typing__AForExpr___method_lt
].val
= p0
; /* _method_lt on <self:AForExpr> */
9298 /* method typing#AForExpr#method_successor for (self: AForExpr): nullable CallSite */
9299 val
* nit__typing___AForExpr___method_successor(val
* self
) {
9300 val
* var
/* : nullable CallSite */;
9301 val
* var1
/* : nullable CallSite */;
9302 var1
= self
->attrs
[COLOR_nit__typing__AForExpr___method_successor
].val
; /* _method_successor on <self:AForExpr> */
9307 /* method typing#AForExpr#method_successor= for (self: AForExpr, nullable CallSite) */
9308 void nit__typing___AForExpr___method_successor_61d(val
* self
, val
* p0
) {
9309 self
->attrs
[COLOR_nit__typing__AForExpr___method_successor
].val
= p0
; /* _method_successor on <self:AForExpr> */