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
, 200);
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 short int var3
/* : Bool */;
162 short int var4
/* : Bool */;
163 val
* var_other
/* var other: nullable Object */;
164 short int var6
/* : Bool */;
165 short int var7
/* : Bool */;
166 val
* var9
/* : MClassDef */;
167 val
* var11
/* : MClassDef */;
168 val
* var_mclassdef
/* var mclassdef: MClassDef */;
169 val
* var13
/* : MClassType */;
170 val
* var15
/* : MClassType */;
171 val
* var17
/* : MClass */;
172 val
* var19
/* : MClass */;
173 val
* var_mclass
/* var mclass: MClass */;
174 val
* var20
/* : Variable */;
176 val
* var21
/* : String */;
177 char* var22
/* : NativeString */;
178 val
* var23
/* : FlatString */;
179 val
* var_selfvariable
/* var selfvariable: Variable */;
180 val
* var25
/* : MClassType */;
181 val
* var27
/* : MClassType */;
182 val
* var29
/* : MProperty */;
183 val
* var31
/* : MProperty */;
184 val
* var_mprop
/* var mprop: MProperty */;
185 short int var32
/* : Bool */;
186 short int var33
/* : Bool */;
189 short int var_
/* var : Bool */;
190 short int var34
/* : Bool */;
191 short int var36
/* : Bool */;
193 { /* Inline typing#TypeVisitor#mpropdef (self) on <self:TypeVisitor> */
194 var2
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
200 if (var_mpropdef
== NULL
) {
201 var3
= 0; /* is null */
203 var3
= 1; /* arg is null and recv is not */
206 { /* Inline kernel#Object#!= (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MPropDef> */
207 var_other
= ((val
*)NULL
);
209 var6
= ((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)>*/
220 { /* Inline typing#TypeVisitor#mpropdef= (self,var_mpropdef) on <self:TypeVisitor> */
221 self
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
= var_mpropdef
; /* _mpropdef on <self:TypeVisitor> */
226 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MPropDef(MPropDef)> */
227 var11
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MPropDef(MPropDef)> */
228 if (unlikely(var11
== NULL
)) {
229 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
230 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2209);
237 var_mclassdef
= var9
;
239 { /* Inline typing#TypeVisitor#mclassdef= (self,var_mclassdef) on <self:TypeVisitor> */
240 self
->attrs
[COLOR_nit__typing__TypeVisitor___mclassdef
].val
= var_mclassdef
; /* _mclassdef on <self:TypeVisitor> */
245 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
246 var15
= var_mclassdef
->attrs
[COLOR_nit__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
247 if (unlikely(var15
== NULL
)) {
248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
249 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 556);
257 { /* Inline typing#TypeVisitor#anchor= (self,var13) on <self:TypeVisitor> */
258 self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
= var13
; /* _anchor on <self:TypeVisitor> */
263 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
264 var19
= var_mclassdef
->attrs
[COLOR_nit__model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef:MClassDef> */
265 if (unlikely(var19
== NULL
)) {
266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
267 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 553);
275 var20
= NEW_nit__Variable(&type_nit__Variable
);
276 if (likely(varonce
!=NULL
)) {
280 var23
= standard___standard__NativeString___to_s_with_length(var22
, 4l);
285 ((void(*)(val
* self
, val
* p0
))(var20
->class->vft
[COLOR_nit__scope__Variable__name_61d
]))(var20
, var21
); /* name= on <var20:Variable>*/
288 ((void(*)(val
* self
))(var20
->class->vft
[COLOR_standard__kernel__Object__init
]))(var20
); /* init on <var20:Variable>*/
290 var_selfvariable
= var20
;
292 { /* Inline typing#TypeVisitor#selfvariable= (self,var_selfvariable) on <self:TypeVisitor> */
293 self
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
= var_selfvariable
; /* _selfvariable on <self:TypeVisitor> */
298 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
299 var27
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:MClass> */
300 if (unlikely(var27
== NULL
)) {
301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
302 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 484);
310 { /* Inline typing#Variable#declared_type= (var_selfvariable,var25) on <var_selfvariable:Variable> */
311 var_selfvariable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var25
; /* _declared_type on <var_selfvariable:Variable> */
316 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MPropDef(MPropDef)> */
317 var31
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:nullable MPropDef(MPropDef)> */
318 if (unlikely(var31
== NULL
)) {
319 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
320 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2212);
328 /* <var_mprop:MProperty> isa MMethod */
329 cltype
= type_nit__MMethod
.color
;
330 idtype
= type_nit__MMethod
.id
;
331 if(cltype
>= var_mprop
->type
->table_size
) {
334 var33
= var_mprop
->type
->type_table
[cltype
] == idtype
;
339 { /* Inline model#MMethod#is_new (var_mprop) on <var_mprop:MProperty(MMethod)> */
340 var36
= var_mprop
->attrs
[COLOR_nit__model__MMethod___is_new
].s
; /* _is_new on <var_mprop:MProperty(MMethod)> */
351 { /* Inline typing#TypeVisitor#is_toplevel_context= (self,1) on <self:TypeVisitor> */
352 self
->attrs
[COLOR_nit__typing__TypeVisitor___is_toplevel_context
].s
= 1; /* _is_toplevel_context on <self:TypeVisitor> */
362 /* method typing#TypeVisitor#anchor_to for (self: TypeVisitor, MType): MType */
363 val
* nit__typing___nit__typing__TypeVisitor___anchor_to(val
* self
, val
* p0
) {
364 val
* var
/* : MType */;
365 val
* var_mtype
/* var mtype: MType */;
366 val
* var1
/* : nullable MClassType */;
367 val
* var3
/* : nullable MClassType */;
368 val
* var_anchor
/* var anchor: nullable MClassType */;
369 short int var4
/* : Bool */;
370 short int var5
/* : Bool */;
371 val
* var_other
/* var other: nullable Object */;
372 short int var7
/* : Bool */;
373 short int var9
/* : Bool */;
374 short int var10
/* : Bool */;
375 short int var11
/* : Bool */;
376 val
* var12
/* : MModule */;
377 val
* var14
/* : MModule */;
378 val
* var15
/* : MType */;
381 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
382 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
388 if (var_anchor
== NULL
) {
389 var4
= 1; /* is null */
391 var4
= 0; /* arg is null but recv is not */
394 { /* Inline kernel#Object#== (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
395 var_other
= ((val
*)NULL
);
397 { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on <var_anchor:nullable MClassType(MClassType)> */
398 var9
= var_anchor
== var_other
;
412 var10
= ((short int(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_mtype
); /* need_anchor on <var_mtype:MType>*/
415 if (unlikely(!var11
)) {
416 PRINT_ERROR("Runtime error: %s", "Assert failed");
417 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 85);
425 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
426 var14
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
427 if (unlikely(var14
== NULL
)) {
428 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
429 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
437 var15
= ((val
*(*)(val
* self
, val
* p0
, val
* p1
))(var_mtype
->class->vft
[COLOR_nit__model__MType__anchor_to
]))(var_mtype
, var12
, var_anchor
); /* anchor_to on <var_mtype:MType>*/
444 /* method typing#TypeVisitor#is_subtype for (self: TypeVisitor, MType, MType): Bool */
445 short int nit__typing___nit__typing__TypeVisitor___is_subtype(val
* self
, val
* p0
, val
* p1
) {
446 short int var
/* : Bool */;
447 val
* var_sub
/* var sub: MType */;
448 val
* var_sup
/* var sup: MType */;
449 val
* var1
/* : MModule */;
450 val
* var3
/* : MModule */;
451 val
* var4
/* : nullable MClassType */;
452 val
* var6
/* : nullable MClassType */;
453 short int var7
/* : Bool */;
457 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
458 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
459 if (unlikely(var3
== NULL
)) {
460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
461 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
469 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
470 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
476 var7
= nit___nit__MType___is_subtype(var_sub
, var1
, var4
, var_sup
);
483 /* method typing#TypeVisitor#resolve_for for (self: TypeVisitor, MType, MType, Bool): MType */
484 val
* nit__typing___nit__typing__TypeVisitor___resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
485 val
* var
/* : MType */;
486 val
* var_mtype
/* var mtype: MType */;
487 val
* var_subtype
/* var subtype: MType */;
488 short int var_for_self
/* var for_self: Bool */;
489 val
* var1
/* : nullable MClassType */;
490 val
* var3
/* : nullable MClassType */;
491 val
* var4
/* : MModule */;
492 val
* var6
/* : MModule */;
493 short int var7
/* : Bool */;
494 val
* var8
/* : MType */;
495 val
* var_res
/* var res: MType */;
500 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
501 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
507 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
508 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
509 if (unlikely(var6
== NULL
)) {
510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
511 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
518 var7
= !var_for_self
;
520 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>*/
528 /* method typing#TypeVisitor#check_subtype for (self: TypeVisitor, ANode, MType, MType, Bool): nullable MType */
529 val
* nit__typing___nit__typing__TypeVisitor___check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
530 val
* var
/* : nullable MType */;
531 val
* var_node
/* var node: ANode */;
532 val
* var_sub
/* var sub: MType */;
533 val
* var_sup
/* var sup: MType */;
534 short int var_autocast
/* var autocast: Bool */;
535 short int var1
/* : Bool */;
536 short int var2
/* : Bool */;
537 short int var_
/* var : Bool */;
538 val
* var3
/* : MType */;
539 short int var4
/* : Bool */;
540 short int var5
/* : Bool */;
541 val
* var6
/* : MType */;
542 val
* var_u
/* var u: MType */;
543 val
* var7
/* : ModelBuilder */;
544 val
* var9
/* : ModelBuilder */;
545 val
* var10
/* : NativeArray[String] */;
547 static val
* varonce11
;
548 val
* var12
/* : String */;
549 char* var13
/* : NativeString */;
550 val
* var14
/* : FlatString */;
551 static val
* varonce15
;
552 val
* var16
/* : String */;
553 char* var17
/* : NativeString */;
554 val
* var18
/* : FlatString */;
555 static val
* varonce19
;
556 val
* var20
/* : String */;
557 char* var21
/* : NativeString */;
558 val
* var22
/* : FlatString */;
559 static val
* varonce23
;
560 val
* var24
/* : String */;
561 char* var25
/* : NativeString */;
562 val
* var26
/* : FlatString */;
563 val
* var27
/* : String */;
564 val
* var28
/* : String */;
565 val
* var29
/* : String */;
566 val
* var30
/* : String */;
567 val
* var31
/* : ModelBuilder */;
568 val
* var33
/* : ModelBuilder */;
569 val
* var35
/* : NativeArray[String] */;
570 static val
* varonce34
;
571 static val
* varonce36
;
572 val
* var37
/* : String */;
573 char* var38
/* : NativeString */;
574 val
* var39
/* : FlatString */;
575 static val
* varonce40
;
576 val
* var41
/* : String */;
577 char* var42
/* : NativeString */;
578 val
* var43
/* : FlatString */;
579 static val
* varonce44
;
580 val
* var45
/* : String */;
581 char* var46
/* : NativeString */;
582 val
* var47
/* : FlatString */;
583 val
* var48
/* : String */;
584 val
* var49
/* : String */;
585 val
* var50
/* : String */;
591 var1
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_sub
, var_sup
);
601 var3
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_sup
);
604 var4
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_sub
, var3
);
616 var5
= ((short int(*)(val
* self
))(var_sub
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_sub
); /* need_anchor on <var_sub:MType>*/
620 var6
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_sub
);
624 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
625 var9
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
626 if (unlikely(var9
== NULL
)) {
627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
628 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
635 if (unlikely(varonce
==NULL
)) {
636 var10
= NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String
);
637 if (likely(varonce11
!=NULL
)) {
640 var13
= "Type Error: expected `";
641 var14
= standard___standard__NativeString___to_s_with_length(var13
, 22l);
645 ((struct instance_standard__NativeArray
*)var10
)->values
[0]=var12
;
646 if (likely(varonce15
!=NULL
)) {
650 var18
= standard___standard__NativeString___to_s_with_length(var17
, 8l);
654 ((struct instance_standard__NativeArray
*)var10
)->values
[2]=var16
;
655 if (likely(varonce19
!=NULL
)) {
659 var22
= standard___standard__NativeString___to_s_with_length(var21
, 2l);
663 ((struct instance_standard__NativeArray
*)var10
)->values
[4]=var20
;
664 if (likely(varonce23
!=NULL
)) {
668 var26
= standard___standard__NativeString___to_s_with_length(var25
, 2l);
672 ((struct instance_standard__NativeArray
*)var10
)->values
[6]=var24
;
678 var27
= ((val
*(*)(val
* self
))(var_sup
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_sup
); /* to_s on <var_sup:MType>*/
680 ((struct instance_standard__NativeArray
*)var10
)->values
[1]=var27
;
682 var28
= ((val
*(*)(val
* self
))(var_sub
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_sub
); /* to_s on <var_sub:MType>*/
684 ((struct instance_standard__NativeArray
*)var10
)->values
[3]=var28
;
686 var29
= ((val
*(*)(val
* self
))(var_u
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_u
); /* to_s on <var_u:MType>*/
688 ((struct instance_standard__NativeArray
*)var10
)->values
[5]=var29
;
690 var30
= ((val
*(*)(val
* self
))(var10
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var10
); /* native_to_s on <var10:NativeArray[String]>*/
694 nit___nit__ModelBuilder___error(var7
, var_node
, var30
); /* Direct call modelbuilder_base#ModelBuilder#error on <var7:ModelBuilder>*/
698 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
699 var33
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
700 if (unlikely(var33
== NULL
)) {
701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
702 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
709 if (unlikely(varonce34
==NULL
)) {
710 var35
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
711 if (likely(varonce36
!=NULL
)) {
714 var38
= "Type Error: expected `";
715 var39
= standard___standard__NativeString___to_s_with_length(var38
, 22l);
719 ((struct instance_standard__NativeArray
*)var35
)->values
[0]=var37
;
720 if (likely(varonce40
!=NULL
)) {
724 var43
= standard___standard__NativeString___to_s_with_length(var42
, 8l);
728 ((struct instance_standard__NativeArray
*)var35
)->values
[2]=var41
;
729 if (likely(varonce44
!=NULL
)) {
733 var47
= standard___standard__NativeString___to_s_with_length(var46
, 2l);
737 ((struct instance_standard__NativeArray
*)var35
)->values
[4]=var45
;
743 var48
= ((val
*(*)(val
* self
))(var_sup
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_sup
); /* to_s on <var_sup:MType>*/
745 ((struct instance_standard__NativeArray
*)var35
)->values
[1]=var48
;
747 var49
= ((val
*(*)(val
* self
))(var_sub
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_sub
); /* to_s on <var_sub:MType>*/
749 ((struct instance_standard__NativeArray
*)var35
)->values
[3]=var49
;
751 var50
= ((val
*(*)(val
* self
))(var35
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var35
); /* native_to_s on <var35:NativeArray[String]>*/
755 nit___nit__ModelBuilder___error(var31
, var_node
, var50
); /* Direct call modelbuilder_base#ModelBuilder#error on <var31:ModelBuilder>*/
763 /* method typing#TypeVisitor#visit_stmt for (self: TypeVisitor, nullable AExpr) */
764 void nit__typing___nit__typing__TypeVisitor___visit_stmt(val
* self
, val
* p0
) {
765 val
* var_nexpr
/* var nexpr: nullable AExpr */;
766 short int var
/* : Bool */;
767 short int var1
/* : Bool */;
768 val
* var_other
/* var other: nullable Object */;
769 short int var3
/* : Bool */;
770 short int var5
/* : Bool */;
772 if (var_nexpr
== NULL
) {
773 var
= 1; /* is null */
775 var
= 0; /* arg is null but recv is not */
778 { /* Inline kernel#Object#== (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
779 var_other
= ((val
*)NULL
);
781 { /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
782 var5
= var_nexpr
== var_other
;
799 ((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)>*/
803 /* method typing#TypeVisitor#visit_expr for (self: TypeVisitor, AExpr): nullable MType */
804 val
* nit__typing___nit__typing__TypeVisitor___visit_expr(val
* self
, val
* p0
) {
805 val
* var
/* : nullable MType */;
806 val
* var_nexpr
/* var nexpr: AExpr */;
807 val
* var1
/* : nullable MType */;
808 val
* var_mtype
/* var mtype: nullable MType */;
809 short int var2
/* : Bool */;
810 short int var3
/* : Bool */;
811 val
* var_other
/* var other: nullable Object */;
812 short int var5
/* : Bool */;
813 short int var6
/* : Bool */;
814 short int var7
/* : Bool */;
815 short int var9
/* : Bool */;
816 short int var10
/* : Bool */;
817 val
* var11
/* : ModelBuilder */;
818 val
* var13
/* : ModelBuilder */;
819 val
* var14
/* : ToolContext */;
820 val
* var16
/* : ToolContext */;
821 long var17
/* : Int */;
822 long var19
/* : Int */;
823 short int var20
/* : Bool */;
824 short int var22
/* : Bool */;
827 const char* var_class_name
;
828 short int var23
/* : Bool */;
829 short int var24
/* : Bool */;
830 val
* var25
/* : ModelBuilder */;
831 val
* var27
/* : ModelBuilder */;
832 val
* var28
/* : ToolContext */;
833 val
* var30
/* : ToolContext */;
834 long var31
/* : Int */;
835 long var33
/* : Int */;
836 short int var34
/* : Bool */;
837 short int var36
/* : Bool */;
840 const char* var_class_name39
;
841 short int var40
/* : Bool */;
843 val
* var41
/* : String */;
844 char* var42
/* : NativeString */;
845 val
* var43
/* : FlatString */;
846 static val
* varonce44
;
847 val
* var45
/* : String */;
848 char* var46
/* : NativeString */;
849 val
* var47
/* : FlatString */;
852 ((void(*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_nit__typing__AExpr__accept_typing
]))(var_nexpr
, self
); /* accept_typing on <var_nexpr:AExpr>*/
855 var1
= ((val
*(*)(val
* self
))(var_nexpr
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var_nexpr
); /* mtype on <var_nexpr:AExpr>*/
858 if (var_mtype
== NULL
) {
859 var2
= 0; /* is null */
861 var2
= 1; /* arg is null and recv is not */
864 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
865 var_other
= ((val
*)NULL
);
867 var5
= ((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)>*/
882 { /* Inline typing#AExpr#is_typed (var_nexpr) on <var_nexpr:AExpr> */
883 var9
= var_nexpr
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
; /* _is_typed on <var_nexpr:AExpr> */
891 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
892 var13
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
893 if (unlikely(var13
== NULL
)) {
894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
903 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var11) on <var11:ModelBuilder> */
904 var16
= var11
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var11:ModelBuilder> */
905 if (unlikely(var16
== NULL
)) {
906 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
907 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
915 { /* Inline toolcontext#ToolContext#error_count (var14) on <var14:ToolContext> */
916 var19
= var14
->attrs
[COLOR_nit__toolcontext__ToolContext___error_count
].l
; /* _error_count on <var14:ToolContext> */
922 { /* Inline kernel#Int#> (var17,0l) on <var17:Int> */
923 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
924 /* <0l:Int> isa OTHER */
925 var22
= 1; /* easy <0l:Int> isa OTHER*/
926 if (unlikely(!var22
)) {
927 var_class_name
= type_standard__Int
.name
;
928 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
929 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
941 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
942 var27
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
943 if (unlikely(var27
== NULL
)) {
944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
945 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
953 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var25) on <var25:ModelBuilder> */
954 var30
= var25
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var25:ModelBuilder> */
955 if (unlikely(var30
== NULL
)) {
956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
965 { /* Inline toolcontext#ToolContext#verbose_level (var28) on <var28:ToolContext> */
966 var33
= var28
->attrs
[COLOR_nit__toolcontext__ToolContext___verbose_level
].l
; /* _verbose_level on <var28:ToolContext> */
972 { /* Inline kernel#Int#> (var31,1l) on <var31:Int> */
973 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
974 /* <1l:Int> isa OTHER */
975 var36
= 1; /* easy <1l:Int> isa OTHER*/
976 if (unlikely(!var36
)) {
977 var_class_name39
= type_standard__Int
.name
;
978 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39
);
979 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
989 if (likely(varonce
!=NULL
)) {
992 var42
= "No return type but no error.";
993 var43
= standard___standard__NativeString___to_s_with_length(var42
, 28l);
998 nit___nit__ANode___debug(var_nexpr
, var41
); /* Direct call parser_nodes#ANode#debug on <var_nexpr:AExpr>*/
1008 if (likely(varonce44
!=NULL
)) {
1011 var46
= "Error: expected an expression.";
1012 var47
= standard___standard__NativeString___to_s_with_length(var46
, 30l);
1017 nit__typing___nit__typing__TypeVisitor___error(self
, var_nexpr
, var45
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
1024 /* method typing#TypeVisitor#visit_expr_subtype for (self: TypeVisitor, AExpr, nullable MType): nullable MType */
1025 val
* nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
1026 val
* var
/* : nullable MType */;
1027 val
* var_nexpr
/* var nexpr: AExpr */;
1028 val
* var_sup
/* var sup: nullable MType */;
1029 val
* var1
/* : nullable MType */;
1030 val
* var_sub
/* var sub: nullable MType */;
1031 short int var2
/* : Bool */;
1032 short int var3
/* : Bool */;
1033 val
* var_other
/* var other: nullable Object */;
1034 short int var5
/* : Bool */;
1035 short int var7
/* : Bool */;
1036 short int var8
/* : Bool */;
1037 short int var9
/* : Bool */;
1038 short int var11
/* : Bool */;
1039 short int var13
/* : Bool */;
1040 val
* var14
/* : nullable MType */;
1041 val
* var_res
/* var res: nullable MType */;
1042 short int var15
/* : Bool */;
1043 short int var16
/* : Bool */;
1044 val
* var_other18
/* var other: nullable Object */;
1045 short int var19
/* : Bool */;
1046 short int var20
/* : Bool */;
1050 var1
= nit__typing___nit__typing__TypeVisitor___visit_expr(self
, var_nexpr
);
1053 if (var_sub
== NULL
) {
1054 var2
= 1; /* is null */
1056 var2
= 0; /* arg is null but recv is not */
1059 { /* Inline kernel#Object#== (var_sub,((val*)NULL)) on <var_sub:nullable MType> */
1060 var_other
= ((val
*)NULL
);
1062 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:nullable MType(MType)> */
1063 var7
= var_sub
== var_other
;
1080 if (var_sup
== NULL
) {
1081 var8
= 1; /* is null */
1083 var8
= 0; /* arg is null but recv is not */
1086 { /* Inline kernel#Object#== (var_sup,((val*)NULL)) on <var_sup:nullable MType> */
1087 var_other
= ((val
*)NULL
);
1089 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1090 var13
= var_sup
== var_other
;
1093 RET_LABEL12
:(void)0;
1098 RET_LABEL10
:(void)0;
1108 var14
= nit__typing___nit__typing__TypeVisitor___check_subtype(self
, var_nexpr
, var_sub
, var_sup
, 1);
1111 if (var_res
== NULL
) {
1112 var15
= 1; /* <var_sub:nullable MType(MType)> cannot be null */
1114 { /* Inline kernel#Object#!= (var_res,var_sub) on <var_res:nullable MType> */
1115 var_other18
= var_sub
;
1117 var19
= ((short int(*)(val
* self
, val
* p0
))(var_res
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_res
, var_other18
); /* == on <var_res:nullable MType(MType)>*/
1122 RET_LABEL17
:(void)0;
1128 { /* Inline typing#AExpr#implicit_cast_to= (var_nexpr,var_res) on <var_nexpr:AExpr> */
1129 var_nexpr
->attrs
[COLOR_nit__typing__AExpr___implicit_cast_to
].val
= var_res
; /* _implicit_cast_to on <var_nexpr:AExpr> */
1130 RET_LABEL21
:(void)0;
1140 /* method typing#TypeVisitor#visit_expr_bool for (self: TypeVisitor, AExpr): nullable MType */
1141 val
* nit__typing___nit__typing__TypeVisitor___visit_expr_bool(val
* self
, val
* p0
) {
1142 val
* var
/* : nullable MType */;
1143 val
* var_nexpr
/* var nexpr: AExpr */;
1144 val
* var1
/* : nullable MType */;
1145 val
* var2
/* : nullable MType */;
1148 var1
= nit__typing___nit__typing__TypeVisitor___type_bool(self
, var_nexpr
);
1151 var2
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var_nexpr
, var1
);
1158 /* method typing#TypeVisitor#visit_expr_cast for (self: TypeVisitor, ANode, AExpr, AType): nullable MType */
1159 val
* nit__typing___nit__typing__TypeVisitor___visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1160 val
* var
/* : nullable MType */;
1161 val
* var_node
/* var node: ANode */;
1162 val
* var_nexpr
/* var nexpr: AExpr */;
1163 val
* var_ntype
/* var ntype: AType */;
1164 val
* var1
/* : nullable MType */;
1165 val
* var_sub
/* var sub: nullable MType */;
1166 short int var2
/* : Bool */;
1167 short int var3
/* : Bool */;
1168 val
* var_other
/* var other: nullable Object */;
1169 short int var5
/* : Bool */;
1170 short int var7
/* : Bool */;
1171 val
* var8
/* : nullable MType */;
1172 val
* var_sup
/* var sup: nullable MType */;
1173 short int var9
/* : Bool */;
1174 short int var10
/* : Bool */;
1175 short int var12
/* : Bool */;
1176 short int var14
/* : Bool */;
1177 short int var15
/* : Bool */;
1178 short int var17
/* : Bool */;
1179 short int var19
/* : Bool */;
1180 val
* var20
/* : ModelBuilder */;
1181 val
* var22
/* : ModelBuilder */;
1182 static val
* varonce
;
1183 val
* var23
/* : String */;
1184 char* var24
/* : NativeString */;
1185 val
* var25
/* : FlatString */;
1186 val
* var27
/* : NativeArray[String] */;
1187 static val
* varonce26
;
1188 static val
* varonce28
;
1189 val
* var29
/* : String */;
1190 char* var30
/* : NativeString */;
1191 val
* var31
/* : FlatString */;
1192 static val
* varonce32
;
1193 val
* var33
/* : String */;
1194 char* var34
/* : NativeString */;
1195 val
* var35
/* : FlatString */;
1196 val
* var36
/* : String */;
1197 val
* var37
/* : String */;
1198 short int var38
/* : Bool */;
1199 val
* var39
/* : ModelBuilder */;
1200 val
* var41
/* : ModelBuilder */;
1201 static val
* varonce42
;
1202 val
* var43
/* : String */;
1203 char* var44
/* : NativeString */;
1204 val
* var45
/* : FlatString */;
1205 val
* var47
/* : NativeArray[String] */;
1206 static val
* varonce46
;
1207 static val
* varonce48
;
1208 val
* var49
/* : String */;
1209 char* var50
/* : NativeString */;
1210 val
* var51
/* : FlatString */;
1211 static val
* varonce52
;
1212 val
* var53
/* : String */;
1213 char* var54
/* : NativeString */;
1214 val
* var55
/* : FlatString */;
1215 static val
* varonce56
;
1216 val
* var57
/* : String */;
1217 char* var58
/* : NativeString */;
1218 val
* var59
/* : FlatString */;
1219 val
* var60
/* : String */;
1220 val
* var61
/* : String */;
1221 val
* var62
/* : String */;
1226 var1
= nit__typing___nit__typing__TypeVisitor___visit_expr(self
, var_nexpr
);
1229 if (var_sub
== NULL
) {
1230 var2
= 1; /* is null */
1232 var2
= 0; /* arg is null but recv is not */
1235 { /* Inline kernel#Object#== (var_sub,((val*)NULL)) on <var_sub:nullable MType> */
1236 var_other
= ((val
*)NULL
);
1238 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:nullable MType(MType)> */
1239 var7
= var_sub
== var_other
;
1257 var8
= nit__typing___nit__typing__TypeVisitor___resolve_mtype(self
, var_ntype
);
1260 if (var_sup
== NULL
) {
1261 var9
= 1; /* is null */
1263 var9
= 0; /* arg is null but recv is not */
1266 { /* Inline kernel#Object#== (var_sup,((val*)NULL)) on <var_sup:nullable MType> */
1267 var_other
= ((val
*)NULL
);
1269 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1270 var14
= var_sup
== var_other
;
1273 RET_LABEL13
:(void)0;
1278 RET_LABEL11
:(void)0;
1288 { /* Inline kernel#Object#== (var_sup,var_sub) on <var_sup:nullable MType(MType)> */
1289 var_other
= var_sub
;
1291 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1292 var19
= var_sup
== var_other
;
1295 RET_LABEL18
:(void)0;
1300 RET_LABEL16
:(void)0;
1305 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1306 var22
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1307 if (unlikely(var22
== NULL
)) {
1308 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1309 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1313 RET_LABEL21
:(void)0;
1316 if (likely(varonce
!=NULL
)) {
1319 var24
= "useless-type-test";
1320 var25
= standard___standard__NativeString___to_s_with_length(var24
, 17l);
1324 if (unlikely(varonce26
==NULL
)) {
1325 var27
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1326 if (likely(varonce28
!=NULL
)) {
1329 var30
= "Warning: expression is already a `";
1330 var31
= standard___standard__NativeString___to_s_with_length(var30
, 34l);
1334 ((struct instance_standard__NativeArray
*)var27
)->values
[0]=var29
;
1335 if (likely(varonce32
!=NULL
)) {
1339 var35
= standard___standard__NativeString___to_s_with_length(var34
, 2l);
1343 ((struct instance_standard__NativeArray
*)var27
)->values
[2]=var33
;
1349 var36
= ((val
*(*)(val
* self
))(var_sup
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_sup
); /* to_s on <var_sup:nullable MType(MType)>*/
1351 ((struct instance_standard__NativeArray
*)var27
)->values
[1]=var36
;
1353 var37
= ((val
*(*)(val
* self
))(var27
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var27
); /* native_to_s on <var27:NativeArray[String]>*/
1357 nit___nit__ModelBuilder___warning(var20
, var_node
, var23
, var37
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var20:ModelBuilder>*/
1361 var38
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_sub
, var_sup
);
1365 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1366 var41
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1367 if (unlikely(var41
== NULL
)) {
1368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1369 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1373 RET_LABEL40
:(void)0;
1376 if (likely(varonce42
!=NULL
)) {
1379 var44
= "useless-type-test";
1380 var45
= standard___standard__NativeString___to_s_with_length(var44
, 17l);
1384 if (unlikely(varonce46
==NULL
)) {
1385 var47
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
1386 if (likely(varonce48
!=NULL
)) {
1389 var50
= "Warning: expression is already a `";
1390 var51
= standard___standard__NativeString___to_s_with_length(var50
, 34l);
1394 ((struct instance_standard__NativeArray
*)var47
)->values
[0]=var49
;
1395 if (likely(varonce52
!=NULL
)) {
1398 var54
= "` since it is a `";
1399 var55
= standard___standard__NativeString___to_s_with_length(var54
, 17l);
1403 ((struct instance_standard__NativeArray
*)var47
)->values
[2]=var53
;
1404 if (likely(varonce56
!=NULL
)) {
1408 var59
= standard___standard__NativeString___to_s_with_length(var58
, 2l);
1412 ((struct instance_standard__NativeArray
*)var47
)->values
[4]=var57
;
1418 var60
= ((val
*(*)(val
* self
))(var_sup
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_sup
); /* to_s on <var_sup:nullable MType(MType)>*/
1420 ((struct instance_standard__NativeArray
*)var47
)->values
[1]=var60
;
1422 var61
= ((val
*(*)(val
* self
))(var_sub
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_sub
); /* to_s on <var_sub:nullable MType(MType)>*/
1424 ((struct instance_standard__NativeArray
*)var47
)->values
[3]=var61
;
1426 var62
= ((val
*(*)(val
* self
))(var47
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var47
); /* native_to_s on <var47:NativeArray[String]>*/
1430 nit___nit__ModelBuilder___warning(var39
, var_node
, var43
, var62
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var39:ModelBuilder>*/
1440 /* method typing#TypeVisitor#can_be_null for (self: TypeVisitor, MType): Bool */
1441 short int nit__typing___nit__typing__TypeVisitor___can_be_null(val
* self
, val
* p0
) {
1442 short int var
/* : Bool */;
1443 val
* var_mtype
/* var mtype: MType */;
1444 short int var1
/* : Bool */;
1445 short int var2
/* : Bool */;
1448 short int var_
/* var : Bool */;
1449 short int var3
/* : Bool */;
1452 short int var6
/* : Bool */;
1455 val
* var9
/* : MType */;
1456 val
* var_x
/* var x: MType */;
1457 short int var10
/* : Bool */;
1458 short int var11
/* : Bool */;
1461 short int var_14
/* var : Bool */;
1462 short int var15
/* : Bool */;
1466 /* <var_mtype:MType> isa MNullableType */
1467 cltype
= type_nit__MNullableType
.color
;
1468 idtype
= type_nit__MNullableType
.id
;
1469 if(cltype
>= var_mtype
->type
->table_size
) {
1472 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
1478 /* <var_mtype:MType> isa MNullType */
1479 cltype4
= type_nit__MNullType
.color
;
1480 idtype5
= type_nit__MNullType
.id
;
1481 if(cltype4
>= var_mtype
->type
->table_size
) {
1484 var3
= var_mtype
->type
->type_table
[cltype4
] == idtype5
;
1493 /* <var_mtype:MType> isa MFormalType */
1494 cltype7
= type_nit__MFormalType
.color
;
1495 idtype8
= type_nit__MFormalType
.id
;
1496 if(cltype7
>= var_mtype
->type
->table_size
) {
1499 var6
= var_mtype
->type
->type_table
[cltype7
] == idtype8
;
1503 var9
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_mtype
);
1506 /* <var_x:MType> isa MNullableType */
1507 cltype12
= type_nit__MNullableType
.color
;
1508 idtype13
= type_nit__MNullableType
.id
;
1509 if(cltype12
>= var_x
->type
->table_size
) {
1512 var11
= var_x
->type
->type_table
[cltype12
] == idtype13
;
1518 /* <var_x:MType> isa MNullType */
1519 cltype16
= type_nit__MNullType
.color
;
1520 idtype17
= type_nit__MNullType
.id
;
1521 if(cltype16
>= var_x
->type
->table_size
) {
1524 var15
= var_x
->type
->type_table
[cltype16
] == idtype17
;
1540 /* method typing#TypeVisitor#check_can_be_null for (self: TypeVisitor, ANode, MType): Bool */
1541 short int nit__typing___nit__typing__TypeVisitor___check_can_be_null(val
* self
, val
* p0
, val
* p1
) {
1542 short int var
/* : Bool */;
1543 val
* var_anode
/* var anode: ANode */;
1544 val
* var_mtype
/* var mtype: MType */;
1545 short int var1
/* : Bool */;
1546 short int var2
/* : Bool */;
1549 val
* var3
/* : MType */;
1550 val
* var_res
/* var res: MType */;
1551 val
* var4
/* : ModelBuilder */;
1552 val
* var6
/* : ModelBuilder */;
1553 static val
* varonce
;
1554 val
* var7
/* : String */;
1555 char* var8
/* : NativeString */;
1556 val
* var9
/* : FlatString */;
1557 val
* var11
/* : NativeArray[String] */;
1558 static val
* varonce10
;
1559 static val
* varonce12
;
1560 val
* var13
/* : String */;
1561 char* var14
/* : NativeString */;
1562 val
* var15
/* : FlatString */;
1563 static val
* varonce16
;
1564 val
* var17
/* : String */;
1565 char* var18
/* : NativeString */;
1566 val
* var19
/* : FlatString */;
1567 static val
* varonce20
;
1568 val
* var21
/* : String */;
1569 char* var22
/* : NativeString */;
1570 val
* var23
/* : FlatString */;
1571 val
* var24
/* : String */;
1572 val
* var25
/* : String */;
1573 val
* var26
/* : String */;
1574 val
* var27
/* : ModelBuilder */;
1575 val
* var29
/* : ModelBuilder */;
1576 static val
* varonce30
;
1577 val
* var31
/* : String */;
1578 char* var32
/* : NativeString */;
1579 val
* var33
/* : FlatString */;
1580 val
* var35
/* : NativeArray[String] */;
1581 static val
* varonce34
;
1582 static val
* varonce36
;
1583 val
* var37
/* : String */;
1584 char* var38
/* : NativeString */;
1585 val
* var39
/* : FlatString */;
1586 static val
* varonce40
;
1587 val
* var41
/* : String */;
1588 char* var42
/* : NativeString */;
1589 val
* var43
/* : FlatString */;
1590 val
* var44
/* : String */;
1591 val
* var45
/* : String */;
1595 var1
= nit__typing___nit__typing__TypeVisitor___can_be_null(self
, var_mtype
);
1602 /* <var_mtype:MType> isa MFormalType */
1603 cltype
= type_nit__MFormalType
.color
;
1604 idtype
= type_nit__MFormalType
.id
;
1605 if(cltype
>= var_mtype
->type
->table_size
) {
1608 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
1612 var3
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_mtype
);
1616 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1617 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1618 if (unlikely(var6
== NULL
)) {
1619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1620 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1627 if (likely(varonce
!=NULL
)) {
1630 var8
= "useless-null-test";
1631 var9
= standard___standard__NativeString___to_s_with_length(var8
, 17l);
1635 if (unlikely(varonce10
==NULL
)) {
1636 var11
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
1637 if (likely(varonce12
!=NULL
)) {
1640 var14
= "Warning: expression is not null, since it is a `";
1641 var15
= standard___standard__NativeString___to_s_with_length(var14
, 48l);
1645 ((struct instance_standard__NativeArray
*)var11
)->values
[0]=var13
;
1646 if (likely(varonce16
!=NULL
)) {
1650 var19
= standard___standard__NativeString___to_s_with_length(var18
, 2l);
1654 ((struct instance_standard__NativeArray
*)var11
)->values
[2]=var17
;
1655 if (likely(varonce20
!=NULL
)) {
1659 var23
= standard___standard__NativeString___to_s_with_length(var22
, 2l);
1663 ((struct instance_standard__NativeArray
*)var11
)->values
[4]=var21
;
1669 var24
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MType(MFormalType)>*/
1671 ((struct instance_standard__NativeArray
*)var11
)->values
[1]=var24
;
1673 var25
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_res
); /* to_s on <var_res:MType>*/
1675 ((struct instance_standard__NativeArray
*)var11
)->values
[3]=var25
;
1677 var26
= ((val
*(*)(val
* self
))(var11
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var11
); /* native_to_s on <var11:NativeArray[String]>*/
1681 nit___nit__ModelBuilder___warning(var4
, var_anode
, var7
, var26
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var4:ModelBuilder>*/
1685 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1686 var29
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1687 if (unlikely(var29
== NULL
)) {
1688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1689 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
1693 RET_LABEL28
:(void)0;
1696 if (likely(varonce30
!=NULL
)) {
1699 var32
= "useless-null-test";
1700 var33
= standard___standard__NativeString___to_s_with_length(var32
, 17l);
1704 if (unlikely(varonce34
==NULL
)) {
1705 var35
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
1706 if (likely(varonce36
!=NULL
)) {
1709 var38
= "Warning: expression is not null, since it is a `";
1710 var39
= standard___standard__NativeString___to_s_with_length(var38
, 48l);
1714 ((struct instance_standard__NativeArray
*)var35
)->values
[0]=var37
;
1715 if (likely(varonce40
!=NULL
)) {
1719 var43
= standard___standard__NativeString___to_s_with_length(var42
, 2l);
1723 ((struct instance_standard__NativeArray
*)var35
)->values
[2]=var41
;
1729 var44
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MType>*/
1731 ((struct instance_standard__NativeArray
*)var35
)->values
[1]=var44
;
1733 var45
= ((val
*(*)(val
* self
))(var35
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var35
); /* native_to_s on <var35:NativeArray[String]>*/
1737 nit___nit__ModelBuilder___warning(var27
, var_anode
, var31
, var45
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var27:ModelBuilder>*/
1745 /* method typing#TypeVisitor#null_test for (self: TypeVisitor, ABinopExpr) */
1746 void nit__typing___nit__typing__TypeVisitor___null_test(val
* self
, val
* p0
) {
1747 val
* var_anode
/* var anode: ABinopExpr */;
1748 val
* var
/* : AExpr */;
1749 val
* var2
/* : AExpr */;
1750 val
* var3
/* : nullable MType */;
1751 val
* var_mtype
/* var mtype: nullable MType */;
1752 val
* var4
/* : AExpr */;
1753 val
* var6
/* : AExpr */;
1754 val
* var7
/* : nullable MType */;
1755 val
* var_mtype2
/* var mtype2: nullable MType */;
1756 short int var8
/* : Bool */;
1757 short int var9
/* : Bool */;
1758 short int var10
/* : Bool */;
1759 val
* var_other
/* var other: nullable Object */;
1760 short int var12
/* : Bool */;
1761 short int var14
/* : Bool */;
1762 short int var_
/* var : Bool */;
1763 short int var15
/* : Bool */;
1764 short int var16
/* : Bool */;
1765 short int var18
/* : Bool */;
1766 short int var20
/* : Bool */;
1767 short int var21
/* : Bool */;
1770 short int var22
/* : Bool */;
1771 val
* var23
/* : AExpr */;
1772 val
* var25
/* : AExpr */;
1773 short int var26
/* : Bool */;
1774 short int var27
/* : Bool */;
1775 short int var28
/* : Bool */;
1778 val
* var31
/* : MType */;
1779 val
* var32
/* : AExpr */;
1780 val
* var34
/* : AExpr */;
1781 val
* var35
/* : nullable Variable */;
1782 val
* var_variable
/* var variable: nullable Variable */;
1783 short int var36
/* : Bool */;
1784 short int var37
/* : Bool */;
1785 short int var39
/* : Bool */;
1786 short int var41
/* : Bool */;
1787 short int var42
/* : Bool */;
1790 val
* var45
/* : nullable FlowContext */;
1791 val
* var47
/* : nullable FlowContext */;
1792 val
* var48
/* : FlowContext */;
1793 val
* var50
/* : FlowContext */;
1794 val
* var51
/* : nullable FlowContext */;
1795 val
* var53
/* : nullable FlowContext */;
1796 val
* var54
/* : FlowContext */;
1797 val
* var56
/* : FlowContext */;
1798 short int var57
/* : Bool */;
1801 val
* var60
/* : nullable FlowContext */;
1802 val
* var62
/* : nullable FlowContext */;
1803 val
* var63
/* : FlowContext */;
1804 val
* var65
/* : FlowContext */;
1805 val
* var66
/* : nullable FlowContext */;
1806 val
* var68
/* : nullable FlowContext */;
1807 val
* var69
/* : FlowContext */;
1808 val
* var71
/* : FlowContext */;
1811 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
1812 var2
= var_anode
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
1813 if (unlikely(var2
== NULL
)) {
1814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1815 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2025);
1823 var3
= ((val
*(*)(val
* self
))(var
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var
); /* mtype on <var:AExpr>*/
1827 { /* Inline parser_nodes#ABinopExpr#n_expr2 (var_anode) on <var_anode:ABinopExpr> */
1828 var6
= var_anode
->attrs
[COLOR_nit__parser_nodes__ABinopExpr___n_expr2
].val
; /* _n_expr2 on <var_anode:ABinopExpr> */
1829 if (unlikely(var6
== NULL
)) {
1830 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1831 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2036);
1839 var7
= ((val
*(*)(val
* self
))(var4
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var4
); /* mtype on <var4:AExpr>*/
1842 if (var_mtype
== NULL
) {
1843 var9
= 1; /* is null */
1845 var9
= 0; /* arg is null but recv is not */
1848 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1849 var_other
= ((val
*)NULL
);
1851 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1852 var14
= var_mtype
== var_other
;
1855 RET_LABEL13
:(void)0;
1860 RET_LABEL11
:(void)0;
1868 if (var_mtype2
== NULL
) {
1869 var15
= 1; /* is null */
1871 var15
= 0; /* arg is null but recv is not */
1874 { /* Inline kernel#Object#== (var_mtype2,((val*)NULL)) on <var_mtype2:nullable MType> */
1875 var_other
= ((val
*)NULL
);
1877 { /* Inline kernel#Object#is_same_instance (var_mtype2,var_other) on <var_mtype2:nullable MType(MType)> */
1878 var20
= var_mtype2
== var_other
;
1881 RET_LABEL19
:(void)0;
1886 RET_LABEL17
:(void)0;
1896 /* <var_mtype2:nullable MType(MType)> isa MNullType */
1897 cltype
= type_nit__MNullType
.color
;
1898 idtype
= type_nit__MNullType
.id
;
1899 if(cltype
>= var_mtype2
->type
->table_size
) {
1902 var21
= var_mtype2
->type
->type_table
[cltype
] == idtype
;
1910 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
1911 var25
= var_anode
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
1912 if (unlikely(var25
== NULL
)) {
1913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1914 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2025);
1918 RET_LABEL24
:(void)0;
1922 var26
= nit__typing___nit__typing__TypeVisitor___check_can_be_null(self
, var23
, var_mtype
);
1929 /* <var_mtype:nullable MType(MType)> isa MNullType */
1930 cltype29
= type_nit__MNullType
.color
;
1931 idtype30
= type_nit__MNullType
.id
;
1932 if(cltype29
>= var_mtype
->type
->table_size
) {
1935 var28
= var_mtype
->type
->type_table
[cltype29
] == idtype30
;
1938 var_mtype
= ((val
*)NULL
);
1941 var31
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nit__model__MType__as_notnull
]))(var_mtype
); /* as_notnull on <var_mtype:nullable MType(MType)>*/
1946 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
1947 var34
= var_anode
->attrs
[COLOR_nit__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
1948 if (unlikely(var34
== NULL
)) {
1949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1950 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2025);
1954 RET_LABEL33
:(void)0;
1958 var35
= ((val
*(*)(val
* self
))(var32
->class->vft
[COLOR_nit__typing__AExpr__its_variable
]))(var32
); /* its_variable on <var32:AExpr>*/
1960 var_variable
= var35
;
1961 if (var_variable
== NULL
) {
1962 var36
= 1; /* is null */
1964 var36
= 0; /* arg is null but recv is not */
1967 { /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
1968 var_other
= ((val
*)NULL
);
1970 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
1971 var41
= var_variable
== var_other
;
1974 RET_LABEL40
:(void)0;
1979 RET_LABEL38
:(void)0;
1987 /* <var_anode:ABinopExpr> isa AEqExpr */
1988 cltype43
= type_nit__AEqExpr
.color
;
1989 idtype44
= type_nit__AEqExpr
.id
;
1990 if(cltype43
>= var_anode
->type
->table_size
) {
1993 var42
= var_anode
->type
->type_table
[cltype43
] == idtype44
;
1997 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(AEqExpr)> */
1998 var47
= var_anode
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(AEqExpr)> */
2000 RET_LABEL46
:(void)0;
2003 if (var45
== NULL
) {
2004 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2005 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 259);
2008 { /* Inline flow#FlowContext#when_true (var45) on <var45:nullable FlowContext> */
2009 if (unlikely(var45
== NULL
)) {
2010 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2011 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2014 var50
= var45
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var45:nullable FlowContext> */
2015 if (unlikely(var50
== NULL
)) {
2016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2017 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2021 RET_LABEL49
:(void)0;
2025 nit__typing___FlowContext___set_var(var48
, self
, var_variable
, var_mtype2
); /* Direct call typing#FlowContext#set_var on <var48:FlowContext>*/
2028 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(AEqExpr)> */
2029 var53
= var_anode
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(AEqExpr)> */
2031 RET_LABEL52
:(void)0;
2034 if (var51
== NULL
) {
2035 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2036 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 260);
2039 { /* Inline flow#FlowContext#when_false (var51) on <var51:nullable FlowContext> */
2040 if (unlikely(var51
== NULL
)) {
2041 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2042 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2045 var56
= var51
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var51:nullable FlowContext> */
2046 if (unlikely(var56
== NULL
)) {
2047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2048 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2052 RET_LABEL55
:(void)0;
2056 nit__typing___FlowContext___set_var(var54
, self
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var54:FlowContext>*/
2059 /* <var_anode:ABinopExpr> isa ANeExpr */
2060 cltype58
= type_nit__ANeExpr
.color
;
2061 idtype59
= type_nit__ANeExpr
.id
;
2062 if(cltype58
>= var_anode
->type
->table_size
) {
2065 var57
= var_anode
->type
->type_table
[cltype58
] == idtype59
;
2069 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(ANeExpr)> */
2070 var62
= var_anode
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(ANeExpr)> */
2072 RET_LABEL61
:(void)0;
2075 if (var60
== NULL
) {
2076 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2077 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 262);
2080 { /* Inline flow#FlowContext#when_false (var60) on <var60:nullable FlowContext> */
2081 if (unlikely(var60
== NULL
)) {
2082 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2083 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2086 var65
= var60
->attrs
[COLOR_nit__flow__FlowContext___when_false
].val
; /* _when_false on <var60:nullable FlowContext> */
2087 if (unlikely(var65
== NULL
)) {
2088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2089 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 228);
2093 RET_LABEL64
:(void)0;
2097 nit__typing___FlowContext___set_var(var63
, self
, var_variable
, var_mtype2
); /* Direct call typing#FlowContext#set_var on <var63:FlowContext>*/
2100 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(ANeExpr)> */
2101 var68
= var_anode
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(ANeExpr)> */
2103 RET_LABEL67
:(void)0;
2106 if (var66
== NULL
) {
2107 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2108 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 263);
2111 { /* Inline flow#FlowContext#when_true (var66) on <var66:nullable FlowContext> */
2112 if (unlikely(var66
== NULL
)) {
2113 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2114 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2117 var71
= var66
->attrs
[COLOR_nit__flow__FlowContext___when_true
].val
; /* _when_true on <var66:nullable FlowContext> */
2118 if (unlikely(var71
== NULL
)) {
2119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 225);
2124 RET_LABEL70
:(void)0;
2128 nit__typing___FlowContext___set_var(var69
, self
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var69:FlowContext>*/
2131 PRINT_ERROR("Runtime error: %s", "Aborted");
2132 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 265);
2138 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: TypeVisitor, ANode, MType, String): nullable MProperty */
2139 val
* nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2140 val
* var
/* : nullable MProperty */;
2141 val
* var_anode
/* var anode: ANode */;
2142 val
* var_mtype
/* var mtype: MType */;
2143 val
* var_name
/* var name: String */;
2144 val
* var1
/* : ModelBuilder */;
2145 val
* var3
/* : ModelBuilder */;
2146 val
* var4
/* : MModule */;
2147 val
* var6
/* : MModule */;
2148 val
* var7
/* : nullable MProperty */;
2153 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2154 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2155 if (unlikely(var3
== NULL
)) {
2156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2157 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2165 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2166 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2167 if (unlikely(var6
== NULL
)) {
2168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2169 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2177 var7
= nit___nit__ModelBuilder___try_get_mproperty_by_name2(var1
, var_anode
, var4
, var_mtype
, var_name
);
2184 /* method typing#TypeVisitor#resolve_mtype for (self: TypeVisitor, AType): nullable MType */
2185 val
* nit__typing___nit__typing__TypeVisitor___resolve_mtype(val
* self
, val
* p0
) {
2186 val
* var
/* : nullable MType */;
2187 val
* var_node
/* var node: AType */;
2188 val
* var1
/* : ModelBuilder */;
2189 val
* var3
/* : ModelBuilder */;
2190 val
* var4
/* : MModule */;
2191 val
* var6
/* : MModule */;
2192 val
* var7
/* : nullable MClassDef */;
2193 val
* var9
/* : nullable MClassDef */;
2194 val
* var10
/* : nullable MType */;
2197 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2198 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2199 if (unlikely(var3
== NULL
)) {
2200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2201 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2209 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2210 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2211 if (unlikely(var6
== NULL
)) {
2212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2213 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2221 { /* Inline typing#TypeVisitor#mclassdef (self) on <self:TypeVisitor> */
2222 var9
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mclassdef
].val
; /* _mclassdef on <self:TypeVisitor> */
2228 var10
= nit___nit__ModelBuilder___resolve_mtype(var1
, var4
, var7
, var_node
);
2235 /* method typing#TypeVisitor#try_get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
2236 val
* nit__typing___nit__typing__TypeVisitor___try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
2237 val
* var
/* : nullable MClass */;
2238 val
* var_node
/* var node: ANode */;
2239 val
* var_name
/* var name: String */;
2240 val
* var1
/* : ModelBuilder */;
2241 val
* var3
/* : ModelBuilder */;
2242 val
* var4
/* : MModule */;
2243 val
* var6
/* : MModule */;
2244 val
* var7
/* : nullable MClass */;
2245 val
* var_mclass
/* var mclass: nullable MClass */;
2249 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2250 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2251 if (unlikely(var3
== NULL
)) {
2252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2253 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2261 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2262 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2263 if (unlikely(var6
== NULL
)) {
2264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2265 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2273 var7
= nit___nit__ModelBuilder___try_get_mclass_by_name(var1
, var_node
, var4
, var_name
);
2281 /* method typing#TypeVisitor#get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
2282 val
* nit__typing___nit__typing__TypeVisitor___get_mclass(val
* self
, val
* p0
, val
* p1
) {
2283 val
* var
/* : nullable MClass */;
2284 val
* var_node
/* var node: ANode */;
2285 val
* var_name
/* var name: String */;
2286 val
* var1
/* : ModelBuilder */;
2287 val
* var3
/* : ModelBuilder */;
2288 val
* var4
/* : MModule */;
2289 val
* var6
/* : MModule */;
2290 val
* var7
/* : nullable MClass */;
2291 val
* var_mclass
/* var mclass: nullable MClass */;
2295 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2296 var3
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2297 if (unlikely(var3
== NULL
)) {
2298 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2299 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2307 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2308 var6
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2309 if (unlikely(var6
== NULL
)) {
2310 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2311 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
2319 var7
= nit___nit__ModelBuilder___get_mclass_by_name(var1
, var_node
, var4
, var_name
);
2327 /* method typing#TypeVisitor#type_bool for (self: TypeVisitor, ANode): nullable MType */
2328 val
* nit__typing___nit__typing__TypeVisitor___type_bool(val
* self
, val
* p0
) {
2329 val
* var
/* : nullable MType */;
2330 val
* var_node
/* var node: ANode */;
2331 static val
* varonce
;
2332 val
* var1
/* : String */;
2333 char* var2
/* : NativeString */;
2334 val
* var3
/* : FlatString */;
2335 val
* var4
/* : nullable MClass */;
2336 val
* var_mclass
/* var mclass: nullable MClass */;
2337 short int var5
/* : Bool */;
2338 short int var6
/* : Bool */;
2339 val
* var_other
/* var other: nullable Object */;
2340 short int var8
/* : Bool */;
2341 short int var10
/* : Bool */;
2342 val
* var11
/* : MClassType */;
2343 val
* var13
/* : MClassType */;
2345 if (likely(varonce
!=NULL
)) {
2349 var3
= standard___standard__NativeString___to_s_with_length(var2
, 4l);
2354 var4
= nit__typing___nit__typing__TypeVisitor___get_mclass(self
, var_node
, var1
);
2357 if (var_mclass
== NULL
) {
2358 var5
= 1; /* is null */
2360 var5
= 0; /* arg is null but recv is not */
2363 { /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
2364 var_other
= ((val
*)NULL
);
2366 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2367 var10
= var_mclass
== var_other
;
2385 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2386 var13
= var_mclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2387 if (unlikely(var13
== NULL
)) {
2388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2389 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 484);
2393 RET_LABEL12
:(void)0;
2401 /* method typing#TypeVisitor#get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
2402 val
* nit__typing___nit__typing__TypeVisitor___get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
2403 val
* var
/* : nullable CallSite */;
2404 val
* var_node
/* var node: ANode */;
2405 val
* var_recvtype
/* var recvtype: MType */;
2406 val
* var_name
/* var name: String */;
2407 short int var_recv_is_self
/* var recv_is_self: Bool */;
2408 val
* var1
/* : MType */;
2409 val
* var_unsafe_type
/* var unsafe_type: MType */;
2410 short int var2
/* : Bool */;
2413 static val
* varonce
;
2414 val
* var3
/* : String */;
2415 char* var4
/* : NativeString */;
2416 val
* var5
/* : FlatString */;
2417 val
* var6
/* : nullable MClass */;
2418 val
* var_objclass
/* var objclass: nullable MClass */;
2419 short int var7
/* : Bool */;
2420 short int var8
/* : Bool */;
2421 val
* var_other
/* var other: nullable Object */;
2422 short int var10
/* : Bool */;
2423 short int var12
/* : Bool */;
2424 val
* var13
/* : MClassType */;
2425 val
* var15
/* : MClassType */;
2426 val
* var16
/* : nullable MProperty */;
2427 val
* var_mproperty
/* var mproperty: nullable MProperty */;
2428 short int var17
/* : Bool */;
2429 static val
* varonce18
;
2430 val
* var19
/* : String */;
2431 char* var20
/* : NativeString */;
2432 val
* var21
/* : FlatString */;
2433 short int var22
/* : Bool */;
2434 short int var_
/* var : Bool */;
2435 short int var23
/* : Bool */;
2436 short int var24
/* : Bool */;
2437 short int var26
/* : Bool */;
2438 short int var28
/* : Bool */;
2439 static val
* varonce29
;
2440 val
* var30
/* : String */;
2441 char* var31
/* : NativeString */;
2442 val
* var32
/* : FlatString */;
2443 val
* var33
/* : nullable MProperty */;
2444 short int var34
/* : Bool */;
2445 short int var35
/* : Bool */;
2446 short int var37
/* : Bool */;
2447 short int var39
/* : Bool */;
2448 val
* var40
/* : ModelBuilder */;
2449 val
* var42
/* : ModelBuilder */;
2450 val
* var44
/* : NativeArray[String] */;
2451 static val
* varonce43
;
2452 static val
* varonce45
;
2453 val
* var46
/* : String */;
2454 char* var47
/* : NativeString */;
2455 val
* var48
/* : FlatString */;
2456 static val
* varonce49
;
2457 val
* var50
/* : String */;
2458 char* var51
/* : NativeString */;
2459 val
* var52
/* : FlatString */;
2460 static val
* varonce53
;
2461 val
* var54
/* : String */;
2462 char* var55
/* : NativeString */;
2463 val
* var56
/* : FlatString */;
2464 val
* var57
/* : String */;
2465 val
* var58
/* : String */;
2466 short int var59
/* : Bool */;
2467 val
* var60
/* : ModelBuilder */;
2468 val
* var62
/* : ModelBuilder */;
2469 val
* var64
/* : NativeArray[String] */;
2470 static val
* varonce63
;
2471 static val
* varonce65
;
2472 val
* var66
/* : String */;
2473 char* var67
/* : NativeString */;
2474 val
* var68
/* : FlatString */;
2475 static val
* varonce69
;
2476 val
* var70
/* : String */;
2477 char* var71
/* : NativeString */;
2478 val
* var72
/* : FlatString */;
2479 static val
* varonce73
;
2480 val
* var74
/* : String */;
2481 char* var75
/* : NativeString */;
2482 val
* var76
/* : FlatString */;
2483 static val
* varonce77
;
2484 val
* var78
/* : String */;
2485 char* var79
/* : NativeString */;
2486 val
* var80
/* : FlatString */;
2487 val
* var81
/* : String */;
2488 val
* var82
/* : String */;
2489 val
* var83
/* : String */;
2490 val
* var84
/* : ModelBuilder */;
2491 val
* var86
/* : ModelBuilder */;
2492 val
* var88
/* : NativeArray[String] */;
2493 static val
* varonce87
;
2494 static val
* varonce89
;
2495 val
* var90
/* : String */;
2496 char* var91
/* : NativeString */;
2497 val
* var92
/* : FlatString */;
2498 static val
* varonce93
;
2499 val
* var94
/* : String */;
2500 char* var95
/* : NativeString */;
2501 val
* var96
/* : FlatString */;
2502 static val
* varonce97
;
2503 val
* var98
/* : String */;
2504 char* var99
/* : NativeString */;
2505 val
* var100
/* : FlatString */;
2506 val
* var101
/* : String */;
2507 val
* var102
/* : String */;
2508 short int var103
/* : Bool */;
2511 short int var106
/* : Bool */;
2512 short int var107
/* : Bool */;
2515 short int var_110
/* var : Bool */;
2516 short int var111
/* : Bool */;
2517 short int var112
/* : Bool */;
2518 val
* var114
/* : NativeArray[String] */;
2519 static val
* varonce113
;
2520 static val
* varonce115
;
2521 val
* var116
/* : String */;
2522 char* var117
/* : NativeString */;
2523 val
* var118
/* : FlatString */;
2524 static val
* varonce119
;
2525 val
* var120
/* : String */;
2526 char* var121
/* : NativeString */;
2527 val
* var122
/* : FlatString */;
2528 val
* var123
/* : String */;
2529 short int var124
/* : Bool */;
2530 short int var125
/* : Bool */;
2533 short int var_128
/* var : Bool */;
2534 short int var129
/* : Bool */;
2535 short int var130
/* : Bool */;
2536 val
* var131
/* : ModelBuilder */;
2537 val
* var133
/* : ModelBuilder */;
2538 static val
* varonce134
;
2539 val
* var135
/* : String */;
2540 char* var136
/* : NativeString */;
2541 val
* var137
/* : FlatString */;
2542 val
* var139
/* : NativeArray[String] */;
2543 static val
* varonce138
;
2544 static val
* varonce140
;
2545 val
* var141
/* : String */;
2546 char* var142
/* : NativeString */;
2547 val
* var143
/* : FlatString */;
2548 static val
* varonce144
;
2549 val
* var145
/* : String */;
2550 char* var146
/* : NativeString */;
2551 val
* var147
/* : FlatString */;
2552 val
* var148
/* : String */;
2553 val
* var149
/* : String */;
2554 short int var150
/* : Bool */;
2555 short int var151
/* : Bool */;
2556 short int var152
/* : Bool */;
2557 short int var154
/* : Bool */;
2558 short int var_155
/* var : Bool */;
2559 short int var_156
/* var : Bool */;
2560 short int var157
/* : Bool */;
2561 short int var159
/* : Bool */;
2562 short int var160
/* : Bool */;
2563 val
* var162
/* : NativeArray[String] */;
2564 static val
* varonce161
;
2565 static val
* varonce163
;
2566 val
* var164
/* : String */;
2567 char* var165
/* : NativeString */;
2568 val
* var166
/* : FlatString */;
2569 static val
* varonce167
;
2570 val
* var168
/* : String */;
2571 char* var169
/* : NativeString */;
2572 val
* var170
/* : FlatString */;
2573 val
* var171
/* : String */;
2574 short int var172
/* : Bool */;
2575 short int var173
/* : Bool */;
2576 short int var_174
/* var : Bool */;
2577 short int var175
/* : Bool */;
2578 short int var177
/* : Bool */;
2579 val
* var179
/* : NativeArray[String] */;
2580 static val
* varonce178
;
2581 static val
* varonce180
;
2582 val
* var181
/* : String */;
2583 char* var182
/* : NativeString */;
2584 val
* var183
/* : FlatString */;
2585 static val
* varonce184
;
2586 val
* var185
/* : String */;
2587 char* var186
/* : NativeString */;
2588 val
* var187
/* : FlatString */;
2589 val
* var188
/* : String */;
2590 short int var189
/* : Bool */;
2591 short int var190
/* : Bool */;
2592 short int var191
/* : Bool */;
2593 val
* var192
/* : MVisibility */;
2594 val
* var194
/* : MVisibility */;
2595 val
* var195
/* : Sys */;
2596 val
* var196
/* : MVisibility */;
2597 short int var197
/* : Bool */;
2598 short int var199
/* : Bool */;
2599 short int var201
/* : Bool */;
2600 short int var_202
/* var : Bool */;
2601 short int var203
/* : Bool */;
2602 short int var_204
/* var : Bool */;
2603 val
* var205
/* : MModule */;
2604 val
* var207
/* : MModule */;
2605 val
* var208
/* : MClassDef */;
2606 val
* var210
/* : MClassDef */;
2607 val
* var211
/* : MModule */;
2608 val
* var213
/* : MModule */;
2609 val
* var214
/* : MVisibility */;
2610 val
* var215
/* : Sys */;
2611 val
* var216
/* : MVisibility */;
2612 short int var217
/* : Bool */;
2613 short int var_218
/* var : Bool */;
2614 val
* var219
/* : ModelBuilder */;
2615 val
* var221
/* : ModelBuilder */;
2616 val
* var222
/* : ToolContext */;
2617 val
* var224
/* : ToolContext */;
2618 val
* var225
/* : OptionBool */;
2619 val
* var227
/* : OptionBool */;
2620 val
* var228
/* : nullable Object */;
2621 val
* var230
/* : nullable Object */;
2622 short int var231
/* : Bool */;
2623 short int var232
/* : Bool */;
2624 val
* var233
/* : ModelBuilder */;
2625 val
* var235
/* : ModelBuilder */;
2626 val
* var237
/* : NativeArray[String] */;
2627 static val
* varonce236
;
2628 static val
* varonce238
;
2629 val
* var239
/* : String */;
2630 char* var240
/* : NativeString */;
2631 val
* var241
/* : FlatString */;
2632 static val
* varonce242
;
2633 val
* var243
/* : String */;
2634 char* var244
/* : NativeString */;
2635 val
* var245
/* : FlatString */;
2636 val
* var246
/* : String */;
2637 val
* var247
/* : nullable MDeprecationInfo */;
2638 val
* var249
/* : nullable MDeprecationInfo */;
2639 val
* var_info
/* var info: nullable MDeprecationInfo */;
2640 short int var250
/* : Bool */;
2641 short int var251
/* : Bool */;
2642 short int var252
/* : Bool */;
2643 val
* var_other254
/* var other: nullable Object */;
2644 short int var255
/* : Bool */;
2645 short int var256
/* : Bool */;
2646 short int var_257
/* var : Bool */;
2647 val
* var258
/* : nullable MPropDef */;
2648 val
* var260
/* : nullable MPropDef */;
2649 val
* var261
/* : MProperty */;
2650 val
* var263
/* : MProperty */;
2651 val
* var264
/* : nullable MDeprecationInfo */;
2652 val
* var266
/* : nullable MDeprecationInfo */;
2653 short int var267
/* : Bool */;
2654 short int var268
/* : Bool */;
2655 short int var270
/* : Bool */;
2656 short int var272
/* : Bool */;
2657 val
* var273
/* : nullable MDoc */;
2658 val
* var275
/* : nullable MDoc */;
2659 val
* var_mdoc
/* var mdoc: nullable MDoc */;
2660 short int var276
/* : Bool */;
2661 short int var277
/* : Bool */;
2662 short int var279
/* : Bool */;
2663 short int var280
/* : Bool */;
2664 val
* var281
/* : ModelBuilder */;
2665 val
* var283
/* : ModelBuilder */;
2666 static val
* varonce284
;
2667 val
* var285
/* : String */;
2668 char* var286
/* : NativeString */;
2669 val
* var287
/* : FlatString */;
2670 val
* var289
/* : NativeArray[String] */;
2671 static val
* varonce288
;
2672 static val
* varonce290
;
2673 val
* var291
/* : String */;
2674 char* var292
/* : NativeString */;
2675 val
* var293
/* : FlatString */;
2676 static val
* varonce294
;
2677 val
* var295
/* : String */;
2678 char* var296
/* : NativeString */;
2679 val
* var297
/* : FlatString */;
2680 val
* var298
/* : Array[String] */;
2681 val
* var300
/* : Array[String] */;
2682 val
* var301
/* : nullable Object */;
2683 val
* var302
/* : String */;
2684 val
* var303
/* : ModelBuilder */;
2685 val
* var305
/* : ModelBuilder */;
2686 static val
* varonce306
;
2687 val
* var307
/* : String */;
2688 char* var308
/* : NativeString */;
2689 val
* var309
/* : FlatString */;
2690 val
* var311
/* : NativeArray[String] */;
2691 static val
* varonce310
;
2692 static val
* varonce312
;
2693 val
* var313
/* : String */;
2694 char* var314
/* : NativeString */;
2695 val
* var315
/* : FlatString */;
2696 static val
* varonce316
;
2697 val
* var317
/* : String */;
2698 char* var318
/* : NativeString */;
2699 val
* var319
/* : FlatString */;
2700 val
* var320
/* : String */;
2701 val
* var321
/* : MModule */;
2702 val
* var323
/* : MModule */;
2703 val
* var324
/* : Array[MPropDef] */;
2704 val
* var_propdefs
/* var propdefs: Array[MMethodDef] */;
2705 long var325
/* : Int */;
2706 long var327
/* : Int */;
2707 short int var328
/* : Bool */;
2708 short int var330
/* : Bool */;
2709 val
* var331
/* : ModelBuilder */;
2710 val
* var333
/* : ModelBuilder */;
2711 val
* var335
/* : NativeArray[String] */;
2712 static val
* varonce334
;
2713 static val
* varonce336
;
2714 val
* var337
/* : String */;
2715 char* var338
/* : NativeString */;
2716 val
* var339
/* : FlatString */;
2717 static val
* varonce340
;
2718 val
* var341
/* : String */;
2719 char* var342
/* : NativeString */;
2720 val
* var343
/* : FlatString */;
2721 static val
* varonce344
;
2722 val
* var345
/* : String */;
2723 char* var346
/* : NativeString */;
2724 val
* var347
/* : FlatString */;
2725 val
* var348
/* : String */;
2726 val
* var349
/* : String */;
2727 long var350
/* : Int */;
2728 long var352
/* : Int */;
2729 short int var353
/* : Bool */;
2730 short int var355
/* : Bool */;
2731 val
* var356
/* : nullable Object */;
2732 val
* var_mpropdef
/* var mpropdef: nullable Object */;
2733 val
* var357
/* : ModelBuilder */;
2734 val
* var359
/* : ModelBuilder */;
2735 static val
* varonce360
;
2736 val
* var361
/* : String */;
2737 char* var362
/* : NativeString */;
2738 val
* var363
/* : FlatString */;
2739 val
* var365
/* : NativeArray[String] */;
2740 static val
* varonce364
;
2741 static val
* varonce366
;
2742 val
* var367
/* : String */;
2743 char* var368
/* : NativeString */;
2744 val
* var369
/* : FlatString */;
2745 static val
* varonce370
;
2746 val
* var371
/* : String */;
2747 char* var372
/* : NativeString */;
2748 val
* var373
/* : FlatString */;
2749 static val
* varonce374
;
2750 val
* var375
/* : String */;
2751 char* var376
/* : NativeString */;
2752 val
* var377
/* : FlatString */;
2753 val
* var378
/* : String */;
2754 static val
* varonce379
;
2755 val
* var380
/* : String */;
2756 char* var381
/* : NativeString */;
2757 val
* var382
/* : FlatString */;
2758 val
* var383
/* : String */;
2759 val
* var384
/* : String */;
2760 val
* var385
/* : MPropDef */;
2761 val
* var387
/* : MPropDef */;
2762 val
* var388
/* : nullable MSignature */;
2763 val
* var389
/* : nullable MSignature */;
2764 val
* var391
/* : nullable MSignature */;
2765 val
* var392
/* : nullable MSignature */;
2766 val
* var394
/* : nullable MSignature */;
2767 val
* var_msignature
/* var msignature: nullable MSignature */;
2768 short int var395
/* : Bool */;
2769 short int var396
/* : Bool */;
2770 short int var398
/* : Bool */;
2771 short int var400
/* : Bool */;
2772 val
* var401
/* : MType */;
2773 short int var402
/* : Bool */;
2776 const char* var_class_name
;
2777 short int var_erasure_cast
/* var erasure_cast: Bool */;
2778 val
* var405
/* : nullable MSignature */;
2779 val
* var407
/* : nullable MSignature */;
2780 val
* var408
/* : nullable MType */;
2781 val
* var410
/* : nullable MType */;
2782 val
* var_rettype
/* var rettype: nullable MType */;
2783 short int var411
/* : Bool */;
2784 short int var412
/* : Bool */;
2785 short int var_413
/* var : Bool */;
2786 short int var414
/* : Bool */;
2787 short int var415
/* : Bool */;
2788 short int var417
/* : Bool */;
2789 short int var418
/* : Bool */;
2790 val
* var419
/* : MType */;
2791 short int var420
/* : Bool */;
2794 val
* var423
/* : nullable MType */;
2795 val
* var425
/* : nullable MType */;
2796 val
* var_erased_rettype
/* var erased_rettype: nullable MType */;
2797 short int var426
/* : Bool */;
2798 short int var427
/* : Bool */;
2799 short int var429
/* : Bool */;
2800 short int var430
/* : Bool */;
2801 val
* var431
/* : CallSite */;
2802 val
* var432
/* : MModule */;
2803 val
* var434
/* : MModule */;
2804 val
* var435
/* : nullable MClassType */;
2805 val
* var437
/* : nullable MClassType */;
2806 val
* var_callsite
/* var callsite: CallSite */;
2810 var_recv_is_self
= p3
;
2812 var1
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_recvtype
);
2814 var_unsafe_type
= var1
;
2815 /* <var_recvtype:MType> isa MNullType */
2816 cltype
= type_nit__MNullType
.color
;
2817 idtype
= type_nit__MNullType
.id
;
2818 if(cltype
>= var_recvtype
->type
->table_size
) {
2821 var2
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
2824 if (likely(varonce
!=NULL
)) {
2828 var5
= standard___standard__NativeString___to_s_with_length(var4
, 6l);
2833 var6
= nit__typing___nit__typing__TypeVisitor___get_mclass(self
, var_node
, var3
);
2835 var_objclass
= var6
;
2836 if (var_objclass
== NULL
) {
2837 var7
= 1; /* is null */
2839 var7
= 0; /* arg is null but recv is not */
2842 { /* Inline kernel#Object#== (var_objclass,((val*)NULL)) on <var_objclass:nullable MClass> */
2843 var_other
= ((val
*)NULL
);
2845 { /* Inline kernel#Object#is_same_instance (var_objclass,var_other) on <var_objclass:nullable MClass(MClass)> */
2846 var12
= var_objclass
== var_other
;
2849 RET_LABEL11
:(void)0;
2864 { /* Inline model#MClass#mclass_type (var_objclass) on <var_objclass:nullable MClass(MClass)> */
2865 var15
= var_objclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_objclass:nullable MClass(MClass)> */
2866 if (unlikely(var15
== NULL
)) {
2867 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2868 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 484);
2872 RET_LABEL14
:(void)0;
2875 var_unsafe_type
= var13
;
2879 var16
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
2881 var_mproperty
= var16
;
2882 if (likely(varonce18
!=NULL
)) {
2886 var21
= standard___standard__NativeString___to_s_with_length(var20
, 3l);
2891 var22
= ((short int(*)(val
* self
, val
* p0
))(var_name
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_name
, var19
); /* == on <var_name:String>*/
2895 if (var_mproperty
== NULL
) {
2896 var23
= 1; /* is null */
2898 var23
= 0; /* arg is null but recv is not */
2901 { /* Inline kernel#Object#== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
2902 var_other
= ((val
*)NULL
);
2904 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
2905 var28
= var_mproperty
== var_other
;
2908 RET_LABEL27
:(void)0;
2913 RET_LABEL25
:(void)0;
2922 if (likely(varonce29
!=NULL
)) {
2926 var32
= standard___standard__NativeString___to_s_with_length(var31
, 4l);
2932 var33
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
2934 var_mproperty
= var33
;
2937 if (var_mproperty
== NULL
) {
2938 var34
= 1; /* is null */
2940 var34
= 0; /* arg is null but recv is not */
2943 { /* Inline kernel#Object#== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
2944 var_other
= ((val
*)NULL
);
2946 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
2947 var39
= var_mproperty
== var_other
;
2950 RET_LABEL38
:(void)0;
2955 RET_LABEL36
:(void)0;
2960 if (var_recv_is_self
){
2962 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2963 var42
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2964 if (unlikely(var42
== NULL
)) {
2965 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2966 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
2970 RET_LABEL41
:(void)0;
2973 if (unlikely(varonce43
==NULL
)) {
2974 var44
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
2975 if (likely(varonce45
!=NULL
)) {
2978 var47
= "Error: method or variable `";
2979 var48
= standard___standard__NativeString___to_s_with_length(var47
, 27l);
2983 ((struct instance_standard__NativeArray
*)var44
)->values
[0]=var46
;
2984 if (likely(varonce49
!=NULL
)) {
2987 var51
= "` unknown in `";
2988 var52
= standard___standard__NativeString___to_s_with_length(var51
, 14l);
2992 ((struct instance_standard__NativeArray
*)var44
)->values
[2]=var50
;
2993 if (likely(varonce53
!=NULL
)) {
2997 var56
= standard___standard__NativeString___to_s_with_length(var55
, 2l);
3001 ((struct instance_standard__NativeArray
*)var44
)->values
[4]=var54
;
3006 ((struct instance_standard__NativeArray
*)var44
)->values
[1]=var_name
;
3008 var57
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:MType>*/
3010 ((struct instance_standard__NativeArray
*)var44
)->values
[3]=var57
;
3012 var58
= ((val
*(*)(val
* self
))(var44
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var44
); /* native_to_s on <var44:NativeArray[String]>*/
3016 nit___nit__ModelBuilder___error(var40
, var_node
, var58
); /* Direct call modelbuilder_base#ModelBuilder#error on <var40:ModelBuilder>*/
3020 var59
= ((short int(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_nit__model__MType__need_anchor
]))(var_recvtype
); /* need_anchor on <var_recvtype:MType>*/
3024 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3025 var62
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3026 if (unlikely(var62
== NULL
)) {
3027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3028 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3032 RET_LABEL61
:(void)0;
3035 if (unlikely(varonce63
==NULL
)) {
3036 var64
= NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String
);
3037 if (likely(varonce65
!=NULL
)) {
3040 var67
= "Error: method `";
3041 var68
= standard___standard__NativeString___to_s_with_length(var67
, 15l);
3045 ((struct instance_standard__NativeArray
*)var64
)->values
[0]=var66
;
3046 if (likely(varonce69
!=NULL
)) {
3049 var71
= "` does not exists in `";
3050 var72
= standard___standard__NativeString___to_s_with_length(var71
, 22l);
3054 ((struct instance_standard__NativeArray
*)var64
)->values
[2]=var70
;
3055 if (likely(varonce73
!=NULL
)) {
3059 var76
= standard___standard__NativeString___to_s_with_length(var75
, 2l);
3063 ((struct instance_standard__NativeArray
*)var64
)->values
[4]=var74
;
3064 if (likely(varonce77
!=NULL
)) {
3068 var80
= standard___standard__NativeString___to_s_with_length(var79
, 2l);
3072 ((struct instance_standard__NativeArray
*)var64
)->values
[6]=var78
;
3077 ((struct instance_standard__NativeArray
*)var64
)->values
[1]=var_name
;
3079 var81
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:MType>*/
3081 ((struct instance_standard__NativeArray
*)var64
)->values
[3]=var81
;
3083 var82
= ((val
*(*)(val
* self
))(var_unsafe_type
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_unsafe_type
); /* to_s on <var_unsafe_type:MType>*/
3085 ((struct instance_standard__NativeArray
*)var64
)->values
[5]=var82
;
3087 var83
= ((val
*(*)(val
* self
))(var64
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var64
); /* native_to_s on <var64:NativeArray[String]>*/
3091 nit___nit__ModelBuilder___error(var60
, var_node
, var83
); /* Direct call modelbuilder_base#ModelBuilder#error on <var60:ModelBuilder>*/
3095 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3096 var86
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3097 if (unlikely(var86
== NULL
)) {
3098 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3099 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3103 RET_LABEL85
:(void)0;
3106 if (unlikely(varonce87
==NULL
)) {
3107 var88
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
3108 if (likely(varonce89
!=NULL
)) {
3111 var91
= "Error: method `";
3112 var92
= standard___standard__NativeString___to_s_with_length(var91
, 15l);
3116 ((struct instance_standard__NativeArray
*)var88
)->values
[0]=var90
;
3117 if (likely(varonce93
!=NULL
)) {
3120 var95
= "` does not exists in `";
3121 var96
= standard___standard__NativeString___to_s_with_length(var95
, 22l);
3125 ((struct instance_standard__NativeArray
*)var88
)->values
[2]=var94
;
3126 if (likely(varonce97
!=NULL
)) {
3130 var100
= standard___standard__NativeString___to_s_with_length(var99
, 2l);
3134 ((struct instance_standard__NativeArray
*)var88
)->values
[4]=var98
;
3139 ((struct instance_standard__NativeArray
*)var88
)->values
[1]=var_name
;
3141 var101
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:MType>*/
3143 ((struct instance_standard__NativeArray
*)var88
)->values
[3]=var101
;
3145 var102
= ((val
*(*)(val
* self
))(var88
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var88
); /* native_to_s on <var88:NativeArray[String]>*/
3149 nit___nit__ModelBuilder___error(var84
, var_node
, var102
); /* Direct call modelbuilder_base#ModelBuilder#error on <var84:ModelBuilder>*/
3157 /* <var_mproperty:nullable MProperty(MProperty)> isa MMethod */
3158 cltype104
= type_nit__MMethod
.color
;
3159 idtype105
= type_nit__MMethod
.id
;
3160 if(cltype104
>= var_mproperty
->type
->table_size
) {
3163 var103
= var_mproperty
->type
->type_table
[cltype104
] == idtype105
;
3165 if (unlikely(!var103
)) {
3166 PRINT_ERROR("Runtime error: %s", "Assert failed");
3167 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 326);
3170 /* <var_recvtype:MType> isa MNullType */
3171 cltype108
= type_nit__MNullType
.color
;
3172 idtype109
= type_nit__MNullType
.id
;
3173 if(cltype108
>= var_recvtype
->type
->table_size
) {
3176 var107
= var_recvtype
->type
->type_table
[cltype108
] == idtype109
;
3181 var111
= nit___nit__MMethod___is_null_safe(var_mproperty
);
3189 if (unlikely(varonce113
==NULL
)) {
3190 var114
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3191 if (likely(varonce115
!=NULL
)) {
3192 var116
= varonce115
;
3194 var117
= "Error: method `";
3195 var118
= standard___standard__NativeString___to_s_with_length(var117
, 15l);
3197 varonce115
= var116
;
3199 ((struct instance_standard__NativeArray
*)var114
)->values
[0]=var116
;
3200 if (likely(varonce119
!=NULL
)) {
3201 var120
= varonce119
;
3203 var121
= "` called on `null`.";
3204 var122
= standard___standard__NativeString___to_s_with_length(var121
, 19l);
3206 varonce119
= var120
;
3208 ((struct instance_standard__NativeArray
*)var114
)->values
[2]=var120
;
3210 var114
= varonce113
;
3213 ((struct instance_standard__NativeArray
*)var114
)->values
[1]=var_name
;
3215 var123
= ((val
*(*)(val
* self
))(var114
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var114
); /* native_to_s on <var114:NativeArray[String]>*/
3217 varonce113
= var114
;
3219 nit__typing___nit__typing__TypeVisitor___error(self
, var_node
, var123
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3224 /* <var_unsafe_type:MType> isa MNullableType */
3225 cltype126
= type_nit__MNullableType
.color
;
3226 idtype127
= type_nit__MNullableType
.id
;
3227 if(cltype126
>= var_unsafe_type
->type
->table_size
) {
3230 var125
= var_unsafe_type
->type
->type_table
[cltype126
] == idtype127
;
3235 var129
= nit___nit__MMethod___is_null_safe(var_mproperty
);
3244 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3245 var133
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3246 if (unlikely(var133
== NULL
)) {
3247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3248 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3252 RET_LABEL132
:(void)0;
3255 if (likely(varonce134
!=NULL
)) {
3256 var135
= varonce134
;
3258 var136
= "call-on-nullable";
3259 var137
= standard___standard__NativeString___to_s_with_length(var136
, 16l);
3261 varonce134
= var135
;
3263 if (unlikely(varonce138
==NULL
)) {
3264 var139
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3265 if (likely(varonce140
!=NULL
)) {
3266 var141
= varonce140
;
3268 var142
= "Warning: method call on a nullable receiver `";
3269 var143
= standard___standard__NativeString___to_s_with_length(var142
, 45l);
3271 varonce140
= var141
;
3273 ((struct instance_standard__NativeArray
*)var139
)->values
[0]=var141
;
3274 if (likely(varonce144
!=NULL
)) {
3275 var145
= varonce144
;
3278 var147
= standard___standard__NativeString___to_s_with_length(var146
, 2l);
3280 varonce144
= var145
;
3282 ((struct instance_standard__NativeArray
*)var139
)->values
[2]=var145
;
3284 var139
= varonce138
;
3288 var148
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:MType>*/
3290 ((struct instance_standard__NativeArray
*)var139
)->values
[1]=var148
;
3292 var149
= ((val
*(*)(val
* self
))(var139
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var139
); /* native_to_s on <var139:NativeArray[String]>*/
3294 varonce138
= var139
;
3296 nit___nit__ModelBuilder___advice(var131
, var_node
, var135
, var149
); /* Direct call modelbuilder_base#ModelBuilder#advice on <var131:ModelBuilder>*/
3302 { /* Inline typing#TypeVisitor#is_toplevel_context (self) on <self:TypeVisitor> */
3303 var154
= self
->attrs
[COLOR_nit__typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <self:TypeVisitor> */
3305 RET_LABEL153
:(void)0;
3310 var151
= var_recv_is_self
;
3317 { /* Inline model#MMethod#is_toplevel (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3318 var159
= var_mproperty
->attrs
[COLOR_nit__model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mproperty:nullable MProperty(MMethod)> */
3320 RET_LABEL158
:(void)0;
3329 if (unlikely(varonce161
==NULL
)) {
3330 var162
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3331 if (likely(varonce163
!=NULL
)) {
3332 var164
= varonce163
;
3334 var165
= "Error: `";
3335 var166
= standard___standard__NativeString___to_s_with_length(var165
, 8l);
3337 varonce163
= var164
;
3339 ((struct instance_standard__NativeArray
*)var162
)->values
[0]=var164
;
3340 if (likely(varonce167
!=NULL
)) {
3341 var168
= varonce167
;
3343 var169
= "` is not a top-level method, thus need a receiver.";
3344 var170
= standard___standard__NativeString___to_s_with_length(var169
, 50l);
3346 varonce167
= var168
;
3348 ((struct instance_standard__NativeArray
*)var162
)->values
[2]=var168
;
3350 var162
= varonce161
;
3353 ((struct instance_standard__NativeArray
*)var162
)->values
[1]=var_name
;
3355 var171
= ((val
*(*)(val
* self
))(var162
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var162
); /* native_to_s on <var162:NativeArray[String]>*/
3357 varonce161
= var162
;
3359 nit__typing___nit__typing__TypeVisitor___error(self
, var_node
, var171
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3363 var173
= !var_recv_is_self
;
3367 { /* Inline model#MMethod#is_toplevel (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3368 var177
= var_mproperty
->attrs
[COLOR_nit__model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mproperty:nullable MProperty(MMethod)> */
3370 RET_LABEL176
:(void)0;
3378 if (unlikely(varonce178
==NULL
)) {
3379 var179
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3380 if (likely(varonce180
!=NULL
)) {
3381 var181
= varonce180
;
3383 var182
= "Error: cannot call `";
3384 var183
= standard___standard__NativeString___to_s_with_length(var182
, 20l);
3386 varonce180
= var181
;
3388 ((struct instance_standard__NativeArray
*)var179
)->values
[0]=var181
;
3389 if (likely(varonce184
!=NULL
)) {
3390 var185
= varonce184
;
3392 var186
= "`, a top-level method, with a receiver.";
3393 var187
= standard___standard__NativeString___to_s_with_length(var186
, 39l);
3395 varonce184
= var185
;
3397 ((struct instance_standard__NativeArray
*)var179
)->values
[2]=var185
;
3399 var179
= varonce178
;
3402 ((struct instance_standard__NativeArray
*)var179
)->values
[1]=var_name
;
3404 var188
= ((val
*(*)(val
* self
))(var179
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var179
); /* native_to_s on <var179:NativeArray[String]>*/
3406 varonce178
= var179
;
3408 nit__typing___nit__typing__TypeVisitor___error(self
, var_node
, var188
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3413 { /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3414 var194
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___visibility
].val
; /* _visibility on <var_mproperty:nullable MProperty(MMethod)> */
3415 if (unlikely(var194
== NULL
)) {
3416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
3417 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1949);
3421 RET_LABEL193
:(void)0;
3426 var196
= nit__model_base___standard__Sys___protected_visibility(var195
);
3429 { /* Inline kernel#Object#== (var192,var196) on <var192:MVisibility> */
3432 { /* Inline kernel#Object#is_same_instance (var192,var_other) on <var192:MVisibility> */
3433 var201
= var192
== var_other
;
3436 RET_LABEL200
:(void)0;
3441 RET_LABEL198
:(void)0;
3446 var203
= !var_recv_is_self
;
3454 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3455 var207
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3456 if (unlikely(var207
== NULL
)) {
3457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3458 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
3462 RET_LABEL206
:(void)0;
3466 { /* Inline model#MProperty#intro_mclassdef (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3467 var210
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)> */
3468 if (unlikely(var210
== NULL
)) {
3469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
3470 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1928);
3474 RET_LABEL209
:(void)0;
3478 { /* Inline model#MClassDef#mmodule (var208) on <var208:MClassDef> */
3479 var213
= var208
->attrs
[COLOR_nit__model__MClassDef___mmodule
].val
; /* _mmodule on <var208:MClassDef> */
3480 if (unlikely(var213
== NULL
)) {
3481 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3482 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 550);
3486 RET_LABEL212
:(void)0;
3490 var214
= nit___nit__MModule___visibility_for(var205
, var211
);
3494 var216
= nit__model_base___standard__Sys___intrude_visibility(var215
);
3497 var217
= nit___nit__MVisibility___standard__kernel__Comparable___60d(var214
, var216
);
3506 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3507 var221
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3508 if (unlikely(var221
== NULL
)) {
3509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3510 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3514 RET_LABEL220
:(void)0;
3518 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var219) on <var219:ModelBuilder> */
3519 var224
= var219
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var219:ModelBuilder> */
3520 if (unlikely(var224
== NULL
)) {
3521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3522 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
3526 RET_LABEL223
:(void)0;
3530 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (var222) on <var222:ToolContext> */
3531 var227
= var222
->attrs
[COLOR_nit__modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <var222:ToolContext> */
3532 if (unlikely(var227
== NULL
)) {
3533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
3534 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder
, 27);
3538 RET_LABEL226
:(void)0;
3542 { /* Inline opts#Option#value (var225) on <var225:OptionBool> */
3543 var230
= var225
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var225:OptionBool> */
3545 RET_LABEL229
:(void)0;
3548 var231
= (short int)((long)(var228
)>>2);
3556 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3557 var235
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3558 if (unlikely(var235
== NULL
)) {
3559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3560 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3564 RET_LABEL234
:(void)0;
3567 if (unlikely(varonce236
==NULL
)) {
3568 var237
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3569 if (likely(varonce238
!=NULL
)) {
3570 var239
= varonce238
;
3572 var240
= "Error: method `";
3573 var241
= standard___standard__NativeString___to_s_with_length(var240
, 15l);
3575 varonce238
= var239
;
3577 ((struct instance_standard__NativeArray
*)var237
)->values
[0]=var239
;
3578 if (likely(varonce242
!=NULL
)) {
3579 var243
= varonce242
;
3581 var244
= "` is protected and can only accessed by `self`.";
3582 var245
= standard___standard__NativeString___to_s_with_length(var244
, 47l);
3584 varonce242
= var243
;
3586 ((struct instance_standard__NativeArray
*)var237
)->values
[2]=var243
;
3588 var237
= varonce236
;
3591 ((struct instance_standard__NativeArray
*)var237
)->values
[1]=var_name
;
3593 var246
= ((val
*(*)(val
* self
))(var237
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var237
); /* native_to_s on <var237:NativeArray[String]>*/
3595 varonce236
= var237
;
3597 nit___nit__ModelBuilder___error(var233
, var_node
, var246
); /* Direct call modelbuilder_base#ModelBuilder#error on <var233:ModelBuilder>*/
3604 { /* Inline mdoc#MEntity#deprecation (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3605 var249
= var_mproperty
->attrs
[COLOR_nit__mdoc__MEntity___deprecation
].val
; /* _deprecation on <var_mproperty:nullable MProperty(MMethod)> */
3607 RET_LABEL248
:(void)0;
3611 if (var_info
== NULL
) {
3612 var251
= 0; /* is null */
3614 var251
= 1; /* arg is null and recv is not */
3617 { /* Inline kernel#Object#!= (var_info,((val*)NULL)) on <var_info:nullable MDeprecationInfo> */
3618 var_other254
= ((val
*)NULL
);
3620 var255
= ((short int(*)(val
* self
, val
* p0
))(var_info
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_info
, var_other254
); /* == on <var_info:nullable MDeprecationInfo(MDeprecationInfo)>*/
3625 RET_LABEL253
:(void)0;
3632 { /* Inline typing#TypeVisitor#mpropdef (self) on <self:TypeVisitor> */
3633 var260
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
3635 RET_LABEL259
:(void)0;
3638 if (var258
== NULL
) {
3639 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3640 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 349);
3643 { /* Inline model#MPropDef#mproperty (var258) on <var258:nullable MPropDef> */
3644 if (unlikely(var258
== NULL
)) {
3645 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3646 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2212);
3649 var263
= var258
->attrs
[COLOR_nit__model__MPropDef___mproperty
].val
; /* _mproperty on <var258:nullable MPropDef> */
3650 if (unlikely(var263
== NULL
)) {
3651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3652 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2212);
3656 RET_LABEL262
:(void)0;
3660 { /* Inline mdoc#MEntity#deprecation (var261) on <var261:MProperty> */
3661 var266
= var261
->attrs
[COLOR_nit__mdoc__MEntity___deprecation
].val
; /* _deprecation on <var261:MProperty> */
3663 RET_LABEL265
:(void)0;
3666 if (var264
== NULL
) {
3667 var267
= 1; /* is null */
3669 var267
= 0; /* arg is null but recv is not */
3672 { /* Inline kernel#Object#== (var264,((val*)NULL)) on <var264:nullable MDeprecationInfo> */
3673 var_other
= ((val
*)NULL
);
3675 { /* Inline kernel#Object#is_same_instance (var264,var_other) on <var264:nullable MDeprecationInfo(MDeprecationInfo)> */
3676 var272
= var264
== var_other
;
3679 RET_LABEL271
:(void)0;
3684 RET_LABEL269
:(void)0;
3694 { /* Inline mdoc#MDeprecationInfo#mdoc (var_info) on <var_info:nullable MDeprecationInfo(MDeprecationInfo)> */
3695 var275
= var_info
->attrs
[COLOR_nit__mdoc__MDeprecationInfo___mdoc
].val
; /* _mdoc on <var_info:nullable MDeprecationInfo(MDeprecationInfo)> */
3697 RET_LABEL274
:(void)0;
3701 if (var_mdoc
== NULL
) {
3702 var276
= 0; /* is null */
3704 var276
= 1; /* arg is null and recv is not */
3707 { /* Inline kernel#Object#!= (var_mdoc,((val*)NULL)) on <var_mdoc:nullable MDoc> */
3708 var_other254
= ((val
*)NULL
);
3710 var279
= ((short int(*)(val
* self
, val
* p0
))(var_mdoc
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mdoc
, var_other254
); /* == on <var_mdoc:nullable MDoc(MDoc)>*/
3715 RET_LABEL278
:(void)0;
3721 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3722 var283
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3723 if (unlikely(var283
== NULL
)) {
3724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3725 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3729 RET_LABEL282
:(void)0;
3732 if (likely(varonce284
!=NULL
)) {
3733 var285
= varonce284
;
3735 var286
= "deprecated-method";
3736 var287
= standard___standard__NativeString___to_s_with_length(var286
, 17l);
3738 varonce284
= var285
;
3740 if (unlikely(varonce288
==NULL
)) {
3741 var289
= NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String
);
3742 if (likely(varonce290
!=NULL
)) {
3743 var291
= varonce290
;
3745 var292
= "Deprecation Warning: method `";
3746 var293
= standard___standard__NativeString___to_s_with_length(var292
, 29l);
3748 varonce290
= var291
;
3750 ((struct instance_standard__NativeArray
*)var289
)->values
[0]=var291
;
3751 if (likely(varonce294
!=NULL
)) {
3752 var295
= varonce294
;
3754 var296
= "` is deprecated: ";
3755 var297
= standard___standard__NativeString___to_s_with_length(var296
, 17l);
3757 varonce294
= var295
;
3759 ((struct instance_standard__NativeArray
*)var289
)->values
[2]=var295
;
3761 var289
= varonce288
;
3764 ((struct instance_standard__NativeArray
*)var289
)->values
[1]=var_name
;
3766 { /* Inline mdoc#MDoc#content (var_mdoc) on <var_mdoc:nullable MDoc(MDoc)> */
3767 var300
= var_mdoc
->attrs
[COLOR_nit__mdoc__MDoc___content
].val
; /* _content on <var_mdoc:nullable MDoc(MDoc)> */
3768 if (unlikely(var300
== NULL
)) {
3769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
3770 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mdoc
, 23);
3774 RET_LABEL299
:(void)0;
3778 var301
= standard___standard__SequenceRead___Collection__first(var298
);
3780 ((struct instance_standard__NativeArray
*)var289
)->values
[3]=var301
;
3782 var302
= ((val
*(*)(val
* self
))(var289
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var289
); /* native_to_s on <var289:NativeArray[String]>*/
3784 varonce288
= var289
;
3786 nit___nit__ModelBuilder___warning(var281
, var_node
, var285
, var302
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var281:ModelBuilder>*/
3790 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3791 var305
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3792 if (unlikely(var305
== NULL
)) {
3793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3794 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3798 RET_LABEL304
:(void)0;
3801 if (likely(varonce306
!=NULL
)) {
3802 var307
= varonce306
;
3804 var308
= "deprecated-method";
3805 var309
= standard___standard__NativeString___to_s_with_length(var308
, 17l);
3807 varonce306
= var307
;
3809 if (unlikely(varonce310
==NULL
)) {
3810 var311
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
3811 if (likely(varonce312
!=NULL
)) {
3812 var313
= varonce312
;
3814 var314
= "Deprecation Warning: method `";
3815 var315
= standard___standard__NativeString___to_s_with_length(var314
, 29l);
3817 varonce312
= var313
;
3819 ((struct instance_standard__NativeArray
*)var311
)->values
[0]=var313
;
3820 if (likely(varonce316
!=NULL
)) {
3821 var317
= varonce316
;
3823 var318
= "` is deprecated.";
3824 var319
= standard___standard__NativeString___to_s_with_length(var318
, 16l);
3826 varonce316
= var317
;
3828 ((struct instance_standard__NativeArray
*)var311
)->values
[2]=var317
;
3830 var311
= varonce310
;
3833 ((struct instance_standard__NativeArray
*)var311
)->values
[1]=var_name
;
3835 var320
= ((val
*(*)(val
* self
))(var311
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var311
); /* native_to_s on <var311:NativeArray[String]>*/
3837 varonce310
= var311
;
3839 nit___nit__ModelBuilder___warning(var303
, var_node
, var307
, var320
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var303:ModelBuilder>*/
3845 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3846 var323
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3847 if (unlikely(var323
== NULL
)) {
3848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3849 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
3853 RET_LABEL322
:(void)0;
3857 var324
= nit___nit__MProperty___lookup_definitions(var_mproperty
, var321
, var_unsafe_type
);
3859 var_propdefs
= var324
;
3861 { /* Inline array#AbstractArrayRead#length (var_propdefs) on <var_propdefs:Array[MMethodDef]> */
3862 var327
= var_propdefs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_propdefs:Array[MMethodDef]> */
3864 RET_LABEL326
:(void)0;
3868 { /* Inline kernel#Int#== (var325,0l) on <var325:Int> */
3869 var330
= var325
== 0l;
3872 RET_LABEL329
:(void)0;
3877 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3878 var333
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3879 if (unlikely(var333
== NULL
)) {
3880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3881 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3885 RET_LABEL332
:(void)0;
3888 if (unlikely(varonce334
==NULL
)) {
3889 var335
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
3890 if (likely(varonce336
!=NULL
)) {
3891 var337
= varonce336
;
3893 var338
= "Type Error: no definition found for property `";
3894 var339
= standard___standard__NativeString___to_s_with_length(var338
, 46l);
3896 varonce336
= var337
;
3898 ((struct instance_standard__NativeArray
*)var335
)->values
[0]=var337
;
3899 if (likely(varonce340
!=NULL
)) {
3900 var341
= varonce340
;
3903 var343
= standard___standard__NativeString___to_s_with_length(var342
, 6l);
3905 varonce340
= var341
;
3907 ((struct instance_standard__NativeArray
*)var335
)->values
[2]=var341
;
3908 if (likely(varonce344
!=NULL
)) {
3909 var345
= varonce344
;
3912 var347
= standard___standard__NativeString___to_s_with_length(var346
, 2l);
3914 varonce344
= var345
;
3916 ((struct instance_standard__NativeArray
*)var335
)->values
[4]=var345
;
3918 var335
= varonce334
;
3921 ((struct instance_standard__NativeArray
*)var335
)->values
[1]=var_name
;
3923 var348
= ((val
*(*)(val
* self
))(var_unsafe_type
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_unsafe_type
); /* to_s on <var_unsafe_type:MType>*/
3925 ((struct instance_standard__NativeArray
*)var335
)->values
[3]=var348
;
3927 var349
= ((val
*(*)(val
* self
))(var335
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var335
); /* native_to_s on <var335:NativeArray[String]>*/
3929 varonce334
= var335
;
3931 nit___nit__ModelBuilder___error(var331
, var_node
, var349
); /* Direct call modelbuilder_base#ModelBuilder#error on <var331:ModelBuilder>*/
3937 { /* Inline array#AbstractArrayRead#length (var_propdefs) on <var_propdefs:Array[MMethodDef]> */
3938 var352
= var_propdefs
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_propdefs:Array[MMethodDef]> */
3940 RET_LABEL351
:(void)0;
3944 { /* Inline kernel#Int#== (var350,1l) on <var350:Int> */
3945 var355
= var350
== 1l;
3948 RET_LABEL354
:(void)0;
3953 var356
= standard___standard__SequenceRead___Collection__first(var_propdefs
);
3955 var_mpropdef
= var356
;
3958 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3959 var359
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3960 if (unlikely(var359
== NULL
)) {
3961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3962 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
3966 RET_LABEL358
:(void)0;
3969 if (likely(varonce360
!=NULL
)) {
3970 var361
= varonce360
;
3972 var362
= "property-conflict";
3973 var363
= standard___standard__NativeString___to_s_with_length(var362
, 17l);
3975 varonce360
= var361
;
3977 if (unlikely(varonce364
==NULL
)) {
3978 var365
= NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String
);
3979 if (likely(varonce366
!=NULL
)) {
3980 var367
= varonce366
;
3982 var368
= "Warning: conflicting property definitions for property `";
3983 var369
= standard___standard__NativeString___to_s_with_length(var368
, 56l);
3985 varonce366
= var367
;
3987 ((struct instance_standard__NativeArray
*)var365
)->values
[0]=var367
;
3988 if (likely(varonce370
!=NULL
)) {
3989 var371
= varonce370
;
3992 var373
= standard___standard__NativeString___to_s_with_length(var372
, 6l);
3994 varonce370
= var371
;
3996 ((struct instance_standard__NativeArray
*)var365
)->values
[2]=var371
;
3997 if (likely(varonce374
!=NULL
)) {
3998 var375
= varonce374
;
4001 var377
= standard___standard__NativeString___to_s_with_length(var376
, 3l);
4003 varonce374
= var375
;
4005 ((struct instance_standard__NativeArray
*)var365
)->values
[4]=var375
;
4007 var365
= varonce364
;
4010 ((struct instance_standard__NativeArray
*)var365
)->values
[1]=var_name
;
4012 var378
= ((val
*(*)(val
* self
))(var_unsafe_type
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_unsafe_type
); /* to_s on <var_unsafe_type:MType>*/
4014 ((struct instance_standard__NativeArray
*)var365
)->values
[3]=var378
;
4015 if (likely(varonce379
!=NULL
)) {
4016 var380
= varonce379
;
4019 var382
= standard___standard__NativeString___to_s_with_length(var381
, 1l);
4021 varonce379
= var380
;
4024 var383
= standard__string___Collection___join(var_propdefs
, var380
);
4026 ((struct instance_standard__NativeArray
*)var365
)->values
[5]=var383
;
4028 var384
= ((val
*(*)(val
* self
))(var365
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var365
); /* native_to_s on <var365:NativeArray[String]>*/
4030 varonce364
= var365
;
4032 nit___nit__ModelBuilder___warning(var357
, var_node
, var361
, var384
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var357:ModelBuilder>*/
4035 { /* Inline model#MProperty#intro (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
4036 var387
= var_mproperty
->attrs
[COLOR_nit__model__MProperty___intro
].val
; /* _intro on <var_mproperty:nullable MProperty(MMethod)> */
4037 if (unlikely(var387
== NULL
)) {
4038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4039 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1968);
4043 RET_LABEL386
:(void)0;
4046 var_mpropdef
= var385
;
4050 { /* Inline model#MMethodDef#new_msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4051 var391
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___new_msignature
].val
; /* _new_msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4053 RET_LABEL390
:(void)0;
4060 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4061 var394
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4063 RET_LABEL393
:(void)0;
4068 var_msignature
= var388
;
4069 if (var_msignature
== NULL
) {
4070 var395
= 1; /* is null */
4072 var395
= 0; /* arg is null but recv is not */
4075 { /* Inline kernel#Object#== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
4076 var_other
= ((val
*)NULL
);
4078 { /* Inline kernel#Object#is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
4079 var400
= var_msignature
== var_other
;
4082 RET_LABEL399
:(void)0;
4087 RET_LABEL397
:(void)0;
4097 var401
= nit__typing___nit__typing__TypeVisitor___resolve_for(self
, var_msignature
, var_recvtype
, var_recv_is_self
);
4099 /* <var401:MType> isa MSignature */
4100 cltype403
= type_nit__MSignature
.color
;
4101 idtype404
= type_nit__MSignature
.id
;
4102 if(cltype403
>= var401
->type
->table_size
) {
4105 var402
= var401
->type
->type_table
[cltype403
] == idtype404
;
4107 if (unlikely(!var402
)) {
4108 var_class_name
= var401
== NULL ?
"null" : var401
->type
->name
;
4109 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
4110 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 373);
4113 var_msignature
= var401
;
4114 var_erasure_cast
= 0;
4116 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4117 var407
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4119 RET_LABEL406
:(void)0;
4122 if (var405
== NULL
) {
4123 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4124 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 376);
4127 { /* Inline model#MSignature#return_mtype (var405) on <var405:nullable MSignature> */
4128 if (unlikely(var405
== NULL
)) {
4129 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4130 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1768);
4133 var410
= var405
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var405:nullable MSignature> */
4135 RET_LABEL409
:(void)0;
4138 var_rettype
= var408
;
4139 var412
= !var_recv_is_self
;
4142 if (var_rettype
== NULL
) {
4143 var414
= 0; /* is null */
4145 var414
= 1; /* arg is null and recv is not */
4148 { /* Inline kernel#Object#!= (var_rettype,((val*)NULL)) on <var_rettype:nullable MType> */
4149 var_other254
= ((val
*)NULL
);
4151 var417
= ((short int(*)(val
* self
, val
* p0
))(var_rettype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rettype
, var_other254
); /* == on <var_rettype:nullable MType(MType)>*/
4156 RET_LABEL416
:(void)0;
4166 var419
= ((val
*(*)(val
* self
))(var_rettype
->class->vft
[COLOR_nit__model__MType__undecorate
]))(var_rettype
); /* undecorate on <var_rettype:nullable MType(MType)>*/
4168 var_rettype
= var419
;
4169 /* <var_rettype:nullable MType(MType)> isa MParameterType */
4170 cltype421
= type_nit__MParameterType
.color
;
4171 idtype422
= type_nit__MParameterType
.id
;
4172 if(cltype421
>= var_rettype
->type
->table_size
) {
4175 var420
= var_rettype
->type
->type_table
[cltype421
] == idtype422
;
4179 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
4180 var425
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
4182 RET_LABEL424
:(void)0;
4185 var_erased_rettype
= var423
;
4186 if (var_erased_rettype
== NULL
) {
4187 var426
= 0; /* is null */
4189 var426
= 1; /* arg is null and recv is not */
4192 { /* Inline kernel#Object#!= (var_erased_rettype,((val*)NULL)) on <var_erased_rettype:nullable MType> */
4193 var_other254
= ((val
*)NULL
);
4195 var429
= ((short int(*)(val
* self
, val
* p0
))(var_erased_rettype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_erased_rettype
, var_other254
); /* == on <var_erased_rettype:nullable MType(MType)>*/
4200 RET_LABEL428
:(void)0;
4204 if (unlikely(!var426
)) {
4205 PRINT_ERROR("Runtime error: %s", "Assert failed");
4206 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 381);
4209 var_erasure_cast
= 1;
4214 var431
= NEW_nit__CallSite(&type_nit__CallSite
);
4216 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
4217 var434
= self
->attrs
[COLOR_nit__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
4218 if (unlikely(var434
== NULL
)) {
4219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4220 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 36);
4224 RET_LABEL433
:(void)0;
4228 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
4229 var437
= self
->attrs
[COLOR_nit__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
4231 RET_LABEL436
:(void)0;
4235 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__node_61d
]))(var431
, var_node
); /* node= on <var431:CallSite>*/
4238 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__recv_61d
]))(var431
, var_recvtype
); /* recv= on <var431:CallSite>*/
4241 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__mmodule_61d
]))(var431
, var432
); /* mmodule= on <var431:CallSite>*/
4244 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__anchor_61d
]))(var431
, var435
); /* anchor= on <var431:CallSite>*/
4247 ((void(*)(val
* self
, short int p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__recv_is_self_61d
]))(var431
, var_recv_is_self
); /* recv_is_self= on <var431:CallSite>*/
4250 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__mproperty_61d
]))(var431
, var_mproperty
); /* mproperty= on <var431:CallSite>*/
4253 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__mpropdef_61d
]))(var431
, var_mpropdef
); /* mpropdef= on <var431:CallSite>*/
4256 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__msignature_61d
]))(var431
, var_msignature
); /* msignature= on <var431:CallSite>*/
4259 ((void(*)(val
* self
, short int p0
))(var431
->class->vft
[COLOR_nit__typing__CallSite__erasure_cast_61d
]))(var431
, var_erasure_cast
); /* erasure_cast= on <var431:CallSite>*/
4262 ((void(*)(val
* self
))(var431
->class->vft
[COLOR_standard__kernel__Object__init
]))(var431
); /* init on <var431:CallSite>*/
4264 var_callsite
= var431
;
4270 /* method typing#TypeVisitor#try_get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
4271 val
* nit__typing___nit__typing__TypeVisitor___try_get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4272 val
* var
/* : nullable CallSite */;
4273 val
* var_node
/* var node: ANode */;
4274 val
* var_recvtype
/* var recvtype: MType */;
4275 val
* var_name
/* var name: String */;
4276 short int var_recv_is_self
/* var recv_is_self: Bool */;
4277 val
* var1
/* : MType */;
4278 val
* var_unsafe_type
/* var unsafe_type: MType */;
4279 val
* var2
/* : nullable MProperty */;
4280 val
* var_mproperty
/* var mproperty: nullable MProperty */;
4281 short int var3
/* : Bool */;
4282 short int var4
/* : Bool */;
4283 val
* var_other
/* var other: nullable Object */;
4284 short int var6
/* : Bool */;
4285 short int var8
/* : Bool */;
4286 val
* var9
/* : nullable CallSite */;
4290 var_recv_is_self
= p3
;
4292 var1
= nit__typing___nit__typing__TypeVisitor___anchor_to(self
, var_recvtype
);
4294 var_unsafe_type
= var1
;
4296 var2
= nit__typing___nit__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
4298 var_mproperty
= var2
;
4299 if (var_mproperty
== NULL
) {
4300 var3
= 1; /* is null */
4302 var3
= 0; /* arg is null but recv is not */
4305 { /* Inline kernel#Object#== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
4306 var_other
= ((val
*)NULL
);
4308 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
4309 var8
= var_mproperty
== var_other
;
4327 var9
= nit__typing___nit__typing__TypeVisitor___get_method(self
, var_node
, var_recvtype
, var_name
, var_recv_is_self
);
4334 /* method typing#TypeVisitor#check_signature for (self: TypeVisitor, ANode, Array[AExpr], MProperty, MSignature): nullable SignatureMap */
4335 val
* nit__typing___nit__typing__TypeVisitor___check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
4336 val
* var
/* : nullable SignatureMap */;
4337 val
* var_node
/* var node: ANode */;
4338 val
* var_args
/* var args: Array[AExpr] */;
4339 val
* var_mproperty
/* var mproperty: MProperty */;
4340 val
* var_msignature
/* var msignature: MSignature */;
4341 long var1
/* : Int */;
4342 long var3
/* : Int */;
4343 long var_vararg_rank
/* var vararg_rank: Int */;
4344 short int var4
/* : Bool */;
4345 short int var6
/* : Bool */;
4348 const char* var_class_name
;
4349 short int var7
/* : Bool */;
4350 long var8
/* : Int */;
4351 long var10
/* : Int */;
4352 long var11
/* : Int */;
4353 short int var12
/* : Bool */;
4354 short int var14
/* : Bool */;
4357 const char* var_class_name17
;
4358 short int var18
/* : Bool */;
4359 val
* var19
/* : ModelBuilder */;
4360 val
* var21
/* : ModelBuilder */;
4361 val
* var22
/* : NativeArray[String] */;
4362 static val
* varonce
;
4363 static val
* varonce23
;
4364 val
* var24
/* : String */;
4365 char* var25
/* : NativeString */;
4366 val
* var26
/* : FlatString */;
4367 static val
* varonce27
;
4368 val
* var28
/* : String */;
4369 char* var29
/* : NativeString */;
4370 val
* var30
/* : FlatString */;
4371 static val
* varonce31
;
4372 val
* var32
/* : String */;
4373 char* var33
/* : NativeString */;
4374 val
* var34
/* : FlatString */;
4375 static val
* varonce35
;
4376 val
* var36
/* : String */;
4377 char* var37
/* : NativeString */;
4378 val
* var38
/* : FlatString */;
4379 static val
* varonce39
;
4380 val
* var40
/* : String */;
4381 char* var41
/* : NativeString */;
4382 val
* var42
/* : FlatString */;
4383 long var43
/* : Int */;
4384 val
* var44
/* : String */;
4385 val
* var45
/* : String */;
4386 val
* var46
/* : String */;
4387 long var47
/* : Int */;
4388 long var49
/* : Int */;
4389 val
* var50
/* : String */;
4390 val
* var51
/* : String */;
4391 val
* var52
/* : String */;
4392 long var53
/* : Int */;
4393 long var55
/* : Int */;
4394 long var56
/* : Int */;
4395 short int var57
/* : Bool */;
4396 short int var59
/* : Bool */;
4397 short int var60
/* : Bool */;
4398 long var61
/* : Int */;
4399 long var62
/* : Int */;
4400 short int var63
/* : Bool */;
4401 short int var65
/* : Bool */;
4402 val
* var66
/* : ModelBuilder */;
4403 val
* var68
/* : ModelBuilder */;
4404 val
* var70
/* : NativeArray[String] */;
4405 static val
* varonce69
;
4406 static val
* varonce71
;
4407 val
* var72
/* : String */;
4408 char* var73
/* : NativeString */;
4409 val
* var74
/* : FlatString */;
4410 static val
* varonce75
;
4411 val
* var76
/* : String */;
4412 char* var77
/* : NativeString */;
4413 val
* var78
/* : FlatString */;
4414 static val
* varonce79
;
4415 val
* var80
/* : String */;
4416 char* var81
/* : NativeString */;
4417 val
* var82
/* : FlatString */;
4418 static val
* varonce83
;
4419 val
* var84
/* : String */;
4420 char* var85
/* : NativeString */;
4421 val
* var86
/* : FlatString */;
4422 static val
* varonce87
;
4423 val
* var88
/* : String */;
4424 char* var89
/* : NativeString */;
4425 val
* var90
/* : FlatString */;
4426 long var91
/* : Int */;
4427 val
* var92
/* : String */;
4428 val
* var93
/* : String */;
4429 val
* var94
/* : String */;
4430 long var95
/* : Int */;
4431 long var97
/* : Int */;
4432 val
* var98
/* : String */;
4433 val
* var99
/* : String */;
4434 val
* var100
/* : String */;
4435 long var101
/* : Int */;
4436 long var103
/* : Int */;
4437 long var104
/* : Int */;
4438 short int var105
/* : Bool */;
4439 short int var107
/* : Bool */;
4442 const char* var_class_name110
;
4443 short int var111
/* : Bool */;
4444 val
* var112
/* : ModelBuilder */;
4445 val
* var114
/* : ModelBuilder */;
4446 val
* var116
/* : NativeArray[String] */;
4447 static val
* varonce115
;
4448 static val
* varonce117
;
4449 val
* var118
/* : String */;
4450 char* var119
/* : NativeString */;
4451 val
* var120
/* : FlatString */;
4452 static val
* varonce121
;
4453 val
* var122
/* : String */;
4454 char* var123
/* : NativeString */;
4455 val
* var124
/* : FlatString */;
4456 static val
* varonce125
;
4457 val
* var126
/* : String */;
4458 char* var127
/* : NativeString */;
4459 val
* var128
/* : FlatString */;
4460 static val
* varonce129
;
4461 val
* var130
/* : String */;
4462 char* var131
/* : NativeString */;
4463 val
* var132
/* : FlatString */;
4464 static val
* varonce133
;
4465 val
* var134
/* : String */;
4466 char* var135
/* : NativeString */;
4467 val
* var136
/* : FlatString */;
4468 long var137
/* : Int */;
4469 val
* var138
/* : String */;
4470 val
* var139
/* : String */;
4471 val
* var140
/* : String */;
4472 long var141
/* : Int */;
4473 long var143
/* : Int */;
4474 val
* var144
/* : String */;
4475 val
* var145
/* : String */;
4476 val
* var146
/* : String */;
4477 long var147
/* : Int */;
4478 long var149
/* : Int */;
4479 long var150
/* : Int */;
4480 short int var151
/* : Bool */;
4481 short int var153
/* : Bool */;
4484 const char* var_class_name156
;
4485 short int var157
/* : Bool */;
4486 val
* var158
/* : ModelBuilder */;
4487 val
* var160
/* : ModelBuilder */;
4488 val
* var162
/* : NativeArray[String] */;
4489 static val
* varonce161
;
4490 static val
* varonce163
;
4491 val
* var164
/* : String */;
4492 char* var165
/* : NativeString */;
4493 val
* var166
/* : FlatString */;
4494 static val
* varonce167
;
4495 val
* var168
/* : String */;
4496 char* var169
/* : NativeString */;
4497 val
* var170
/* : FlatString */;
4498 static val
* varonce171
;
4499 val
* var172
/* : String */;
4500 char* var173
/* : NativeString */;
4501 val
* var174
/* : FlatString */;
4502 static val
* varonce175
;
4503 val
* var176
/* : String */;
4504 char* var177
/* : NativeString */;
4505 val
* var178
/* : FlatString */;
4506 static val
* varonce179
;
4507 val
* var180
/* : String */;
4508 char* var181
/* : NativeString */;
4509 val
* var182
/* : FlatString */;
4510 long var183
/* : Int */;
4511 val
* var184
/* : String */;
4512 val
* var185
/* : String */;
4513 val
* var186
/* : String */;
4514 long var187
/* : Int */;
4515 long var189
/* : Int */;
4516 val
* var190
/* : String */;
4517 val
* var191
/* : String */;
4518 val
* var192
/* : String */;
4519 val
* var193
/* : SignatureMap */;
4520 val
* var_map
/* var map: SignatureMap */;
4521 long var195
/* : Int */;
4522 long var197
/* : Int */;
4523 long var198
/* : Int */;
4524 long var199
/* : Int */;
4525 short int var201
/* : Bool */;
4528 const char* var_class_name204
;
4529 long var205
/* : Int */;
4530 long var_setted
/* var setted: Int */;
4531 long var_i
/* var i: Int */;
4532 long var206
/* : Int */;
4533 long var208
/* : Int */;
4534 long var_
/* var : Int */;
4535 short int var209
/* : Bool */;
4536 short int var211
/* : Bool */;
4539 const char* var_class_name214
;
4540 short int var215
/* : Bool */;
4541 val
* var216
/* : nullable Object */;
4542 val
* var_e
/* var e: AExpr */;
4543 short int var217
/* : Bool */;
4546 short int var220
/* : Bool */;
4547 val
* var221
/* : TId */;
4548 val
* var223
/* : TId */;
4549 val
* var224
/* : String */;
4550 val
* var_name
/* var name: String */;
4551 val
* var225
/* : nullable MParameter */;
4552 val
* var_param
/* var param: nullable MParameter */;
4553 short int var226
/* : Bool */;
4554 short int var227
/* : Bool */;
4555 val
* var_other
/* var other: nullable Object */;
4556 short int var229
/* : Bool */;
4557 short int var231
/* : Bool */;
4558 val
* var232
/* : ModelBuilder */;
4559 val
* var234
/* : ModelBuilder */;
4560 val
* var235
/* : TId */;
4561 val
* var237
/* : TId */;
4562 val
* var239
/* : NativeArray[String] */;
4563 static val
* varonce238
;
4564 static val
* varonce240
;
4565 val
* var241
/* : String */;
4566 char* var242
/* : NativeString */;
4567 val
* var243
/* : FlatString */;
4568 static val
* varonce244
;
4569 val
* var245
/* : String */;
4570 char* var246
/* : NativeString */;
4571 val
* var247
/* : FlatString */;
4572 static val
* varonce248
;
4573 val
* var249
/* : String */;
4574 char* var250
/* : NativeString */;
4575 val
* var251
/* : FlatString */;
4576 val
* var252
/* : String */;
4577 val
* var253
/* : String */;
4578 val
* var254
/* : String */;
4579 short int var255
/* : Bool */;
4580 short int var257
/* : Bool */;
4581 short int var258
/* : Bool */;
4582 val
* var259
/* : ModelBuilder */;
4583 val
* var261
/* : ModelBuilder */;
4584 val
* var263
/* : NativeArray[String] */;
4585 static val
* varonce262
;
4586 static val
* varonce264
;
4587 val
* var265
/* : String */;
4588 char* var266
/* : NativeString */;
4589 val
* var267
/* : FlatString */;
4590 static val
* varonce268
;
4591 val
* var269
/* : String */;
4592 char* var270
/* : NativeString */;
4593 val
* var271
/* : FlatString */;
4594 static val
* varonce272
;
4595 val
* var273
/* : String */;
4596 char* var274
/* : NativeString */;
4597 val
* var275
/* : FlatString */;
4598 val
* var276
/* : String */;
4599 val
* var277
/* : String */;
4600 val
* var278
/* : String */;
4601 val
* var279
/* : Array[MParameter] */;
4602 val
* var281
/* : Array[MParameter] */;
4603 long var282
/* : Int */;
4604 long var_idx
/* var idx: Int */;
4605 val
* var283
/* : ArrayMap[Int, Int] */;
4606 val
* var285
/* : ArrayMap[Int, Int] */;
4607 val
* var286
/* : nullable Object */;
4608 val
* var287
/* : nullable Object */;
4609 val
* var_prev
/* var prev: nullable Int */;
4610 short int var288
/* : Bool */;
4611 short int var289
/* : Bool */;
4612 short int var291
/* : Bool */;
4613 short int var292
/* : Bool */;
4614 val
* var293
/* : ModelBuilder */;
4615 val
* var295
/* : ModelBuilder */;
4616 val
* var297
/* : NativeArray[String] */;
4617 static val
* varonce296
;
4618 static val
* varonce298
;
4619 val
* var299
/* : String */;
4620 char* var300
/* : NativeString */;
4621 val
* var301
/* : FlatString */;
4622 static val
* varonce302
;
4623 val
* var303
/* : String */;
4624 char* var304
/* : NativeString */;
4625 val
* var305
/* : FlatString */;
4626 static val
* varonce306
;
4627 val
* var307
/* : String */;
4628 char* var308
/* : NativeString */;
4629 val
* var309
/* : FlatString */;
4630 static val
* varonce310
;
4631 val
* var311
/* : String */;
4632 char* var312
/* : NativeString */;
4633 val
* var313
/* : FlatString */;
4634 val
* var314
/* : String */;
4635 long var315
/* : Int */;
4636 val
* var316
/* : String */;
4637 val
* var317
/* : String */;
4638 val
* var318
/* : String */;
4639 val
* var319
/* : ArrayMap[Int, Int] */;
4640 val
* var321
/* : ArrayMap[Int, Int] */;
4641 val
* var322
/* : nullable Object */;
4642 val
* var323
/* : nullable Object */;
4643 long var324
/* : Int */;
4644 short int var326
/* : Bool */;
4647 const char* var_class_name329
;
4648 long var330
/* : Int */;
4649 val
* var331
/* : AExpr */;
4650 val
* var333
/* : AExpr */;
4651 val
* var334
/* : MType */;
4652 val
* var336
/* : MType */;
4653 val
* var337
/* : nullable MType */;
4654 long var339
/* : Int */;
4655 long var341
/* : Int */;
4656 long var343
/* : Int */;
4657 long var344
/* : Int */;
4658 long var345
/* : Int */;
4659 short int var347
/* : Bool */;
4662 const char* var_class_name350
;
4663 long var351
/* : Int */;
4664 long var_vararg_decl
/* var vararg_decl: Int */;
4665 long var_j
/* var j: Int */;
4666 long var_i352
/* var i: Int */;
4667 long var353
/* : Int */;
4668 long var_354
/* var : Int */;
4669 short int var355
/* : Bool */;
4670 short int var357
/* : Bool */;
4673 const char* var_class_name360
;
4674 short int var361
/* : Bool */;
4675 val
* var362
/* : ArrayMap[Int, Int] */;
4676 val
* var364
/* : ArrayMap[Int, Int] */;
4677 short int var365
/* : Bool */;
4678 val
* var366
/* : nullable Object */;
4679 val
* var368
/* : Array[MParameter] */;
4680 val
* var370
/* : Array[MParameter] */;
4681 val
* var371
/* : nullable Object */;
4682 val
* var_param372
/* var param: MParameter */;
4683 short int var373
/* : Bool */;
4684 short int var375
/* : Bool */;
4685 short int var376
/* : Bool */;
4686 short int var378
/* : Bool */;
4689 const char* var_class_name381
;
4690 short int var382
/* : Bool */;
4691 long var383
/* : Int */;
4692 short int var385
/* : Bool */;
4695 const char* var_class_name388
;
4696 long var389
/* : Int */;
4697 val
* var390
/* : nullable Object */;
4698 short int var391
/* : Bool */;
4701 long var394
/* : Int */;
4702 short int var396
/* : Bool */;
4705 const char* var_class_name399
;
4706 long var400
/* : Int */;
4707 val
* var402
/* : nullable Object */;
4708 val
* var_arg
/* var arg: AExpr */;
4709 val
* var403
/* : ArrayMap[Int, Int] */;
4710 val
* var405
/* : ArrayMap[Int, Int] */;
4711 val
* var406
/* : nullable Object */;
4712 val
* var407
/* : nullable Object */;
4713 long var408
/* : Int */;
4714 short int var410
/* : Bool */;
4717 const char* var_class_name413
;
4718 long var414
/* : Int */;
4719 short int var415
/* : Bool */;
4720 short int var417
/* : Bool */;
4721 long var418
/* : Int */;
4722 short int var420
/* : Bool */;
4725 const char* var_class_name423
;
4726 long var424
/* : Int */;
4727 val
* var425
/* : MType */;
4728 val
* var427
/* : MType */;
4729 val
* var_paramtype
/* var paramtype: MType */;
4730 val
* var428
/* : nullable MType */;
4731 long var429
/* : Int */;
4732 short int var431
/* : Bool */;
4733 short int var433
/* : Bool */;
4736 const char* var_class_name436
;
4737 short int var437
/* : Bool */;
4738 val
* var438
/* : Array[MParameter] */;
4739 val
* var440
/* : Array[MParameter] */;
4740 val
* var441
/* : nullable Object */;
4741 val
* var442
/* : MType */;
4742 val
* var444
/* : MType */;
4743 val
* var_paramtype445
/* var paramtype: MType */;
4744 val
* var446
/* : nullable Object */;
4745 val
* var_first
/* var first: AExpr */;
4746 short int var447
/* : Bool */;
4747 short int var449
/* : Bool */;
4748 static val
* varonce450
;
4749 val
* var451
/* : String */;
4750 char* var452
/* : NativeString */;
4751 val
* var453
/* : FlatString */;
4752 val
* var454
/* : nullable MClass */;
4753 val
* var_mclass
/* var mclass: nullable MClass */;
4754 short int var455
/* : Bool */;
4755 short int var456
/* : Bool */;
4756 short int var458
/* : Bool */;
4757 short int var460
/* : Bool */;
4758 val
* var461
/* : Array[MType] */;
4759 val
* var_462
/* var : Array[MType] */;
4760 val
* var463
/* : MClassType */;
4761 val
* var_array_mtype
/* var array_mtype: MClassType */;
4762 short int var464
/* : Bool */;
4765 val
* var467
/* : AExpr */;
4766 val
* var469
/* : AExpr */;
4767 val
* var470
/* : nullable MType */;
4768 val
* var471
/* : AExpr */;
4769 val
* var473
/* : AExpr */;
4770 val
* var474
/* : nullable MType */;
4771 val
* var476
/* : nullable MType */;
4772 val
* var_t
/* var t: nullable MType */;
4773 short int var477
/* : Bool */;
4774 short int var478
/* : Bool */;
4775 short int var480
/* : Bool */;
4776 short int var482
/* : Bool */;
4777 short int var483
/* : Bool */;
4778 short int var484
/* : Bool */;
4779 short int var485
/* : Bool */;
4780 short int var_486
/* var : Bool */;
4781 short int var487
/* : Bool */;
4782 val
* var489
/* : NativeArray[String] */;
4783 static val
* varonce488
;
4784 static val
* varonce490
;
4785 val
* var491
/* : String */;
4786 char* var492
/* : NativeString */;
4787 val
* var493
/* : FlatString */;
4788 static val
* varonce494
;
4789 val
* var495
/* : String */;
4790 char* var496
/* : NativeString */;
4791 val
* var497
/* : FlatString */;
4792 static val
* varonce498
;
4793 val
* var499
/* : String */;
4794 char* var500
/* : NativeString */;
4795 val
* var501
/* : FlatString */;
4796 val
* var502
/* : String */;
4797 val
* var503
/* : String */;
4798 val
* var504
/* : String */;
4799 val
* var506
/* : nullable MType */;
4800 long var507
/* : Int */;
4801 short int var509
/* : Bool */;
4804 const char* var_class_name512
;
4805 long var513
/* : Int */;
4806 long var_i515
/* var i: Int */;
4807 long var516
/* : Int */;
4808 short int var518
/* : Bool */;
4811 const char* var_class_name521
;
4812 long var522
/* : Int */;
4813 long var_523
/* var : Int */;
4814 short int var524
/* : Bool */;
4815 short int var526
/* : Bool */;
4818 const char* var_class_name529
;
4819 short int var530
/* : Bool */;
4820 val
* var531
/* : nullable Object */;
4821 val
* var532
/* : nullable MType */;
4822 long var533
/* : Int */;
4826 var_msignature
= p3
;
4828 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
4829 var3
= var_msignature
->attrs
[COLOR_nit__model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:MSignature> */
4834 var_vararg_rank
= var1
;
4836 { /* Inline kernel#Int#>= (var_vararg_rank,0l) on <var_vararg_rank:Int> */
4837 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4838 /* <0l:Int> isa OTHER */
4839 var6
= 1; /* easy <0l:Int> isa OTHER*/
4840 if (unlikely(!var6
)) {
4841 var_class_name
= type_standard__Int
.name
;
4842 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4843 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 535);
4846 var7
= var_vararg_rank
>= 0l;
4854 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4855 var10
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4861 var11
= nit___nit__MSignature___arity(var_msignature
);
4864 { /* Inline kernel#Int#< (var8,var11) on <var8:Int> */
4865 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
4866 /* <var11:Int> isa OTHER */
4867 var14
= 1; /* easy <var11:Int> isa OTHER*/
4868 if (unlikely(!var14
)) {
4869 var_class_name17
= type_standard__Int
.name
;
4870 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
4871 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
4874 var18
= var8
< var11
;
4877 RET_LABEL13
:(void)0;
4882 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
4883 var21
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
4884 if (unlikely(var21
== NULL
)) {
4885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4886 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
4890 RET_LABEL20
:(void)0;
4893 if (unlikely(varonce
==NULL
)) {
4894 var22
= NEW_standard__NativeArray(10l, &type_standard__NativeArray__standard__String
);
4895 if (likely(varonce23
!=NULL
)) {
4898 var25
= "Error: expected at least ";
4899 var26
= standard___standard__NativeString___to_s_with_length(var25
, 25l);
4903 ((struct instance_standard__NativeArray
*)var22
)->values
[0]=var24
;
4904 if (likely(varonce27
!=NULL
)) {
4907 var29
= " argument(s) for `";
4908 var30
= standard___standard__NativeString___to_s_with_length(var29
, 18l);
4912 ((struct instance_standard__NativeArray
*)var22
)->values
[2]=var28
;
4913 if (likely(varonce31
!=NULL
)) {
4917 var34
= standard___standard__NativeString___to_s_with_length(var33
, 7l);
4921 ((struct instance_standard__NativeArray
*)var22
)->values
[5]=var32
;
4922 if (likely(varonce35
!=NULL
)) {
4925 var37
= ". See introduction at `";
4926 var38
= standard___standard__NativeString___to_s_with_length(var37
, 23l);
4930 ((struct instance_standard__NativeArray
*)var22
)->values
[7]=var36
;
4931 if (likely(varonce39
!=NULL
)) {
4935 var42
= standard___standard__NativeString___to_s_with_length(var41
, 2l);
4939 ((struct instance_standard__NativeArray
*)var22
)->values
[9]=var40
;
4945 var43
= nit___nit__MSignature___arity(var_msignature
);
4947 var44
= standard__string___Int___Object__to_s(var43
);
4948 ((struct instance_standard__NativeArray
*)var22
)->values
[1]=var44
;
4950 var45
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
4952 ((struct instance_standard__NativeArray
*)var22
)->values
[3]=var45
;
4954 var46
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
4956 ((struct instance_standard__NativeArray
*)var22
)->values
[4]=var46
;
4958 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4959 var49
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4961 RET_LABEL48
:(void)0;
4964 var50
= standard__string___Int___Object__to_s(var47
);
4965 ((struct instance_standard__NativeArray
*)var22
)->values
[6]=var50
;
4967 var51
= nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mproperty
);
4969 ((struct instance_standard__NativeArray
*)var22
)->values
[8]=var51
;
4971 var52
= ((val
*(*)(val
* self
))(var22
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var22
); /* native_to_s on <var22:NativeArray[String]>*/
4975 nit___nit__ModelBuilder___error(var19
, var_node
, var52
); /* Direct call modelbuilder_base#ModelBuilder#error on <var19:ModelBuilder>*/
4983 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4984 var55
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4986 RET_LABEL54
:(void)0;
4990 var56
= nit___nit__MSignature___arity(var_msignature
);
4993 { /* Inline kernel#Int#!= (var53,var56) on <var53:Int> */
4994 var59
= var53
== var56
;
4998 RET_LABEL58
:(void)0;
5003 var61
= nit___nit__MSignature___arity(var_msignature
);
5006 var62
= nit___nit__MSignature___min_arity(var_msignature
);
5009 { /* Inline kernel#Int#== (var61,var62) on <var61:Int> */
5010 var65
= var61
== var62
;
5013 RET_LABEL64
:(void)0;
5018 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5019 var68
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5020 if (unlikely(var68
== NULL
)) {
5021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5022 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
5026 RET_LABEL67
:(void)0;
5029 if (unlikely(varonce69
==NULL
)) {
5030 var70
= NEW_standard__NativeArray(10l, &type_standard__NativeArray__standard__String
);
5031 if (likely(varonce71
!=NULL
)) {
5034 var73
= "Error: expected ";
5035 var74
= standard___standard__NativeString___to_s_with_length(var73
, 16l);
5039 ((struct instance_standard__NativeArray
*)var70
)->values
[0]=var72
;
5040 if (likely(varonce75
!=NULL
)) {
5043 var77
= " argument(s) for `";
5044 var78
= standard___standard__NativeString___to_s_with_length(var77
, 18l);
5048 ((struct instance_standard__NativeArray
*)var70
)->values
[2]=var76
;
5049 if (likely(varonce79
!=NULL
)) {
5053 var82
= standard___standard__NativeString___to_s_with_length(var81
, 7l);
5057 ((struct instance_standard__NativeArray
*)var70
)->values
[5]=var80
;
5058 if (likely(varonce83
!=NULL
)) {
5061 var85
= ". See introduction at `";
5062 var86
= standard___standard__NativeString___to_s_with_length(var85
, 23l);
5066 ((struct instance_standard__NativeArray
*)var70
)->values
[7]=var84
;
5067 if (likely(varonce87
!=NULL
)) {
5071 var90
= standard___standard__NativeString___to_s_with_length(var89
, 2l);
5075 ((struct instance_standard__NativeArray
*)var70
)->values
[9]=var88
;
5081 var91
= nit___nit__MSignature___arity(var_msignature
);
5083 var92
= standard__string___Int___Object__to_s(var91
);
5084 ((struct instance_standard__NativeArray
*)var70
)->values
[1]=var92
;
5086 var93
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5088 ((struct instance_standard__NativeArray
*)var70
)->values
[3]=var93
;
5090 var94
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5092 ((struct instance_standard__NativeArray
*)var70
)->values
[4]=var94
;
5094 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5095 var97
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5097 RET_LABEL96
:(void)0;
5100 var98
= standard__string___Int___Object__to_s(var95
);
5101 ((struct instance_standard__NativeArray
*)var70
)->values
[6]=var98
;
5103 var99
= nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mproperty
);
5105 ((struct instance_standard__NativeArray
*)var70
)->values
[8]=var99
;
5107 var100
= ((val
*(*)(val
* self
))(var70
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var70
); /* native_to_s on <var70:NativeArray[String]>*/
5111 nit___nit__ModelBuilder___error(var66
, var_node
, var100
); /* Direct call modelbuilder_base#ModelBuilder#error on <var66:ModelBuilder>*/
5118 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5119 var103
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5121 RET_LABEL102
:(void)0;
5125 var104
= nit___nit__MSignature___arity(var_msignature
);
5128 { /* Inline kernel#Int#> (var101,var104) on <var101:Int> */
5129 /* Covariant cast for argument 0 (i) <var104:Int> isa OTHER */
5130 /* <var104:Int> isa OTHER */
5131 var107
= 1; /* easy <var104:Int> isa OTHER*/
5132 if (unlikely(!var107
)) {
5133 var_class_name110
= type_standard__Int
.name
;
5134 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name110
);
5135 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
5138 var111
= var101
> var104
;
5141 RET_LABEL106
:(void)0;
5146 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5147 var114
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5148 if (unlikely(var114
== NULL
)) {
5149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5150 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
5154 RET_LABEL113
:(void)0;
5157 if (unlikely(varonce115
==NULL
)) {
5158 var116
= NEW_standard__NativeArray(10l, &type_standard__NativeArray__standard__String
);
5159 if (likely(varonce117
!=NULL
)) {
5160 var118
= varonce117
;
5162 var119
= "Error: expected at most ";
5163 var120
= standard___standard__NativeString___to_s_with_length(var119
, 24l);
5165 varonce117
= var118
;
5167 ((struct instance_standard__NativeArray
*)var116
)->values
[0]=var118
;
5168 if (likely(varonce121
!=NULL
)) {
5169 var122
= varonce121
;
5171 var123
= " argument(s) for `";
5172 var124
= standard___standard__NativeString___to_s_with_length(var123
, 18l);
5174 varonce121
= var122
;
5176 ((struct instance_standard__NativeArray
*)var116
)->values
[2]=var122
;
5177 if (likely(varonce125
!=NULL
)) {
5178 var126
= varonce125
;
5181 var128
= standard___standard__NativeString___to_s_with_length(var127
, 7l);
5183 varonce125
= var126
;
5185 ((struct instance_standard__NativeArray
*)var116
)->values
[5]=var126
;
5186 if (likely(varonce129
!=NULL
)) {
5187 var130
= varonce129
;
5189 var131
= ". See introduction at `";
5190 var132
= standard___standard__NativeString___to_s_with_length(var131
, 23l);
5192 varonce129
= var130
;
5194 ((struct instance_standard__NativeArray
*)var116
)->values
[7]=var130
;
5195 if (likely(varonce133
!=NULL
)) {
5196 var134
= varonce133
;
5199 var136
= standard___standard__NativeString___to_s_with_length(var135
, 2l);
5201 varonce133
= var134
;
5203 ((struct instance_standard__NativeArray
*)var116
)->values
[9]=var134
;
5205 var116
= varonce115
;
5209 var137
= nit___nit__MSignature___arity(var_msignature
);
5211 var138
= standard__string___Int___Object__to_s(var137
);
5212 ((struct instance_standard__NativeArray
*)var116
)->values
[1]=var138
;
5214 var139
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5216 ((struct instance_standard__NativeArray
*)var116
)->values
[3]=var139
;
5218 var140
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5220 ((struct instance_standard__NativeArray
*)var116
)->values
[4]=var140
;
5222 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5223 var143
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5225 RET_LABEL142
:(void)0;
5228 var144
= standard__string___Int___Object__to_s(var141
);
5229 ((struct instance_standard__NativeArray
*)var116
)->values
[6]=var144
;
5231 var145
= nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mproperty
);
5233 ((struct instance_standard__NativeArray
*)var116
)->values
[8]=var145
;
5235 var146
= ((val
*(*)(val
* self
))(var116
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var116
); /* native_to_s on <var116:NativeArray[String]>*/
5237 varonce115
= var116
;
5239 nit___nit__ModelBuilder___error(var112
, var_node
, var146
); /* Direct call modelbuilder_base#ModelBuilder#error on <var112:ModelBuilder>*/
5246 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5247 var149
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5249 RET_LABEL148
:(void)0;
5253 var150
= nit___nit__MSignature___min_arity(var_msignature
);
5256 { /* Inline kernel#Int#< (var147,var150) on <var147:Int> */
5257 /* Covariant cast for argument 0 (i) <var150:Int> isa OTHER */
5258 /* <var150:Int> isa OTHER */
5259 var153
= 1; /* easy <var150:Int> isa OTHER*/
5260 if (unlikely(!var153
)) {
5261 var_class_name156
= type_standard__Int
.name
;
5262 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name156
);
5263 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
5266 var157
= var147
< var150
;
5269 RET_LABEL152
:(void)0;
5274 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5275 var160
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5276 if (unlikely(var160
== NULL
)) {
5277 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5278 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
5282 RET_LABEL159
:(void)0;
5285 if (unlikely(varonce161
==NULL
)) {
5286 var162
= NEW_standard__NativeArray(10l, &type_standard__NativeArray__standard__String
);
5287 if (likely(varonce163
!=NULL
)) {
5288 var164
= varonce163
;
5290 var165
= "Error: expected at least ";
5291 var166
= standard___standard__NativeString___to_s_with_length(var165
, 25l);
5293 varonce163
= var164
;
5295 ((struct instance_standard__NativeArray
*)var162
)->values
[0]=var164
;
5296 if (likely(varonce167
!=NULL
)) {
5297 var168
= varonce167
;
5299 var169
= " argument(s) for `";
5300 var170
= standard___standard__NativeString___to_s_with_length(var169
, 18l);
5302 varonce167
= var168
;
5304 ((struct instance_standard__NativeArray
*)var162
)->values
[2]=var168
;
5305 if (likely(varonce171
!=NULL
)) {
5306 var172
= varonce171
;
5309 var174
= standard___standard__NativeString___to_s_with_length(var173
, 7l);
5311 varonce171
= var172
;
5313 ((struct instance_standard__NativeArray
*)var162
)->values
[5]=var172
;
5314 if (likely(varonce175
!=NULL
)) {
5315 var176
= varonce175
;
5317 var177
= ". See introduction at `";
5318 var178
= standard___standard__NativeString___to_s_with_length(var177
, 23l);
5320 varonce175
= var176
;
5322 ((struct instance_standard__NativeArray
*)var162
)->values
[7]=var176
;
5323 if (likely(varonce179
!=NULL
)) {
5324 var180
= varonce179
;
5327 var182
= standard___standard__NativeString___to_s_with_length(var181
, 2l);
5329 varonce179
= var180
;
5331 ((struct instance_standard__NativeArray
*)var162
)->values
[9]=var180
;
5333 var162
= varonce161
;
5337 var183
= nit___nit__MSignature___min_arity(var_msignature
);
5339 var184
= standard__string___Int___Object__to_s(var183
);
5340 ((struct instance_standard__NativeArray
*)var162
)->values
[1]=var184
;
5342 var185
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5344 ((struct instance_standard__NativeArray
*)var162
)->values
[3]=var185
;
5346 var186
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5348 ((struct instance_standard__NativeArray
*)var162
)->values
[4]=var186
;
5350 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5351 var189
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5353 RET_LABEL188
:(void)0;
5356 var190
= standard__string___Int___Object__to_s(var187
);
5357 ((struct instance_standard__NativeArray
*)var162
)->values
[6]=var190
;
5359 var191
= nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mproperty
);
5361 ((struct instance_standard__NativeArray
*)var162
)->values
[8]=var191
;
5363 var192
= ((val
*(*)(val
* self
))(var162
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var162
); /* native_to_s on <var162:NativeArray[String]>*/
5365 varonce161
= var162
;
5367 nit___nit__ModelBuilder___error(var158
, var_node
, var192
); /* Direct call modelbuilder_base#ModelBuilder#error on <var158:ModelBuilder>*/
5376 var193
= NEW_nit__SignatureMap(&type_nit__SignatureMap
);
5378 { /* Inline kernel#Object#init (var193) on <var193:SignatureMap> */
5379 RET_LABEL194
:(void)0;
5384 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5385 var197
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5387 RET_LABEL196
:(void)0;
5391 var198
= nit___nit__MSignature___min_arity(var_msignature
);
5394 { /* Inline kernel#Int#- (var195,var198) on <var195:Int> */
5395 /* Covariant cast for argument 0 (i) <var198:Int> isa OTHER */
5396 /* <var198:Int> isa OTHER */
5397 var201
= 1; /* easy <var198:Int> isa OTHER*/
5398 if (unlikely(!var201
)) {
5399 var_class_name204
= type_standard__Int
.name
;
5400 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name204
);
5401 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
5404 var205
= var195
- var198
;
5407 RET_LABEL200
:(void)0;
5410 var_setted
= var199
;
5413 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5414 var208
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5416 RET_LABEL207
:(void)0;
5422 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
5423 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
5424 /* <var_:Int> isa OTHER */
5425 var211
= 1; /* easy <var_:Int> isa OTHER*/
5426 if (unlikely(!var211
)) {
5427 var_class_name214
= type_standard__Int
.name
;
5428 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name214
);
5429 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
5432 var215
= var_i
< var_
;
5435 RET_LABEL210
:(void)0;
5440 var216
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_args
, var_i
);
5443 /* <var_e:AExpr> isa ANamedargExpr */
5444 cltype218
= type_nit__ANamedargExpr
.color
;
5445 idtype219
= type_nit__ANamedargExpr
.id
;
5446 if(cltype218
>= var_e
->type
->table_size
) {
5449 var217
= var_e
->type
->type_table
[cltype218
] == idtype219
;
5457 { /* Inline parser_nodes#ANamedargExpr#n_id (var_e) on <var_e:AExpr(ANamedargExpr)> */
5458 var223
= var_e
->attrs
[COLOR_nit__parser_nodes__ANamedargExpr___n_id
].val
; /* _n_id on <var_e:AExpr(ANamedargExpr)> */
5459 if (unlikely(var223
== NULL
)) {
5460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5461 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2703);
5465 RET_LABEL222
:(void)0;
5469 var224
= nit__lexer_work___Token___text(var221
);
5473 var225
= nit___nit__MSignature___mparameter_by_name(var_msignature
, var_name
);
5476 if (var_param
== NULL
) {
5477 var226
= 1; /* is null */
5479 var226
= 0; /* arg is null but recv is not */
5482 { /* Inline kernel#Object#== (var_param,((val*)NULL)) on <var_param:nullable MParameter> */
5483 var_other
= ((val
*)NULL
);
5485 { /* Inline kernel#Object#is_same_instance (var_param,var_other) on <var_param:nullable MParameter(MParameter)> */
5486 var231
= var_param
== var_other
;
5489 RET_LABEL230
:(void)0;
5494 RET_LABEL228
:(void)0;
5500 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5501 var234
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5502 if (unlikely(var234
== NULL
)) {
5503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
5508 RET_LABEL233
:(void)0;
5512 { /* Inline parser_nodes#ANamedargExpr#n_id (var_e) on <var_e:AExpr(ANamedargExpr)> */
5513 var237
= var_e
->attrs
[COLOR_nit__parser_nodes__ANamedargExpr___n_id
].val
; /* _n_id on <var_e:AExpr(ANamedargExpr)> */
5514 if (unlikely(var237
== NULL
)) {
5515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5516 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2703);
5520 RET_LABEL236
:(void)0;
5523 if (unlikely(varonce238
==NULL
)) {
5524 var239
= NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String
);
5525 if (likely(varonce240
!=NULL
)) {
5526 var241
= varonce240
;
5528 var242
= "Error: no parameter `";
5529 var243
= standard___standard__NativeString___to_s_with_length(var242
, 21l);
5531 varonce240
= var241
;
5533 ((struct instance_standard__NativeArray
*)var239
)->values
[0]=var241
;
5534 if (likely(varonce244
!=NULL
)) {
5535 var245
= varonce244
;
5538 var247
= standard___standard__NativeString___to_s_with_length(var246
, 7l);
5540 varonce244
= var245
;
5542 ((struct instance_standard__NativeArray
*)var239
)->values
[2]=var245
;
5543 if (likely(varonce248
!=NULL
)) {
5544 var249
= varonce248
;
5547 var251
= standard___standard__NativeString___to_s_with_length(var250
, 2l);
5549 varonce248
= var249
;
5551 ((struct instance_standard__NativeArray
*)var239
)->values
[5]=var249
;
5553 var239
= varonce238
;
5556 ((struct instance_standard__NativeArray
*)var239
)->values
[1]=var_name
;
5558 var252
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5560 ((struct instance_standard__NativeArray
*)var239
)->values
[3]=var252
;
5562 var253
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5564 ((struct instance_standard__NativeArray
*)var239
)->values
[4]=var253
;
5566 var254
= ((val
*(*)(val
* self
))(var239
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var239
); /* native_to_s on <var239:NativeArray[String]>*/
5568 varonce238
= var239
;
5570 nit___nit__ModelBuilder___error(var232
, var235
, var254
); /* Direct call modelbuilder_base#ModelBuilder#error on <var232:ModelBuilder>*/
5577 { /* Inline model#MParameter#is_default (var_param) on <var_param:nullable MParameter(MParameter)> */
5578 var257
= var_param
->attrs
[COLOR_nit__model__MParameter___is_default
].s
; /* _is_default on <var_param:nullable MParameter(MParameter)> */
5580 RET_LABEL256
:(void)0;
5586 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5587 var261
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5588 if (unlikely(var261
== NULL
)) {
5589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5590 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
5594 RET_LABEL260
:(void)0;
5597 if (unlikely(varonce262
==NULL
)) {
5598 var263
= NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String
);
5599 if (likely(varonce264
!=NULL
)) {
5600 var265
= varonce264
;
5602 var266
= "Error: parameter `";
5603 var267
= standard___standard__NativeString___to_s_with_length(var266
, 18l);
5605 varonce264
= var265
;
5607 ((struct instance_standard__NativeArray
*)var263
)->values
[0]=var265
;
5608 if (likely(varonce268
!=NULL
)) {
5609 var269
= varonce268
;
5611 var270
= "` is not optional for `";
5612 var271
= standard___standard__NativeString___to_s_with_length(var270
, 23l);
5614 varonce268
= var269
;
5616 ((struct instance_standard__NativeArray
*)var263
)->values
[2]=var269
;
5617 if (likely(varonce272
!=NULL
)) {
5618 var273
= varonce272
;
5621 var275
= standard___standard__NativeString___to_s_with_length(var274
, 2l);
5623 varonce272
= var273
;
5625 ((struct instance_standard__NativeArray
*)var263
)->values
[5]=var273
;
5627 var263
= varonce262
;
5630 ((struct instance_standard__NativeArray
*)var263
)->values
[1]=var_name
;
5632 var276
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5634 ((struct instance_standard__NativeArray
*)var263
)->values
[3]=var276
;
5636 var277
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5638 ((struct instance_standard__NativeArray
*)var263
)->values
[4]=var277
;
5640 var278
= ((val
*(*)(val
* self
))(var263
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var263
); /* native_to_s on <var263:NativeArray[String]>*/
5642 varonce262
= var263
;
5644 nit___nit__ModelBuilder___error(var259
, var_e
, var278
); /* Direct call modelbuilder_base#ModelBuilder#error on <var259:ModelBuilder>*/
5651 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
5652 var281
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
5653 if (unlikely(var281
== NULL
)) {
5654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5655 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1756);
5659 RET_LABEL280
:(void)0;
5663 var282
= standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of(var279
, var_param
);
5667 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
5668 var285
= var_map
->attrs
[COLOR_nit__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
5669 if (unlikely(var285
== NULL
)) {
5670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5671 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 597);
5675 RET_LABEL284
:(void)0;
5679 var287
= (val
*)(var_idx
<<2|1);
5680 var286
= standard___standard__MapRead___get_or_null(var283
, var287
);
5683 if (var_prev
== NULL
) {
5684 var288
= 0; /* is null */
5686 var288
= 1; /* arg is null and recv is not */
5689 { /* Inline kernel#Int#!= (var_prev,((val*)NULL)) on <var_prev:nullable Int> */
5690 var291
= 0; /* incompatible types Int vs. null; cannot be NULL */
5694 RET_LABEL290
:(void)0;
5700 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5701 var295
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5702 if (unlikely(var295
== NULL
)) {
5703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5704 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
5708 RET_LABEL294
:(void)0;
5711 if (unlikely(varonce296
==NULL
)) {
5712 var297
= NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String
);
5713 if (likely(varonce298
!=NULL
)) {
5714 var299
= varonce298
;
5716 var300
= "Error: parameter `";
5717 var301
= standard___standard__NativeString___to_s_with_length(var300
, 18l);
5719 varonce298
= var299
;
5721 ((struct instance_standard__NativeArray
*)var297
)->values
[0]=var299
;
5722 if (likely(varonce302
!=NULL
)) {
5723 var303
= varonce302
;
5725 var304
= "` already associated with argument #";
5726 var305
= standard___standard__NativeString___to_s_with_length(var304
, 36l);
5728 varonce302
= var303
;
5730 ((struct instance_standard__NativeArray
*)var297
)->values
[2]=var303
;
5731 if (likely(varonce306
!=NULL
)) {
5732 var307
= varonce306
;
5735 var309
= standard___standard__NativeString___to_s_with_length(var308
, 6l);
5737 varonce306
= var307
;
5739 ((struct instance_standard__NativeArray
*)var297
)->values
[4]=var307
;
5740 if (likely(varonce310
!=NULL
)) {
5741 var311
= varonce310
;
5744 var313
= standard___standard__NativeString___to_s_with_length(var312
, 2l);
5746 varonce310
= var311
;
5748 ((struct instance_standard__NativeArray
*)var297
)->values
[7]=var311
;
5750 var297
= varonce296
;
5753 ((struct instance_standard__NativeArray
*)var297
)->values
[1]=var_name
;
5754 var315
= (long)(var_prev
)>>2;
5755 var314
= standard__string___Int___Object__to_s(var315
);
5756 ((struct instance_standard__NativeArray
*)var297
)->values
[3]=var314
;
5758 var316
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5760 ((struct instance_standard__NativeArray
*)var297
)->values
[5]=var316
;
5762 var317
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5764 ((struct instance_standard__NativeArray
*)var297
)->values
[6]=var317
;
5766 var318
= ((val
*(*)(val
* self
))(var297
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var297
); /* native_to_s on <var297:NativeArray[String]>*/
5768 varonce296
= var297
;
5770 nit___nit__ModelBuilder___error(var293
, var_e
, var318
); /* Direct call modelbuilder_base#ModelBuilder#error on <var293:ModelBuilder>*/
5777 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
5778 var321
= var_map
->attrs
[COLOR_nit__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
5779 if (unlikely(var321
== NULL
)) {
5780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5781 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 597);
5785 RET_LABEL320
:(void)0;
5789 var322
= (val
*)(var_idx
<<2|1);
5790 var323
= (val
*)(var_i
<<2|1);
5791 standard___standard__ArrayMap___standard__abstract_collection__Map___91d_93d_61d(var319
, var322
, var323
); /* Direct call array#ArrayMap#[]= on <var319:ArrayMap[Int, Int]>*/
5794 { /* Inline kernel#Int#- (var_setted,1l) on <var_setted:Int> */
5795 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5796 /* <1l:Int> isa OTHER */
5797 var326
= 1; /* easy <1l:Int> isa OTHER*/
5798 if (unlikely(!var326
)) {
5799 var_class_name329
= type_standard__Int
.name
;
5800 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name329
);
5801 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
5804 var330
= var_setted
- 1l;
5807 RET_LABEL325
:(void)0;
5810 var_setted
= var324
;
5812 { /* Inline parser_nodes#ANamedargExpr#n_expr (var_e) on <var_e:AExpr(ANamedargExpr)> */
5813 var333
= var_e
->attrs
[COLOR_nit__parser_nodes__ANamedargExpr___n_expr
].val
; /* _n_expr on <var_e:AExpr(ANamedargExpr)> */
5814 if (unlikely(var333
== NULL
)) {
5815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5816 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2709);
5820 RET_LABEL332
:(void)0;
5824 { /* Inline model#MParameter#mtype (var_param) on <var_param:nullable MParameter(MParameter)> */
5825 var336
= var_param
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var_param:nullable MParameter(MParameter)> */
5826 if (unlikely(var336
== NULL
)) {
5827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5828 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1879);
5832 RET_LABEL335
:(void)0;
5836 var337
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var331
, var334
);
5839 { /* Inline typing#AExpr#mtype= (var_e,var337) on <var_e:AExpr(ANamedargExpr)> */
5840 var_e
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var337
; /* _mtype on <var_e:AExpr(ANamedargExpr)> */
5841 RET_LABEL338
:(void)0;
5844 BREAK_label
: (void)0;
5846 var339
= standard___standard__Int___Discrete__successor(var_i
, 1l);
5850 goto BREAK_label340
;
5853 BREAK_label340
: (void)0;
5855 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5856 var343
= var_args
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5858 RET_LABEL342
:(void)0;
5862 var344
= nit___nit__MSignature___arity(var_msignature
);
5865 { /* Inline kernel#Int#- (var341,var344) on <var341:Int> */
5866 /* Covariant cast for argument 0 (i) <var344:Int> isa OTHER */
5867 /* <var344:Int> isa OTHER */
5868 var347
= 1; /* easy <var344:Int> isa OTHER*/
5869 if (unlikely(!var347
)) {
5870 var_class_name350
= type_standard__Int
.name
;
5871 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name350
);
5872 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
5875 var351
= var341
- var344
;
5878 RET_LABEL346
:(void)0;
5881 var_vararg_decl
= var345
;
5885 var353
= nit___nit__MSignature___arity(var_msignature
);
5890 { /* Inline kernel#Int#< (var_i352,var_354) on <var_i352:Int> */
5891 /* Covariant cast for argument 0 (i) <var_354:Int> isa OTHER */
5892 /* <var_354:Int> isa OTHER */
5893 var357
= 1; /* easy <var_354:Int> isa OTHER*/
5894 if (unlikely(!var357
)) {
5895 var_class_name360
= type_standard__Int
.name
;
5896 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name360
);
5897 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
5900 var361
= var_i352
< var_354
;
5903 RET_LABEL356
:(void)0;
5908 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
5909 var364
= var_map
->attrs
[COLOR_nit__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
5910 if (unlikely(var364
== NULL
)) {
5911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5912 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 597);
5916 RET_LABEL363
:(void)0;
5920 var366
= (val
*)(var_i352
<<2|1);
5921 var365
= standard___standard__CoupleMap___MapRead__has_key(var362
, var366
);
5924 goto BREAK_label367
;
5928 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
5929 var370
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
5930 if (unlikely(var370
== NULL
)) {
5931 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5932 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1756);
5936 RET_LABEL369
:(void)0;
5940 var371
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var368
, var_i352
);
5942 var_param372
= var371
;
5944 { /* Inline model#MParameter#is_default (var_param372) on <var_param372:MParameter> */
5945 var375
= var_param372
->attrs
[COLOR_nit__model__MParameter___is_default
].s
; /* _is_default on <var_param372:MParameter> */
5947 RET_LABEL374
:(void)0;
5952 { /* Inline kernel#Int#> (var_setted,0l) on <var_setted:Int> */
5953 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5954 /* <0l:Int> isa OTHER */
5955 var378
= 1; /* easy <0l:Int> isa OTHER*/
5956 if (unlikely(!var378
)) {
5957 var_class_name381
= type_standard__Int
.name
;
5958 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name381
);
5959 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
5962 var382
= var_setted
> 0l;
5965 RET_LABEL377
:(void)0;
5970 { /* Inline kernel#Int#- (var_setted,1l) on <var_setted:Int> */
5971 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5972 /* <1l:Int> isa OTHER */
5973 var385
= 1; /* easy <1l:Int> isa OTHER*/
5974 if (unlikely(!var385
)) {
5975 var_class_name388
= type_standard__Int
.name
;
5976 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name388
);
5977 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
5980 var389
= var_setted
- 1l;
5983 RET_LABEL384
:(void)0;
5986 var_setted
= var383
;
5988 goto BREAK_label367
;
5994 var390
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_args
, var_j
);
5996 /* <var390:nullable Object(AExpr)> isa ANamedargExpr */
5997 cltype392
= type_nit__ANamedargExpr
.color
;
5998 idtype393
= type_nit__ANamedargExpr
.id
;
5999 if(cltype392
>= var390
->type
->table_size
) {
6002 var391
= var390
->type
->type_table
[cltype392
] == idtype393
;
6006 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
6007 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6008 /* <1l:Int> isa OTHER */
6009 var396
= 1; /* easy <1l:Int> isa OTHER*/
6010 if (unlikely(!var396
)) {
6011 var_class_name399
= type_standard__Int
.name
;
6012 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name399
);
6013 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
6016 var400
= var_j
+ 1l;
6019 RET_LABEL395
:(void)0;
6024 goto BREAK_label401
;
6027 BREAK_label401
: (void)0;
6029 var402
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_args
, var_j
);
6033 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
6034 var405
= var_map
->attrs
[COLOR_nit__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
6035 if (unlikely(var405
== NULL
)) {
6036 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
6037 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 597);
6041 RET_LABEL404
:(void)0;
6045 var406
= (val
*)(var_i352
<<2|1);
6046 var407
= (val
*)(var_j
<<2|1);
6047 standard___standard__ArrayMap___standard__abstract_collection__Map___91d_93d_61d(var403
, var406
, var407
); /* Direct call array#ArrayMap#[]= on <var403:ArrayMap[Int, Int]>*/
6050 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
6051 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6052 /* <1l:Int> isa OTHER */
6053 var410
= 1; /* easy <1l:Int> isa OTHER*/
6054 if (unlikely(!var410
)) {
6055 var_class_name413
= type_standard__Int
.name
;
6056 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name413
);
6057 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
6060 var414
= var_j
+ 1l;
6063 RET_LABEL409
:(void)0;
6068 { /* Inline kernel#Int#== (var_i352,var_vararg_rank) on <var_i352:Int> */
6069 var417
= var_i352
== var_vararg_rank
;
6072 RET_LABEL416
:(void)0;
6077 { /* Inline kernel#Int#+ (var_j,var_vararg_decl) on <var_j:Int> */
6078 /* Covariant cast for argument 0 (i) <var_vararg_decl:Int> isa OTHER */
6079 /* <var_vararg_decl:Int> isa OTHER */
6080 var420
= 1; /* easy <var_vararg_decl:Int> isa OTHER*/
6081 if (unlikely(!var420
)) {
6082 var_class_name423
= type_standard__Int
.name
;
6083 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name423
);
6084 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
6087 var424
= var_j
+ var_vararg_decl
;
6090 RET_LABEL419
:(void)0;
6094 goto BREAK_label367
;
6098 { /* Inline model#MParameter#mtype (var_param372) on <var_param372:MParameter> */
6099 var427
= var_param372
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var_param372:MParameter> */
6100 if (unlikely(var427
== NULL
)) {
6101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1879);
6106 RET_LABEL426
:(void)0;
6109 var_paramtype
= var425
;
6111 var428
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var_arg
, var_paramtype
);
6113 BREAK_label367
: (void)0;
6115 var429
= standard___standard__Int___Discrete__successor(var_i352
, 1l);
6119 goto BREAK_label430
;
6122 BREAK_label430
: (void)0;
6124 { /* Inline kernel#Int#>= (var_vararg_rank,0l) on <var_vararg_rank:Int> */
6125 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6126 /* <0l:Int> isa OTHER */
6127 var433
= 1; /* easy <0l:Int> isa OTHER*/
6128 if (unlikely(!var433
)) {
6129 var_class_name436
= type_standard__Int
.name
;
6130 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name436
);
6131 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 535);
6134 var437
= var_vararg_rank
>= 0l;
6137 RET_LABEL432
:(void)0;
6142 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
6143 var440
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
6144 if (unlikely(var440
== NULL
)) {
6145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6146 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1756);
6150 RET_LABEL439
:(void)0;
6154 var441
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var438
, var_vararg_rank
);
6157 { /* Inline model#MParameter#mtype (var441) on <var441:nullable Object(MParameter)> */
6158 var444
= var441
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var441:nullable Object(MParameter)> */
6159 if (unlikely(var444
== NULL
)) {
6160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1879);
6165 RET_LABEL443
:(void)0;
6168 var_paramtype445
= var442
;
6170 var446
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_args
, var_vararg_rank
);
6174 { /* Inline kernel#Int#== (var_vararg_decl,0l) on <var_vararg_decl:Int> */
6175 var449
= var_vararg_decl
== 0l;
6178 RET_LABEL448
:(void)0;
6182 if (likely(varonce450
!=NULL
)) {
6183 var451
= varonce450
;
6186 var453
= standard___standard__NativeString___to_s_with_length(var452
, 5l);
6188 varonce450
= var451
;
6191 var454
= nit__typing___nit__typing__TypeVisitor___get_mclass(self
, var_node
, var451
);
6193 var_mclass
= var454
;
6194 if (var_mclass
== NULL
) {
6195 var455
= 1; /* is null */
6197 var455
= 0; /* arg is null but recv is not */
6200 { /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
6201 var_other
= ((val
*)NULL
);
6203 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
6204 var460
= var_mclass
== var_other
;
6207 RET_LABEL459
:(void)0;
6212 RET_LABEL457
:(void)0;
6221 var461
= NEW_standard__Array(&type_standard__Array__nit__MType
);
6223 standard___standard__Array___with_capacity(var461
, 1l); /* Direct call array#Array#with_capacity on <var461:Array[MType]>*/
6227 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_462
, var_paramtype445
); /* Direct call array#AbstractArray#push on <var_462:Array[MType]>*/
6230 var463
= nit___nit__MClass___get_mtype(var_mclass
, var_462
);
6232 var_array_mtype
= var463
;
6233 /* <var_first:AExpr> isa AVarargExpr */
6234 cltype465
= type_nit__AVarargExpr
.color
;
6235 idtype466
= type_nit__AVarargExpr
.id
;
6236 if(cltype465
>= var_first
->type
->table_size
) {
6239 var464
= var_first
->type
->type_table
[cltype465
] == idtype466
;
6243 { /* Inline parser_nodes#AVarargExpr#n_expr (var_first) on <var_first:AExpr(AVarargExpr)> */
6244 var469
= var_first
->attrs
[COLOR_nit__parser_nodes__AVarargExpr___n_expr
].val
; /* _n_expr on <var_first:AExpr(AVarargExpr)> */
6245 if (unlikely(var469
== NULL
)) {
6246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6247 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2692);
6251 RET_LABEL468
:(void)0;
6255 var470
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var467
, var_array_mtype
);
6258 { /* Inline parser_nodes#AVarargExpr#n_expr (var_first) on <var_first:AExpr(AVarargExpr)> */
6259 var473
= var_first
->attrs
[COLOR_nit__parser_nodes__AVarargExpr___n_expr
].val
; /* _n_expr on <var_first:AExpr(AVarargExpr)> */
6260 if (unlikely(var473
== NULL
)) {
6261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6262 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2692);
6266 RET_LABEL472
:(void)0;
6270 var474
= ((val
*(*)(val
* self
))(var471
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var471
); /* mtype on <var471:AExpr>*/
6273 { /* Inline typing#AExpr#mtype= (var_first,var474) on <var_first:AExpr(AVarargExpr)> */
6274 var_first
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var474
; /* _mtype on <var_first:AExpr(AVarargExpr)> */
6275 RET_LABEL475
:(void)0;
6280 var476
= nit__typing___nit__typing__TypeVisitor___visit_expr(self
, var_first
);
6283 if (var_t
== NULL
) {
6284 var477
= 1; /* is null */
6286 var477
= 0; /* arg is null but recv is not */
6289 { /* Inline kernel#Object#== (var_t,((val*)NULL)) on <var_t:nullable MType> */
6290 var_other
= ((val
*)NULL
);
6292 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
6293 var482
= var_t
== var_other
;
6296 RET_LABEL481
:(void)0;
6301 RET_LABEL479
:(void)0;
6311 var484
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_t
, var_paramtype445
);
6317 var487
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_t
, var_array_mtype
);
6324 if (unlikely(varonce488
==NULL
)) {
6325 var489
= NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String
);
6326 if (likely(varonce490
!=NULL
)) {
6327 var491
= varonce490
;
6329 var492
= "Type Error: expected `";
6330 var493
= standard___standard__NativeString___to_s_with_length(var492
, 22l);
6332 varonce490
= var491
;
6334 ((struct instance_standard__NativeArray
*)var489
)->values
[0]=var491
;
6335 if (likely(varonce494
!=NULL
)) {
6336 var495
= varonce494
;
6338 var496
= "`, got `";
6339 var497
= standard___standard__NativeString___to_s_with_length(var496
, 8l);
6341 varonce494
= var495
;
6343 ((struct instance_standard__NativeArray
*)var489
)->values
[2]=var495
;
6344 if (likely(varonce498
!=NULL
)) {
6345 var499
= varonce498
;
6347 var500
= "`. Is an ellipsis `...` missing on the argument?";
6348 var501
= standard___standard__NativeString___to_s_with_length(var500
, 48l);
6350 varonce498
= var499
;
6352 ((struct instance_standard__NativeArray
*)var489
)->values
[4]=var499
;
6354 var489
= varonce488
;
6358 var502
= ((val
*(*)(val
* self
))(var_paramtype445
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_paramtype445
); /* to_s on <var_paramtype445:MType>*/
6360 ((struct instance_standard__NativeArray
*)var489
)->values
[1]=var502
;
6362 var503
= ((val
*(*)(val
* self
))(var_t
->class->vft
[COLOR_standard__string__Object__to_s
]))(var_t
); /* to_s on <var_t:nullable MType(MType)>*/
6364 ((struct instance_standard__NativeArray
*)var489
)->values
[3]=var503
;
6366 var504
= ((val
*(*)(val
* self
))(var489
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var489
); /* native_to_s on <var489:NativeArray[String]>*/
6368 varonce488
= var489
;
6370 nit__typing___nit__typing__TypeVisitor___error(self
, var_first
, var504
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
6377 { /* Inline typing#SignatureMap#vararg_decl= (var_map,1l) on <var_map:SignatureMap> */
6378 var_map
->attrs
[COLOR_nit__typing__SignatureMap___vararg_decl
].l
= 1l; /* _vararg_decl on <var_map:SignatureMap> */
6379 RET_LABEL505
:(void)0;
6383 var506
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var_first
, var_paramtype445
);
6388 { /* Inline kernel#Int#+ (var_vararg_decl,1l) on <var_vararg_decl:Int> */
6389 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6390 /* <1l:Int> isa OTHER */
6391 var509
= 1; /* easy <1l:Int> isa OTHER*/
6392 if (unlikely(!var509
)) {
6393 var_class_name512
= type_standard__Int
.name
;
6394 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name512
);
6395 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
6398 var513
= var_vararg_decl
+ 1l;
6401 RET_LABEL508
:(void)0;
6405 { /* Inline typing#SignatureMap#vararg_decl= (var_map,var507) on <var_map:SignatureMap> */
6406 var_map
->attrs
[COLOR_nit__typing__SignatureMap___vararg_decl
].l
= var507
; /* _vararg_decl on <var_map:SignatureMap> */
6407 RET_LABEL514
:(void)0;
6410 var_i515
= var_vararg_rank
;
6412 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_decl) on <var_vararg_rank:Int> */
6413 /* Covariant cast for argument 0 (i) <var_vararg_decl:Int> isa OTHER */
6414 /* <var_vararg_decl:Int> isa OTHER */
6415 var518
= 1; /* easy <var_vararg_decl:Int> isa OTHER*/
6416 if (unlikely(!var518
)) {
6417 var_class_name521
= type_standard__Int
.name
;
6418 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name521
);
6419 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
6422 var522
= var_vararg_rank
+ var_vararg_decl
;
6425 RET_LABEL517
:(void)0;
6431 { /* Inline kernel#Int#<= (var_i515,var_523) on <var_i515:Int> */
6432 /* Covariant cast for argument 0 (i) <var_523:Int> isa OTHER */
6433 /* <var_523:Int> isa OTHER */
6434 var526
= 1; /* easy <var_523:Int> isa OTHER*/
6435 if (unlikely(!var526
)) {
6436 var_class_name529
= type_standard__Int
.name
;
6437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name529
);
6438 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 533);
6441 var530
= var_i515
<= var_523
;
6444 RET_LABEL525
:(void)0;
6449 var531
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_args
, var_i515
);
6452 var532
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(self
, var531
, var_paramtype445
);
6455 var533
= standard___standard__Int___Discrete__successor(var_i515
, 1l);
6459 goto BREAK_label534
;
6462 BREAK_label534
: (void)0;
6471 /* method typing#TypeVisitor#error for (self: TypeVisitor, ANode, String) */
6472 void nit__typing___nit__typing__TypeVisitor___error(val
* self
, val
* p0
, val
* p1
) {
6473 val
* var_node
/* var node: ANode */;
6474 val
* var_message
/* var message: String */;
6475 val
* var
/* : ModelBuilder */;
6476 val
* var2
/* : ModelBuilder */;
6477 val
* var3
/* : ToolContext */;
6478 val
* var5
/* : ToolContext */;
6479 val
* var6
/* : Location */;
6480 val
* var7
/* : Message */;
6484 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
6485 var2
= self
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
6486 if (unlikely(var2
== NULL
)) {
6487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6488 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
6496 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
6497 var5
= var
->attrs
[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var:ModelBuilder> */
6498 if (unlikely(var5
== NULL
)) {
6499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6500 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base
, 47);
6508 var6
= ((val
*(*)(val
* self
))(var_node
->class->vft
[COLOR_nit__parser_nodes__ANode__hot_location
]))(var_node
); /* hot_location on <var_node:ANode>*/
6511 var7
= nit___nit__ToolContext___error(var3
, var6
, var_message
);
6515 /* method typing#TypeVisitor#get_variable for (self: TypeVisitor, AExpr, Variable): nullable MType */
6516 val
* nit__typing___nit__typing__TypeVisitor___get_variable(val
* self
, val
* p0
, val
* p1
) {
6517 val
* var
/* : nullable MType */;
6518 val
* var_node
/* var node: AExpr */;
6519 val
* var_variable
/* var variable: Variable */;
6520 short int var1
/* : Bool */;
6521 short int var3
/* : Bool */;
6522 short int var4
/* : Bool */;
6523 val
* var5
/* : nullable MType */;
6524 val
* var7
/* : nullable MType */;
6525 val
* var8
/* : nullable FlowContext */;
6526 val
* var10
/* : nullable FlowContext */;
6527 val
* var_flow
/* var flow: nullable FlowContext */;
6528 short int var11
/* : Bool */;
6529 short int var12
/* : Bool */;
6530 val
* var_other
/* var other: nullable Object */;
6531 short int var14
/* : Bool */;
6532 short int var16
/* : Bool */;
6533 val
* var17
/* : HashMap[Variable, nullable MType] */;
6534 val
* var19
/* : HashMap[Variable, nullable MType] */;
6535 short int var20
/* : Bool */;
6536 val
* var21
/* : HashMap[Variable, nullable MType] */;
6537 val
* var23
/* : HashMap[Variable, nullable MType] */;
6538 val
* var24
/* : nullable Object */;
6539 val
* var25
/* : Array[nullable MType] */;
6540 val
* var_mtypes
/* var mtypes: Array[nullable MType] */;
6541 long var26
/* : Int */;
6542 long var28
/* : Int */;
6543 short int var29
/* : Bool */;
6544 short int var31
/* : Bool */;
6545 val
* var32
/* : nullable MType */;
6546 val
* var34
/* : nullable MType */;
6547 long var35
/* : Int */;
6548 long var37
/* : Int */;
6549 short int var38
/* : Bool */;
6550 short int var40
/* : Bool */;
6551 val
* var41
/* : nullable Object */;
6552 val
* var42
/* : nullable MType */;
6553 val
* var_res
/* var res: nullable MType */;
6554 short int var43
/* : Bool */;
6555 short int var44
/* : Bool */;
6556 short int var46
/* : Bool */;
6557 short int var48
/* : Bool */;
6558 val
* var49
/* : nullable MType */;
6559 val
* var51
/* : nullable MType */;
6563 { /* Inline typing#Variable#is_adapted (var_variable) on <var_variable:Variable> */
6564 var3
= var_variable
->attrs
[COLOR_nit__typing__Variable___is_adapted
].s
; /* _is_adapted on <var_variable:Variable> */
6572 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
6573 var7
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
6583 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
6584 var10
= var_node
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
6590 if (var_flow
== NULL
) {
6591 var11
= 1; /* is null */
6593 var11
= 0; /* arg is null but recv is not */
6596 { /* Inline kernel#Object#== (var_flow,((val*)NULL)) on <var_flow:nullable FlowContext> */
6597 var_other
= ((val
*)NULL
);
6599 { /* Inline kernel#Object#is_same_instance (var_flow,var_other) on <var_flow:nullable FlowContext(FlowContext)> */
6600 var16
= var_flow
== var_other
;
6603 RET_LABEL15
:(void)0;
6608 RET_LABEL13
:(void)0;
6618 { /* Inline typing#FlowContext#vars (var_flow) on <var_flow:nullable FlowContext(FlowContext)> */
6619 var19
= var_flow
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <var_flow:nullable FlowContext(FlowContext)> */
6620 if (unlikely(var19
== NULL
)) {
6621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6622 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 659);
6626 RET_LABEL18
:(void)0;
6630 var20
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var17
, var_variable
);
6634 { /* Inline typing#FlowContext#vars (var_flow) on <var_flow:nullable FlowContext(FlowContext)> */
6635 var23
= var_flow
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <var_flow:nullable FlowContext(FlowContext)> */
6636 if (unlikely(var23
== NULL
)) {
6637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6638 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 659);
6642 RET_LABEL22
:(void)0;
6646 var24
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var21
, var_variable
);
6652 var25
= nit__typing___FlowContext___collect_types(var_flow
, var_variable
);
6656 { /* Inline array#AbstractArrayRead#length (var_mtypes) on <var_mtypes:Array[nullable MType]> */
6657 var28
= var_mtypes
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_mtypes:Array[nullable MType]> */
6659 RET_LABEL27
:(void)0;
6663 { /* Inline kernel#Int#== (var26,0l) on <var26:Int> */
6664 var31
= var26
== 0l;
6667 RET_LABEL30
:(void)0;
6672 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
6673 var34
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
6675 RET_LABEL33
:(void)0;
6682 { /* Inline array#AbstractArrayRead#length (var_mtypes) on <var_mtypes:Array[nullable MType]> */
6683 var37
= var_mtypes
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_mtypes:Array[nullable MType]> */
6685 RET_LABEL36
:(void)0;
6689 { /* Inline kernel#Int#== (var35,1l) on <var35:Int> */
6690 var40
= var35
== 1l;
6693 RET_LABEL39
:(void)0;
6698 var41
= standard___standard__SequenceRead___Collection__first(var_mtypes
);
6704 var42
= nit__typing___nit__typing__TypeVisitor___merge_types(self
, var_node
, var_mtypes
);
6707 if (var_res
== NULL
) {
6708 var43
= 1; /* is null */
6710 var43
= 0; /* arg is null but recv is not */
6713 { /* Inline kernel#Object#== (var_res,((val*)NULL)) on <var_res:nullable MType> */
6714 var_other
= ((val
*)NULL
);
6716 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MType(MType)> */
6717 var48
= var_res
== var_other
;
6720 RET_LABEL47
:(void)0;
6725 RET_LABEL45
:(void)0;
6731 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
6732 var51
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
6734 RET_LABEL50
:(void)0;
6748 /* method typing#TypeVisitor#dirty for (self: TypeVisitor): Bool */
6749 short int nit__typing___nit__typing__TypeVisitor___dirty(val
* self
) {
6750 short int var
/* : Bool */;
6751 short int var1
/* : Bool */;
6752 var1
= self
->attrs
[COLOR_nit__typing__TypeVisitor___dirty
].s
; /* _dirty on <self:TypeVisitor> */
6757 /* method typing#TypeVisitor#dirty= for (self: TypeVisitor, Bool) */
6758 void nit__typing___nit__typing__TypeVisitor___dirty_61d(val
* self
, short int p0
) {
6759 self
->attrs
[COLOR_nit__typing__TypeVisitor___dirty
].s
= p0
; /* _dirty on <self:TypeVisitor> */
6762 /* method typing#TypeVisitor#has_loop for (self: TypeVisitor): Bool */
6763 short int nit__typing___nit__typing__TypeVisitor___has_loop(val
* self
) {
6764 short int var
/* : Bool */;
6765 short int var1
/* : Bool */;
6766 var1
= self
->attrs
[COLOR_nit__typing__TypeVisitor___has_loop
].s
; /* _has_loop on <self:TypeVisitor> */
6771 /* method typing#TypeVisitor#has_loop= for (self: TypeVisitor, Bool) */
6772 void nit__typing___nit__typing__TypeVisitor___has_loop_61d(val
* self
, short int p0
) {
6773 self
->attrs
[COLOR_nit__typing__TypeVisitor___has_loop
].s
= p0
; /* _has_loop on <self:TypeVisitor> */
6776 /* method typing#TypeVisitor#set_variable for (self: TypeVisitor, AExpr, Variable, nullable MType) */
6777 void nit__typing___nit__typing__TypeVisitor___set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6778 val
* var_node
/* var node: AExpr */;
6779 val
* var_variable
/* var variable: Variable */;
6780 val
* var_mtype
/* var mtype: nullable MType */;
6781 val
* var
/* : nullable FlowContext */;
6782 val
* var2
/* : nullable FlowContext */;
6783 val
* var_flow
/* var flow: nullable FlowContext */;
6784 short int var3
/* : Bool */;
6785 short int var4
/* : Bool */;
6786 val
* var_other
/* var other: nullable Object */;
6787 short int var6
/* : Bool */;
6788 short int var7
/* : Bool */;
6793 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
6794 var2
= var_node
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
6800 if (var_flow
== NULL
) {
6801 var3
= 0; /* is null */
6803 var3
= 1; /* arg is null and recv is not */
6806 { /* Inline kernel#Object#!= (var_flow,((val*)NULL)) on <var_flow:nullable FlowContext> */
6807 var_other
= ((val
*)NULL
);
6809 var6
= ((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)>*/
6818 if (unlikely(!var3
)) {
6819 PRINT_ERROR("Runtime error: %s", "Assert failed");
6820 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 563);
6824 nit__typing___FlowContext___set_var(var_flow
, self
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var_flow:nullable FlowContext(FlowContext)>*/
6828 /* method typing#TypeVisitor#merge_types for (self: TypeVisitor, ANode, Array[nullable MType]): nullable MType */
6829 val
* nit__typing___nit__typing__TypeVisitor___merge_types(val
* self
, val
* p0
, val
* p1
) {
6830 val
* var
/* : nullable MType */;
6831 val
* var_node
/* var node: ANode */;
6832 val
* var_col
/* var col: Array[nullable MType] */;
6833 long var1
/* : Int */;
6834 long var3
/* : Int */;
6835 short int var4
/* : Bool */;
6836 short int var6
/* : Bool */;
6837 val
* var7
/* : nullable Object */;
6838 val
* var_
/* var : Array[nullable MType] */;
6839 val
* var8
/* : ArrayIterator[nullable Object] */;
6840 val
* var_9
/* var : ArrayIterator[nullable MType] */;
6841 short int var10
/* : Bool */;
6842 val
* var11
/* : nullable Object */;
6843 val
* var_t1
/* var t1: nullable MType */;
6844 short int var12
/* : Bool */;
6845 short int var13
/* : Bool */;
6846 val
* var_other
/* var other: nullable Object */;
6847 short int var15
/* : Bool */;
6848 short int var17
/* : Bool */;
6849 short int var_found
/* var found: Bool */;
6850 val
* var_18
/* var : Array[nullable MType] */;
6851 val
* var19
/* : ArrayIterator[nullable Object] */;
6852 val
* var_20
/* var : ArrayIterator[nullable MType] */;
6853 short int var21
/* : Bool */;
6854 val
* var22
/* : nullable Object */;
6855 val
* var_t2
/* var t2: nullable MType */;
6856 short int var23
/* : Bool */;
6857 short int var24
/* : Bool */;
6858 short int var26
/* : Bool */;
6859 short int var28
/* : Bool */;
6860 short int var30
/* : Bool */;
6861 short int var31
/* : Bool */;
6862 short int var_32
/* var : Bool */;
6863 short int var33
/* : Bool */;
6864 short int var34
/* : Bool */;
6865 val
* var35
/* : MType */;
6866 short int var36
/* : Bool */;
6867 short int var37
/* : Bool */;
6871 { /* Inline array#AbstractArrayRead#length (var_col) on <var_col:Array[nullable MType]> */
6872 var3
= var_col
->attrs
[COLOR_standard__array__AbstractArrayRead___length
].l
; /* _length on <var_col:Array[nullable MType]> */
6878 { /* Inline kernel#Int#== (var1,1l) on <var1:Int> */
6887 var7
= standard___standard__SequenceRead___Collection__first(var_col
);
6895 var8
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_
);
6900 var10
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_9
);
6904 var11
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_9
);
6907 if (var_t1
== NULL
) {
6908 var12
= 1; /* is null */
6910 var12
= 0; /* arg is null but recv is not */
6913 { /* Inline kernel#Object#== (var_t1,((val*)NULL)) on <var_t1:nullable MType> */
6914 var_other
= ((val
*)NULL
);
6916 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
6917 var17
= var_t1
== var_other
;
6920 RET_LABEL16
:(void)0;
6925 RET_LABEL14
:(void)0;
6936 var19
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_18
);
6941 var21
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_20
);
6945 var22
= standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_20
);
6948 if (var_t2
== NULL
) {
6949 var23
= 1; /* is null */
6951 var23
= 0; /* arg is null but recv is not */
6954 { /* Inline kernel#Object#== (var_t2,((val*)NULL)) on <var_t2:nullable MType> */
6955 var_other
= ((val
*)NULL
);
6957 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
6958 var28
= var_t2
== var_other
;
6961 RET_LABEL27
:(void)0;
6966 RET_LABEL25
:(void)0;
6975 var31
= nit__typing___nit__typing__TypeVisitor___can_be_null(self
, var_t2
);
6980 var33
= nit__typing___nit__typing__TypeVisitor___can_be_null(self
, var_t1
);
6989 var35
= ((val
*(*)(val
* self
))(var_t1
->class->vft
[COLOR_nit__model__MType__as_nullable
]))(var_t1
); /* as_nullable on <var_t1:nullable MType(MType)>*/
6995 var36
= nit__typing___nit__typing__TypeVisitor___is_subtype(self
, var_t2
, var_t1
);
7002 BREAK_label29
: (void)0;
7004 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_20
); /* Direct call array#ArrayIterator#next on <var_20:ArrayIterator[nullable MType]>*/
7010 BREAK_label38
: (void)0;
7012 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_20
); /* Direct call array#ArrayIterator#finish on <var_20:ArrayIterator[nullable MType]>*/
7019 BREAK_label
: (void)0;
7021 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_9
); /* Direct call array#ArrayIterator#next on <var_9:ArrayIterator[nullable MType]>*/
7027 BREAK_label39
: (void)0;
7029 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_9
); /* Direct call array#ArrayIterator#finish on <var_9:ArrayIterator[nullable MType]>*/
7036 /* method typing#SignatureMap#map for (self: SignatureMap): ArrayMap[Int, Int] */
7037 val
* nit___nit__SignatureMap___map(val
* self
) {
7038 val
* var
/* : ArrayMap[Int, Int] */;
7039 val
* var1
/* : ArrayMap[Int, Int] */;
7040 var1
= self
->attrs
[COLOR_nit__typing__SignatureMap___map
].val
; /* _map on <self:SignatureMap> */
7041 if (unlikely(var1
== NULL
)) {
7042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
7043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 597);
7050 /* method typing#SignatureMap#vararg_decl for (self: SignatureMap): Int */
7051 long nit___nit__SignatureMap___vararg_decl(val
* self
) {
7052 long var
/* : Int */;
7053 long var1
/* : Int */;
7054 var1
= self
->attrs
[COLOR_nit__typing__SignatureMap___vararg_decl
].l
; /* _vararg_decl on <self:SignatureMap> */
7059 /* method typing#SignatureMap#vararg_decl= for (self: SignatureMap, Int) */
7060 void nit___nit__SignatureMap___vararg_decl_61d(val
* self
, long p0
) {
7061 self
->attrs
[COLOR_nit__typing__SignatureMap___vararg_decl
].l
= p0
; /* _vararg_decl on <self:SignatureMap> */
7064 /* method typing#CallSite#node for (self: CallSite): ANode */
7065 val
* nit___nit__CallSite___node(val
* self
) {
7066 val
* var
/* : ANode */;
7067 val
* var1
/* : ANode */;
7068 var1
= self
->attrs
[COLOR_nit__typing__CallSite___node
].val
; /* _node on <self:CallSite> */
7069 if (unlikely(var1
== NULL
)) {
7070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
7071 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 607);
7078 /* method typing#CallSite#node= for (self: CallSite, ANode) */
7079 void nit___nit__CallSite___node_61d(val
* self
, val
* p0
) {
7080 self
->attrs
[COLOR_nit__typing__CallSite___node
].val
= p0
; /* _node on <self:CallSite> */
7083 /* method typing#CallSite#recv for (self: CallSite): MType */
7084 val
* nit___nit__CallSite___recv(val
* self
) {
7085 val
* var
/* : MType */;
7086 val
* var1
/* : MType */;
7087 var1
= self
->attrs
[COLOR_nit__typing__CallSite___recv
].val
; /* _recv on <self:CallSite> */
7088 if (unlikely(var1
== NULL
)) {
7089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
7090 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 610);
7097 /* method typing#CallSite#recv= for (self: CallSite, MType) */
7098 void nit___nit__CallSite___recv_61d(val
* self
, val
* p0
) {
7099 self
->attrs
[COLOR_nit__typing__CallSite___recv
].val
= p0
; /* _recv on <self:CallSite> */
7102 /* method typing#CallSite#mmodule for (self: CallSite): MModule */
7103 val
* nit___nit__CallSite___mmodule(val
* self
) {
7104 val
* var
/* : MModule */;
7105 val
* var1
/* : MModule */;
7106 var1
= self
->attrs
[COLOR_nit__typing__CallSite___mmodule
].val
; /* _mmodule on <self:CallSite> */
7107 if (unlikely(var1
== NULL
)) {
7108 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7109 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 613);
7116 /* method typing#CallSite#mmodule= for (self: CallSite, MModule) */
7117 void nit___nit__CallSite___mmodule_61d(val
* self
, val
* p0
) {
7118 self
->attrs
[COLOR_nit__typing__CallSite___mmodule
].val
= p0
; /* _mmodule on <self:CallSite> */
7121 /* method typing#CallSite#anchor for (self: CallSite): nullable MClassType */
7122 val
* nit___nit__CallSite___anchor(val
* self
) {
7123 val
* var
/* : nullable MClassType */;
7124 val
* var1
/* : nullable MClassType */;
7125 var1
= self
->attrs
[COLOR_nit__typing__CallSite___anchor
].val
; /* _anchor on <self:CallSite> */
7130 /* method typing#CallSite#anchor= for (self: CallSite, nullable MClassType) */
7131 void nit___nit__CallSite___anchor_61d(val
* self
, val
* p0
) {
7132 self
->attrs
[COLOR_nit__typing__CallSite___anchor
].val
= p0
; /* _anchor on <self:CallSite> */
7135 /* method typing#CallSite#recv_is_self= for (self: CallSite, Bool) */
7136 void nit___nit__CallSite___recv_is_self_61d(val
* self
, short int p0
) {
7137 self
->attrs
[COLOR_nit__typing__CallSite___recv_is_self
].s
= p0
; /* _recv_is_self on <self:CallSite> */
7140 /* method typing#CallSite#mproperty for (self: CallSite): MMethod */
7141 val
* nit___nit__CallSite___mproperty(val
* self
) {
7142 val
* var
/* : MMethod */;
7143 val
* var1
/* : MMethod */;
7144 var1
= self
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <self:CallSite> */
7145 if (unlikely(var1
== NULL
)) {
7146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7147 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 624);
7154 /* method typing#CallSite#mproperty= for (self: CallSite, MMethod) */
7155 void nit___nit__CallSite___mproperty_61d(val
* self
, val
* p0
) {
7156 self
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
= p0
; /* _mproperty on <self:CallSite> */
7159 /* method typing#CallSite#mpropdef for (self: CallSite): MMethodDef */
7160 val
* nit___nit__CallSite___mpropdef(val
* self
) {
7161 val
* var
/* : MMethodDef */;
7162 val
* var1
/* : MMethodDef */;
7163 var1
= self
->attrs
[COLOR_nit__typing__CallSite___mpropdef
].val
; /* _mpropdef on <self:CallSite> */
7164 if (unlikely(var1
== NULL
)) {
7165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
7166 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 627);
7173 /* method typing#CallSite#mpropdef= for (self: CallSite, MMethodDef) */
7174 void nit___nit__CallSite___mpropdef_61d(val
* self
, val
* p0
) {
7175 self
->attrs
[COLOR_nit__typing__CallSite___mpropdef
].val
= p0
; /* _mpropdef on <self:CallSite> */
7178 /* method typing#CallSite#msignature for (self: CallSite): MSignature */
7179 val
* nit___nit__CallSite___msignature(val
* self
) {
7180 val
* var
/* : MSignature */;
7181 val
* var1
/* : MSignature */;
7182 var1
= self
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <self:CallSite> */
7183 if (unlikely(var1
== NULL
)) {
7184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
7185 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 631);
7192 /* method typing#CallSite#msignature= for (self: CallSite, MSignature) */
7193 void nit___nit__CallSite___msignature_61d(val
* self
, val
* p0
) {
7194 self
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
= p0
; /* _msignature on <self:CallSite> */
7197 /* method typing#CallSite#erasure_cast for (self: CallSite): Bool */
7198 short int nit___nit__CallSite___erasure_cast(val
* self
) {
7199 short int var
/* : Bool */;
7200 short int var1
/* : Bool */;
7201 var1
= self
->attrs
[COLOR_nit__typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <self:CallSite> */
7206 /* method typing#CallSite#erasure_cast= for (self: CallSite, Bool) */
7207 void nit___nit__CallSite___erasure_cast_61d(val
* self
, short int p0
) {
7208 self
->attrs
[COLOR_nit__typing__CallSite___erasure_cast
].s
= p0
; /* _erasure_cast on <self:CallSite> */
7211 /* method typing#CallSite#signaturemap for (self: CallSite): nullable SignatureMap */
7212 val
* nit___nit__CallSite___signaturemap(val
* self
) {
7213 val
* var
/* : nullable SignatureMap */;
7214 val
* var1
/* : nullable SignatureMap */;
7215 var1
= self
->attrs
[COLOR_nit__typing__CallSite___signaturemap
].val
; /* _signaturemap on <self:CallSite> */
7220 /* method typing#CallSite#signaturemap= for (self: CallSite, nullable SignatureMap) */
7221 void nit___nit__CallSite___signaturemap_61d(val
* self
, val
* p0
) {
7222 self
->attrs
[COLOR_nit__typing__CallSite___signaturemap
].val
= p0
; /* _signaturemap on <self:CallSite> */
7225 /* method typing#CallSite#check_signature for (self: CallSite, TypeVisitor, Array[AExpr]): Bool */
7226 short int nit___nit__CallSite___check_signature(val
* self
, val
* p0
, val
* p1
) {
7227 short int var
/* : Bool */;
7228 val
* var_v
/* var v: TypeVisitor */;
7229 val
* var_args
/* var args: Array[AExpr] */;
7230 val
* var1
/* : ANode */;
7231 val
* var3
/* : ANode */;
7232 val
* var4
/* : MMethod */;
7233 val
* var6
/* : MMethod */;
7234 val
* var7
/* : MSignature */;
7235 val
* var9
/* : MSignature */;
7236 val
* var10
/* : nullable SignatureMap */;
7237 val
* var_map
/* var map: nullable SignatureMap */;
7238 short int var12
/* : Bool */;
7239 short int var13
/* : Bool */;
7240 val
* var_other
/* var other: nullable Object */;
7241 short int var15
/* : Bool */;
7242 short int var17
/* : Bool */;
7246 { /* Inline typing#CallSite#node (self) on <self:CallSite> */
7247 var3
= self
->attrs
[COLOR_nit__typing__CallSite___node
].val
; /* _node on <self:CallSite> */
7248 if (unlikely(var3
== NULL
)) {
7249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
7250 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 607);
7258 { /* Inline typing#CallSite#mproperty (self) on <self:CallSite> */
7259 var6
= self
->attrs
[COLOR_nit__typing__CallSite___mproperty
].val
; /* _mproperty on <self:CallSite> */
7260 if (unlikely(var6
== NULL
)) {
7261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7262 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 624);
7270 { /* Inline typing#CallSite#msignature (self) on <self:CallSite> */
7271 var9
= self
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <self:CallSite> */
7272 if (unlikely(var9
== NULL
)) {
7273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
7274 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 631);
7282 var10
= nit__typing___nit__typing__TypeVisitor___check_signature(var_v
, var1
, var_args
, var4
, var7
);
7286 { /* Inline typing#CallSite#signaturemap= (self,var_map) on <self:CallSite> */
7287 self
->attrs
[COLOR_nit__typing__CallSite___signaturemap
].val
= var_map
; /* _signaturemap on <self:CallSite> */
7288 RET_LABEL11
:(void)0;
7291 if (var_map
== NULL
) {
7292 var12
= 1; /* is null */
7294 var12
= 0; /* arg is null but recv is not */
7297 { /* Inline kernel#Object#== (var_map,((val*)NULL)) on <var_map:nullable SignatureMap> */
7298 var_other
= ((val
*)NULL
);
7300 { /* Inline kernel#Object#is_same_instance (var_map,var_other) on <var_map:nullable SignatureMap(SignatureMap)> */
7301 var17
= var_map
== var_other
;
7304 RET_LABEL16
:(void)0;
7309 RET_LABEL14
:(void)0;
7318 /* method typing#CallSite#init for (self: CallSite) */
7319 void nit___nit__CallSite___standard__kernel__Object__init(val
* self
) {
7321 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nit___nit__CallSite___standard__kernel__Object__init
]))(self
); /* init on <self:CallSite>*/
7325 /* method typing#Variable#declared_type for (self: Variable): nullable MType */
7326 val
* nit__typing___Variable___declared_type(val
* self
) {
7327 val
* var
/* : nullable MType */;
7328 val
* var1
/* : nullable MType */;
7329 var1
= self
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <self:Variable> */
7334 /* method typing#Variable#declared_type= for (self: Variable, nullable MType) */
7335 void nit__typing___Variable___declared_type_61d(val
* self
, val
* p0
) {
7336 self
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= p0
; /* _declared_type on <self:Variable> */
7339 /* method typing#Variable#is_adapted for (self: Variable): Bool */
7340 short int nit__typing___Variable___is_adapted(val
* self
) {
7341 short int var
/* : Bool */;
7342 short int var1
/* : Bool */;
7343 var1
= self
->attrs
[COLOR_nit__typing__Variable___is_adapted
].s
; /* _is_adapted on <self:Variable> */
7348 /* method typing#Variable#is_adapted= for (self: Variable, Bool) */
7349 void nit__typing___Variable___is_adapted_61d(val
* self
, short int p0
) {
7350 self
->attrs
[COLOR_nit__typing__Variable___is_adapted
].s
= p0
; /* _is_adapted on <self:Variable> */
7353 /* method typing#FlowContext#vars for (self: FlowContext): HashMap[Variable, nullable MType] */
7354 val
* nit__typing___FlowContext___vars(val
* self
) {
7355 val
* var
/* : HashMap[Variable, nullable MType] */;
7356 val
* var1
/* : HashMap[Variable, nullable MType] */;
7357 var1
= self
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
7358 if (unlikely(var1
== NULL
)) {
7359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7360 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 659);
7367 /* method typing#FlowContext#set_var for (self: FlowContext, TypeVisitor, Variable, nullable MType) */
7368 void nit__typing___FlowContext___set_var(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7369 val
* var_v
/* var v: TypeVisitor */;
7370 val
* var_variable
/* var variable: Variable */;
7371 val
* var_mtype
/* var mtype: nullable MType */;
7372 short int var
/* : Bool */;
7373 val
* var1
/* : nullable MType */;
7374 val
* var3
/* : nullable MType */;
7375 short int var4
/* : Bool */;
7376 short int var5
/* : Bool */;
7377 val
* var_other
/* var other: nullable Object */;
7378 short int var7
/* : Bool */;
7379 short int var9
/* : Bool */;
7380 short int var_
/* var : Bool */;
7381 short int var10
/* : Bool */;
7382 short int var12
/* : Bool */;
7383 short int var13
/* : Bool */;
7384 short int var14
/* : Bool */;
7385 val
* var15
/* : HashMap[Variable, nullable MType] */;
7386 val
* var17
/* : HashMap[Variable, nullable MType] */;
7387 short int var18
/* : Bool */;
7388 short int var_19
/* var : Bool */;
7389 val
* var20
/* : HashMap[Variable, nullable MType] */;
7390 val
* var22
/* : HashMap[Variable, nullable MType] */;
7391 val
* var23
/* : nullable Object */;
7392 short int var24
/* : Bool */;
7393 short int var25
/* : Bool */;
7394 short int var27
/* : Bool */;
7395 short int var29
/* : Bool */;
7396 val
* var30
/* : HashMap[Variable, nullable MType] */;
7397 val
* var32
/* : HashMap[Variable, nullable MType] */;
7402 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
7403 var3
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
7409 var4
= (var_mtype
== NULL
);
7411 { /* Inline kernel#Object#== (var1,var_mtype) on <var1:nullable MType> */
7412 var_other
= var_mtype
;
7414 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
7415 var9
= var1
== var_other
;
7430 { /* Inline typing#Variable#is_adapted (var_variable) on <var_variable:Variable> */
7431 var12
= var_variable
->attrs
[COLOR_nit__typing__Variable___is_adapted
].s
; /* _is_adapted on <var_variable:Variable> */
7433 RET_LABEL11
:(void)0;
7446 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
7447 var17
= self
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
7448 if (unlikely(var17
== NULL
)) {
7449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 659);
7454 RET_LABEL16
:(void)0;
7458 var18
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var15
, var_variable
);
7463 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
7464 var22
= self
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
7465 if (unlikely(var22
== NULL
)) {
7466 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7467 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 659);
7471 RET_LABEL21
:(void)0;
7475 var23
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var20
, var_variable
);
7477 if (var23
== NULL
) {
7478 var24
= (var_mtype
== NULL
);
7480 { /* Inline kernel#Object#== (var23,var_mtype) on <var23:nullable Object(nullable MType)> */
7481 var_other
= var_mtype
;
7483 { /* Inline kernel#Object#is_same_instance (var23,var_other) on <var23:nullable MType(MType)> */
7484 var29
= var23
== var_other
;
7487 RET_LABEL28
:(void)0;
7492 RET_LABEL26
:(void)0;
7505 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
7506 var32
= self
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
7507 if (unlikely(var32
== NULL
)) {
7508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7509 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 659);
7513 RET_LABEL31
:(void)0;
7517 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var30
, var_variable
, var_mtype
); /* Direct call hash_collection#HashMap#[]= on <var30:HashMap[Variable, nullable MType]>*/
7520 { /* Inline typing#TypeVisitor#dirty= (var_v,1) on <var_v:TypeVisitor> */
7521 var_v
->attrs
[COLOR_nit__typing__TypeVisitor___dirty
].s
= 1; /* _dirty on <var_v:TypeVisitor> */
7522 RET_LABEL33
:(void)0;
7526 { /* Inline typing#Variable#is_adapted= (var_variable,1) on <var_variable:Variable> */
7527 var_variable
->attrs
[COLOR_nit__typing__Variable___is_adapted
].s
= 1; /* _is_adapted on <var_variable:Variable> */
7528 RET_LABEL34
:(void)0;
7533 /* method typing#FlowContext#collect_types for (self: FlowContext, Variable): Array[nullable MType] */
7534 val
* nit__typing___FlowContext___collect_types(val
* self
, val
* p0
) {
7535 val
* var
/* : Array[nullable MType] */;
7536 val
* var_variable
/* var variable: Variable */;
7537 val
* var1
/* : Array[nullable MType] */;
7538 val
* var_res
/* var res: Array[nullable MType] */;
7539 val
* var2
/* : Array[FlowContext] */;
7540 val
* var_
/* var : Array[FlowContext] */;
7541 val
* var_todo
/* var todo: Array[FlowContext] */;
7542 val
* var3
/* : HashSet[FlowContext] */;
7543 val
* var_seen
/* var seen: HashSet[FlowContext] */;
7544 short int var4
/* : Bool */;
7545 short int var5
/* : Bool */;
7546 val
* var6
/* : nullable Object */;
7547 val
* var_f
/* var f: FlowContext */;
7548 short int var7
/* : Bool */;
7549 short int var8
/* : Bool */;
7550 val
* var9
/* : HashMap[Variable, nullable MType] */;
7551 val
* var11
/* : HashMap[Variable, nullable MType] */;
7552 short int var12
/* : Bool */;
7553 val
* var13
/* : HashMap[Variable, nullable MType] */;
7554 val
* var15
/* : HashMap[Variable, nullable MType] */;
7555 val
* var16
/* : nullable Object */;
7556 val
* var17
/* : Array[FlowContext] */;
7557 val
* var19
/* : Array[FlowContext] */;
7558 val
* var20
/* : Array[FlowContext] */;
7559 val
* var22
/* : Array[FlowContext] */;
7560 val
* var23
/* : Array[FlowContext] */;
7561 val
* var25
/* : Array[FlowContext] */;
7562 short int var26
/* : Bool */;
7563 val
* var27
/* : nullable MType */;
7564 val
* var29
/* : nullable MType */;
7566 var1
= NEW_standard__Array(&type_standard__Array__nullable__nit__MType
);
7568 standard___standard__Array___standard__kernel__Object__init(var1
); /* Direct call array#Array#init on <var1:Array[nullable MType]>*/
7571 var2
= NEW_standard__Array(&type_standard__Array__nit__FlowContext
);
7573 standard___standard__Array___with_capacity(var2
, 1l); /* Direct call array#Array#with_capacity on <var2:Array[FlowContext]>*/
7577 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_
, self
); /* Direct call array#AbstractArray#push on <var_:Array[FlowContext]>*/
7580 var3
= NEW_standard__HashSet(&type_standard__HashSet__nit__FlowContext
);
7582 standard___standard__HashSet___standard__kernel__Object__init(var3
); /* Direct call hash_collection#HashSet#init on <var3:HashSet[FlowContext]>*/
7587 var4
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_todo
);
7592 var6
= standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(var_todo
);
7596 var7
= nit___nit__FlowContext___is_unreachable(var_f
);
7603 var8
= standard___standard__HashSet___standard__abstract_collection__Collection__has(var_seen
, var_f
);
7610 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var_seen
, var_f
); /* Direct call hash_collection#HashSet#add on <var_seen:HashSet[FlowContext]>*/
7613 { /* Inline typing#FlowContext#vars (var_f) on <var_f:FlowContext> */
7614 var11
= var_f
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <var_f:FlowContext> */
7615 if (unlikely(var11
== NULL
)) {
7616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7617 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 659);
7621 RET_LABEL10
:(void)0;
7625 var12
= standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var9
, var_variable
);
7629 { /* Inline typing#FlowContext#vars (var_f) on <var_f:FlowContext> */
7630 var15
= var_f
->attrs
[COLOR_nit__typing__FlowContext___vars
].val
; /* _vars on <var_f:FlowContext> */
7631 if (unlikely(var15
== NULL
)) {
7632 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7633 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 659);
7637 RET_LABEL14
:(void)0;
7641 var16
= standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var13
, var_variable
);
7644 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res
, var16
); /* Direct call array#Array#add on <var_res:Array[nullable MType]>*/
7648 { /* Inline flow#FlowContext#previous (var_f) on <var_f:FlowContext> */
7649 var19
= var_f
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <var_f:FlowContext> */
7650 if (unlikely(var19
== NULL
)) {
7651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
7652 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 189);
7656 RET_LABEL18
:(void)0;
7660 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var_todo
, var17
); /* Direct call array#Array#add_all on <var_todo:Array[FlowContext]>*/
7663 { /* Inline flow#FlowContext#loops (var_f) on <var_f:FlowContext> */
7664 var22
= var_f
->attrs
[COLOR_nit__flow__FlowContext___loops
].val
; /* _loops on <var_f:FlowContext> */
7665 if (unlikely(var22
== NULL
)) {
7666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
7667 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 192);
7671 RET_LABEL21
:(void)0;
7675 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var_todo
, var20
); /* Direct call array#Array#add_all on <var_todo:Array[FlowContext]>*/
7678 { /* Inline flow#FlowContext#previous (var_f) on <var_f:FlowContext> */
7679 var25
= var_f
->attrs
[COLOR_nit__flow__FlowContext___previous
].val
; /* _previous on <var_f:FlowContext> */
7680 if (unlikely(var25
== NULL
)) {
7681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
7682 PRINT_ERROR(" (%s:%d)\n", FILE_nit__flow
, 189);
7686 RET_LABEL24
:(void)0;
7690 var26
= standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var23
);
7694 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
7695 var29
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
7697 RET_LABEL28
:(void)0;
7701 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res
, var27
); /* Direct call array#Array#add on <var_res:Array[nullable MType]>*/
7709 BREAK_label
: (void)0;
7711 BREAK_label30
: (void)0;
7717 /* method typing#APropdef#do_typing for (self: APropdef, ModelBuilder) */
7718 void nit__typing___APropdef___do_typing(val
* self
, val
* p0
) {
7719 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
7720 var_modelbuilder
= p0
;
7723 /* method typing#APropdef#selfvariable= for (self: APropdef, nullable Variable) */
7724 void nit__typing___APropdef___selfvariable_61d(val
* self
, val
* p0
) {
7725 self
->attrs
[COLOR_nit__typing__APropdef___selfvariable
].val
= p0
; /* _selfvariable on <self:APropdef> */
7728 /* method typing#AMethPropdef#do_typing for (self: AMethPropdef, ModelBuilder) */
7729 void nit__typing___AMethPropdef___APropdef__do_typing(val
* self
, val
* p0
) {
7730 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
7731 val
* var
/* : nullable AExpr */;
7732 val
* var2
/* : nullable AExpr */;
7733 val
* var_nblock
/* var nblock: nullable AExpr */;
7734 short int var3
/* : Bool */;
7735 short int var4
/* : Bool */;
7736 val
* var_other
/* var other: nullable Object */;
7737 short int var6
/* : Bool */;
7738 short int var8
/* : Bool */;
7739 val
* var9
/* : nullable MPropDef */;
7740 val
* var11
/* : nullable MPropDef */;
7741 val
* var_mpropdef
/* var mpropdef: nullable MMethodDef */;
7742 short int var12
/* : Bool */;
7743 short int var13
/* : Bool */;
7744 short int var15
/* : Bool */;
7745 short int var17
/* : Bool */;
7746 val
* var18
/* : TypeVisitor */;
7747 val
* var19
/* : MClassDef */;
7748 val
* var21
/* : MClassDef */;
7749 val
* var22
/* : MModule */;
7750 val
* var24
/* : MModule */;
7751 val
* var_v
/* var v: TypeVisitor */;
7752 val
* var25
/* : Variable */;
7753 val
* var27
/* : Variable */;
7754 val
* var29
/* : nullable MPropDef */;
7755 val
* var31
/* : nullable MPropDef */;
7756 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
7757 val
* var32
/* : nullable MSignature */;
7758 val
* var34
/* : nullable MSignature */;
7759 val
* var_msignature
/* var msignature: nullable MSignature */;
7760 short int var35
/* : Bool */;
7761 short int var36
/* : Bool */;
7762 short int var38
/* : Bool */;
7763 short int var40
/* : Bool */;
7764 long var_i
/* var i: Int */;
7765 long var41
/* : Int */;
7766 long var_
/* var : Int */;
7767 short int var42
/* : Bool */;
7768 short int var44
/* : Bool */;
7771 const char* var_class_name
;
7772 short int var45
/* : Bool */;
7773 val
* var46
/* : Array[MParameter] */;
7774 val
* var48
/* : Array[MParameter] */;
7775 val
* var49
/* : nullable Object */;
7776 val
* var50
/* : MType */;
7777 val
* var52
/* : MType */;
7778 val
* var_mtype
/* var mtype: MType */;
7779 long var53
/* : Int */;
7780 long var55
/* : Int */;
7781 short int var56
/* : Bool */;
7782 short int var58
/* : Bool */;
7783 val
* var59
/* : nullable ASignature */;
7784 val
* var61
/* : nullable ASignature */;
7785 val
* var62
/* : ANodes[AParam] */;
7786 val
* var64
/* : ANodes[AParam] */;
7787 val
* var65
/* : ANode */;
7788 static val
* varonce
;
7789 val
* var66
/* : String */;
7790 char* var67
/* : NativeString */;
7791 val
* var68
/* : FlatString */;
7792 val
* var69
/* : nullable MClass */;
7793 val
* var_arrayclass
/* var arrayclass: nullable MClass */;
7794 short int var70
/* : Bool */;
7795 short int var71
/* : Bool */;
7796 short int var73
/* : Bool */;
7797 short int var75
/* : Bool */;
7798 val
* var76
/* : Array[MType] */;
7799 val
* var_77
/* var : Array[MType] */;
7800 val
* var78
/* : MClassType */;
7801 val
* var79
/* : nullable ASignature */;
7802 val
* var81
/* : nullable ASignature */;
7803 val
* var82
/* : ANodes[AParam] */;
7804 val
* var84
/* : ANodes[AParam] */;
7805 val
* var85
/* : ANode */;
7806 val
* var86
/* : nullable Variable */;
7807 val
* var88
/* : nullable Variable */;
7808 val
* var_variable
/* var variable: nullable Variable */;
7809 short int var89
/* : Bool */;
7810 short int var90
/* : Bool */;
7811 val
* var_other92
/* var other: nullable Object */;
7812 short int var93
/* : Bool */;
7813 short int var94
/* : Bool */;
7814 long var96
/* : Int */;
7815 short int var98
/* : Bool */;
7816 short int var99
/* : Bool */;
7817 short int var101
/* : Bool */;
7818 short int var102
/* : Bool */;
7819 short int var_103
/* var : Bool */;
7820 short int var104
/* : Bool */;
7821 short int var106
/* : Bool */;
7822 short int var107
/* : Bool */;
7823 short int var109
/* : Bool */;
7824 val
* var110
/* : nullable FlowContext */;
7825 val
* var112
/* : nullable FlowContext */;
7826 short int var113
/* : Bool */;
7827 short int var114
/* : Bool */;
7828 short int var_115
/* var : Bool */;
7829 val
* var116
/* : nullable MType */;
7830 val
* var118
/* : nullable MType */;
7831 short int var119
/* : Bool */;
7832 short int var120
/* : Bool */;
7833 short int var122
/* : Bool */;
7834 short int var123
/* : Bool */;
7835 static val
* varonce124
;
7836 val
* var125
/* : String */;
7837 char* var126
/* : NativeString */;
7838 val
* var127
/* : FlatString */;
7839 var_modelbuilder
= p0
;
7841 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
7842 var2
= self
->attrs
[COLOR_nit__parser_nodes__AMethPropdef___n_block
].val
; /* _n_block on <self:AMethPropdef> */
7848 if (var_nblock
== NULL
) {
7849 var3
= 1; /* is null */
7851 var3
= 0; /* arg is null but recv is not */
7854 { /* Inline kernel#Object#== (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
7855 var_other
= ((val
*)NULL
);
7857 { /* Inline kernel#Object#is_same_instance (var_nblock,var_other) on <var_nblock:nullable AExpr(AExpr)> */
7858 var8
= var_nblock
== var_other
;
7875 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
7876 var11
= self
->attrs
[COLOR_nit__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AMethPropdef> */
7878 RET_LABEL10
:(void)0;
7881 var_mpropdef
= var9
;
7882 if (var_mpropdef
== NULL
) {
7883 var12
= 1; /* is null */
7885 var12
= 0; /* arg is null but recv is not */
7888 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
7889 var_other
= ((val
*)NULL
);
7891 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
7892 var17
= var_mpropdef
== var_other
;
7895 RET_LABEL16
:(void)0;
7900 RET_LABEL14
:(void)0;
7908 var18
= NEW_nit__typing__TypeVisitor(&type_nit__typing__TypeVisitor
);
7910 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
7911 var21
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
7912 if (unlikely(var21
== NULL
)) {
7913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7914 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2209);
7918 RET_LABEL20
:(void)0;
7922 { /* Inline model#MClassDef#mmodule (var19) on <var19:MClassDef> */
7923 var24
= var19
->attrs
[COLOR_nit__model__MClassDef___mmodule
].val
; /* _mmodule on <var19:MClassDef> */
7924 if (unlikely(var24
== NULL
)) {
7925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7926 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 550);
7930 RET_LABEL23
:(void)0;
7934 ((void(*)(val
* self
, val
* p0
))(var18
->class->vft
[COLOR_nit__typing__TypeVisitor__modelbuilder_61d
]))(var18
, var_modelbuilder
); /* modelbuilder= on <var18:TypeVisitor>*/
7937 ((void(*)(val
* self
, val
* p0
))(var18
->class->vft
[COLOR_nit__typing__TypeVisitor__mmodule_61d
]))(var18
, var22
); /* mmodule= on <var18:TypeVisitor>*/
7940 ((void(*)(val
* self
, val
* p0
))(var18
->class->vft
[COLOR_nit__typing__TypeVisitor__mpropdef_61d
]))(var18
, var_mpropdef
); /* mpropdef= on <var18:TypeVisitor>*/
7943 ((void(*)(val
* self
))(var18
->class->vft
[COLOR_standard__kernel__Object__init
]))(var18
); /* init on <var18:TypeVisitor>*/
7947 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
7948 var27
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
7949 if (unlikely(var27
== NULL
)) {
7950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
7951 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 50);
7955 RET_LABEL26
:(void)0;
7959 { /* Inline typing#APropdef#selfvariable= (self,var25) on <self:AMethPropdef> */
7960 self
->attrs
[COLOR_nit__typing__APropdef___selfvariable
].val
= var25
; /* _selfvariable on <self:AMethPropdef> */
7961 RET_LABEL28
:(void)0;
7965 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
7966 var31
= self
->attrs
[COLOR_nit__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AMethPropdef> */
7968 RET_LABEL30
:(void)0;
7971 if (unlikely(var29
== NULL
)) {
7972 PRINT_ERROR("Runtime error: %s", "Cast failed");
7973 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 730);
7976 var_mmethoddef
= var29
;
7978 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
7979 var34
= var_mmethoddef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
7981 RET_LABEL33
:(void)0;
7984 var_msignature
= var32
;
7985 if (var_msignature
== NULL
) {
7986 var35
= 1; /* is null */
7988 var35
= 0; /* arg is null but recv is not */
7991 { /* Inline kernel#Object#== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
7992 var_other
= ((val
*)NULL
);
7994 { /* Inline kernel#Object#is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
7995 var40
= var_msignature
== var_other
;
7998 RET_LABEL39
:(void)0;
8003 RET_LABEL37
:(void)0;
8013 var41
= nit___nit__MSignature___arity(var_msignature
);
8018 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
8019 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
8020 /* <var_:Int> isa OTHER */
8021 var44
= 1; /* easy <var_:Int> isa OTHER*/
8022 if (unlikely(!var44
)) {
8023 var_class_name
= type_standard__Int
.name
;
8024 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
8025 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
8028 var45
= var_i
< var_
;
8031 RET_LABEL43
:(void)0;
8036 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
8037 var48
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:nullable MSignature(MSignature)> */
8038 if (unlikely(var48
== NULL
)) {
8039 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
8040 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1756);
8044 RET_LABEL47
:(void)0;
8048 var49
= standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var46
, var_i
);
8051 { /* Inline model#MParameter#mtype (var49) on <var49:nullable Object(MParameter)> */
8052 var52
= var49
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var49:nullable Object(MParameter)> */
8053 if (unlikely(var52
== NULL
)) {
8054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8055 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1879);
8059 RET_LABEL51
:(void)0;
8064 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
8065 var55
= var_msignature
->attrs
[COLOR_nit__model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:nullable MSignature(MSignature)> */
8067 RET_LABEL54
:(void)0;
8071 { /* Inline kernel#Int#== (var53,var_i) on <var53:Int> */
8072 var58
= var53
== var_i
;
8075 RET_LABEL57
:(void)0;
8080 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
8081 var61
= self
->attrs
[COLOR_nit__parser_nodes__AMethPropdef___n_signature
].val
; /* _n_signature on <self:AMethPropdef> */
8083 RET_LABEL60
:(void)0;
8086 if (var59
== NULL
) {
8087 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8088 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 736);
8091 { /* Inline parser_nodes#ASignature#n_params (var59) on <var59:nullable ASignature> */
8092 if (unlikely(var59
== NULL
)) {
8093 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8094 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1693);
8097 var64
= var59
->attrs
[COLOR_nit__parser_nodes__ASignature___n_params
].val
; /* _n_params on <var59:nullable ASignature> */
8098 if (unlikely(var64
== NULL
)) {
8099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
8100 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1693);
8104 RET_LABEL63
:(void)0;
8108 var65
= nit___nit__ANodes___standard__abstract_collection__SequenceRead___91d_93d(var62
, var_i
);
8110 if (likely(varonce
!=NULL
)) {
8114 var68
= standard___standard__NativeString___to_s_with_length(var67
, 5l);
8119 var69
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, var65
, var66
);
8121 var_arrayclass
= var69
;
8122 if (var_arrayclass
== NULL
) {
8123 var70
= 1; /* is null */
8125 var70
= 0; /* arg is null but recv is not */
8128 { /* Inline kernel#Object#== (var_arrayclass,((val*)NULL)) on <var_arrayclass:nullable MClass> */
8129 var_other
= ((val
*)NULL
);
8131 { /* Inline kernel#Object#is_same_instance (var_arrayclass,var_other) on <var_arrayclass:nullable MClass(MClass)> */
8132 var75
= var_arrayclass
== var_other
;
8135 RET_LABEL74
:(void)0;
8140 RET_LABEL72
:(void)0;
8148 var76
= NEW_standard__Array(&type_standard__Array__nit__MType
);
8150 standard___standard__Array___with_capacity(var76
, 1l); /* Direct call array#Array#with_capacity on <var76:Array[MType]>*/
8154 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_77
, var_mtype
); /* Direct call array#AbstractArray#push on <var_77:Array[MType]>*/
8157 var78
= nit___nit__MClass___get_mtype(var_arrayclass
, var_77
);
8163 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
8164 var81
= self
->attrs
[COLOR_nit__parser_nodes__AMethPropdef___n_signature
].val
; /* _n_signature on <self:AMethPropdef> */
8166 RET_LABEL80
:(void)0;
8169 if (var79
== NULL
) {
8170 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 740);
8174 { /* Inline parser_nodes#ASignature#n_params (var79) on <var79:nullable ASignature> */
8175 if (unlikely(var79
== NULL
)) {
8176 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8177 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1693);
8180 var84
= var79
->attrs
[COLOR_nit__parser_nodes__ASignature___n_params
].val
; /* _n_params on <var79:nullable ASignature> */
8181 if (unlikely(var84
== NULL
)) {
8182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
8183 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1693);
8187 RET_LABEL83
:(void)0;
8191 var85
= nit___nit__ANodes___standard__abstract_collection__SequenceRead___91d_93d(var82
, var_i
);
8194 { /* Inline scope#AParam#variable (var85) on <var85:ANode(AParam)> */
8195 var88
= var85
->attrs
[COLOR_nit__scope__AParam___variable
].val
; /* _variable on <var85:ANode(AParam)> */
8197 RET_LABEL87
:(void)0;
8200 var_variable
= var86
;
8201 if (var_variable
== NULL
) {
8202 var89
= 0; /* is null */
8204 var89
= 1; /* arg is null and recv is not */
8207 { /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
8208 var_other92
= ((val
*)NULL
);
8210 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)>*/
8215 RET_LABEL91
:(void)0;
8219 if (unlikely(!var89
)) {
8220 PRINT_ERROR("Runtime error: %s", "Assert failed");
8221 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 741);
8225 { /* Inline typing#Variable#declared_type= (var_variable,var_mtype) on <var_variable:nullable Variable(Variable)> */
8226 var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var_mtype
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
8227 RET_LABEL95
:(void)0;
8231 var96
= standard___standard__Int___Discrete__successor(var_i
, 1l);
8238 BREAK_label
: (void)0;
8241 { /* Inline typing#TypeVisitor#dirty= (var_v,0) on <var_v:TypeVisitor> */
8242 var_v
->attrs
[COLOR_nit__typing__TypeVisitor___dirty
].s
= 0; /* _dirty on <var_v:TypeVisitor> */
8243 RET_LABEL97
:(void)0;
8247 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var_nblock
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
8250 { /* Inline typing#TypeVisitor#has_loop (var_v) on <var_v:TypeVisitor> */
8251 var101
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___has_loop
].s
; /* _has_loop on <var_v:TypeVisitor> */
8253 RET_LABEL100
:(void)0;
8262 { /* Inline typing#TypeVisitor#dirty (var_v) on <var_v:TypeVisitor> */
8263 var106
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___dirty
].s
; /* _dirty on <var_v:TypeVisitor> */
8265 RET_LABEL105
:(void)0;
8272 goto BREAK_label108
;
8276 BREAK_label108
: (void)0;
8278 { /* Inline flow#AExpr#after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
8279 var112
= var_nblock
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
8281 RET_LABEL111
:(void)0;
8284 if (var110
== NULL
) {
8285 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8286 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 751);
8289 var113
= nit___nit__FlowContext___is_unreachable(var110
);
8295 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
8296 var118
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
8298 RET_LABEL117
:(void)0;
8301 if (var116
== NULL
) {
8302 var119
= 0; /* is null */
8304 var119
= 1; /* arg is null and recv is not */
8307 { /* Inline kernel#Object#!= (var116,((val*)NULL)) on <var116:nullable MType> */
8308 var_other92
= ((val
*)NULL
);
8310 var122
= ((short int(*)(val
* self
, val
* p0
))(var116
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var116
, var_other92
); /* == on <var116:nullable MType(MType)>*/
8315 RET_LABEL121
:(void)0;
8324 if (likely(varonce124
!=NULL
)) {
8325 var125
= varonce124
;
8327 var126
= "Error: reached end of function; expected `return` with a value.";
8328 var127
= standard___standard__NativeString___to_s_with_length(var126
, 63l);
8330 varonce124
= var125
;
8333 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var125
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8339 /* method typing#AAttrPropdef#do_typing for (self: AAttrPropdef, ModelBuilder) */
8340 void nit__typing___AAttrPropdef___APropdef__do_typing(val
* self
, val
* p0
) {
8341 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
8342 short int var
/* : Bool */;
8343 short int var2
/* : Bool */;
8344 short int var3
/* : Bool */;
8345 val
* var4
/* : nullable MMethodDef */;
8346 val
* var6
/* : nullable MMethodDef */;
8347 val
* var_mpropdef
/* var mpropdef: nullable MMethodDef */;
8348 short int var7
/* : Bool */;
8349 short int var8
/* : Bool */;
8350 short int var9
/* : Bool */;
8351 val
* var_other
/* var other: nullable Object */;
8352 short int var11
/* : Bool */;
8353 short int var13
/* : Bool */;
8354 short int var_
/* var : Bool */;
8355 val
* var14
/* : nullable MSignature */;
8356 val
* var16
/* : nullable MSignature */;
8357 short int var17
/* : Bool */;
8358 short int var18
/* : Bool */;
8359 short int var20
/* : Bool */;
8360 short int var22
/* : Bool */;
8361 val
* var23
/* : TypeVisitor */;
8362 val
* var24
/* : MClassDef */;
8363 val
* var26
/* : MClassDef */;
8364 val
* var27
/* : MModule */;
8365 val
* var29
/* : MModule */;
8366 val
* var_v
/* var v: TypeVisitor */;
8367 val
* var30
/* : Variable */;
8368 val
* var32
/* : Variable */;
8369 val
* var34
/* : nullable AExpr */;
8370 val
* var36
/* : nullable AExpr */;
8371 val
* var_nexpr
/* var nexpr: nullable AExpr */;
8372 short int var37
/* : Bool */;
8373 short int var38
/* : Bool */;
8374 val
* var_other40
/* var other: nullable Object */;
8375 short int var41
/* : Bool */;
8376 short int var42
/* : Bool */;
8377 val
* var43
/* : nullable MType */;
8378 val
* var45
/* : nullable MType */;
8379 val
* var_mtype
/* var mtype: nullable MType */;
8380 val
* var46
/* : nullable MType */;
8381 val
* var47
/* : nullable AExpr */;
8382 val
* var49
/* : nullable AExpr */;
8383 val
* var_nblock
/* var nblock: nullable AExpr */;
8384 short int var50
/* : Bool */;
8385 short int var51
/* : Bool */;
8386 short int var53
/* : Bool */;
8387 short int var54
/* : Bool */;
8388 val
* var55
/* : nullable FlowContext */;
8389 val
* var57
/* : nullable FlowContext */;
8390 short int var58
/* : Bool */;
8391 short int var59
/* : Bool */;
8392 static val
* varonce
;
8393 val
* var60
/* : String */;
8394 char* var61
/* : NativeString */;
8395 val
* var62
/* : FlatString */;
8396 var_modelbuilder
= p0
;
8398 { /* Inline modelize_property#AAttrPropdef#has_value (self) on <self:AAttrPropdef> */
8399 var2
= self
->attrs
[COLOR_nit__modelize_property__AAttrPropdef___has_value
].s
; /* _has_value on <self:AAttrPropdef> */
8410 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
8411 var6
= self
->attrs
[COLOR_nit__modelize_property__AAttrPropdef___mreadpropdef
].val
; /* _mreadpropdef on <self:AAttrPropdef> */
8416 var_mpropdef
= var4
;
8417 if (var_mpropdef
== NULL
) {
8418 var8
= 1; /* is null */
8420 var8
= 0; /* arg is null but recv is not */
8423 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
8424 var_other
= ((val
*)NULL
);
8426 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8427 var13
= var_mpropdef
== var_other
;
8430 RET_LABEL12
:(void)0;
8435 RET_LABEL10
:(void)0;
8444 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8445 var16
= var_mpropdef
->attrs
[COLOR_nit__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8447 RET_LABEL15
:(void)0;
8450 if (var14
== NULL
) {
8451 var17
= 1; /* is null */
8453 var17
= 0; /* arg is null but recv is not */
8456 { /* Inline kernel#Object#== (var14,((val*)NULL)) on <var14:nullable MSignature> */
8457 var_other
= ((val
*)NULL
);
8459 { /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:nullable MSignature(MSignature)> */
8460 var22
= var14
== var_other
;
8463 RET_LABEL21
:(void)0;
8468 RET_LABEL19
:(void)0;
8478 var23
= NEW_nit__typing__TypeVisitor(&type_nit__typing__TypeVisitor
);
8480 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8481 var26
= var_mpropdef
->attrs
[COLOR_nit__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8482 if (unlikely(var26
== NULL
)) {
8483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8484 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 2209);
8488 RET_LABEL25
:(void)0;
8492 { /* Inline model#MClassDef#mmodule (var24) on <var24:MClassDef> */
8493 var29
= var24
->attrs
[COLOR_nit__model__MClassDef___mmodule
].val
; /* _mmodule on <var24:MClassDef> */
8494 if (unlikely(var29
== NULL
)) {
8495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8496 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 550);
8500 RET_LABEL28
:(void)0;
8504 ((void(*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_nit__typing__TypeVisitor__modelbuilder_61d
]))(var23
, var_modelbuilder
); /* modelbuilder= on <var23:TypeVisitor>*/
8507 ((void(*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_nit__typing__TypeVisitor__mmodule_61d
]))(var23
, var27
); /* mmodule= on <var23:TypeVisitor>*/
8510 ((void(*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_nit__typing__TypeVisitor__mpropdef_61d
]))(var23
, var_mpropdef
); /* mpropdef= on <var23:TypeVisitor>*/
8513 ((void(*)(val
* self
))(var23
->class->vft
[COLOR_standard__kernel__Object__init
]))(var23
); /* init on <var23:TypeVisitor>*/
8517 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
8518 var32
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
8519 if (unlikely(var32
== NULL
)) {
8520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
8521 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 50);
8525 RET_LABEL31
:(void)0;
8529 { /* Inline typing#APropdef#selfvariable= (self,var30) on <self:AAttrPropdef> */
8530 self
->attrs
[COLOR_nit__typing__APropdef___selfvariable
].val
= var30
; /* _selfvariable on <self:AAttrPropdef> */
8531 RET_LABEL33
:(void)0;
8535 { /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
8536 var36
= self
->attrs
[COLOR_nit__parser_nodes__AAttrPropdef___n_expr
].val
; /* _n_expr on <self:AAttrPropdef> */
8538 RET_LABEL35
:(void)0;
8542 if (var_nexpr
== NULL
) {
8543 var37
= 0; /* is null */
8545 var37
= 1; /* arg is null and recv is not */
8548 { /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
8549 var_other40
= ((val
*)NULL
);
8551 var41
= ((short int(*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nexpr
, var_other40
); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
8556 RET_LABEL39
:(void)0;
8562 { /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
8563 var45
= self
->attrs
[COLOR_nit__modelize_property__AAttrPropdef___mtype
].val
; /* _mtype on <self:AAttrPropdef> */
8565 RET_LABEL44
:(void)0;
8570 var46
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var_nexpr
, var_mtype
);
8575 { /* Inline parser_nodes#AAttrPropdef#n_block (self) on <self:AAttrPropdef> */
8576 var49
= self
->attrs
[COLOR_nit__parser_nodes__AAttrPropdef___n_block
].val
; /* _n_block on <self:AAttrPropdef> */
8578 RET_LABEL48
:(void)0;
8582 if (var_nblock
== NULL
) {
8583 var50
= 0; /* is null */
8585 var50
= 1; /* arg is null and recv is not */
8588 { /* Inline kernel#Object#!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
8589 var_other40
= ((val
*)NULL
);
8591 var53
= ((short int(*)(val
* self
, val
* p0
))(var_nblock
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nblock
, var_other40
); /* == on <var_nblock:nullable AExpr(AExpr)>*/
8596 RET_LABEL52
:(void)0;
8602 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var_nblock
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
8605 { /* Inline flow#AExpr#after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
8606 var57
= var_nblock
->attrs
[COLOR_nit__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
8608 RET_LABEL56
:(void)0;
8611 if (var55
== NULL
) {
8612 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8613 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 777);
8616 var58
= nit___nit__FlowContext___is_unreachable(var55
);
8620 if (likely(varonce
!=NULL
)) {
8623 var61
= "Error: reached end of block; expected `return`.";
8624 var62
= standard___standard__NativeString___to_s_with_length(var61
, 47l);
8629 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var60
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8637 /* method typing#AExpr#mtype for (self: AExpr): nullable MType */
8638 val
* nit__typing___AExpr___mtype(val
* self
) {
8639 val
* var
/* : nullable MType */;
8640 val
* var1
/* : nullable MType */;
8641 var1
= self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
; /* _mtype on <self:AExpr> */
8646 /* method typing#AExpr#mtype= for (self: AExpr, nullable MType) */
8647 void nit__typing___AExpr___mtype_61d(val
* self
, val
* p0
) {
8648 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= p0
; /* _mtype on <self:AExpr> */
8651 /* method typing#AExpr#is_typed for (self: AExpr): Bool */
8652 short int nit__typing___AExpr___is_typed(val
* self
) {
8653 short int var
/* : Bool */;
8654 short int var1
/* : Bool */;
8655 var1
= self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
8660 /* method typing#AExpr#is_typed= for (self: AExpr, Bool) */
8661 void nit__typing___AExpr___is_typed_61d(val
* self
, short int p0
) {
8662 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= p0
; /* _is_typed on <self:AExpr> */
8665 /* method typing#AExpr#implicit_cast_to for (self: AExpr): nullable MType */
8666 val
* nit__typing___AExpr___implicit_cast_to(val
* self
) {
8667 val
* var
/* : nullable MType */;
8668 val
* var1
/* : nullable MType */;
8669 var1
= self
->attrs
[COLOR_nit__typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <self:AExpr> */
8674 /* method typing#AExpr#implicit_cast_to= for (self: AExpr, nullable MType) */
8675 void nit__typing___AExpr___implicit_cast_to_61d(val
* self
, val
* p0
) {
8676 self
->attrs
[COLOR_nit__typing__AExpr___implicit_cast_to
].val
= p0
; /* _implicit_cast_to on <self:AExpr> */
8679 /* method typing#AExpr#its_variable for (self: AExpr): nullable Variable */
8680 val
* nit__typing___AExpr___its_variable(val
* self
) {
8681 val
* var
/* : nullable Variable */;
8687 /* method typing#AExpr#accept_typing for (self: AExpr, TypeVisitor) */
8688 void nit__typing___AExpr___accept_typing(val
* self
, val
* p0
) {
8689 val
* var_v
/* var v: TypeVisitor */;
8690 val
* var
/* : NativeArray[String] */;
8691 static val
* varonce
;
8692 static val
* varonce1
;
8693 val
* var2
/* : String */;
8694 char* var3
/* : NativeString */;
8695 val
* var4
/* : FlatString */;
8696 val
* var5
/* : String */;
8697 val
* var6
/* : String */;
8699 if (unlikely(varonce
==NULL
)) {
8700 var
= NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String
);
8701 if (likely(varonce1
!=NULL
)) {
8704 var3
= "no implemented accept_typing for ";
8705 var4
= standard___standard__NativeString___to_s_with_length(var3
, 33l);
8709 ((struct instance_standard__NativeArray
*)var
)->values
[0]=var2
;
8715 var5
= standard__string___Object___class_name(self
);
8717 ((struct instance_standard__NativeArray
*)var
)->values
[1]=var5
;
8719 var6
= ((val
*(*)(val
* self
))(var
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var
); /* native_to_s on <var:NativeArray[String]>*/
8723 nit__typing___nit__typing__TypeVisitor___error(var_v
, self
, var6
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8727 /* method typing#AExpr#comprehension for (self: AExpr): nullable AArrayExpr */
8728 val
* nit__typing___AExpr___comprehension(val
* self
) {
8729 val
* var
/* : nullable AArrayExpr */;
8730 val
* var1
/* : nullable AArrayExpr */;
8731 var1
= self
->attrs
[COLOR_nit__typing__AExpr___comprehension
].val
; /* _comprehension on <self:AExpr> */
8736 /* method typing#AExpr#comprehension= for (self: AExpr, nullable AArrayExpr) */
8737 void nit__typing___AExpr___comprehension_61d(val
* self
, val
* p0
) {
8738 self
->attrs
[COLOR_nit__typing__AExpr___comprehension
].val
= p0
; /* _comprehension on <self:AExpr> */
8741 /* method typing#ABlockExpr#accept_typing for (self: ABlockExpr, TypeVisitor) */
8742 void nit__typing___ABlockExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8743 val
* var_v
/* var v: TypeVisitor */;
8744 val
* var
/* : ANodes[AExpr] */;
8745 val
* var2
/* : ANodes[AExpr] */;
8746 val
* var_
/* var : ANodes[AExpr] */;
8747 val
* var3
/* : Iterator[ANode] */;
8748 val
* var_4
/* var : Iterator[AExpr] */;
8749 short int var5
/* : Bool */;
8750 val
* var6
/* : nullable Object */;
8751 val
* var_e
/* var e: AExpr */;
8754 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
8755 var2
= self
->attrs
[COLOR_nit__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
8756 if (unlikely(var2
== NULL
)) {
8757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1758);
8767 var3
= nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_
);
8772 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:Iterator[AExpr]>*/
8776 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:Iterator[AExpr]>*/
8780 nit__typing___nit__typing__TypeVisitor___visit_stmt(var_v
, var_e
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
8783 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:Iterator[AExpr]>*/
8789 BREAK_label
: (void)0;
8791 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_standard__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:Iterator[AExpr]>*/
8794 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ABlockExpr> */
8795 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= 1; /* _is_typed on <self:ABlockExpr> */
8801 /* method typing#ABlockExpr#mtype for (self: ABlockExpr): nullable MType */
8802 val
* nit__typing___ABlockExpr___AExpr__mtype(val
* self
) {
8803 val
* var
/* : nullable MType */;
8804 val
* var1
/* : ANodes[AExpr] */;
8805 val
* var3
/* : ANodes[AExpr] */;
8806 short int var4
/* : Bool */;
8807 val
* var5
/* : ANodes[AExpr] */;
8808 val
* var7
/* : ANodes[AExpr] */;
8809 val
* var8
/* : nullable Object */;
8810 val
* var9
/* : nullable MType */;
8812 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
8813 var3
= self
->attrs
[COLOR_nit__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
8814 if (unlikely(var3
== NULL
)) {
8815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8816 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1758);
8824 var4
= nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var1
);
8832 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
8833 var7
= self
->attrs
[COLOR_nit__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
8834 if (unlikely(var7
== NULL
)) {
8835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8836 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1758);
8844 var8
= standard___standard__SequenceRead___last(var5
);
8847 var9
= ((val
*(*)(val
* self
))(var8
->class->vft
[COLOR_nit__typing__AExpr__mtype
]))(var8
); /* mtype on <var8:nullable Object(AExpr)>*/
8854 /* method typing#AVardeclExpr#accept_typing for (self: AVardeclExpr, TypeVisitor) */
8855 void nit__typing___AVardeclExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
8856 val
* var_v
/* var v: TypeVisitor */;
8857 val
* var
/* : nullable Variable */;
8858 val
* var2
/* : nullable Variable */;
8859 val
* var_variable
/* var variable: nullable Variable */;
8860 short int var3
/* : Bool */;
8861 short int var4
/* : Bool */;
8862 val
* var_other
/* var other: nullable Object */;
8863 short int var6
/* : Bool */;
8864 short int var8
/* : Bool */;
8865 val
* var9
/* : nullable AType */;
8866 val
* var11
/* : nullable AType */;
8867 val
* var_ntype
/* var ntype: nullable AType */;
8868 short int var12
/* : Bool */;
8869 short int var13
/* : Bool */;
8870 short int var15
/* : Bool */;
8871 short int var17
/* : Bool */;
8872 val
* var_mtype
/* var mtype: nullable MType */;
8873 val
* var18
/* : nullable MType */;
8874 short int var19
/* : Bool */;
8875 short int var20
/* : Bool */;
8876 short int var22
/* : Bool */;
8877 short int var24
/* : Bool */;
8878 val
* var25
/* : nullable AExpr */;
8879 val
* var27
/* : nullable AExpr */;
8880 val
* var_nexpr
/* var nexpr: nullable AExpr */;
8881 short int var28
/* : Bool */;
8882 short int var29
/* : Bool */;
8883 val
* var_other31
/* var other: nullable Object */;
8884 short int var32
/* : Bool */;
8885 short int var33
/* : Bool */;
8886 short int var34
/* : Bool */;
8887 short int var35
/* : Bool */;
8888 short int var37
/* : Bool */;
8889 short int var38
/* : Bool */;
8890 val
* var39
/* : nullable MType */;
8891 val
* var_etype
/* var etype: nullable MType */;
8892 short int var40
/* : Bool */;
8893 short int var41
/* : Bool */;
8894 short int var43
/* : Bool */;
8895 short int var45
/* : Bool */;
8896 short int var46
/* : Bool */;
8897 short int var47
/* : Bool */;
8898 short int var49
/* : Bool */;
8899 short int var50
/* : Bool */;
8900 val
* var51
/* : ModelBuilder */;
8901 val
* var53
/* : ModelBuilder */;
8902 static val
* varonce
;
8903 val
* var54
/* : String */;
8904 char* var55
/* : NativeString */;
8905 val
* var56
/* : FlatString */;
8906 val
* var58
/* : NativeArray[String] */;
8907 static val
* varonce57
;
8908 static val
* varonce59
;
8909 val
* var60
/* : String */;
8910 char* var61
/* : NativeString */;
8911 val
* var62
/* : FlatString */;
8912 static val
* varonce63
;
8913 val
* var64
/* : String */;
8914 char* var65
/* : NativeString */;
8915 val
* var66
/* : FlatString */;
8916 val
* var67
/* : String */;
8917 val
* var69
/* : String */;
8918 val
* var70
/* : String */;
8919 val
* var71
/* : nullable MType */;
8920 short int var72
/* : Bool */;
8921 short int var73
/* : Bool */;
8922 short int var75
/* : Bool */;
8923 short int var77
/* : Bool */;
8924 val
* var_decltype
/* var decltype: nullable MType */;
8925 short int var78
/* : Bool */;
8926 short int var79
/* : Bool */;
8927 short int var80
/* : Bool */;
8928 short int var82
/* : Bool */;
8929 short int var84
/* : Bool */;
8930 short int var_
/* var : Bool */;
8931 short int var85
/* : Bool */;
8934 static val
* varonce86
;
8935 val
* var87
/* : String */;
8936 char* var88
/* : NativeString */;
8937 val
* var89
/* : FlatString */;
8938 val
* var90
/* : nullable MClass */;
8939 val
* var_objclass
/* var objclass: nullable MClass */;
8940 short int var91
/* : Bool */;
8941 short int var92
/* : Bool */;
8942 short int var94
/* : Bool */;
8943 short int var96
/* : Bool */;
8944 val
* var97
/* : MClassType */;
8945 val
* var99
/* : MClassType */;
8946 val
* var100
/* : MType */;
8947 short int var101
/* : Bool */;
8948 short int var102
/* : Bool */;
8949 short int var104
/* : Bool */;
8950 short int var106
/* : Bool */;
8953 { /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
8954 var2
= self
->attrs
[COLOR_nit__scope__AVardeclExpr___variable
].val
; /* _variable on <self:AVardeclExpr> */
8960 if (var_variable
== NULL
) {
8961 var3
= 1; /* is null */
8963 var3
= 0; /* arg is null but recv is not */
8966 { /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
8967 var_other
= ((val
*)NULL
);
8969 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
8970 var8
= var_variable
== var_other
;
8987 { /* Inline parser_nodes#AVardeclExpr#n_type (self) on <self:AVardeclExpr> */
8988 var11
= self
->attrs
[COLOR_nit__parser_nodes__AVardeclExpr___n_type
].val
; /* _n_type on <self:AVardeclExpr> */
8990 RET_LABEL10
:(void)0;
8994 if (var_ntype
== NULL
) {
8995 var12
= 1; /* is null */
8997 var12
= 0; /* arg is null but recv is not */
9000 { /* Inline kernel#Object#== (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
9001 var_other
= ((val
*)NULL
);
9003 { /* Inline kernel#Object#is_same_instance (var_ntype,var_other) on <var_ntype:nullable AType(AType)> */
9004 var17
= var_ntype
== var_other
;
9007 RET_LABEL16
:(void)0;
9012 RET_LABEL14
:(void)0;
9017 var_mtype
= ((val
*)NULL
);
9020 var18
= nit__typing___nit__typing__TypeVisitor___resolve_mtype(var_v
, var_ntype
);
9023 if (var_mtype
== NULL
) {
9024 var19
= 1; /* is null */
9026 var19
= 0; /* arg is null but recv is not */
9029 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9030 var_other
= ((val
*)NULL
);
9032 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9033 var24
= var_mtype
== var_other
;
9036 RET_LABEL23
:(void)0;
9041 RET_LABEL21
:(void)0;
9051 { /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
9052 var27
= self
->attrs
[COLOR_nit__parser_nodes__AVardeclExpr___n_expr
].val
; /* _n_expr on <self:AVardeclExpr> */
9054 RET_LABEL26
:(void)0;
9058 if (var_nexpr
== NULL
) {
9059 var28
= 0; /* is null */
9061 var28
= 1; /* arg is null and recv is not */
9064 { /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
9065 var_other31
= ((val
*)NULL
);
9067 var32
= ((short int(*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_nexpr
, var_other31
); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
9072 RET_LABEL30
:(void)0;
9077 if (var_mtype
== NULL
) {
9078 var34
= 0; /* is null */
9080 var34
= 1; /* arg is null and recv is not */
9083 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9084 var_other31
= ((val
*)NULL
);
9086 var37
= ((short int(*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other31
); /* == on <var_mtype:nullable MType(MType)>*/
9091 RET_LABEL36
:(void)0;
9097 var39
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var_nexpr
, var_mtype
);
9100 if (var_etype
== NULL
) {
9101 var40
= 0; /* <var_mtype:nullable MType(MType)> cannot be null */
9103 { /* Inline kernel#Object#== (var_etype,var_mtype) on <var_etype:nullable MType> */
9104 var_other
= var_mtype
;
9106 { /* Inline kernel#Object#is_same_instance (var_etype,var_other) on <var_etype:nullable MType(MType)> */
9107 var45
= var_etype
== var_other
;
9110 RET_LABEL44
:(void)0;
9115 RET_LABEL42
:(void)0;
9120 if (var_ntype
== NULL
) {
9121 var46
= 0; /* is null */
9123 var46
= 1; /* arg is null and recv is not */
9126 { /* Inline kernel#Object#!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
9127 var_other31
= ((val
*)NULL
);
9129 var49
= ((short int(*)(val
* self
, val
* p0
))(var_ntype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_ntype
, var_other31
); /* == on <var_ntype:nullable AType(AType)>*/
9134 RET_LABEL48
:(void)0;
9138 if (unlikely(!var46
)) {
9139 PRINT_ERROR("Runtime error: %s", "Assert failed");
9140 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 853);
9144 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
9145 var53
= var_v
->attrs
[COLOR_nit__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
9146 if (unlikely(var53
== NULL
)) {
9147 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
9148 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 34);
9152 RET_LABEL52
:(void)0;
9155 if (likely(varonce
!=NULL
)) {
9158 var55
= "useless-type";
9159 var56
= standard___standard__NativeString___to_s_with_length(var55
, 12l);
9163 if (unlikely(varonce57
==NULL
)) {
9164 var58
= NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String
);
9165 if (likely(varonce59
!=NULL
)) {
9168 var61
= "Warning: useless type definition for variable `";
9169 var62
= standard___standard__NativeString___to_s_with_length(var61
, 47l);
9173 ((struct instance_standard__NativeArray
*)var58
)->values
[0]=var60
;
9174 if (likely(varonce63
!=NULL
)) {
9178 var66
= standard___standard__NativeString___to_s_with_length(var65
, 1l);
9182 ((struct instance_standard__NativeArray
*)var58
)->values
[2]=var64
;
9188 { /* Inline scope#Variable#name (var_variable) on <var_variable:nullable Variable(Variable)> */
9189 var69
= var_variable
->attrs
[COLOR_nit__scope__Variable___name
].val
; /* _name on <var_variable:nullable Variable(Variable)> */
9190 if (unlikely(var69
== NULL
)) {
9191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9192 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope
, 35);
9196 RET_LABEL68
:(void)0;
9199 ((struct instance_standard__NativeArray
*)var58
)->values
[1]=var67
;
9201 var70
= ((val
*(*)(val
* self
))(var58
->class->vft
[COLOR_standard__string__NativeArray__native_to_s
]))(var58
); /* native_to_s on <var58:NativeArray[String]>*/
9205 nit___nit__ModelBuilder___advice(var51
, var_ntype
, var54
, var70
); /* Direct call modelbuilder_base#ModelBuilder#advice on <var51:ModelBuilder>*/
9211 var71
= nit__typing___nit__typing__TypeVisitor___visit_expr(var_v
, var_nexpr
);
9214 if (var_mtype
== NULL
) {
9215 var72
= 1; /* is null */
9217 var72
= 0; /* arg is null but recv is not */
9220 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9221 var_other
= ((val
*)NULL
);
9223 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9224 var77
= var_mtype
== var_other
;
9227 RET_LABEL76
:(void)0;
9232 RET_LABEL74
:(void)0;
9243 var_decltype
= var_mtype
;
9244 if (var_mtype
== NULL
) {
9245 var79
= 1; /* is null */
9247 var79
= 0; /* arg is null but recv is not */
9250 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9251 var_other
= ((val
*)NULL
);
9253 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9254 var84
= var_mtype
== var_other
;
9257 RET_LABEL83
:(void)0;
9262 RET_LABEL81
:(void)0;
9270 /* <var_mtype:nullable MType(MType)> isa MNullType */
9271 cltype
= type_nit__MNullType
.color
;
9272 idtype
= type_nit__MNullType
.id
;
9273 if(cltype
>= var_mtype
->type
->table_size
) {
9276 var85
= var_mtype
->type
->type_table
[cltype
] == idtype
;
9281 if (likely(varonce86
!=NULL
)) {
9285 var89
= standard___standard__NativeString___to_s_with_length(var88
, 6l);
9290 var90
= nit__typing___nit__typing__TypeVisitor___get_mclass(var_v
, self
, var87
);
9292 var_objclass
= var90
;
9293 if (var_objclass
== NULL
) {
9294 var91
= 1; /* is null */
9296 var91
= 0; /* arg is null but recv is not */
9299 { /* Inline kernel#Object#== (var_objclass,((val*)NULL)) on <var_objclass:nullable MClass> */
9300 var_other
= ((val
*)NULL
);
9302 { /* Inline kernel#Object#is_same_instance (var_objclass,var_other) on <var_objclass:nullable MClass(MClass)> */
9303 var96
= var_objclass
== var_other
;
9306 RET_LABEL95
:(void)0;
9311 RET_LABEL93
:(void)0;
9320 { /* Inline model#MClass#mclass_type (var_objclass) on <var_objclass:nullable MClass(MClass)> */
9321 var99
= var_objclass
->attrs
[COLOR_nit__model__MClass___mclass_type
].val
; /* _mclass_type on <var_objclass:nullable MClass(MClass)> */
9322 if (unlikely(var99
== NULL
)) {
9323 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
9324 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 484);
9328 RET_LABEL98
:(void)0;
9332 var100
= nit___nit__MType___as_nullable(var97
);
9334 var_decltype
= var100
;
9335 if (var_mtype
== NULL
) {
9336 var101
= 1; /* is null */
9338 var101
= 0; /* arg is null but recv is not */
9341 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType(nullable MNullType)> */
9342 var_other
= ((val
*)NULL
);
9344 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MNullType(MNullType)> */
9345 var106
= var_mtype
== var_other
;
9348 RET_LABEL105
:(void)0;
9353 RET_LABEL103
:(void)0;
9358 var_mtype
= var_decltype
;
9364 { /* Inline typing#Variable#declared_type= (var_variable,var_decltype) on <var_variable:nullable Variable(Variable)> */
9365 var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
= var_decltype
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
9366 RET_LABEL107
:(void)0;
9370 nit__typing___nit__typing__TypeVisitor___set_variable(var_v
, self
, var_variable
, var_mtype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
9373 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVardeclExpr> */
9374 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:AVardeclExpr> */
9375 RET_LABEL108
:(void)0;
9379 { /* Inline typing#AExpr#is_typed= (self,1) on <self:AVardeclExpr> */
9380 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= 1; /* _is_typed on <self:AVardeclExpr> */
9381 RET_LABEL109
:(void)0;
9386 /* method typing#AVarExpr#its_variable for (self: AVarExpr): nullable Variable */
9387 val
* nit__typing___AVarExpr___AExpr__its_variable(val
* self
) {
9388 val
* var
/* : nullable Variable */;
9389 val
* var1
/* : nullable Variable */;
9390 val
* var3
/* : nullable Variable */;
9392 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
9393 var3
= self
->attrs
[COLOR_nit__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarExpr> */
9403 /* method typing#AVarExpr#accept_typing for (self: AVarExpr, TypeVisitor) */
9404 void nit__typing___AVarExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9405 val
* var_v
/* var v: TypeVisitor */;
9406 val
* var
/* : nullable Variable */;
9407 val
* var2
/* : nullable Variable */;
9408 val
* var_variable
/* var variable: nullable Variable */;
9409 short int var3
/* : Bool */;
9410 short int var4
/* : Bool */;
9411 val
* var_other
/* var other: nullable Object */;
9412 short int var6
/* : Bool */;
9413 short int var8
/* : Bool */;
9414 val
* var9
/* : nullable MType */;
9415 val
* var_mtype
/* var mtype: nullable MType */;
9416 short int var10
/* : Bool */;
9417 short int var11
/* : Bool */;
9418 val
* var_other13
/* var other: nullable Object */;
9419 short int var14
/* : Bool */;
9420 short int var15
/* : Bool */;
9423 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
9424 var2
= self
->attrs
[COLOR_nit__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarExpr> */
9430 if (var_variable
== NULL
) {
9431 var3
= 1; /* is null */
9433 var3
= 0; /* arg is null but recv is not */
9436 { /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
9437 var_other
= ((val
*)NULL
);
9439 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
9440 var8
= var_variable
== var_other
;
9457 var9
= nit__typing___nit__typing__TypeVisitor___get_variable(var_v
, self
, var_variable
);
9460 if (var_mtype
== NULL
) {
9461 var10
= 0; /* is null */
9463 var10
= 1; /* arg is null and recv is not */
9466 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9467 var_other13
= ((val
*)NULL
);
9469 var14
= ((short int(*)(val
* self
, val
* p0
))(var_mtype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_mtype
, var_other13
); /* == on <var_mtype:nullable MType(MType)>*/
9474 RET_LABEL12
:(void)0;
9482 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVarExpr> */
9483 self
->attrs
[COLOR_nit__typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:AVarExpr> */
9484 RET_LABEL16
:(void)0;
9489 /* method typing#AVarAssignExpr#accept_typing for (self: AVarAssignExpr, TypeVisitor) */
9490 void nit__typing___AVarAssignExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9491 val
* var_v
/* var v: TypeVisitor */;
9492 val
* var
/* : nullable Variable */;
9493 val
* var2
/* : nullable Variable */;
9494 val
* var_variable
/* var variable: nullable Variable */;
9495 short int var3
/* : Bool */;
9496 short int var4
/* : Bool */;
9497 val
* var_other
/* var other: nullable Object */;
9498 short int var6
/* : Bool */;
9499 short int var7
/* : Bool */;
9500 val
* var8
/* : AExpr */;
9501 val
* var10
/* : AExpr */;
9502 val
* var11
/* : nullable MType */;
9503 val
* var13
/* : nullable MType */;
9504 val
* var14
/* : nullable MType */;
9505 val
* var_mtype
/* var mtype: nullable MType */;
9508 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarAssignExpr> */
9509 var2
= self
->attrs
[COLOR_nit__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarAssignExpr> */
9515 if (var_variable
== NULL
) {
9516 var3
= 0; /* is null */
9518 var3
= 1; /* arg is null and recv is not */
9521 { /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
9522 var_other
= ((val
*)NULL
);
9524 var6
= ((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)>*/
9533 if (unlikely(!var3
)) {
9534 PRINT_ERROR("Runtime error: %s", "Assert failed");
9535 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 902);
9539 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AVarAssignExpr> */
9540 var10
= self
->attrs
[COLOR_nit__parser_nodes__AAssignFormExpr___n_value
].val
; /* _n_value on <self:AVarAssignExpr> */
9541 if (unlikely(var10
== NULL
)) {
9542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9543 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 1995);
9551 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
9552 var13
= var_variable
->attrs
[COLOR_nit__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
9554 RET_LABEL12
:(void)0;
9558 var14
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var8
, var11
);
9562 nit__typing___nit__typing__TypeVisitor___set_variable(var_v
, self
, var_variable
, var_mtype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
9565 { /* Inline typing#AExpr#is_typed= (self,1) on <self:AVarAssignExpr> */
9566 self
->attrs
[COLOR_nit__typing__AExpr___is_typed
].s
= 1; /* _is_typed on <self:AVarAssignExpr> */
9567 RET_LABEL15
:(void)0;
9572 /* method typing#AReassignFormExpr#reassign_callsite for (self: AReassignFormExpr): nullable CallSite */
9573 val
* nit__typing___AReassignFormExpr___reassign_callsite(val
* self
) {
9574 val
* var
/* : nullable CallSite */;
9575 val
* var1
/* : nullable CallSite */;
9576 var1
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AReassignFormExpr> */
9581 /* method typing#AReassignFormExpr#reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */
9582 void nit__typing___AReassignFormExpr___reassign_callsite_61d(val
* self
, val
* p0
) {
9583 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
= p0
; /* _reassign_callsite on <self:AReassignFormExpr> */
9586 /* method typing#AReassignFormExpr#read_type for (self: AReassignFormExpr): nullable MType */
9587 val
* nit__typing___AReassignFormExpr___read_type(val
* self
) {
9588 val
* var
/* : nullable MType */;
9589 val
* var1
/* : nullable MType */;
9590 var1
= self
->attrs
[COLOR_nit__typing__AReassignFormExpr___read_type
].val
; /* _read_type on <self:AReassignFormExpr> */
9595 /* method typing#AReassignFormExpr#read_type= for (self: AReassignFormExpr, nullable MType) */
9596 void nit__typing___AReassignFormExpr___read_type_61d(val
* self
, val
* p0
) {
9597 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___read_type
].val
= p0
; /* _read_type on <self:AReassignFormExpr> */
9600 /* method typing#AReassignFormExpr#resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */
9601 val
* nit__typing___AReassignFormExpr___resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9602 val
* var
/* : nullable MType */;
9603 val
* var_v
/* var v: TypeVisitor */;
9604 val
* var_readtype
/* var readtype: MType */;
9605 val
* var_writetype
/* var writetype: MType */;
9606 val
* var1
/* : AAssignOp */;
9607 val
* var3
/* : AAssignOp */;
9608 val
* var4
/* : String */;
9609 val
* var_reassign_name
/* var reassign_name: String */;
9610 val
* var6
/* : AAssignOp */;
9611 val
* var8
/* : AAssignOp */;
9612 val
* var9
/* : nullable CallSite */;
9613 val
* var_callsite
/* var callsite: nullable CallSite */;
9614 short int var10
/* : Bool */;
9615 short int var11
/* : Bool */;
9616 val
* var_other
/* var other: nullable Object */;
9617 short int var13
/* : Bool */;
9618 short int var15
/* : Bool */;
9619 val
* var17
/* : MSignature */;
9620 val
* var19
/* : MSignature */;
9621 val
* var_msignature
/* var msignature: MSignature */;
9622 val
* var20
/* : nullable MType */;
9623 val
* var22
/* : nullable MType */;
9624 val
* var_rettype
/* var rettype: nullable MType */;
9625 short int var23
/* : Bool */;
9626 long var24
/* : Int */;
9627 short int var25
/* : Bool */;
9628 short int var27
/* : Bool */;
9629 short int var_
/* var : Bool */;
9630 short int var28
/* : Bool */;
9631 short int var29
/* : Bool */;
9632 val
* var_other31
/* var other: nullable Object */;
9633 short int var32
/* : Bool */;
9634 short int var33
/* : Bool */;
9635 val
* var34
/* : AExpr */;
9636 val
* var36
/* : AExpr */;
9637 val
* var37
/* : Array[MParameter] */;
9638 val
* var39
/* : Array[MParameter] */;
9639 val
* var40
/* : nullable Object */;
9640 val
* var41
/* : MType */;
9641 val
* var43
/* : MType */;
9642 val
* var44
/* : nullable MType */;
9643 val
* var_value_type
/* var value_type: nullable MType */;
9644 short int var45
/* : Bool */;
9645 short int var46
/* : Bool */;
9646 short int var48
/* : Bool */;
9647 short int var50
/* : Bool */;
9648 val
* var51
/* : nullable MType */;
9653 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:AReassignFormExpr> */
9654 var3
= self
->attrs
[COLOR_nit__parser_nodes__AReassignFormExpr___n_assign_op
].val
; /* _n_assign_op on <self:AReassignFormExpr> */
9655 if (unlikely(var3
== NULL
)) {
9656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
9657 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2003);
9665 var4
= ((val
*(*)(val
* self
))(var1
->class->vft
[COLOR_nit__parser_nodes__AAssignOp__operator
]))(var1
); /* operator on <var1:AAssignOp>*/
9667 var_reassign_name
= var4
;
9669 { /* Inline typing#AReassignFormExpr#read_type= (self,var_readtype) on <self:AReassignFormExpr> */
9670 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___read_type
].val
= var_readtype
; /* _read_type on <self:AReassignFormExpr> */
9675 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:AReassignFormExpr> */
9676 var8
= self
->attrs
[COLOR_nit__parser_nodes__AReassignFormExpr___n_assign_op
].val
; /* _n_assign_op on <self:AReassignFormExpr> */
9677 if (unlikely(var8
== NULL
)) {
9678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
9679 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2003);
9687 var9
= nit__typing___nit__typing__TypeVisitor___get_method(var_v
, var6
, var_readtype
, var_reassign_name
, 0);
9689 var_callsite
= var9
;
9690 if (var_callsite
== NULL
) {
9691 var10
= 1; /* is null */
9693 var10
= 0; /* arg is null but recv is not */
9696 { /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
9697 var_other
= ((val
*)NULL
);
9699 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
9700 var15
= var_callsite
== var_other
;
9703 RET_LABEL14
:(void)0;
9708 RET_LABEL12
:(void)0;
9718 { /* Inline typing#AReassignFormExpr#reassign_callsite= (self,var_callsite) on <self:AReassignFormExpr> */
9719 self
->attrs
[COLOR_nit__typing__AReassignFormExpr___reassign_callsite
].val
= var_callsite
; /* _reassign_callsite on <self:AReassignFormExpr> */
9720 RET_LABEL16
:(void)0;
9724 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9725 var19
= var_callsite
->attrs
[COLOR_nit__typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
9726 if (unlikely(var19
== NULL
)) {
9727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
9728 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 631);
9732 RET_LABEL18
:(void)0;
9735 var_msignature
= var17
;
9737 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
9738 var22
= var_msignature
->attrs
[COLOR_nit__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
9740 RET_LABEL21
:(void)0;
9743 var_rettype
= var20
;
9745 var24
= nit___nit__MSignature___arity(var_msignature
);
9748 { /* Inline kernel#Int#== (var24,1l) on <var24:Int> */
9749 var27
= var24
== 1l;
9752 RET_LABEL26
:(void)0;
9757 if (var_rettype
== NULL
) {
9758 var28
= 0; /* is null */
9760 var28
= 1; /* arg is null and recv is not */
9763 { /* Inline kernel#Object#!= (var_rettype,((val*)NULL)) on <var_rettype:nullable MType> */
9764 var_other31
= ((val
*)NULL
);
9766 var32
= ((short int(*)(val
* self
, val
* p0
))(var_rettype
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_rettype
, var_other31
); /* == on <var_rettype:nullable MType(MType)>*/
9771 RET_LABEL30
:(void)0;
9779 if (unlikely(!var23
)) {
9780 PRINT_ERROR("Runtime error: %s", "Assert failed");
9781 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing
, 935);
9785 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:AReassignFormExpr> */
9786 var36
= self
->attrs
[COLOR_nit__parser_nodes__AReassignFormExpr___n_value
].val
; /* _n_value on <self:AReassignFormExpr> */
9787 if (unlikely(var36
== NULL
)) {
9788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9789 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes
, 2006);
9793 RET_LABEL35
:(void)0;
9797 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
9798 var39
= var_msignature
->attrs
[COLOR_nit__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
9799 if (unlikely(var39
== NULL
)) {
9800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
9801 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1756);
9805 RET_LABEL38
:(void)0;
9809 var40
= standard___standard__SequenceRead___Collection__first(var37
);
9812 { /* Inline model#MParameter#mtype (var40) on <var40:nullable Object(MParameter)> */
9813 var43
= var40
->attrs
[COLOR_nit__model__MParameter___mtype
].val
; /* _mtype on <var40:nullable Object(MParameter)> */
9814 if (unlikely(var43
== NULL
)) {
9815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9816 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model
, 1879);
9820 RET_LABEL42
:(void)0;
9824 var44
= nit__typing___nit__typing__TypeVisitor___visit_expr_subtype(var_v
, var34
, var41
);
9826 var_value_type
= var44
;
9827 if (var_value_type
== NULL
) {
9828 var45
= 1; /* is null */
9830 var45
= 0; /* arg is null but recv is not */
9833 { /* Inline kernel#Object#== (var_value_type,((val*)NULL)) on <var_value_type:nullable MType> */
9834 var_other
= ((val
*)NULL
);
9836 { /* Inline kernel#Object#is_same_instance (var_value_type,var_other) on <var_value_type:nullable MType(MType)> */
9837 var50
= var_value_type
== var_other
;
9840 RET_LABEL49
:(void)0;
9845 RET_LABEL47
:(void)0;
9855 var51
= nit__typing___nit__typing__TypeVisitor___check_subtype(var_v
, self
, var_rettype
, var_writetype
, 0);