1 #include "typing.sep.0.h"
2 /* method typing#ToolContext#typing_phase for (self: ToolContext): Phase */
3 val
* typing__ToolContext__typing_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_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", "semantize/typing.nit", 25);
16 /* method typing#ToolContext#typing_phase for (self: Object): Phase */
17 val
* VIRTUAL_typing__ToolContext__typing_phase(val
* self
) {
18 val
* var
/* : Phase */;
19 val
* var1
/* : Phase */;
20 val
* var3
/* : Phase */;
21 { /* Inline typing#ToolContext#typing_phase (self) on <self:Object(ToolContext)> */
22 var3
= self
->attrs
[COLOR_typing__ToolContext___typing_phase
].val
; /* _typing_phase on <self:Object(ToolContext)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _typing_phase");
25 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 25);
35 /* method typing#TypingPhase#process_npropdef for (self: TypingPhase, APropdef) */
36 void typing__TypingPhase__process_npropdef(val
* self
, val
* p0
) {
37 val
* var_npropdef
/* var npropdef: APropdef */;
38 val
* var
/* : ToolContext */;
39 val
* var2
/* : ToolContext */;
40 val
* var3
/* : ModelBuilder */;
43 { /* Inline phase#Phase#toolcontext (self) on <self:TypingPhase> */
44 var2
= self
->attrs
[COLOR_phase__Phase___toolcontext
].val
; /* _toolcontext on <self:TypingPhase> */
45 if (unlikely(var2
== NULL
)) {
46 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
47 PRINT_ERROR(" (%s:%d)\n", "phase.nit", 162);
55 var3
= modelbuilder__ToolContext__modelbuilder(var
);
58 ((void (*)(val
*, val
*))(var_npropdef
->class->vft
[COLOR_typing__APropdef__do_typing
]))(var_npropdef
, var3
) /* do_typing on <var_npropdef:APropdef>*/;
62 /* method typing#TypingPhase#process_npropdef for (self: Object, APropdef) */
63 void VIRTUAL_typing__TypingPhase__process_npropdef(val
* self
, val
* p0
) {
64 typing__TypingPhase__process_npropdef(self
, p0
); /* Direct call typing#TypingPhase#process_npropdef on <self:Object(TypingPhase)>*/
67 /* method typing#TypeVisitor#modelbuilder for (self: TypeVisitor): ModelBuilder */
68 val
* typing__TypeVisitor__modelbuilder(val
* self
) {
69 val
* var
/* : ModelBuilder */;
70 val
* var1
/* : ModelBuilder */;
71 var1
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
72 if (unlikely(var1
== NULL
)) {
73 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
74 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
81 /* method typing#TypeVisitor#modelbuilder for (self: Object): ModelBuilder */
82 val
* VIRTUAL_typing__TypeVisitor__modelbuilder(val
* self
) {
83 val
* var
/* : ModelBuilder */;
84 val
* var1
/* : ModelBuilder */;
85 val
* var3
/* : ModelBuilder */;
86 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:Object(TypeVisitor)> */
87 var3
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:Object(TypeVisitor)> */
88 if (unlikely(var3
== NULL
)) {
89 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
90 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
100 /* method typing#TypeVisitor#modelbuilder= for (self: TypeVisitor, ModelBuilder) */
101 void typing__TypeVisitor__modelbuilder_61d(val
* self
, val
* p0
) {
102 self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
= p0
; /* _modelbuilder on <self:TypeVisitor> */
105 /* method typing#TypeVisitor#modelbuilder= for (self: Object, ModelBuilder) */
106 void VIRTUAL_typing__TypeVisitor__modelbuilder_61d(val
* self
, val
* p0
) {
107 { /* Inline typing#TypeVisitor#modelbuilder= (self,p0) on <self:Object(TypeVisitor)> */
108 self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
= p0
; /* _modelbuilder on <self:Object(TypeVisitor)> */
113 /* method typing#TypeVisitor#mmodule for (self: TypeVisitor): MModule */
114 val
* typing__TypeVisitor__mmodule(val
* self
) {
115 val
* var
/* : MModule */;
116 val
* var1
/* : MModule */;
117 var1
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
118 if (unlikely(var1
== NULL
)) {
119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
120 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
127 /* method typing#TypeVisitor#mmodule for (self: Object): MModule */
128 val
* VIRTUAL_typing__TypeVisitor__mmodule(val
* self
) {
129 val
* var
/* : MModule */;
130 val
* var1
/* : MModule */;
131 val
* var3
/* : MModule */;
132 { /* Inline typing#TypeVisitor#mmodule (self) on <self:Object(TypeVisitor)> */
133 var3
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:Object(TypeVisitor)> */
134 if (unlikely(var3
== NULL
)) {
135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
136 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
146 /* method typing#TypeVisitor#mmodule= for (self: TypeVisitor, MModule) */
147 void typing__TypeVisitor__mmodule_61d(val
* self
, val
* p0
) {
148 self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
= p0
; /* _mmodule on <self:TypeVisitor> */
151 /* method typing#TypeVisitor#mmodule= for (self: Object, MModule) */
152 void VIRTUAL_typing__TypeVisitor__mmodule_61d(val
* self
, val
* p0
) {
153 { /* Inline typing#TypeVisitor#mmodule= (self,p0) on <self:Object(TypeVisitor)> */
154 self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
= p0
; /* _mmodule on <self:Object(TypeVisitor)> */
159 /* method typing#TypeVisitor#anchor for (self: TypeVisitor): nullable MClassType */
160 val
* typing__TypeVisitor__anchor(val
* self
) {
161 val
* var
/* : nullable MClassType */;
162 val
* var1
/* : nullable MClassType */;
163 var1
= self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
168 /* method typing#TypeVisitor#anchor for (self: Object): nullable MClassType */
169 val
* VIRTUAL_typing__TypeVisitor__anchor(val
* self
) {
170 val
* var
/* : nullable MClassType */;
171 val
* var1
/* : nullable MClassType */;
172 val
* var3
/* : nullable MClassType */;
173 { /* Inline typing#TypeVisitor#anchor (self) on <self:Object(TypeVisitor)> */
174 var3
= self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <self:Object(TypeVisitor)> */
182 /* method typing#TypeVisitor#anchor= for (self: TypeVisitor, nullable MClassType) */
183 void typing__TypeVisitor__anchor_61d(val
* self
, val
* p0
) {
184 self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
= p0
; /* _anchor on <self:TypeVisitor> */
187 /* method typing#TypeVisitor#anchor= for (self: Object, nullable MClassType) */
188 void VIRTUAL_typing__TypeVisitor__anchor_61d(val
* self
, val
* p0
) {
189 { /* Inline typing#TypeVisitor#anchor= (self,p0) on <self:Object(TypeVisitor)> */
190 self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
= p0
; /* _anchor on <self:Object(TypeVisitor)> */
195 /* method typing#TypeVisitor#mclassdef for (self: TypeVisitor): nullable MClassDef */
196 val
* typing__TypeVisitor__mclassdef(val
* self
) {
197 val
* var
/* : nullable MClassDef */;
198 val
* var1
/* : nullable MClassDef */;
199 var1
= self
->attrs
[COLOR_typing__TypeVisitor___mclassdef
].val
; /* _mclassdef on <self:TypeVisitor> */
204 /* method typing#TypeVisitor#mclassdef for (self: Object): nullable MClassDef */
205 val
* VIRTUAL_typing__TypeVisitor__mclassdef(val
* self
) {
206 val
* var
/* : nullable MClassDef */;
207 val
* var1
/* : nullable MClassDef */;
208 val
* var3
/* : nullable MClassDef */;
209 { /* Inline typing#TypeVisitor#mclassdef (self) on <self:Object(TypeVisitor)> */
210 var3
= self
->attrs
[COLOR_typing__TypeVisitor___mclassdef
].val
; /* _mclassdef on <self:Object(TypeVisitor)> */
218 /* method typing#TypeVisitor#mclassdef= for (self: TypeVisitor, nullable MClassDef) */
219 void typing__TypeVisitor__mclassdef_61d(val
* self
, val
* p0
) {
220 self
->attrs
[COLOR_typing__TypeVisitor___mclassdef
].val
= p0
; /* _mclassdef on <self:TypeVisitor> */
223 /* method typing#TypeVisitor#mclassdef= for (self: Object, nullable MClassDef) */
224 void VIRTUAL_typing__TypeVisitor__mclassdef_61d(val
* self
, val
* p0
) {
225 { /* Inline typing#TypeVisitor#mclassdef= (self,p0) on <self:Object(TypeVisitor)> */
226 self
->attrs
[COLOR_typing__TypeVisitor___mclassdef
].val
= p0
; /* _mclassdef on <self:Object(TypeVisitor)> */
231 /* method typing#TypeVisitor#mpropdef for (self: TypeVisitor): nullable MPropDef */
232 val
* typing__TypeVisitor__mpropdef(val
* self
) {
233 val
* var
/* : nullable MPropDef */;
234 val
* var1
/* : nullable MPropDef */;
235 var1
= self
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
240 /* method typing#TypeVisitor#mpropdef for (self: Object): nullable MPropDef */
241 val
* VIRTUAL_typing__TypeVisitor__mpropdef(val
* self
) {
242 val
* var
/* : nullable MPropDef */;
243 val
* var1
/* : nullable MPropDef */;
244 val
* var3
/* : nullable MPropDef */;
245 { /* Inline typing#TypeVisitor#mpropdef (self) on <self:Object(TypeVisitor)> */
246 var3
= self
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:Object(TypeVisitor)> */
254 /* method typing#TypeVisitor#mpropdef= for (self: TypeVisitor, nullable MPropDef) */
255 void typing__TypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
256 self
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:TypeVisitor> */
259 /* method typing#TypeVisitor#mpropdef= for (self: Object, nullable MPropDef) */
260 void VIRTUAL_typing__TypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
261 { /* Inline typing#TypeVisitor#mpropdef= (self,p0) on <self:Object(TypeVisitor)> */
262 self
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:Object(TypeVisitor)> */
267 /* method typing#TypeVisitor#selfvariable for (self: TypeVisitor): Variable */
268 val
* typing__TypeVisitor__selfvariable(val
* self
) {
269 val
* var
/* : Variable */;
270 val
* var1
/* : Variable */;
271 var1
= self
->attrs
[COLOR_typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <self:TypeVisitor> */
272 if (unlikely(var1
== NULL
)) {
273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
274 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 50);
281 /* method typing#TypeVisitor#selfvariable for (self: Object): Variable */
282 val
* VIRTUAL_typing__TypeVisitor__selfvariable(val
* self
) {
283 val
* var
/* : Variable */;
284 val
* var1
/* : Variable */;
285 val
* var3
/* : Variable */;
286 { /* Inline typing#TypeVisitor#selfvariable (self) on <self:Object(TypeVisitor)> */
287 var3
= self
->attrs
[COLOR_typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <self:Object(TypeVisitor)> */
288 if (unlikely(var3
== NULL
)) {
289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
290 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 50);
300 /* method typing#TypeVisitor#selfvariable= for (self: TypeVisitor, Variable) */
301 void typing__TypeVisitor__selfvariable_61d(val
* self
, val
* p0
) {
302 self
->attrs
[COLOR_typing__TypeVisitor___selfvariable
].val
= p0
; /* _selfvariable on <self:TypeVisitor> */
305 /* method typing#TypeVisitor#selfvariable= for (self: Object, Variable) */
306 void VIRTUAL_typing__TypeVisitor__selfvariable_61d(val
* self
, val
* p0
) {
307 { /* Inline typing#TypeVisitor#selfvariable= (self,p0) on <self:Object(TypeVisitor)> */
308 self
->attrs
[COLOR_typing__TypeVisitor___selfvariable
].val
= p0
; /* _selfvariable on <self:Object(TypeVisitor)> */
313 /* method typing#TypeVisitor#is_toplevel_context for (self: TypeVisitor): Bool */
314 short int typing__TypeVisitor__is_toplevel_context(val
* self
) {
315 short int var
/* : Bool */;
316 short int var1
/* : Bool */;
317 var1
= self
->attrs
[COLOR_typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <self:TypeVisitor> */
322 /* method typing#TypeVisitor#is_toplevel_context for (self: Object): Bool */
323 short int VIRTUAL_typing__TypeVisitor__is_toplevel_context(val
* self
) {
324 short int var
/* : Bool */;
325 short int var1
/* : Bool */;
326 short int var3
/* : Bool */;
327 { /* Inline typing#TypeVisitor#is_toplevel_context (self) on <self:Object(TypeVisitor)> */
328 var3
= self
->attrs
[COLOR_typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <self:Object(TypeVisitor)> */
336 /* method typing#TypeVisitor#is_toplevel_context= for (self: TypeVisitor, Bool) */
337 void typing__TypeVisitor__is_toplevel_context_61d(val
* self
, short int p0
) {
338 self
->attrs
[COLOR_typing__TypeVisitor___is_toplevel_context
].s
= p0
; /* _is_toplevel_context on <self:TypeVisitor> */
341 /* method typing#TypeVisitor#is_toplevel_context= for (self: Object, Bool) */
342 void VIRTUAL_typing__TypeVisitor__is_toplevel_context_61d(val
* self
, short int p0
) {
343 { /* Inline typing#TypeVisitor#is_toplevel_context= (self,p0) on <self:Object(TypeVisitor)> */
344 self
->attrs
[COLOR_typing__TypeVisitor___is_toplevel_context
].s
= p0
; /* _is_toplevel_context on <self:Object(TypeVisitor)> */
349 /* method typing#TypeVisitor#init for (self: TypeVisitor, ModelBuilder, MModule, nullable MPropDef) */
350 void typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
351 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
352 val
* var_mmodule
/* var mmodule: MModule */;
353 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
354 val
* var
/* : null */;
355 short int var3
/* : Bool */;
356 short int var4
/* : Bool */;
357 val
* var_other
/* var other: nullable Object */;
358 short int var6
/* : Bool */;
359 short int var7
/* : Bool */;
360 short int var8
/* : Bool */;
361 val
* var10
/* : MClassDef */;
362 val
* var12
/* : MClassDef */;
363 val
* var_mclassdef
/* var mclassdef: MClassDef */;
364 val
* var14
/* : MClassType */;
365 val
* var16
/* : MClassType */;
366 val
* var18
/* : MClass */;
367 val
* var20
/* : MClass */;
368 val
* var_mclass
/* var mclass: MClass */;
369 val
* var21
/* : Variable */;
371 val
* var22
/* : String */;
372 char* var23
/* : NativeString */;
373 long var24
/* : Int */;
374 val
* var25
/* : FlatString */;
375 val
* var_selfvariable
/* var selfvariable: Variable */;
376 val
* var27
/* : MClassType */;
377 val
* var29
/* : MClassType */;
378 val
* var31
/* : MProperty */;
379 val
* var33
/* : MProperty */;
380 val
* var_mprop
/* var mprop: MProperty */;
381 short int var34
/* : Bool */;
382 short int var35
/* : Bool */;
385 short int var_
/* var : Bool */;
386 short int var36
/* : Bool */;
387 short int var37
/* : Bool */;
388 short int var39
/* : Bool */;
389 short int var_40
/* var : Bool */;
390 short int var41
/* : Bool */;
391 short int var43
/* : Bool */;
392 short int var44
/* : Bool */;
393 var_modelbuilder
= p0
;
397 { /* Inline typing#TypeVisitor#modelbuilder= (self,var_modelbuilder) on <self:TypeVisitor> */
398 self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
= var_modelbuilder
; /* _modelbuilder on <self:TypeVisitor> */
403 { /* Inline typing#TypeVisitor#mmodule= (self,var_mmodule) on <self:TypeVisitor> */
404 self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
= var_mmodule
; /* _mmodule on <self:TypeVisitor> */
409 if (var_mpropdef
== NULL
) {
410 var3
= 0; /* is null */
412 var3
= 1; /* arg is null and recv is not */
415 { /* Inline kernel#Object#!= (var_mpropdef,var) on <var_mpropdef:nullable MPropDef> */
418 var7
= ((short int (*)(val
*, val
*))(var_mpropdef
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mpropdef
, var_other
) /* == on <var_mpropdef:nullable MPropDef(MPropDef)>*/;
430 { /* Inline typing#TypeVisitor#mpropdef= (self,var_mpropdef) on <self:TypeVisitor> */
431 self
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
= var_mpropdef
; /* _mpropdef on <self:TypeVisitor> */
436 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MPropDef(MPropDef)> */
437 var12
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MPropDef(MPropDef)> */
438 if (unlikely(var12
== NULL
)) {
439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
440 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
447 var_mclassdef
= var10
;
449 { /* Inline typing#TypeVisitor#mclassdef= (self,var_mclassdef) on <self:TypeVisitor> */
450 self
->attrs
[COLOR_typing__TypeVisitor___mclassdef
].val
= var_mclassdef
; /* _mclassdef on <self:TypeVisitor> */
455 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
456 var16
= var_mclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
457 if (unlikely(var16
== NULL
)) {
458 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
459 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
467 { /* Inline typing#TypeVisitor#anchor= (self,var14) on <self:TypeVisitor> */
468 self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
= var14
; /* _anchor on <self:TypeVisitor> */
473 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
474 var20
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef:MClassDef> */
475 if (unlikely(var20
== NULL
)) {
476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
477 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
485 var21
= NEW_scope__Variable(&type_scope__Variable
);
491 var25
= string__NativeString__to_s_with_length(var23
, var24
);
496 ((void (*)(val
*, val
*))(var21
->class->vft
[COLOR_scope__Variable__name_61d
]))(var21
, var22
) /* name= on <var21:Variable>*/;
499 ((void (*)(val
*))(var21
->class->vft
[COLOR_kernel__Object__init
]))(var21
) /* init on <var21:Variable>*/;
501 var_selfvariable
= var21
;
503 { /* Inline typing#TypeVisitor#selfvariable= (self,var_selfvariable) on <self:TypeVisitor> */
504 self
->attrs
[COLOR_typing__TypeVisitor___selfvariable
].val
= var_selfvariable
; /* _selfvariable on <self:TypeVisitor> */
509 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
510 var29
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:MClass> */
511 if (unlikely(var29
== NULL
)) {
512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
513 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
521 { /* Inline typing#Variable#declared_type= (var_selfvariable,var27) on <var_selfvariable:Variable> */
522 var_selfvariable
->attrs
[COLOR_typing__Variable___declared_type
].val
= var27
; /* _declared_type on <var_selfvariable:Variable> */
527 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MPropDef(MPropDef)> */
528 var33
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:nullable MPropDef(MPropDef)> */
529 if (unlikely(var33
== NULL
)) {
530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
531 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
539 /* <var_mprop:MProperty> isa MMethod */
540 cltype
= type_model__MMethod
.color
;
541 idtype
= type_model__MMethod
.id
;
542 if(cltype
>= var_mprop
->type
->table_size
) {
545 var35
= var_mprop
->type
->type_table
[cltype
] == idtype
;
550 { /* Inline model#MMethod#is_toplevel (var_mprop) on <var_mprop:MProperty(MMethod)> */
551 var39
= var_mprop
->attrs
[COLOR_model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mprop:MProperty(MMethod)> */
561 { /* Inline model#MMethod#is_new (var_mprop) on <var_mprop:MProperty(MMethod)> */
562 var43
= var_mprop
->attrs
[COLOR_model__MMethod___is_new
].s
; /* _is_new on <var_mprop:MProperty(MMethod)> */
576 { /* Inline typing#TypeVisitor#is_toplevel_context= (self,var44) on <self:TypeVisitor> */
577 self
->attrs
[COLOR_typing__TypeVisitor___is_toplevel_context
].s
= var44
; /* _is_toplevel_context on <self:TypeVisitor> */
587 /* method typing#TypeVisitor#init for (self: Object, ModelBuilder, MModule, nullable MPropDef) */
588 void VIRTUAL_typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
589 typing__TypeVisitor__init(self
, p0
, p1
, p2
); /* Direct call typing#TypeVisitor#init on <self:Object(TypeVisitor)>*/
592 /* method typing#TypeVisitor#anchor_to for (self: TypeVisitor, MType): MType */
593 val
* typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
594 val
* var
/* : MType */;
595 val
* var_mtype
/* var mtype: MType */;
596 val
* var1
/* : nullable MClassType */;
597 val
* var3
/* : nullable MClassType */;
598 val
* var_anchor
/* var anchor: nullable MClassType */;
599 val
* var4
/* : null */;
600 short int var5
/* : Bool */;
601 short int var6
/* : Bool */;
602 val
* var_other
/* var other: nullable Object */;
603 short int var8
/* : Bool */;
604 short int var10
/* : Bool */;
605 short int var11
/* : Bool */;
606 short int var12
/* : Bool */;
607 val
* var13
/* : MModule */;
608 val
* var15
/* : MModule */;
609 val
* var16
/* : MType */;
612 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
613 var3
= self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
620 if (var_anchor
== NULL
) {
621 var5
= 1; /* is null */
623 var5
= 0; /* arg is null but recv is not */
626 { /* Inline kernel#Object#== (var_anchor,var4) on <var_anchor:nullable MClassType> */
629 { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on <var_anchor:nullable MClassType(MClassType)> */
630 var10
= var_anchor
== var_other
;
644 var11
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
647 if (unlikely(!var12
)) {
648 PRINT_ERROR("Runtime error: %s", "Assert failed");
649 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 85);
657 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
658 var15
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
659 if (unlikely(var15
== NULL
)) {
660 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
661 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
669 var16
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var13
, var_anchor
) /* anchor_to on <var_mtype:MType>*/;
676 /* method typing#TypeVisitor#anchor_to for (self: Object, MType): MType */
677 val
* VIRTUAL_typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
678 val
* var
/* : MType */;
679 val
* var1
/* : MType */;
680 var1
= typing__TypeVisitor__anchor_to(self
, p0
);
685 /* method typing#TypeVisitor#is_subtype for (self: TypeVisitor, MType, MType): Bool */
686 short int typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
687 short int var
/* : Bool */;
688 val
* var_sub
/* var sub: MType */;
689 val
* var_sup
/* var sup: MType */;
690 val
* var1
/* : MModule */;
691 val
* var3
/* : MModule */;
692 val
* var4
/* : nullable MClassType */;
693 val
* var6
/* : nullable MClassType */;
694 short int var7
/* : Bool */;
698 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
699 var3
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
700 if (unlikely(var3
== NULL
)) {
701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
702 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
710 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
711 var6
= self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
717 var7
= model__MType__is_subtype(var_sub
, var1
, var4
, var_sup
);
724 /* method typing#TypeVisitor#is_subtype for (self: Object, MType, MType): Bool */
725 short int VIRTUAL_typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
726 short int var
/* : Bool */;
727 short int var1
/* : Bool */;
728 var1
= typing__TypeVisitor__is_subtype(self
, p0
, p1
);
733 /* method typing#TypeVisitor#resolve_for for (self: TypeVisitor, MType, MType, Bool): MType */
734 val
* typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
735 val
* var
/* : MType */;
736 val
* var_mtype
/* var mtype: MType */;
737 val
* var_subtype
/* var subtype: MType */;
738 short int var_for_self
/* var for_self: Bool */;
739 val
* var1
/* : nullable MClassType */;
740 val
* var3
/* : nullable MClassType */;
741 val
* var4
/* : MModule */;
742 val
* var6
/* : MModule */;
743 short int var7
/* : Bool */;
744 val
* var8
/* : MType */;
745 val
* var_res
/* var res: MType */;
750 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
751 var3
= self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
757 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
758 var6
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
759 if (unlikely(var6
== NULL
)) {
760 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
761 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
768 var7
= !var_for_self
;
770 var8
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_mtype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_mtype
, var_subtype
, var1
, var4
, var7
) /* resolve_for on <var_mtype:MType>*/;
778 /* method typing#TypeVisitor#resolve_for for (self: Object, MType, MType, Bool): MType */
779 val
* VIRTUAL_typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
780 val
* var
/* : MType */;
781 val
* var1
/* : MType */;
782 var1
= typing__TypeVisitor__resolve_for(self
, p0
, p1
, p2
);
787 /* method typing#TypeVisitor#check_subtype for (self: TypeVisitor, ANode, MType, MType): nullable MType */
788 val
* typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
789 val
* var
/* : nullable MType */;
790 val
* var_node
/* var node: ANode */;
791 val
* var_sub
/* var sub: MType */;
792 val
* var_sup
/* var sup: MType */;
793 short int var1
/* : Bool */;
794 val
* var2
/* : MType */;
795 short int var3
/* : Bool */;
796 val
* var4
/* : ModelBuilder */;
797 val
* var6
/* : ModelBuilder */;
799 val
* var7
/* : String */;
800 char* var8
/* : NativeString */;
801 long var9
/* : Int */;
802 val
* var10
/* : FlatString */;
803 static val
* varonce11
;
804 val
* var12
/* : String */;
805 char* var13
/* : NativeString */;
806 long var14
/* : Int */;
807 val
* var15
/* : FlatString */;
808 val
* var16
/* : Array[Object] */;
809 long var17
/* : Int */;
810 val
* var18
/* : NativeArray[Object] */;
811 val
* var19
/* : String */;
812 val
* var20
/* : null */;
817 var1
= typing__TypeVisitor__is_subtype(self
, var_sub
, var_sup
);
825 var2
= typing__TypeVisitor__anchor_to(self
, var_sup
);
828 var3
= typing__TypeVisitor__is_subtype(self
, var_sub
, var2
);
836 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
837 var6
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
838 if (unlikely(var6
== NULL
)) {
839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
840 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
850 var8
= "Type error: expected ";
852 var10
= string__NativeString__to_s_with_length(var8
, var9
);
861 var15
= string__NativeString__to_s_with_length(var13
, var14
);
865 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
866 { /* var16 = array_instance Array[Object] */
868 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
869 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
870 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_sup
;
871 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
872 ((struct instance_array__NativeArray
*)var18
)->values
[3] = (val
*) var_sub
;
874 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
878 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
881 modelbuilder__ModelBuilder__error(var4
, var_node
, var19
); /* Direct call modelbuilder#ModelBuilder#error on <var4:ModelBuilder>*/
889 /* method typing#TypeVisitor#check_subtype for (self: Object, ANode, MType, MType): nullable MType */
890 val
* VIRTUAL_typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
891 val
* var
/* : nullable MType */;
892 val
* var1
/* : nullable MType */;
893 var1
= typing__TypeVisitor__check_subtype(self
, p0
, p1
, p2
);
898 /* method typing#TypeVisitor#visit_stmt for (self: TypeVisitor, nullable AExpr) */
899 void typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
900 val
* var_nexpr
/* var nexpr: nullable AExpr */;
901 val
* var
/* : null */;
902 short int var1
/* : Bool */;
903 short int var2
/* : Bool */;
904 val
* var_other
/* var other: nullable Object */;
905 short int var4
/* : Bool */;
906 short int var6
/* : Bool */;
909 if (var_nexpr
== NULL
) {
910 var1
= 1; /* is null */
912 var1
= 0; /* arg is null but recv is not */
915 { /* Inline kernel#Object#== (var_nexpr,var) on <var_nexpr:nullable AExpr> */
918 { /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
919 var6
= var_nexpr
== var_other
;
936 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:nullable AExpr(AExpr)>*/;
940 /* method typing#TypeVisitor#visit_stmt for (self: Object, nullable AExpr) */
941 void VIRTUAL_typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
942 typing__TypeVisitor__visit_stmt(self
, p0
); /* Direct call typing#TypeVisitor#visit_stmt on <self:Object(TypeVisitor)>*/
945 /* method typing#TypeVisitor#visit_expr for (self: TypeVisitor, AExpr): nullable MType */
946 val
* typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
947 val
* var
/* : nullable MType */;
948 val
* var_nexpr
/* var nexpr: AExpr */;
949 val
* var1
/* : nullable MType */;
950 val
* var_mtype
/* var mtype: nullable MType */;
951 val
* var2
/* : null */;
952 short int var3
/* : Bool */;
953 short int var4
/* : Bool */;
954 val
* var_other
/* var other: nullable Object */;
955 short int var6
/* : Bool */;
956 short int var7
/* : Bool */;
957 short int var8
/* : Bool */;
958 short int var9
/* : Bool */;
959 short int var11
/* : Bool */;
960 short int var12
/* : Bool */;
961 val
* var13
/* : ModelBuilder */;
962 val
* var15
/* : ModelBuilder */;
963 val
* var16
/* : ToolContext */;
964 val
* var18
/* : ToolContext */;
965 long var19
/* : Int */;
966 long var21
/* : Int */;
967 long var22
/* : Int */;
968 short int var23
/* : Bool */;
969 short int var25
/* : Bool */;
972 const char* var_class_name
;
973 short int var26
/* : Bool */;
974 short int var27
/* : Bool */;
975 val
* var28
/* : ModelBuilder */;
976 val
* var30
/* : ModelBuilder */;
977 val
* var31
/* : ToolContext */;
978 val
* var33
/* : ToolContext */;
979 long var34
/* : Int */;
980 long var36
/* : Int */;
981 long var37
/* : Int */;
982 short int var38
/* : Bool */;
983 short int var40
/* : Bool */;
986 const char* var_class_name43
;
987 short int var44
/* : Bool */;
989 val
* var45
/* : String */;
990 char* var46
/* : NativeString */;
991 long var47
/* : Int */;
992 val
* var48
/* : FlatString */;
993 val
* var49
/* : null */;
994 static val
* varonce50
;
995 val
* var51
/* : String */;
996 char* var52
/* : NativeString */;
997 long var53
/* : Int */;
998 val
* var54
/* : FlatString */;
999 val
* var55
/* : null */;
1002 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:AExpr>*/;
1005 var1
= ((val
* (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__mtype
]))(var_nexpr
) /* mtype on <var_nexpr:AExpr>*/;
1009 if (var_mtype
== NULL
) {
1010 var3
= 0; /* is null */
1012 var3
= 1; /* arg is null and recv is not */
1015 { /* Inline kernel#Object#!= (var_mtype,var2) on <var_mtype:nullable MType> */
1018 var7
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other
) /* == on <var_mtype:nullable MType(MType)>*/;
1034 { /* Inline typing#AExpr#is_typed (var_nexpr) on <var_nexpr:AExpr> */
1035 var11
= var_nexpr
->attrs
[COLOR_typing__AExpr___is_typed
].s
; /* _is_typed on <var_nexpr:AExpr> */
1037 RET_LABEL10
:(void)0;
1043 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1044 var15
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1045 if (unlikely(var15
== NULL
)) {
1046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1047 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
1051 RET_LABEL14
:(void)0;
1055 { /* Inline modelbuilder#ModelBuilder#toolcontext (var13) on <var13:ModelBuilder> */
1056 var18
= var13
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var13:ModelBuilder> */
1057 if (unlikely(var18
== NULL
)) {
1058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1059 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1063 RET_LABEL17
:(void)0;
1067 { /* Inline toolcontext#ToolContext#error_count (var16) on <var16:ToolContext> */
1068 var21
= var16
->attrs
[COLOR_toolcontext__ToolContext___error_count
].l
; /* _error_count on <var16:ToolContext> */
1070 RET_LABEL20
:(void)0;
1075 { /* Inline kernel#Int#> (var19,var22) on <var19:Int> */
1076 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
1077 /* <var22:Int> isa OTHER */
1078 var25
= 1; /* easy <var22:Int> isa OTHER*/
1079 if (unlikely(!var25
)) {
1080 var_class_name
= type_kernel__Int
.name
;
1081 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1082 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1085 var26
= var19
> var22
;
1088 RET_LABEL24
:(void)0;
1094 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1095 var30
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1096 if (unlikely(var30
== NULL
)) {
1097 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1098 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
1102 RET_LABEL29
:(void)0;
1106 { /* Inline modelbuilder#ModelBuilder#toolcontext (var28) on <var28:ModelBuilder> */
1107 var33
= var28
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var28:ModelBuilder> */
1108 if (unlikely(var33
== NULL
)) {
1109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1110 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
1114 RET_LABEL32
:(void)0;
1118 { /* Inline toolcontext#ToolContext#verbose_level (var31) on <var31:ToolContext> */
1119 var36
= var31
->attrs
[COLOR_toolcontext__ToolContext___verbose_level
].l
; /* _verbose_level on <var31:ToolContext> */
1121 RET_LABEL35
:(void)0;
1126 { /* Inline kernel#Int#> (var34,var37) on <var34:Int> */
1127 /* Covariant cast for argument 0 (i) <var37:Int> isa OTHER */
1128 /* <var37:Int> isa OTHER */
1129 var40
= 1; /* easy <var37:Int> isa OTHER*/
1130 if (unlikely(!var40
)) {
1131 var_class_name43
= type_kernel__Int
.name
;
1132 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43
);
1133 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1136 var44
= var34
> var37
;
1139 RET_LABEL39
:(void)0;
1146 var46
= "No return type but no error.";
1148 var48
= string__NativeString__to_s_with_length(var46
, var47
);
1153 parser_nodes__ANode__debug(var_nexpr
, var45
); /* Direct call parser_nodes#ANode#debug on <var_nexpr:AExpr>*/
1167 var52
= "Type error: expected expression.";
1169 var54
= string__NativeString__to_s_with_length(var52
, var53
);
1174 typing__TypeVisitor__error(self
, var_nexpr
, var51
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
1182 /* method typing#TypeVisitor#visit_expr for (self: Object, AExpr): nullable MType */
1183 val
* VIRTUAL_typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
1184 val
* var
/* : nullable MType */;
1185 val
* var1
/* : nullable MType */;
1186 var1
= typing__TypeVisitor__visit_expr(self
, p0
);
1191 /* method typing#TypeVisitor#visit_expr_subtype for (self: TypeVisitor, AExpr, nullable MType): nullable MType */
1192 val
* typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
1193 val
* var
/* : nullable MType */;
1194 val
* var_nexpr
/* var nexpr: AExpr */;
1195 val
* var_sup
/* var sup: nullable MType */;
1196 val
* var1
/* : nullable MType */;
1197 val
* var_sub
/* var sub: nullable MType */;
1198 val
* var2
/* : null */;
1199 short int var3
/* : Bool */;
1200 short int var4
/* : Bool */;
1201 val
* var_other
/* var other: nullable Object */;
1202 short int var6
/* : Bool */;
1203 short int var8
/* : Bool */;
1204 val
* var9
/* : null */;
1205 val
* var10
/* : null */;
1206 short int var11
/* : Bool */;
1207 short int var12
/* : Bool */;
1208 short int var14
/* : Bool */;
1209 short int var16
/* : Bool */;
1210 val
* var17
/* : null */;
1211 val
* var18
/* : nullable MType */;
1212 val
* var_res
/* var res: nullable MType */;
1213 short int var19
/* : Bool */;
1214 short int var20
/* : Bool */;
1215 val
* var_other22
/* var other: nullable Object */;
1216 short int var23
/* : Bool */;
1217 short int var24
/* : Bool */;
1218 short int var25
/* : Bool */;
1222 var1
= typing__TypeVisitor__visit_expr(self
, var_nexpr
);
1226 if (var_sub
== NULL
) {
1227 var3
= 1; /* is null */
1229 var3
= 0; /* arg is null but recv is not */
1232 { /* Inline kernel#Object#== (var_sub,var2) on <var_sub:nullable MType> */
1235 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:nullable MType(MType)> */
1236 var8
= var_sub
== var_other
;
1255 if (var_sup
== NULL
) {
1256 var11
= 1; /* is null */
1258 var11
= 0; /* arg is null but recv is not */
1261 { /* Inline kernel#Object#== (var_sup,var10) on <var_sup:nullable MType> */
1264 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1265 var16
= var_sup
== var_other
;
1268 RET_LABEL15
:(void)0;
1273 RET_LABEL13
:(void)0;
1284 var18
= typing__TypeVisitor__check_subtype(self
, var_nexpr
, var_sub
, var_sup
);
1287 if (var_res
== NULL
) {
1288 var19
= 1; /* <var_sub:nullable MType(MType)> cannot be null */
1290 { /* Inline kernel#Object#!= (var_res,var_sub) on <var_res:nullable MType> */
1291 var_other22
= var_sub
;
1293 var24
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other22
) /* == on <var_res:nullable MType(MType)>*/;
1299 RET_LABEL21
:(void)0;
1305 { /* Inline typing#AExpr#implicit_cast_to= (var_nexpr,var_res) on <var_nexpr:AExpr> */
1306 var_nexpr
->attrs
[COLOR_typing__AExpr___implicit_cast_to
].val
= var_res
; /* _implicit_cast_to on <var_nexpr:AExpr> */
1307 RET_LABEL26
:(void)0;
1317 /* method typing#TypeVisitor#visit_expr_subtype for (self: Object, AExpr, nullable MType): nullable MType */
1318 val
* VIRTUAL_typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
1319 val
* var
/* : nullable MType */;
1320 val
* var1
/* : nullable MType */;
1321 var1
= typing__TypeVisitor__visit_expr_subtype(self
, p0
, p1
);
1326 /* method typing#TypeVisitor#visit_expr_bool for (self: TypeVisitor, AExpr): nullable MType */
1327 val
* typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
1328 val
* var
/* : nullable MType */;
1329 val
* var_nexpr
/* var nexpr: AExpr */;
1330 val
* var1
/* : nullable MType */;
1331 val
* var2
/* : nullable MType */;
1334 var1
= typing__TypeVisitor__type_bool(self
, var_nexpr
);
1337 var2
= typing__TypeVisitor__visit_expr_subtype(self
, var_nexpr
, var1
);
1344 /* method typing#TypeVisitor#visit_expr_bool for (self: Object, AExpr): nullable MType */
1345 val
* VIRTUAL_typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
1346 val
* var
/* : nullable MType */;
1347 val
* var1
/* : nullable MType */;
1348 var1
= typing__TypeVisitor__visit_expr_bool(self
, p0
);
1353 /* method typing#TypeVisitor#visit_expr_cast for (self: TypeVisitor, ANode, AExpr, AType): nullable MType */
1354 val
* typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1355 val
* var
/* : nullable MType */;
1356 val
* var_node
/* var node: ANode */;
1357 val
* var_nexpr
/* var nexpr: AExpr */;
1358 val
* var_ntype
/* var ntype: AType */;
1359 val
* var1
/* : nullable MType */;
1360 val
* var_sub
/* var sub: nullable MType */;
1361 val
* var2
/* : null */;
1362 short int var3
/* : Bool */;
1363 short int var4
/* : Bool */;
1364 val
* var_other
/* var other: nullable Object */;
1365 short int var6
/* : Bool */;
1366 short int var8
/* : Bool */;
1367 val
* var9
/* : null */;
1368 val
* var10
/* : nullable MType */;
1369 val
* var_sup
/* var sup: nullable MType */;
1370 val
* var11
/* : null */;
1371 short int var12
/* : Bool */;
1372 short int var13
/* : Bool */;
1373 short int var15
/* : Bool */;
1374 short int var17
/* : Bool */;
1375 val
* var18
/* : null */;
1376 short int var19
/* : Bool */;
1377 short int var20
/* : Bool */;
1378 short int var22
/* : Bool */;
1379 short int var24
/* : Bool */;
1380 val
* var25
/* : ModelBuilder */;
1381 val
* var27
/* : ModelBuilder */;
1382 static val
* varonce
;
1383 val
* var28
/* : String */;
1384 char* var29
/* : NativeString */;
1385 long var30
/* : Int */;
1386 val
* var31
/* : FlatString */;
1387 static val
* varonce32
;
1388 val
* var33
/* : String */;
1389 char* var34
/* : NativeString */;
1390 long var35
/* : Int */;
1391 val
* var36
/* : FlatString */;
1392 static val
* varonce37
;
1393 val
* var38
/* : String */;
1394 char* var39
/* : NativeString */;
1395 long var40
/* : Int */;
1396 val
* var41
/* : FlatString */;
1397 val
* var42
/* : Array[Object] */;
1398 long var43
/* : Int */;
1399 val
* var44
/* : NativeArray[Object] */;
1400 val
* var45
/* : String */;
1401 short int var46
/* : Bool */;
1402 val
* var47
/* : ModelBuilder */;
1403 val
* var49
/* : ModelBuilder */;
1404 static val
* varonce50
;
1405 val
* var51
/* : String */;
1406 char* var52
/* : NativeString */;
1407 long var53
/* : Int */;
1408 val
* var54
/* : FlatString */;
1409 static val
* varonce55
;
1410 val
* var56
/* : String */;
1411 char* var57
/* : NativeString */;
1412 long var58
/* : Int */;
1413 val
* var59
/* : FlatString */;
1414 static val
* varonce60
;
1415 val
* var61
/* : String */;
1416 char* var62
/* : NativeString */;
1417 long var63
/* : Int */;
1418 val
* var64
/* : FlatString */;
1419 static val
* varonce65
;
1420 val
* var66
/* : String */;
1421 char* var67
/* : NativeString */;
1422 long var68
/* : Int */;
1423 val
* var69
/* : FlatString */;
1424 val
* var70
/* : Array[Object] */;
1425 long var71
/* : Int */;
1426 val
* var72
/* : NativeArray[Object] */;
1427 val
* var73
/* : String */;
1432 var1
= typing__TypeVisitor__visit_expr(self
, var_nexpr
);
1436 if (var_sub
== NULL
) {
1437 var3
= 1; /* is null */
1439 var3
= 0; /* arg is null but recv is not */
1442 { /* Inline kernel#Object#== (var_sub,var2) on <var_sub:nullable MType> */
1445 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:nullable MType(MType)> */
1446 var8
= var_sub
== var_other
;
1465 var10
= typing__TypeVisitor__resolve_mtype(self
, var_ntype
);
1469 if (var_sup
== NULL
) {
1470 var12
= 1; /* is null */
1472 var12
= 0; /* arg is null but recv is not */
1475 { /* Inline kernel#Object#== (var_sup,var11) on <var_sup:nullable MType> */
1478 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1479 var17
= var_sup
== var_other
;
1482 RET_LABEL16
:(void)0;
1487 RET_LABEL14
:(void)0;
1498 { /* Inline kernel#Object#== (var_sup,var_sub) on <var_sup:nullable MType(MType)> */
1499 var_other
= var_sub
;
1501 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1502 var24
= var_sup
== var_other
;
1505 RET_LABEL23
:(void)0;
1510 RET_LABEL21
:(void)0;
1516 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1517 var27
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1518 if (unlikely(var27
== NULL
)) {
1519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1520 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
1524 RET_LABEL26
:(void)0;
1530 var29
= "useless-type-test";
1532 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1539 var34
= "Warning: Expression is already a ";
1541 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1550 var41
= string__NativeString__to_s_with_length(var39
, var40
);
1554 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
1555 { /* var42 = array_instance Array[Object] */
1557 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
1558 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
1559 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_sup
;
1560 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
1562 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
1566 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
1569 modelbuilder__ModelBuilder__warning(var25
, var_node
, var28
, var45
); /* Direct call modelbuilder#ModelBuilder#warning on <var25:ModelBuilder>*/
1573 var46
= typing__TypeVisitor__is_subtype(self
, var_sub
, var_sup
);
1577 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1578 var49
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1579 if (unlikely(var49
== NULL
)) {
1580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1581 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
1585 RET_LABEL48
:(void)0;
1591 var52
= "useless-type-test";
1593 var54
= string__NativeString__to_s_with_length(var52
, var53
);
1600 var57
= "Warning: Expression is already a ";
1602 var59
= string__NativeString__to_s_with_length(var57
, var58
);
1609 var62
= " since it is a ";
1611 var64
= string__NativeString__to_s_with_length(var62
, var63
);
1620 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1624 var70
= NEW_array__Array(&type_array__Arraykernel__Object
);
1625 { /* var70 = array_instance Array[Object] */
1627 var72
= NEW_array__NativeArray(var71
, &type_array__NativeArraykernel__Object
);
1628 ((struct instance_array__NativeArray
*)var72
)->values
[0] = (val
*) var56
;
1629 ((struct instance_array__NativeArray
*)var72
)->values
[1] = (val
*) var_sup
;
1630 ((struct instance_array__NativeArray
*)var72
)->values
[2] = (val
*) var61
;
1631 ((struct instance_array__NativeArray
*)var72
)->values
[3] = (val
*) var_sub
;
1632 ((struct instance_array__NativeArray
*)var72
)->values
[4] = (val
*) var66
;
1634 ((void (*)(val
*, val
*, long))(var70
->class->vft
[COLOR_array__Array__with_native
]))(var70
, var72
, var71
) /* with_native on <var70:Array[Object]>*/;
1638 var73
= ((val
* (*)(val
*))(var70
->class->vft
[COLOR_string__Object__to_s
]))(var70
) /* to_s on <var70:Array[Object]>*/;
1641 modelbuilder__ModelBuilder__warning(var47
, var_node
, var51
, var73
); /* Direct call modelbuilder#ModelBuilder#warning on <var47:ModelBuilder>*/
1651 /* method typing#TypeVisitor#visit_expr_cast for (self: Object, ANode, AExpr, AType): nullable MType */
1652 val
* VIRTUAL_typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1653 val
* var
/* : nullable MType */;
1654 val
* var1
/* : nullable MType */;
1655 var1
= typing__TypeVisitor__visit_expr_cast(self
, p0
, p1
, p2
);
1660 /* method typing#TypeVisitor#null_test for (self: TypeVisitor, ABinopExpr) */
1661 void typing__TypeVisitor__null_test(val
* self
, val
* p0
) {
1662 val
* var_anode
/* var anode: ABinopExpr */;
1663 val
* var
/* : AExpr */;
1664 val
* var2
/* : AExpr */;
1665 val
* var3
/* : nullable MType */;
1666 val
* var_mtype
/* var mtype: nullable MType */;
1667 val
* var4
/* : AExpr */;
1668 val
* var6
/* : AExpr */;
1669 val
* var7
/* : nullable MType */;
1670 val
* var_mtype2
/* var mtype2: nullable MType */;
1671 short int var8
/* : Bool */;
1672 val
* var9
/* : null */;
1673 short int var10
/* : Bool */;
1674 short int var11
/* : Bool */;
1675 val
* var_other
/* var other: nullable Object */;
1676 short int var13
/* : Bool */;
1677 short int var15
/* : Bool */;
1678 short int var_
/* var : Bool */;
1679 val
* var16
/* : null */;
1680 short int var17
/* : Bool */;
1681 short int var18
/* : Bool */;
1682 short int var20
/* : Bool */;
1683 short int var22
/* : Bool */;
1684 short int var23
/* : Bool */;
1687 short int var24
/* : Bool */;
1688 short int var25
/* : Bool */;
1691 short int var28
/* : Bool */;
1692 val
* var29
/* : MType */;
1693 short int var30
/* : Bool */;
1696 short int var33
/* : Bool */;
1697 val
* var34
/* : ModelBuilder */;
1698 val
* var36
/* : ModelBuilder */;
1699 static val
* varonce
;
1700 val
* var37
/* : String */;
1701 char* var38
/* : NativeString */;
1702 long var39
/* : Int */;
1703 val
* var40
/* : FlatString */;
1704 static val
* varonce41
;
1705 val
* var42
/* : String */;
1706 char* var43
/* : NativeString */;
1707 long var44
/* : Int */;
1708 val
* var45
/* : FlatString */;
1709 static val
* varonce46
;
1710 val
* var47
/* : String */;
1711 char* var48
/* : NativeString */;
1712 long var49
/* : Int */;
1713 val
* var50
/* : FlatString */;
1714 val
* var51
/* : Array[Object] */;
1715 long var52
/* : Int */;
1716 val
* var53
/* : NativeArray[Object] */;
1717 val
* var54
/* : String */;
1718 val
* var55
/* : AExpr */;
1719 val
* var57
/* : AExpr */;
1720 val
* var58
/* : nullable Variable */;
1721 val
* var_variable
/* var variable: nullable Variable */;
1722 val
* var59
/* : null */;
1723 short int var60
/* : Bool */;
1724 short int var61
/* : Bool */;
1725 short int var63
/* : Bool */;
1726 short int var65
/* : Bool */;
1727 short int var66
/* : Bool */;
1730 val
* var69
/* : nullable FlowContext */;
1731 val
* var71
/* : nullable FlowContext */;
1732 val
* var72
/* : FlowContext */;
1733 val
* var74
/* : FlowContext */;
1734 val
* var75
/* : nullable FlowContext */;
1735 val
* var77
/* : nullable FlowContext */;
1736 val
* var78
/* : FlowContext */;
1737 val
* var80
/* : FlowContext */;
1738 val
* var81
/* : MType */;
1739 val
* var83
/* : MType */;
1740 short int var84
/* : Bool */;
1743 val
* var87
/* : nullable FlowContext */;
1744 val
* var89
/* : nullable FlowContext */;
1745 val
* var90
/* : FlowContext */;
1746 val
* var92
/* : FlowContext */;
1747 val
* var93
/* : nullable FlowContext */;
1748 val
* var95
/* : nullable FlowContext */;
1749 val
* var96
/* : FlowContext */;
1750 val
* var98
/* : FlowContext */;
1751 val
* var99
/* : MType */;
1752 val
* var101
/* : MType */;
1755 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
1756 var2
= var_anode
->attrs
[COLOR_parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
1757 if (unlikely(var2
== NULL
)) {
1758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1759 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1466);
1767 var3
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__mtype
]))(var
) /* mtype on <var:AExpr>*/;
1771 { /* Inline parser_nodes#ABinopExpr#n_expr2 (var_anode) on <var_anode:ABinopExpr> */
1772 var6
= var_anode
->attrs
[COLOR_parser_nodes__ABinopExpr___n_expr2
].val
; /* _n_expr2 on <var_anode:ABinopExpr> */
1773 if (unlikely(var6
== NULL
)) {
1774 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1775 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1473);
1783 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
1787 if (var_mtype
== NULL
) {
1788 var10
= 1; /* is null */
1790 var10
= 0; /* arg is null but recv is not */
1793 { /* Inline kernel#Object#== (var_mtype,var9) on <var_mtype:nullable MType> */
1796 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1797 var15
= var_mtype
== var_other
;
1800 RET_LABEL14
:(void)0;
1805 RET_LABEL12
:(void)0;
1814 if (var_mtype2
== NULL
) {
1815 var17
= 1; /* is null */
1817 var17
= 0; /* arg is null but recv is not */
1820 { /* Inline kernel#Object#== (var_mtype2,var16) on <var_mtype2:nullable MType> */
1823 { /* Inline kernel#Object#is_same_instance (var_mtype2,var_other) on <var_mtype2:nullable MType(MType)> */
1824 var22
= var_mtype2
== var_other
;
1827 RET_LABEL21
:(void)0;
1832 RET_LABEL19
:(void)0;
1842 /* <var_mtype2:nullable MType(MType)> isa MNullType */
1843 cltype
= type_model__MNullType
.color
;
1844 idtype
= type_model__MNullType
.id
;
1845 if(cltype
>= var_mtype2
->type
->table_size
) {
1848 var23
= var_mtype2
->type
->type_table
[cltype
] == idtype
;
1855 /* <var_mtype:nullable MType(MType)> isa MNullableType */
1856 cltype26
= type_model__MNullableType
.color
;
1857 idtype27
= type_model__MNullableType
.id
;
1858 if(cltype26
>= var_mtype
->type
->table_size
) {
1861 var25
= var_mtype
->type
->type_table
[cltype26
] == idtype27
;
1866 var29
= typing__TypeVisitor__anchor_to(self
, var_mtype
);
1868 /* <var29:MType> isa MNullableType */
1869 cltype31
= type_model__MNullableType
.color
;
1870 idtype32
= type_model__MNullableType
.id
;
1871 if(cltype31
>= var29
->type
->table_size
) {
1874 var30
= var29
->type
->type_table
[cltype31
] == idtype32
;
1879 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1880 var36
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1881 if (unlikely(var36
== NULL
)) {
1882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1883 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
1887 RET_LABEL35
:(void)0;
1893 var38
= "useless-null-test";
1895 var40
= string__NativeString__to_s_with_length(var38
, var39
);
1902 var43
= "Warning: expression is not null, since it is a `";
1904 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1913 var50
= string__NativeString__to_s_with_length(var48
, var49
);
1917 var51
= NEW_array__Array(&type_array__Arraykernel__Object
);
1918 { /* var51 = array_instance Array[Object] */
1920 var53
= NEW_array__NativeArray(var52
, &type_array__NativeArraykernel__Object
);
1921 ((struct instance_array__NativeArray
*)var53
)->values
[0] = (val
*) var42
;
1922 ((struct instance_array__NativeArray
*)var53
)->values
[1] = (val
*) var_mtype
;
1923 ((struct instance_array__NativeArray
*)var53
)->values
[2] = (val
*) var47
;
1925 ((void (*)(val
*, val
*, long))(var51
->class->vft
[COLOR_array__Array__with_native
]))(var51
, var53
, var52
) /* with_native on <var51:Array[Object]>*/;
1929 var54
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_string__Object__to_s
]))(var51
) /* to_s on <var51:Array[Object]>*/;
1932 modelbuilder__ModelBuilder__warning(var34
, var_anode
, var37
, var54
); /* Direct call modelbuilder#ModelBuilder#warning on <var34:ModelBuilder>*/
1940 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
1941 var57
= var_anode
->attrs
[COLOR_parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
1942 if (unlikely(var57
== NULL
)) {
1943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1944 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1466);
1948 RET_LABEL56
:(void)0;
1952 var58
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var55
) /* its_variable on <var55:AExpr>*/;
1954 var_variable
= var58
;
1956 if (var_variable
== NULL
) {
1957 var60
= 1; /* is null */
1959 var60
= 0; /* arg is null but recv is not */
1962 { /* Inline kernel#Object#== (var_variable,var59) on <var_variable:nullable Variable> */
1965 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
1966 var65
= var_variable
== var_other
;
1969 RET_LABEL64
:(void)0;
1974 RET_LABEL62
:(void)0;
1982 /* <var_anode:ABinopExpr> isa AEqExpr */
1983 cltype67
= type_parser_nodes__AEqExpr
.color
;
1984 idtype68
= type_parser_nodes__AEqExpr
.id
;
1985 if(cltype67
>= var_anode
->type
->table_size
) {
1988 var66
= var_anode
->type
->type_table
[cltype67
] == idtype68
;
1992 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(AEqExpr)> */
1993 var71
= var_anode
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(AEqExpr)> */
1995 RET_LABEL70
:(void)0;
1998 if (var69
== NULL
) {
1999 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2000 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 222);
2003 { /* Inline flow#FlowContext#when_true (var69) on <var69:nullable FlowContext> */
2004 if (unlikely(var69
== NULL
)) {
2005 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2006 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
2009 var74
= var69
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var69:nullable FlowContext> */
2010 if (unlikely(var74
== NULL
)) {
2011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2012 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
2016 RET_LABEL73
:(void)0;
2020 typing__FlowContext__set_var(var72
, var_variable
, var_mtype2
); /* Direct call typing#FlowContext#set_var on <var72:FlowContext>*/
2023 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(AEqExpr)> */
2024 var77
= var_anode
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(AEqExpr)> */
2026 RET_LABEL76
:(void)0;
2029 if (var75
== NULL
) {
2030 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2031 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 223);
2034 { /* Inline flow#FlowContext#when_false (var75) on <var75:nullable FlowContext> */
2035 if (unlikely(var75
== NULL
)) {
2036 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2037 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
2040 var80
= var75
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var75:nullable FlowContext> */
2041 if (unlikely(var80
== NULL
)) {
2042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2043 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
2047 RET_LABEL79
:(void)0;
2051 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:nullable MType(MNullableType)> */
2052 var83
= var_mtype
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:nullable MType(MNullableType)> */
2053 if (unlikely(var83
== NULL
)) {
2054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2055 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
2059 RET_LABEL82
:(void)0;
2063 typing__FlowContext__set_var(var78
, var_variable
, var81
); /* Direct call typing#FlowContext#set_var on <var78:FlowContext>*/
2066 /* <var_anode:ABinopExpr> isa ANeExpr */
2067 cltype85
= type_parser_nodes__ANeExpr
.color
;
2068 idtype86
= type_parser_nodes__ANeExpr
.id
;
2069 if(cltype85
>= var_anode
->type
->table_size
) {
2072 var84
= var_anode
->type
->type_table
[cltype85
] == idtype86
;
2076 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(ANeExpr)> */
2077 var89
= var_anode
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(ANeExpr)> */
2079 RET_LABEL88
:(void)0;
2082 if (var87
== NULL
) {
2083 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2084 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 225);
2087 { /* Inline flow#FlowContext#when_false (var87) on <var87:nullable FlowContext> */
2088 if (unlikely(var87
== NULL
)) {
2089 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2090 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
2093 var92
= var87
->attrs
[COLOR_flow__FlowContext___when_false
].val
; /* _when_false on <var87:nullable FlowContext> */
2094 if (unlikely(var92
== NULL
)) {
2095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2096 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 228);
2100 RET_LABEL91
:(void)0;
2104 typing__FlowContext__set_var(var90
, var_variable
, var_mtype2
); /* Direct call typing#FlowContext#set_var on <var90:FlowContext>*/
2107 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(ANeExpr)> */
2108 var95
= var_anode
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(ANeExpr)> */
2110 RET_LABEL94
:(void)0;
2113 if (var93
== NULL
) {
2114 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2115 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 226);
2118 { /* Inline flow#FlowContext#when_true (var93) on <var93:nullable FlowContext> */
2119 if (unlikely(var93
== NULL
)) {
2120 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2121 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
2124 var98
= var93
->attrs
[COLOR_flow__FlowContext___when_true
].val
; /* _when_true on <var93:nullable FlowContext> */
2125 if (unlikely(var98
== NULL
)) {
2126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2127 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 225);
2131 RET_LABEL97
:(void)0;
2135 { /* Inline model#MNullableType#mtype (var_mtype) on <var_mtype:nullable MType(MNullableType)> */
2136 var101
= var_mtype
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_mtype:nullable MType(MNullableType)> */
2137 if (unlikely(var101
== NULL
)) {
2138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2139 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
2143 RET_LABEL100
:(void)0;
2147 typing__FlowContext__set_var(var96
, var_variable
, var99
); /* Direct call typing#FlowContext#set_var on <var96:FlowContext>*/
2150 PRINT_ERROR("Runtime error: %s", "Aborted");
2151 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 228);
2157 /* method typing#TypeVisitor#null_test for (self: Object, ABinopExpr) */
2158 void VIRTUAL_typing__TypeVisitor__null_test(val
* self
, val
* p0
) {
2159 typing__TypeVisitor__null_test(self
, p0
); /* Direct call typing#TypeVisitor#null_test on <self:Object(TypeVisitor)>*/
2162 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: TypeVisitor, ANode, MType, String): nullable MProperty */
2163 val
* typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2164 val
* var
/* : nullable MProperty */;
2165 val
* var_anode
/* var anode: ANode */;
2166 val
* var_mtype
/* var mtype: MType */;
2167 val
* var_name
/* var name: String */;
2168 val
* var1
/* : ModelBuilder */;
2169 val
* var3
/* : ModelBuilder */;
2170 val
* var4
/* : MModule */;
2171 val
* var6
/* : MModule */;
2172 val
* var7
/* : nullable MProperty */;
2177 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2178 var3
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2179 if (unlikely(var3
== NULL
)) {
2180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2181 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
2189 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2190 var6
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2191 if (unlikely(var6
== NULL
)) {
2192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2193 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
2201 var7
= modelbuilder__ModelBuilder__try_get_mproperty_by_name2(var1
, var_anode
, var4
, var_mtype
, var_name
);
2208 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: Object, ANode, MType, String): nullable MProperty */
2209 val
* VIRTUAL_typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2210 val
* var
/* : nullable MProperty */;
2211 val
* var1
/* : nullable MProperty */;
2212 var1
= typing__TypeVisitor__try_get_mproperty_by_name2(self
, p0
, p1
, p2
);
2217 /* method typing#TypeVisitor#resolve_mtype for (self: TypeVisitor, AType): nullable MType */
2218 val
* typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
2219 val
* var
/* : nullable MType */;
2220 val
* var_node
/* var node: AType */;
2221 val
* var1
/* : ModelBuilder */;
2222 val
* var3
/* : ModelBuilder */;
2223 val
* var4
/* : MModule */;
2224 val
* var6
/* : MModule */;
2225 val
* var7
/* : nullable MClassDef */;
2226 val
* var9
/* : nullable MClassDef */;
2227 val
* var10
/* : nullable MType */;
2230 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2231 var3
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2232 if (unlikely(var3
== NULL
)) {
2233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2234 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
2242 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2243 var6
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2244 if (unlikely(var6
== NULL
)) {
2245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2246 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
2254 { /* Inline typing#TypeVisitor#mclassdef (self) on <self:TypeVisitor> */
2255 var9
= self
->attrs
[COLOR_typing__TypeVisitor___mclassdef
].val
; /* _mclassdef on <self:TypeVisitor> */
2261 var10
= modelize_class__ModelBuilder__resolve_mtype(var1
, var4
, var7
, var_node
);
2268 /* method typing#TypeVisitor#resolve_mtype for (self: Object, AType): nullable MType */
2269 val
* VIRTUAL_typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
2270 val
* var
/* : nullable MType */;
2271 val
* var1
/* : nullable MType */;
2272 var1
= typing__TypeVisitor__resolve_mtype(self
, p0
);
2277 /* method typing#TypeVisitor#try_get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
2278 val
* typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
2279 val
* var
/* : nullable MClass */;
2280 val
* var_node
/* var node: ANode */;
2281 val
* var_name
/* var name: String */;
2282 val
* var1
/* : ModelBuilder */;
2283 val
* var3
/* : ModelBuilder */;
2284 val
* var4
/* : MModule */;
2285 val
* var6
/* : MModule */;
2286 val
* var7
/* : nullable MClass */;
2287 val
* var_mclass
/* var mclass: nullable MClass */;
2291 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2292 var3
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2293 if (unlikely(var3
== NULL
)) {
2294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2295 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
2303 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2304 var6
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2305 if (unlikely(var6
== NULL
)) {
2306 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2307 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
2315 var7
= modelbuilder__ModelBuilder__try_get_mclass_by_name(var1
, var_node
, var4
, var_name
);
2323 /* method typing#TypeVisitor#try_get_mclass for (self: Object, ANode, String): nullable MClass */
2324 val
* VIRTUAL_typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
2325 val
* var
/* : nullable MClass */;
2326 val
* var1
/* : nullable MClass */;
2327 var1
= typing__TypeVisitor__try_get_mclass(self
, p0
, p1
);
2332 /* method typing#TypeVisitor#get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
2333 val
* typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
2334 val
* var
/* : nullable MClass */;
2335 val
* var_node
/* var node: ANode */;
2336 val
* var_name
/* var name: String */;
2337 val
* var1
/* : ModelBuilder */;
2338 val
* var3
/* : ModelBuilder */;
2339 val
* var4
/* : MModule */;
2340 val
* var6
/* : MModule */;
2341 val
* var7
/* : nullable MClass */;
2342 val
* var_mclass
/* var mclass: nullable MClass */;
2343 val
* var8
/* : null */;
2344 short int var9
/* : Bool */;
2345 short int var10
/* : Bool */;
2346 val
* var_other
/* var other: nullable Object */;
2347 short int var12
/* : Bool */;
2348 short int var14
/* : Bool */;
2349 val
* var15
/* : ModelBuilder */;
2350 val
* var17
/* : ModelBuilder */;
2351 static val
* varonce
;
2352 val
* var18
/* : String */;
2353 char* var19
/* : NativeString */;
2354 long var20
/* : Int */;
2355 val
* var21
/* : FlatString */;
2356 static val
* varonce22
;
2357 val
* var23
/* : String */;
2358 char* var24
/* : NativeString */;
2359 long var25
/* : Int */;
2360 val
* var26
/* : FlatString */;
2361 val
* var27
/* : Array[Object] */;
2362 long var28
/* : Int */;
2363 val
* var29
/* : NativeArray[Object] */;
2364 val
* var30
/* : String */;
2368 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2369 var3
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2370 if (unlikely(var3
== NULL
)) {
2371 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2372 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
2380 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2381 var6
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2382 if (unlikely(var6
== NULL
)) {
2383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2384 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
2392 var7
= modelbuilder__ModelBuilder__try_get_mclass_by_name(var1
, var_node
, var4
, var_name
);
2396 if (var_mclass
== NULL
) {
2397 var9
= 1; /* is null */
2399 var9
= 0; /* arg is null but recv is not */
2402 { /* Inline kernel#Object#== (var_mclass,var8) on <var_mclass:nullable MClass> */
2405 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2406 var14
= var_mclass
== var_other
;
2409 RET_LABEL13
:(void)0;
2414 RET_LABEL11
:(void)0;
2420 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2421 var17
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2422 if (unlikely(var17
== NULL
)) {
2423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2424 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
2428 RET_LABEL16
:(void)0;
2434 var19
= "Type Error: missing primitive class `";
2436 var21
= string__NativeString__to_s_with_length(var19
, var20
);
2445 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2449 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
2450 { /* var27 = array_instance Array[Object] */
2452 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
2453 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var18
;
2454 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var_name
;
2455 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var23
;
2457 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
2461 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
2464 modelbuilder__ModelBuilder__error(var15
, var_node
, var30
); /* Direct call modelbuilder#ModelBuilder#error on <var15:ModelBuilder>*/
2473 /* method typing#TypeVisitor#get_mclass for (self: Object, ANode, String): nullable MClass */
2474 val
* VIRTUAL_typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
2475 val
* var
/* : nullable MClass */;
2476 val
* var1
/* : nullable MClass */;
2477 var1
= typing__TypeVisitor__get_mclass(self
, p0
, p1
);
2482 /* method typing#TypeVisitor#type_bool for (self: TypeVisitor, ANode): nullable MType */
2483 val
* typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
2484 val
* var
/* : nullable MType */;
2485 val
* var_node
/* var node: ANode */;
2486 static val
* varonce
;
2487 val
* var1
/* : String */;
2488 char* var2
/* : NativeString */;
2489 long var3
/* : Int */;
2490 val
* var4
/* : FlatString */;
2491 val
* var5
/* : nullable MClass */;
2492 val
* var_mclass
/* var mclass: nullable MClass */;
2493 val
* var6
/* : null */;
2494 short int var7
/* : Bool */;
2495 short int var8
/* : Bool */;
2496 val
* var_other
/* var other: nullable Object */;
2497 short int var10
/* : Bool */;
2498 short int var12
/* : Bool */;
2499 val
* var13
/* : null */;
2500 val
* var14
/* : MClassType */;
2501 val
* var16
/* : MClassType */;
2508 var4
= string__NativeString__to_s_with_length(var2
, var3
);
2513 var5
= typing__TypeVisitor__get_mclass(self
, var_node
, var1
);
2517 if (var_mclass
== NULL
) {
2518 var7
= 1; /* is null */
2520 var7
= 0; /* arg is null but recv is not */
2523 { /* Inline kernel#Object#== (var_mclass,var6) on <var_mclass:nullable MClass> */
2526 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2527 var12
= var_mclass
== var_other
;
2530 RET_LABEL11
:(void)0;
2546 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2547 var16
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2548 if (unlikely(var16
== NULL
)) {
2549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2550 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
2554 RET_LABEL15
:(void)0;
2562 /* method typing#TypeVisitor#type_bool for (self: Object, ANode): nullable MType */
2563 val
* VIRTUAL_typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
2564 val
* var
/* : nullable MType */;
2565 val
* var1
/* : nullable MType */;
2566 var1
= typing__TypeVisitor__type_bool(self
, p0
);
2571 /* method typing#TypeVisitor#get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
2572 val
* typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
2573 val
* var
/* : nullable CallSite */;
2574 val
* var_node
/* var node: ANode */;
2575 val
* var_recvtype
/* var recvtype: MType */;
2576 val
* var_name
/* var name: String */;
2577 short int var_recv_is_self
/* var recv_is_self: Bool */;
2578 val
* var1
/* : MType */;
2579 val
* var_unsafe_type
/* var unsafe_type: MType */;
2580 short int var2
/* : Bool */;
2583 static val
* varonce
;
2584 val
* var3
/* : String */;
2585 char* var4
/* : NativeString */;
2586 long var5
/* : Int */;
2587 val
* var6
/* : FlatString */;
2588 static val
* varonce7
;
2589 val
* var8
/* : String */;
2590 char* var9
/* : NativeString */;
2591 long var10
/* : Int */;
2592 val
* var11
/* : FlatString */;
2593 val
* var12
/* : Array[Object] */;
2594 long var13
/* : Int */;
2595 val
* var14
/* : NativeArray[Object] */;
2596 val
* var15
/* : String */;
2597 val
* var16
/* : null */;
2598 val
* var17
/* : nullable MProperty */;
2599 val
* var_mproperty
/* var mproperty: nullable MProperty */;
2600 short int var18
/* : Bool */;
2601 static val
* varonce19
;
2602 val
* var20
/* : String */;
2603 char* var21
/* : NativeString */;
2604 long var22
/* : Int */;
2605 val
* var23
/* : FlatString */;
2606 short int var24
/* : Bool */;
2607 short int var25
/* : Bool */;
2608 short int var_
/* var : Bool */;
2609 val
* var26
/* : null */;
2610 short int var27
/* : Bool */;
2611 short int var28
/* : Bool */;
2612 val
* var_other
/* var other: nullable Object */;
2613 short int var30
/* : Bool */;
2614 short int var32
/* : Bool */;
2615 static val
* varonce33
;
2616 val
* var34
/* : String */;
2617 char* var35
/* : NativeString */;
2618 long var36
/* : Int */;
2619 val
* var37
/* : FlatString */;
2620 val
* var38
/* : nullable MProperty */;
2621 val
* var39
/* : null */;
2622 short int var40
/* : Bool */;
2623 short int var41
/* : Bool */;
2624 short int var43
/* : Bool */;
2625 short int var45
/* : Bool */;
2626 val
* var46
/* : ModelBuilder */;
2627 val
* var48
/* : ModelBuilder */;
2628 static val
* varonce49
;
2629 val
* var50
/* : String */;
2630 char* var51
/* : NativeString */;
2631 long var52
/* : Int */;
2632 val
* var53
/* : FlatString */;
2633 static val
* varonce54
;
2634 val
* var55
/* : String */;
2635 char* var56
/* : NativeString */;
2636 long var57
/* : Int */;
2637 val
* var58
/* : FlatString */;
2638 static val
* varonce59
;
2639 val
* var60
/* : String */;
2640 char* var61
/* : NativeString */;
2641 long var62
/* : Int */;
2642 val
* var63
/* : FlatString */;
2643 val
* var64
/* : Array[Object] */;
2644 long var65
/* : Int */;
2645 val
* var66
/* : NativeArray[Object] */;
2646 val
* var67
/* : String */;
2647 val
* var68
/* : ModelBuilder */;
2648 val
* var70
/* : ModelBuilder */;
2649 static val
* varonce71
;
2650 val
* var72
/* : String */;
2651 char* var73
/* : NativeString */;
2652 long var74
/* : Int */;
2653 val
* var75
/* : FlatString */;
2654 static val
* varonce76
;
2655 val
* var77
/* : String */;
2656 char* var78
/* : NativeString */;
2657 long var79
/* : Int */;
2658 val
* var80
/* : FlatString */;
2659 static val
* varonce81
;
2660 val
* var82
/* : String */;
2661 char* var83
/* : NativeString */;
2662 long var84
/* : Int */;
2663 val
* var85
/* : FlatString */;
2664 val
* var86
/* : Array[Object] */;
2665 long var87
/* : Int */;
2666 val
* var88
/* : NativeArray[Object] */;
2667 val
* var89
/* : String */;
2668 val
* var90
/* : null */;
2669 short int var91
/* : Bool */;
2672 short int var94
/* : Bool */;
2673 short int var95
/* : Bool */;
2674 short int var96
/* : Bool */;
2675 short int var98
/* : Bool */;
2676 short int var_99
/* var : Bool */;
2677 short int var_100
/* var : Bool */;
2678 short int var101
/* : Bool */;
2679 short int var103
/* : Bool */;
2680 short int var104
/* : Bool */;
2681 static val
* varonce105
;
2682 val
* var106
/* : String */;
2683 char* var107
/* : NativeString */;
2684 long var108
/* : Int */;
2685 val
* var109
/* : FlatString */;
2686 static val
* varonce110
;
2687 val
* var111
/* : String */;
2688 char* var112
/* : NativeString */;
2689 long var113
/* : Int */;
2690 val
* var114
/* : FlatString */;
2691 val
* var115
/* : Array[Object] */;
2692 long var116
/* : Int */;
2693 val
* var117
/* : NativeArray[Object] */;
2694 val
* var118
/* : String */;
2695 short int var119
/* : Bool */;
2696 short int var120
/* : Bool */;
2697 short int var_121
/* var : Bool */;
2698 short int var122
/* : Bool */;
2699 short int var124
/* : Bool */;
2700 static val
* varonce125
;
2701 val
* var126
/* : String */;
2702 char* var127
/* : NativeString */;
2703 long var128
/* : Int */;
2704 val
* var129
/* : FlatString */;
2705 static val
* varonce130
;
2706 val
* var131
/* : String */;
2707 char* var132
/* : NativeString */;
2708 long var133
/* : Int */;
2709 val
* var134
/* : FlatString */;
2710 val
* var135
/* : Array[Object] */;
2711 long var136
/* : Int */;
2712 val
* var137
/* : NativeArray[Object] */;
2713 val
* var138
/* : String */;
2714 short int var139
/* : Bool */;
2715 short int var140
/* : Bool */;
2716 short int var141
/* : Bool */;
2717 val
* var142
/* : MVisibility */;
2718 val
* var144
/* : MVisibility */;
2719 val
* var145
/* : MVisibility */;
2720 short int var146
/* : Bool */;
2721 short int var147
/* : Bool */;
2722 short int var149
/* : Bool */;
2723 short int var151
/* : Bool */;
2724 short int var_152
/* var : Bool */;
2725 short int var153
/* : Bool */;
2726 short int var_154
/* var : Bool */;
2727 val
* var155
/* : MModule */;
2728 val
* var157
/* : MModule */;
2729 val
* var158
/* : MClassDef */;
2730 val
* var160
/* : MClassDef */;
2731 val
* var161
/* : MModule */;
2732 val
* var163
/* : MModule */;
2733 val
* var164
/* : MVisibility */;
2734 val
* var165
/* : MVisibility */;
2735 short int var166
/* : Bool */;
2736 short int var_167
/* var : Bool */;
2737 val
* var168
/* : ModelBuilder */;
2738 val
* var170
/* : ModelBuilder */;
2739 val
* var171
/* : ToolContext */;
2740 val
* var173
/* : ToolContext */;
2741 val
* var174
/* : OptionBool */;
2742 val
* var176
/* : OptionBool */;
2743 val
* var177
/* : nullable Object */;
2744 val
* var179
/* : nullable Object */;
2745 short int var180
/* : Bool */;
2746 short int var181
/* : Bool */;
2747 val
* var182
/* : ModelBuilder */;
2748 val
* var184
/* : ModelBuilder */;
2749 static val
* varonce185
;
2750 val
* var186
/* : String */;
2751 char* var187
/* : NativeString */;
2752 long var188
/* : Int */;
2753 val
* var189
/* : FlatString */;
2754 static val
* varonce190
;
2755 val
* var191
/* : String */;
2756 char* var192
/* : NativeString */;
2757 long var193
/* : Int */;
2758 val
* var194
/* : FlatString */;
2759 val
* var195
/* : Array[Object] */;
2760 long var196
/* : Int */;
2761 val
* var197
/* : NativeArray[Object] */;
2762 val
* var198
/* : String */;
2763 val
* var199
/* : null */;
2764 val
* var200
/* : nullable MDeprecationInfo */;
2765 val
* var202
/* : nullable MDeprecationInfo */;
2766 val
* var_info
/* var info: nullable MDeprecationInfo */;
2767 short int var203
/* : Bool */;
2768 val
* var204
/* : null */;
2769 short int var205
/* : Bool */;
2770 short int var206
/* : Bool */;
2771 val
* var_other208
/* var other: nullable Object */;
2772 short int var209
/* : Bool */;
2773 short int var210
/* : Bool */;
2774 short int var211
/* : Bool */;
2775 short int var_212
/* var : Bool */;
2776 val
* var213
/* : nullable MPropDef */;
2777 val
* var215
/* : nullable MPropDef */;
2778 val
* var216
/* : MProperty */;
2779 val
* var218
/* : MProperty */;
2780 val
* var219
/* : nullable MDeprecationInfo */;
2781 val
* var221
/* : nullable MDeprecationInfo */;
2782 val
* var222
/* : null */;
2783 short int var223
/* : Bool */;
2784 short int var224
/* : Bool */;
2785 short int var226
/* : Bool */;
2786 short int var228
/* : Bool */;
2787 val
* var229
/* : nullable MDoc */;
2788 val
* var231
/* : nullable MDoc */;
2789 val
* var_mdoc
/* var mdoc: nullable MDoc */;
2790 val
* var232
/* : null */;
2791 short int var233
/* : Bool */;
2792 short int var234
/* : Bool */;
2793 short int var236
/* : Bool */;
2794 short int var237
/* : Bool */;
2795 short int var238
/* : Bool */;
2796 val
* var239
/* : ModelBuilder */;
2797 val
* var241
/* : ModelBuilder */;
2798 static val
* varonce242
;
2799 val
* var243
/* : String */;
2800 char* var244
/* : NativeString */;
2801 long var245
/* : Int */;
2802 val
* var246
/* : FlatString */;
2803 static val
* varonce247
;
2804 val
* var248
/* : String */;
2805 char* var249
/* : NativeString */;
2806 long var250
/* : Int */;
2807 val
* var251
/* : FlatString */;
2808 static val
* varonce252
;
2809 val
* var253
/* : String */;
2810 char* var254
/* : NativeString */;
2811 long var255
/* : Int */;
2812 val
* var256
/* : FlatString */;
2813 val
* var257
/* : Array[String] */;
2814 val
* var259
/* : Array[String] */;
2815 val
* var260
/* : nullable Object */;
2816 val
* var261
/* : Array[Object] */;
2817 long var262
/* : Int */;
2818 val
* var263
/* : NativeArray[Object] */;
2819 val
* var264
/* : String */;
2820 val
* var265
/* : ModelBuilder */;
2821 val
* var267
/* : ModelBuilder */;
2822 static val
* varonce268
;
2823 val
* var269
/* : String */;
2824 char* var270
/* : NativeString */;
2825 long var271
/* : Int */;
2826 val
* var272
/* : FlatString */;
2827 static val
* varonce273
;
2828 val
* var274
/* : String */;
2829 char* var275
/* : NativeString */;
2830 long var276
/* : Int */;
2831 val
* var277
/* : FlatString */;
2832 static val
* varonce278
;
2833 val
* var279
/* : String */;
2834 char* var280
/* : NativeString */;
2835 long var281
/* : Int */;
2836 val
* var282
/* : FlatString */;
2837 val
* var283
/* : Array[Object] */;
2838 long var284
/* : Int */;
2839 val
* var285
/* : NativeArray[Object] */;
2840 val
* var286
/* : String */;
2841 val
* var287
/* : MModule */;
2842 val
* var289
/* : MModule */;
2843 val
* var290
/* : Array[MPropDef] */;
2844 val
* var_propdefs
/* var propdefs: Array[MMethodDef] */;
2845 long var291
/* : Int */;
2846 long var293
/* : Int */;
2847 long var294
/* : Int */;
2848 short int var295
/* : Bool */;
2849 short int var296
/* : Bool */;
2850 short int var298
/* : Bool */;
2851 val
* var299
/* : ModelBuilder */;
2852 val
* var301
/* : ModelBuilder */;
2853 static val
* varonce302
;
2854 val
* var303
/* : String */;
2855 char* var304
/* : NativeString */;
2856 long var305
/* : Int */;
2857 val
* var306
/* : FlatString */;
2858 static val
* varonce307
;
2859 val
* var308
/* : String */;
2860 char* var309
/* : NativeString */;
2861 long var310
/* : Int */;
2862 val
* var311
/* : FlatString */;
2863 val
* var312
/* : Array[Object] */;
2864 long var313
/* : Int */;
2865 val
* var314
/* : NativeArray[Object] */;
2866 val
* var315
/* : String */;
2867 val
* var316
/* : null */;
2868 long var317
/* : Int */;
2869 long var319
/* : Int */;
2870 long var320
/* : Int */;
2871 short int var321
/* : Bool */;
2872 short int var322
/* : Bool */;
2873 short int var324
/* : Bool */;
2874 val
* var325
/* : nullable Object */;
2875 val
* var_mpropdef
/* var mpropdef: nullable Object */;
2876 val
* var326
/* : ModelBuilder */;
2877 val
* var328
/* : ModelBuilder */;
2878 static val
* varonce329
;
2879 val
* var330
/* : String */;
2880 char* var331
/* : NativeString */;
2881 long var332
/* : Int */;
2882 val
* var333
/* : FlatString */;
2883 static val
* varonce334
;
2884 val
* var335
/* : String */;
2885 char* var336
/* : NativeString */;
2886 long var337
/* : Int */;
2887 val
* var338
/* : FlatString */;
2888 static val
* varonce339
;
2889 val
* var340
/* : String */;
2890 char* var341
/* : NativeString */;
2891 long var342
/* : Int */;
2892 val
* var343
/* : FlatString */;
2893 static val
* varonce344
;
2894 val
* var345
/* : String */;
2895 char* var346
/* : NativeString */;
2896 long var347
/* : Int */;
2897 val
* var348
/* : FlatString */;
2898 static val
* varonce349
;
2899 val
* var350
/* : String */;
2900 char* var351
/* : NativeString */;
2901 long var352
/* : Int */;
2902 val
* var353
/* : FlatString */;
2903 val
* var354
/* : String */;
2904 val
* var355
/* : Array[Object] */;
2905 long var356
/* : Int */;
2906 val
* var357
/* : NativeArray[Object] */;
2907 val
* var358
/* : String */;
2908 val
* var359
/* : MPropDef */;
2909 val
* var361
/* : MPropDef */;
2910 val
* var362
/* : MSignature */;
2911 val
* var363
/* : nullable MSignature */;
2912 val
* var365
/* : nullable MSignature */;
2913 val
* var366
/* : nullable MSignature */;
2914 val
* var368
/* : nullable MSignature */;
2915 val
* var_msignature
/* var msignature: MSignature */;
2916 val
* var369
/* : MType */;
2917 short int var370
/* : Bool */;
2920 const char* var_class_name
;
2921 short int var373
/* : Bool */;
2922 short int var_erasure_cast
/* var erasure_cast: Bool */;
2923 val
* var374
/* : nullable MSignature */;
2924 val
* var376
/* : nullable MSignature */;
2925 val
* var377
/* : nullable MType */;
2926 val
* var379
/* : nullable MType */;
2927 val
* var_rettype
/* var rettype: nullable MType */;
2928 short int var380
/* : Bool */;
2929 short int var381
/* : Bool */;
2930 short int var_382
/* var : Bool */;
2931 val
* var383
/* : null */;
2932 short int var384
/* : Bool */;
2933 short int var385
/* : Bool */;
2934 short int var387
/* : Bool */;
2935 short int var388
/* : Bool */;
2936 short int var389
/* : Bool */;
2937 val
* var390
/* : MType */;
2938 short int var391
/* : Bool */;
2941 val
* var394
/* : nullable MType */;
2942 val
* var396
/* : nullable MType */;
2943 val
* var_erased_rettype
/* var erased_rettype: nullable MType */;
2944 val
* var397
/* : null */;
2945 short int var398
/* : Bool */;
2946 short int var399
/* : Bool */;
2947 short int var401
/* : Bool */;
2948 short int var402
/* : Bool */;
2949 short int var403
/* : Bool */;
2950 short int var404
/* : Bool */;
2951 val
* var405
/* : CallSite */;
2952 val
* var406
/* : MModule */;
2953 val
* var408
/* : MModule */;
2954 val
* var409
/* : nullable MClassType */;
2955 val
* var411
/* : nullable MClassType */;
2956 val
* var_callsite
/* var callsite: CallSite */;
2960 var_recv_is_self
= p3
;
2962 var1
= typing__TypeVisitor__anchor_to(self
, var_recvtype
);
2964 var_unsafe_type
= var1
;
2965 /* <var_recvtype:MType> isa MNullType */
2966 cltype
= type_model__MNullType
.color
;
2967 idtype
= type_model__MNullType
.id
;
2968 if(cltype
>= var_recvtype
->type
->table_size
) {
2971 var2
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
2977 var4
= "Error: Method \'";
2979 var6
= string__NativeString__to_s_with_length(var4
, var5
);
2986 var9
= "\' call on \'null\'.";
2988 var11
= string__NativeString__to_s_with_length(var9
, var10
);
2992 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
2993 { /* var12 = array_instance Array[Object] */
2995 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
2996 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var3
;
2997 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var_name
;
2998 ((struct instance_array__NativeArray
*)var14
)->values
[2] = (val
*) var8
;
3000 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
3004 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
3007 typing__TypeVisitor__error(self
, var_node
, var15
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3015 var17
= typing__TypeVisitor__try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
3017 var_mproperty
= var17
;
3023 var23
= string__NativeString__to_s_with_length(var21
, var22
);
3028 var25
= string__FlatString___61d_61d(var_name
, var20
);
3034 if (var_mproperty
== NULL
) {
3035 var27
= 1; /* is null */
3037 var27
= 0; /* arg is null but recv is not */
3040 { /* Inline kernel#Object#== (var_mproperty,var26) on <var_mproperty:nullable MProperty> */
3043 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
3044 var32
= var_mproperty
== var_other
;
3047 RET_LABEL31
:(void)0;
3052 RET_LABEL29
:(void)0;
3066 var37
= string__NativeString__to_s_with_length(var35
, var36
);
3072 var38
= typing__TypeVisitor__try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
3074 var_mproperty
= var38
;
3078 if (var_mproperty
== NULL
) {
3079 var40
= 1; /* is null */
3081 var40
= 0; /* arg is null but recv is not */
3084 { /* Inline kernel#Object#== (var_mproperty,var39) on <var_mproperty:nullable MProperty> */
3087 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
3088 var45
= var_mproperty
== var_other
;
3091 RET_LABEL44
:(void)0;
3096 RET_LABEL42
:(void)0;
3101 if (var_recv_is_self
){
3103 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3104 var48
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3105 if (unlikely(var48
== NULL
)) {
3106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3107 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
3111 RET_LABEL47
:(void)0;
3117 var51
= "Error: Method or variable \'";
3119 var53
= string__NativeString__to_s_with_length(var51
, var52
);
3126 var56
= "\' unknown in ";
3128 var58
= string__NativeString__to_s_with_length(var56
, var57
);
3137 var63
= string__NativeString__to_s_with_length(var61
, var62
);
3141 var64
= NEW_array__Array(&type_array__Arraykernel__Object
);
3142 { /* var64 = array_instance Array[Object] */
3144 var66
= NEW_array__NativeArray(var65
, &type_array__NativeArraykernel__Object
);
3145 ((struct instance_array__NativeArray
*)var66
)->values
[0] = (val
*) var50
;
3146 ((struct instance_array__NativeArray
*)var66
)->values
[1] = (val
*) var_name
;
3147 ((struct instance_array__NativeArray
*)var66
)->values
[2] = (val
*) var55
;
3148 ((struct instance_array__NativeArray
*)var66
)->values
[3] = (val
*) var_recvtype
;
3149 ((struct instance_array__NativeArray
*)var66
)->values
[4] = (val
*) var60
;
3151 ((void (*)(val
*, val
*, long))(var64
->class->vft
[COLOR_array__Array__with_native
]))(var64
, var66
, var65
) /* with_native on <var64:Array[Object]>*/;
3155 var67
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_string__Object__to_s
]))(var64
) /* to_s on <var64:Array[Object]>*/;
3158 modelbuilder__ModelBuilder__error(var46
, var_node
, var67
); /* Direct call modelbuilder#ModelBuilder#error on <var46:ModelBuilder>*/
3162 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3163 var70
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3164 if (unlikely(var70
== NULL
)) {
3165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3166 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
3170 RET_LABEL69
:(void)0;
3176 var73
= "Error: Method \'";
3178 var75
= string__NativeString__to_s_with_length(var73
, var74
);
3185 var78
= "\' doesn\'t exists in ";
3187 var80
= string__NativeString__to_s_with_length(var78
, var79
);
3196 var85
= string__NativeString__to_s_with_length(var83
, var84
);
3200 var86
= NEW_array__Array(&type_array__Arraykernel__Object
);
3201 { /* var86 = array_instance Array[Object] */
3203 var88
= NEW_array__NativeArray(var87
, &type_array__NativeArraykernel__Object
);
3204 ((struct instance_array__NativeArray
*)var88
)->values
[0] = (val
*) var72
;
3205 ((struct instance_array__NativeArray
*)var88
)->values
[1] = (val
*) var_name
;
3206 ((struct instance_array__NativeArray
*)var88
)->values
[2] = (val
*) var77
;
3207 ((struct instance_array__NativeArray
*)var88
)->values
[3] = (val
*) var_recvtype
;
3208 ((struct instance_array__NativeArray
*)var88
)->values
[4] = (val
*) var82
;
3210 ((void (*)(val
*, val
*, long))(var86
->class->vft
[COLOR_array__Array__with_native
]))(var86
, var88
, var87
) /* with_native on <var86:Array[Object]>*/;
3214 var89
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_string__Object__to_s
]))(var86
) /* to_s on <var86:Array[Object]>*/;
3217 modelbuilder__ModelBuilder__error(var68
, var_node
, var89
); /* Direct call modelbuilder#ModelBuilder#error on <var68:ModelBuilder>*/
3225 /* <var_mproperty:nullable MProperty(MProperty)> isa MMethod */
3226 cltype92
= type_model__MMethod
.color
;
3227 idtype93
= type_model__MMethod
.id
;
3228 if(cltype92
>= var_mproperty
->type
->table_size
) {
3231 var91
= var_mproperty
->type
->type_table
[cltype92
] == idtype93
;
3233 if (unlikely(!var91
)) {
3234 PRINT_ERROR("Runtime error: %s", "Assert failed");
3235 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 290);
3239 { /* Inline typing#TypeVisitor#is_toplevel_context (self) on <self:TypeVisitor> */
3240 var98
= self
->attrs
[COLOR_typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <self:TypeVisitor> */
3242 RET_LABEL97
:(void)0;
3247 var95
= var_recv_is_self
;
3254 { /* Inline model#MMethod#is_toplevel (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3255 var103
= var_mproperty
->attrs
[COLOR_model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mproperty:nullable MProperty(MMethod)> */
3257 RET_LABEL102
:(void)0;
3267 var106
= varonce105
;
3269 var107
= "Error: \'";
3271 var109
= string__NativeString__to_s_with_length(var107
, var108
);
3273 varonce105
= var106
;
3276 var111
= varonce110
;
3278 var112
= "\' is not a top-level method, thus need a receiver.";
3280 var114
= string__NativeString__to_s_with_length(var112
, var113
);
3282 varonce110
= var111
;
3284 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
3285 { /* var115 = array_instance Array[Object] */
3287 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
3288 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var106
;
3289 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var_name
;
3290 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var111
;
3292 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
3296 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
3299 typing__TypeVisitor__error(self
, var_node
, var118
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3303 var120
= !var_recv_is_self
;
3307 { /* Inline model#MMethod#is_toplevel (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3308 var124
= var_mproperty
->attrs
[COLOR_model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mproperty:nullable MProperty(MMethod)> */
3310 RET_LABEL123
:(void)0;
3319 var126
= varonce125
;
3321 var127
= "Error: cannot call \'";
3323 var129
= string__NativeString__to_s_with_length(var127
, var128
);
3325 varonce125
= var126
;
3328 var131
= varonce130
;
3330 var132
= "\', a top-level method, with a receiver.";
3332 var134
= string__NativeString__to_s_with_length(var132
, var133
);
3334 varonce130
= var131
;
3336 var135
= NEW_array__Array(&type_array__Arraykernel__Object
);
3337 { /* var135 = array_instance Array[Object] */
3339 var137
= NEW_array__NativeArray(var136
, &type_array__NativeArraykernel__Object
);
3340 ((struct instance_array__NativeArray
*)var137
)->values
[0] = (val
*) var126
;
3341 ((struct instance_array__NativeArray
*)var137
)->values
[1] = (val
*) var_name
;
3342 ((struct instance_array__NativeArray
*)var137
)->values
[2] = (val
*) var131
;
3344 ((void (*)(val
*, val
*, long))(var135
->class->vft
[COLOR_array__Array__with_native
]))(var135
, var137
, var136
) /* with_native on <var135:Array[Object]>*/;
3348 var138
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_string__Object__to_s
]))(var135
) /* to_s on <var135:Array[Object]>*/;
3351 typing__TypeVisitor__error(self
, var_node
, var138
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3356 { /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3357 var144
= var_mproperty
->attrs
[COLOR_model__MProperty___visibility
].val
; /* _visibility on <var_mproperty:nullable MProperty(MMethod)> */
3358 if (unlikely(var144
== NULL
)) {
3359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
3360 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1630);
3364 RET_LABEL143
:(void)0;
3368 var145
= model_base__Object__protected_visibility(self
);
3371 { /* Inline kernel#Object#== (var142,var145) on <var142:MVisibility> */
3374 { /* Inline kernel#Object#is_same_instance (var142,var_other) on <var142:MVisibility> */
3375 var151
= var142
== var_other
;
3378 RET_LABEL150
:(void)0;
3383 RET_LABEL148
:(void)0;
3389 var153
= !var_recv_is_self
;
3397 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3398 var157
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3399 if (unlikely(var157
== NULL
)) {
3400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3401 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
3405 RET_LABEL156
:(void)0;
3409 { /* Inline model#MProperty#intro_mclassdef (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3410 var160
= var_mproperty
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)> */
3411 if (unlikely(var160
== NULL
)) {
3412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
3413 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
3417 RET_LABEL159
:(void)0;
3421 { /* Inline model#MClassDef#mmodule (var158) on <var158:MClassDef> */
3422 var163
= var158
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var158:MClassDef> */
3423 if (unlikely(var163
== NULL
)) {
3424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3425 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
3429 RET_LABEL162
:(void)0;
3433 var164
= mmodule__MModule__visibility_for(var155
, var161
);
3436 var165
= model_base__Object__intrude_visibility(self
);
3439 var166
= model_base__MVisibility___60d(var164
, var165
);
3448 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3449 var170
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3450 if (unlikely(var170
== NULL
)) {
3451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3452 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
3456 RET_LABEL169
:(void)0;
3460 { /* Inline modelbuilder#ModelBuilder#toolcontext (var168) on <var168:ModelBuilder> */
3461 var173
= var168
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var168:ModelBuilder> */
3462 if (unlikely(var173
== NULL
)) {
3463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3464 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
3468 RET_LABEL172
:(void)0;
3472 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (var171) on <var171:ToolContext> */
3473 var176
= var171
->attrs
[COLOR_modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <var171:ToolContext> */
3474 if (unlikely(var176
== NULL
)) {
3475 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
3476 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 42);
3480 RET_LABEL175
:(void)0;
3484 { /* Inline opts#Option#value (var174) on <var174:OptionBool> */
3485 var179
= var174
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var174:OptionBool> */
3487 RET_LABEL178
:(void)0;
3490 var180
= ((struct instance_kernel__Bool
*)var177
)->value
; /* autounbox from nullable Object to Bool */;
3498 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3499 var184
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3500 if (unlikely(var184
== NULL
)) {
3501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3502 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
3506 RET_LABEL183
:(void)0;
3510 var186
= varonce185
;
3512 var187
= "Error: Method \'";
3514 var189
= string__NativeString__to_s_with_length(var187
, var188
);
3516 varonce185
= var186
;
3519 var191
= varonce190
;
3521 var192
= "\' is protected and can only acceded by self.";
3523 var194
= string__NativeString__to_s_with_length(var192
, var193
);
3525 varonce190
= var191
;
3527 var195
= NEW_array__Array(&type_array__Arraykernel__Object
);
3528 { /* var195 = array_instance Array[Object] */
3530 var197
= NEW_array__NativeArray(var196
, &type_array__NativeArraykernel__Object
);
3531 ((struct instance_array__NativeArray
*)var197
)->values
[0] = (val
*) var186
;
3532 ((struct instance_array__NativeArray
*)var197
)->values
[1] = (val
*) var_name
;
3533 ((struct instance_array__NativeArray
*)var197
)->values
[2] = (val
*) var191
;
3535 ((void (*)(val
*, val
*, long))(var195
->class->vft
[COLOR_array__Array__with_native
]))(var195
, var197
, var196
) /* with_native on <var195:Array[Object]>*/;
3539 var198
= ((val
* (*)(val
*))(var195
->class->vft
[COLOR_string__Object__to_s
]))(var195
) /* to_s on <var195:Array[Object]>*/;
3542 modelbuilder__ModelBuilder__error(var182
, var_node
, var198
); /* Direct call modelbuilder#ModelBuilder#error on <var182:ModelBuilder>*/
3550 { /* Inline mdoc#MEntity#deprecation (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3551 var202
= var_mproperty
->attrs
[COLOR_mdoc__MEntity___deprecation
].val
; /* _deprecation on <var_mproperty:nullable MProperty(MMethod)> */
3553 RET_LABEL201
:(void)0;
3558 if (var_info
== NULL
) {
3559 var205
= 0; /* is null */
3561 var205
= 1; /* arg is null and recv is not */
3564 { /* Inline kernel#Object#!= (var_info,var204) on <var_info:nullable MDeprecationInfo> */
3565 var_other208
= var204
;
3567 var210
= ((short int (*)(val
*, val
*))(var_info
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_info
, var_other208
) /* == on <var_info:nullable MDeprecationInfo(MDeprecationInfo)>*/;
3573 RET_LABEL207
:(void)0;
3580 { /* Inline typing#TypeVisitor#mpropdef (self) on <self:TypeVisitor> */
3581 var215
= self
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
3583 RET_LABEL214
:(void)0;
3586 if (var213
== NULL
) {
3587 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3588 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 305);
3591 { /* Inline model#MPropDef#mproperty (var213) on <var213:nullable MPropDef> */
3592 if (unlikely(var213
== NULL
)) {
3593 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3594 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
3597 var218
= var213
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var213:nullable MPropDef> */
3598 if (unlikely(var218
== NULL
)) {
3599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3600 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
3604 RET_LABEL217
:(void)0;
3608 { /* Inline mdoc#MEntity#deprecation (var216) on <var216:MProperty> */
3609 var221
= var216
->attrs
[COLOR_mdoc__MEntity___deprecation
].val
; /* _deprecation on <var216:MProperty> */
3611 RET_LABEL220
:(void)0;
3615 if (var219
== NULL
) {
3616 var223
= 1; /* is null */
3618 var223
= 0; /* arg is null but recv is not */
3621 { /* Inline kernel#Object#== (var219,var222) on <var219:nullable MDeprecationInfo> */
3624 { /* Inline kernel#Object#is_same_instance (var219,var_other) on <var219:nullable MDeprecationInfo(MDeprecationInfo)> */
3625 var228
= var219
== var_other
;
3628 RET_LABEL227
:(void)0;
3633 RET_LABEL225
:(void)0;
3643 { /* Inline mdoc#MDeprecationInfo#mdoc (var_info) on <var_info:nullable MDeprecationInfo(MDeprecationInfo)> */
3644 var231
= var_info
->attrs
[COLOR_mdoc__MDeprecationInfo___mdoc
].val
; /* _mdoc on <var_info:nullable MDeprecationInfo(MDeprecationInfo)> */
3646 RET_LABEL230
:(void)0;
3651 if (var_mdoc
== NULL
) {
3652 var233
= 0; /* is null */
3654 var233
= 1; /* arg is null and recv is not */
3657 { /* Inline kernel#Object#!= (var_mdoc,var232) on <var_mdoc:nullable MDoc> */
3658 var_other208
= var232
;
3660 var237
= ((short int (*)(val
*, val
*))(var_mdoc
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mdoc
, var_other208
) /* == on <var_mdoc:nullable MDoc(MDoc)>*/;
3666 RET_LABEL235
:(void)0;
3672 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3673 var241
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3674 if (unlikely(var241
== NULL
)) {
3675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3676 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
3680 RET_LABEL240
:(void)0;
3684 var243
= varonce242
;
3686 var244
= "deprecated-method";
3688 var246
= string__NativeString__to_s_with_length(var244
, var245
);
3690 varonce242
= var243
;
3693 var248
= varonce247
;
3695 var249
= "Deprecation Warning: Method \'";
3697 var251
= string__NativeString__to_s_with_length(var249
, var250
);
3699 varonce247
= var248
;
3702 var253
= varonce252
;
3704 var254
= "\' is deprecated: ";
3706 var256
= string__NativeString__to_s_with_length(var254
, var255
);
3708 varonce252
= var253
;
3711 { /* Inline mdoc#MDoc#content (var_mdoc) on <var_mdoc:nullable MDoc(MDoc)> */
3712 var259
= var_mdoc
->attrs
[COLOR_mdoc__MDoc___content
].val
; /* _content on <var_mdoc:nullable MDoc(MDoc)> */
3713 if (unlikely(var259
== NULL
)) {
3714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
3715 PRINT_ERROR(" (%s:%d)\n", "model/mdoc.nit", 22);
3719 RET_LABEL258
:(void)0;
3723 var260
= abstract_collection__SequenceRead__first(var257
);
3725 var261
= NEW_array__Array(&type_array__Arraykernel__Object
);
3726 { /* var261 = array_instance Array[Object] */
3728 var263
= NEW_array__NativeArray(var262
, &type_array__NativeArraykernel__Object
);
3729 ((struct instance_array__NativeArray
*)var263
)->values
[0] = (val
*) var248
;
3730 ((struct instance_array__NativeArray
*)var263
)->values
[1] = (val
*) var_name
;
3731 ((struct instance_array__NativeArray
*)var263
)->values
[2] = (val
*) var253
;
3732 ((struct instance_array__NativeArray
*)var263
)->values
[3] = (val
*) var260
;
3734 ((void (*)(val
*, val
*, long))(var261
->class->vft
[COLOR_array__Array__with_native
]))(var261
, var263
, var262
) /* with_native on <var261:Array[Object]>*/;
3738 var264
= ((val
* (*)(val
*))(var261
->class->vft
[COLOR_string__Object__to_s
]))(var261
) /* to_s on <var261:Array[Object]>*/;
3741 modelbuilder__ModelBuilder__warning(var239
, var_node
, var243
, var264
); /* Direct call modelbuilder#ModelBuilder#warning on <var239:ModelBuilder>*/
3745 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3746 var267
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3747 if (unlikely(var267
== NULL
)) {
3748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3749 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
3753 RET_LABEL266
:(void)0;
3757 var269
= varonce268
;
3759 var270
= "deprecated-method";
3761 var272
= string__NativeString__to_s_with_length(var270
, var271
);
3763 varonce268
= var269
;
3766 var274
= varonce273
;
3768 var275
= "Deprecation Warning: Method \'";
3770 var277
= string__NativeString__to_s_with_length(var275
, var276
);
3772 varonce273
= var274
;
3775 var279
= varonce278
;
3777 var280
= "\' is deprecated.";
3779 var282
= string__NativeString__to_s_with_length(var280
, var281
);
3781 varonce278
= var279
;
3783 var283
= NEW_array__Array(&type_array__Arraykernel__Object
);
3784 { /* var283 = array_instance Array[Object] */
3786 var285
= NEW_array__NativeArray(var284
, &type_array__NativeArraykernel__Object
);
3787 ((struct instance_array__NativeArray
*)var285
)->values
[0] = (val
*) var274
;
3788 ((struct instance_array__NativeArray
*)var285
)->values
[1] = (val
*) var_name
;
3789 ((struct instance_array__NativeArray
*)var285
)->values
[2] = (val
*) var279
;
3791 ((void (*)(val
*, val
*, long))(var283
->class->vft
[COLOR_array__Array__with_native
]))(var283
, var285
, var284
) /* with_native on <var283:Array[Object]>*/;
3795 var286
= ((val
* (*)(val
*))(var283
->class->vft
[COLOR_string__Object__to_s
]))(var283
) /* to_s on <var283:Array[Object]>*/;
3798 modelbuilder__ModelBuilder__warning(var265
, var_node
, var269
, var286
); /* Direct call modelbuilder#ModelBuilder#warning on <var265:ModelBuilder>*/
3804 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3805 var289
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3806 if (unlikely(var289
== NULL
)) {
3807 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3808 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
3812 RET_LABEL288
:(void)0;
3816 var290
= model__MProperty__lookup_definitions(var_mproperty
, var287
, var_unsafe_type
);
3818 var_propdefs
= var290
;
3820 { /* Inline array#AbstractArrayRead#length (var_propdefs) on <var_propdefs:Array[MMethodDef]> */
3821 var293
= var_propdefs
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_propdefs:Array[MMethodDef]> */
3823 RET_LABEL292
:(void)0;
3828 { /* Inline kernel#Int#== (var291,var294) on <var291:Int> */
3829 var298
= var291
== var294
;
3832 RET_LABEL297
:(void)0;
3838 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3839 var301
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3840 if (unlikely(var301
== NULL
)) {
3841 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3842 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
3846 RET_LABEL300
:(void)0;
3850 var303
= varonce302
;
3852 var304
= "Type error: no definition found for property ";
3854 var306
= string__NativeString__to_s_with_length(var304
, var305
);
3856 varonce302
= var303
;
3859 var308
= varonce307
;
3863 var311
= string__NativeString__to_s_with_length(var309
, var310
);
3865 varonce307
= var308
;
3867 var312
= NEW_array__Array(&type_array__Arraykernel__Object
);
3868 { /* var312 = array_instance Array[Object] */
3870 var314
= NEW_array__NativeArray(var313
, &type_array__NativeArraykernel__Object
);
3871 ((struct instance_array__NativeArray
*)var314
)->values
[0] = (val
*) var303
;
3872 ((struct instance_array__NativeArray
*)var314
)->values
[1] = (val
*) var_name
;
3873 ((struct instance_array__NativeArray
*)var314
)->values
[2] = (val
*) var308
;
3874 ((struct instance_array__NativeArray
*)var314
)->values
[3] = (val
*) var_unsafe_type
;
3876 ((void (*)(val
*, val
*, long))(var312
->class->vft
[COLOR_array__Array__with_native
]))(var312
, var314
, var313
) /* with_native on <var312:Array[Object]>*/;
3880 var315
= ((val
* (*)(val
*))(var312
->class->vft
[COLOR_string__Object__to_s
]))(var312
) /* to_s on <var312:Array[Object]>*/;
3883 modelbuilder__ModelBuilder__error(var299
, var_node
, var315
); /* Direct call modelbuilder#ModelBuilder#error on <var299:ModelBuilder>*/
3890 { /* Inline array#AbstractArrayRead#length (var_propdefs) on <var_propdefs:Array[MMethodDef]> */
3891 var319
= var_propdefs
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_propdefs:Array[MMethodDef]> */
3893 RET_LABEL318
:(void)0;
3898 { /* Inline kernel#Int#== (var317,var320) on <var317:Int> */
3899 var324
= var317
== var320
;
3902 RET_LABEL323
:(void)0;
3908 var325
= abstract_collection__SequenceRead__first(var_propdefs
);
3910 var_mpropdef
= var325
;
3913 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3914 var328
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3915 if (unlikely(var328
== NULL
)) {
3916 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3917 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
3921 RET_LABEL327
:(void)0;
3925 var330
= varonce329
;
3927 var331
= "property-conflict";
3929 var333
= string__NativeString__to_s_with_length(var331
, var332
);
3931 varonce329
= var330
;
3934 var335
= varonce334
;
3936 var336
= "Warning: conflicting property definitions for property ";
3938 var338
= string__NativeString__to_s_with_length(var336
, var337
);
3940 varonce334
= var335
;
3943 var340
= varonce339
;
3947 var343
= string__NativeString__to_s_with_length(var341
, var342
);
3949 varonce339
= var340
;
3952 var345
= varonce344
;
3956 var348
= string__NativeString__to_s_with_length(var346
, var347
);
3958 varonce344
= var345
;
3961 var350
= varonce349
;
3965 var353
= string__NativeString__to_s_with_length(var351
, var352
);
3967 varonce349
= var350
;
3970 var354
= string__Collection__join(var_propdefs
, var350
);
3972 var355
= NEW_array__Array(&type_array__Arraykernel__Object
);
3973 { /* var355 = array_instance Array[Object] */
3975 var357
= NEW_array__NativeArray(var356
, &type_array__NativeArraykernel__Object
);
3976 ((struct instance_array__NativeArray
*)var357
)->values
[0] = (val
*) var335
;
3977 ((struct instance_array__NativeArray
*)var357
)->values
[1] = (val
*) var_name
;
3978 ((struct instance_array__NativeArray
*)var357
)->values
[2] = (val
*) var340
;
3979 ((struct instance_array__NativeArray
*)var357
)->values
[3] = (val
*) var_unsafe_type
;
3980 ((struct instance_array__NativeArray
*)var357
)->values
[4] = (val
*) var345
;
3981 ((struct instance_array__NativeArray
*)var357
)->values
[5] = (val
*) var354
;
3983 ((void (*)(val
*, val
*, long))(var355
->class->vft
[COLOR_array__Array__with_native
]))(var355
, var357
, var356
) /* with_native on <var355:Array[Object]>*/;
3987 var358
= ((val
* (*)(val
*))(var355
->class->vft
[COLOR_string__Object__to_s
]))(var355
) /* to_s on <var355:Array[Object]>*/;
3990 modelbuilder__ModelBuilder__warning(var326
, var_node
, var330
, var358
); /* Direct call modelbuilder#ModelBuilder#warning on <var326:ModelBuilder>*/
3993 { /* Inline model#MProperty#intro (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3994 var361
= var_mproperty
->attrs
[COLOR_model__MProperty___intro
].val
; /* _intro on <var_mproperty:nullable MProperty(MMethod)> */
3995 if (unlikely(var361
== NULL
)) {
3996 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3997 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
4001 RET_LABEL360
:(void)0;
4004 var_mpropdef
= var359
;
4008 { /* Inline model#MMethodDef#new_msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4009 var365
= var_mpropdef
->attrs
[COLOR_model__MMethodDef___new_msignature
].val
; /* _new_msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4011 RET_LABEL364
:(void)0;
4018 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4019 var368
= var_mpropdef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4021 RET_LABEL367
:(void)0;
4024 if (unlikely(var366
== NULL
)) {
4025 PRINT_ERROR("Runtime error: %s", "Cast failed");
4026 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 327);
4031 var_msignature
= var362
;
4033 var369
= typing__TypeVisitor__resolve_for(self
, var_msignature
, var_recvtype
, var_recv_is_self
);
4035 /* <var369:MType> isa MSignature */
4036 cltype371
= type_model__MSignature
.color
;
4037 idtype372
= type_model__MSignature
.id
;
4038 if(cltype371
>= var369
->type
->table_size
) {
4041 var370
= var369
->type
->type_table
[cltype371
] == idtype372
;
4043 if (unlikely(!var370
)) {
4044 var_class_name
= var369
== NULL ?
"null" : var369
->type
->name
;
4045 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
4046 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 328);
4049 var_msignature
= var369
;
4051 var_erasure_cast
= var373
;
4053 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4054 var376
= var_mpropdef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4056 RET_LABEL375
:(void)0;
4059 if (var374
== NULL
) {
4060 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4061 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 331);
4064 { /* Inline model#MSignature#return_mtype (var374) on <var374:nullable MSignature> */
4065 if (unlikely(var374
== NULL
)) {
4066 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4067 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1468);
4070 var379
= var374
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var374:nullable MSignature> */
4072 RET_LABEL378
:(void)0;
4075 var_rettype
= var377
;
4076 var381
= !var_recv_is_self
;
4080 if (var_rettype
== NULL
) {
4081 var384
= 0; /* is null */
4083 var384
= 1; /* arg is null and recv is not */
4086 { /* Inline kernel#Object#!= (var_rettype,var383) on <var_rettype:nullable MType> */
4087 var_other208
= var383
;
4089 var388
= ((short int (*)(val
*, val
*))(var_rettype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rettype
, var_other208
) /* == on <var_rettype:nullable MType(MType)>*/;
4095 RET_LABEL386
:(void)0;
4105 var390
= ((val
* (*)(val
*))(var_rettype
->class->vft
[COLOR_model__MType__as_notnullable
]))(var_rettype
) /* as_notnullable on <var_rettype:nullable MType(MType)>*/;
4107 var_rettype
= var390
;
4108 /* <var_rettype:nullable MType(MType)> isa MParameterType */
4109 cltype392
= type_model__MParameterType
.color
;
4110 idtype393
= type_model__MParameterType
.id
;
4111 if(cltype392
>= var_rettype
->type
->table_size
) {
4114 var391
= var_rettype
->type
->type_table
[cltype392
] == idtype393
;
4118 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
4119 var396
= var_msignature
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
4121 RET_LABEL395
:(void)0;
4124 var_erased_rettype
= var394
;
4126 if (var_erased_rettype
== NULL
) {
4127 var398
= 0; /* is null */
4129 var398
= 1; /* arg is null and recv is not */
4132 { /* Inline kernel#Object#!= (var_erased_rettype,var397) on <var_erased_rettype:nullable MType> */
4133 var_other208
= var397
;
4135 var402
= ((short int (*)(val
*, val
*))(var_erased_rettype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_erased_rettype
, var_other208
) /* == on <var_erased_rettype:nullable MType(MType)>*/;
4141 RET_LABEL400
:(void)0;
4145 if (unlikely(!var398
)) {
4146 PRINT_ERROR("Runtime error: %s", "Assert failed");
4147 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 336);
4151 var_erasure_cast
= var404
;
4156 var405
= NEW_typing__CallSite(&type_typing__CallSite
);
4158 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
4159 var408
= self
->attrs
[COLOR_typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
4160 if (unlikely(var408
== NULL
)) {
4161 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4162 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 36);
4166 RET_LABEL407
:(void)0;
4170 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
4171 var411
= self
->attrs
[COLOR_typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
4173 RET_LABEL410
:(void)0;
4177 ((void (*)(val
*, val
*))(var405
->class->vft
[COLOR_typing__CallSite__node_61d
]))(var405
, var_node
) /* node= on <var405:CallSite>*/;
4180 ((void (*)(val
*, val
*))(var405
->class->vft
[COLOR_typing__CallSite__recv_61d
]))(var405
, var_recvtype
) /* recv= on <var405:CallSite>*/;
4183 ((void (*)(val
*, val
*))(var405
->class->vft
[COLOR_typing__CallSite__mmodule_61d
]))(var405
, var406
) /* mmodule= on <var405:CallSite>*/;
4186 ((void (*)(val
*, val
*))(var405
->class->vft
[COLOR_typing__CallSite__anchor_61d
]))(var405
, var409
) /* anchor= on <var405:CallSite>*/;
4189 ((void (*)(val
*, short int))(var405
->class->vft
[COLOR_typing__CallSite__recv_is_self_61d
]))(var405
, var_recv_is_self
) /* recv_is_self= on <var405:CallSite>*/;
4192 ((void (*)(val
*, val
*))(var405
->class->vft
[COLOR_typing__CallSite__mproperty_61d
]))(var405
, var_mproperty
) /* mproperty= on <var405:CallSite>*/;
4195 ((void (*)(val
*, val
*))(var405
->class->vft
[COLOR_typing__CallSite__mpropdef_61d
]))(var405
, var_mpropdef
) /* mpropdef= on <var405:CallSite>*/;
4198 ((void (*)(val
*, val
*))(var405
->class->vft
[COLOR_typing__CallSite__msignature_61d
]))(var405
, var_msignature
) /* msignature= on <var405:CallSite>*/;
4201 ((void (*)(val
*, short int))(var405
->class->vft
[COLOR_typing__CallSite__erasure_cast_61d
]))(var405
, var_erasure_cast
) /* erasure_cast= on <var405:CallSite>*/;
4204 ((void (*)(val
*))(var405
->class->vft
[COLOR_kernel__Object__init
]))(var405
) /* init on <var405:CallSite>*/;
4206 var_callsite
= var405
;
4212 /* method typing#TypeVisitor#get_method for (self: Object, ANode, MType, String, Bool): nullable CallSite */
4213 val
* VIRTUAL_typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4214 val
* var
/* : nullable CallSite */;
4215 val
* var1
/* : nullable CallSite */;
4216 var1
= typing__TypeVisitor__get_method(self
, p0
, p1
, p2
, p3
);
4221 /* method typing#TypeVisitor#try_get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
4222 val
* typing__TypeVisitor__try_get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4223 val
* var
/* : nullable CallSite */;
4224 val
* var_node
/* var node: ANode */;
4225 val
* var_recvtype
/* var recvtype: MType */;
4226 val
* var_name
/* var name: String */;
4227 short int var_recv_is_self
/* var recv_is_self: Bool */;
4228 val
* var1
/* : MType */;
4229 val
* var_unsafe_type
/* var unsafe_type: MType */;
4230 val
* var2
/* : nullable MProperty */;
4231 val
* var_mproperty
/* var mproperty: nullable MProperty */;
4232 val
* var3
/* : null */;
4233 short int var4
/* : Bool */;
4234 short int var5
/* : Bool */;
4235 val
* var_other
/* var other: nullable Object */;
4236 short int var7
/* : Bool */;
4237 short int var9
/* : Bool */;
4238 val
* var10
/* : null */;
4239 val
* var11
/* : nullable CallSite */;
4243 var_recv_is_self
= p3
;
4245 var1
= typing__TypeVisitor__anchor_to(self
, var_recvtype
);
4247 var_unsafe_type
= var1
;
4249 var2
= typing__TypeVisitor__try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
4251 var_mproperty
= var2
;
4253 if (var_mproperty
== NULL
) {
4254 var4
= 1; /* is null */
4256 var4
= 0; /* arg is null but recv is not */
4259 { /* Inline kernel#Object#== (var_mproperty,var3) on <var_mproperty:nullable MProperty> */
4262 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
4263 var9
= var_mproperty
== var_other
;
4282 var11
= typing__TypeVisitor__get_method(self
, var_node
, var_recvtype
, var_name
, var_recv_is_self
);
4289 /* method typing#TypeVisitor#try_get_method for (self: Object, ANode, MType, String, Bool): nullable CallSite */
4290 val
* VIRTUAL_typing__TypeVisitor__try_get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4291 val
* var
/* : nullable CallSite */;
4292 val
* var1
/* : nullable CallSite */;
4293 var1
= typing__TypeVisitor__try_get_method(self
, p0
, p1
, p2
, p3
);
4298 /* method typing#TypeVisitor#check_signature for (self: TypeVisitor, ANode, Array[AExpr], String, MSignature): Bool */
4299 short int typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
4300 short int var
/* : Bool */;
4301 val
* var_node
/* var node: ANode */;
4302 val
* var_args
/* var args: Array[AExpr] */;
4303 val
* var_name
/* var name: String */;
4304 val
* var_msignature
/* var msignature: MSignature */;
4305 long var1
/* : Int */;
4306 long var3
/* : Int */;
4307 long var_vararg_rank
/* var vararg_rank: Int */;
4308 long var4
/* : Int */;
4309 short int var5
/* : Bool */;
4310 short int var7
/* : Bool */;
4313 const char* var_class_name
;
4314 short int var8
/* : Bool */;
4315 long var9
/* : Int */;
4316 long var11
/* : Int */;
4317 long var12
/* : Int */;
4318 short int var13
/* : Bool */;
4319 short int var15
/* : Bool */;
4322 const char* var_class_name18
;
4323 short int var19
/* : Bool */;
4324 val
* var20
/* : ModelBuilder */;
4325 val
* var22
/* : ModelBuilder */;
4326 static val
* varonce
;
4327 val
* var23
/* : String */;
4328 char* var24
/* : NativeString */;
4329 long var25
/* : Int */;
4330 val
* var26
/* : FlatString */;
4331 static val
* varonce27
;
4332 val
* var28
/* : String */;
4333 char* var29
/* : NativeString */;
4334 long var30
/* : Int */;
4335 val
* var31
/* : FlatString */;
4336 val
* var32
/* : Array[Object] */;
4337 long var33
/* : Int */;
4338 val
* var34
/* : NativeArray[Object] */;
4339 val
* var35
/* : String */;
4340 short int var36
/* : Bool */;
4341 long var37
/* : Int */;
4342 long var39
/* : Int */;
4343 long var40
/* : Int */;
4344 short int var41
/* : Bool */;
4345 short int var42
/* : Bool */;
4346 short int var44
/* : Bool */;
4347 short int var45
/* : Bool */;
4348 val
* var46
/* : ModelBuilder */;
4349 val
* var48
/* : ModelBuilder */;
4350 static val
* varonce49
;
4351 val
* var50
/* : String */;
4352 char* var51
/* : NativeString */;
4353 long var52
/* : Int */;
4354 val
* var53
/* : FlatString */;
4355 long var54
/* : Int */;
4356 long var56
/* : Int */;
4357 static val
* varonce57
;
4358 val
* var58
/* : String */;
4359 char* var59
/* : NativeString */;
4360 long var60
/* : Int */;
4361 val
* var61
/* : FlatString */;
4362 long var62
/* : Int */;
4363 static val
* varonce63
;
4364 val
* var64
/* : String */;
4365 char* var65
/* : NativeString */;
4366 long var66
/* : Int */;
4367 val
* var67
/* : FlatString */;
4368 val
* var68
/* : Array[Object] */;
4369 long var69
/* : Int */;
4370 val
* var70
/* : NativeArray[Object] */;
4371 val
* var71
/* : Object */;
4372 val
* var72
/* : Object */;
4373 val
* var73
/* : String */;
4374 short int var74
/* : Bool */;
4375 long var75
/* : Int */;
4376 long var77
/* : Int */;
4377 long var78
/* : Int */;
4378 long var79
/* : Int */;
4379 short int var81
/* : Bool */;
4382 const char* var_class_name84
;
4383 long var85
/* : Int */;
4384 long var_vararg_decl
/* var vararg_decl: Int */;
4385 long var86
/* : Int */;
4386 long var_i
/* var i: Int */;
4387 long var87
/* : Int */;
4388 long var_
/* var : Int */;
4389 short int var88
/* : Bool */;
4390 short int var90
/* : Bool */;
4393 const char* var_class_name93
;
4394 short int var94
/* : Bool */;
4395 long var_j
/* var j: Int */;
4396 short int var95
/* : Bool */;
4397 short int var96
/* : Bool */;
4398 short int var98
/* : Bool */;
4399 short int var99
/* : Bool */;
4400 short int var101
/* : Bool */;
4403 const char* var_class_name104
;
4404 short int var105
/* : Bool */;
4405 long var106
/* : Int */;
4406 short int var108
/* : Bool */;
4409 const char* var_class_name111
;
4410 long var112
/* : Int */;
4411 val
* var113
/* : Array[MParameter] */;
4412 val
* var115
/* : Array[MParameter] */;
4413 val
* var116
/* : nullable Object */;
4414 val
* var117
/* : MType */;
4415 val
* var119
/* : MType */;
4416 val
* var_paramtype
/* var paramtype: MType */;
4417 val
* var120
/* : nullable Object */;
4418 val
* var121
/* : nullable MType */;
4419 long var122
/* : Int */;
4420 long var123
/* : Int */;
4421 long var125
/* : Int */;
4422 short int var126
/* : Bool */;
4423 short int var128
/* : Bool */;
4426 const char* var_class_name131
;
4427 short int var132
/* : Bool */;
4428 val
* var133
/* : Array[MParameter] */;
4429 val
* var135
/* : Array[MParameter] */;
4430 val
* var136
/* : nullable Object */;
4431 val
* var137
/* : MType */;
4432 val
* var139
/* : MType */;
4433 val
* var_paramtype140
/* var paramtype: MType */;
4434 val
* var141
/* : nullable Object */;
4435 val
* var_first
/* var first: AExpr */;
4436 short int var142
/* : Bool */;
4437 long var143
/* : Int */;
4438 short int var144
/* : Bool */;
4439 short int var145
/* : Bool */;
4440 short int var147
/* : Bool */;
4441 short int var_148
/* var : Bool */;
4442 short int var149
/* : Bool */;
4445 static val
* varonce152
;
4446 val
* var153
/* : String */;
4447 char* var154
/* : NativeString */;
4448 long var155
/* : Int */;
4449 val
* var156
/* : FlatString */;
4450 val
* var157
/* : nullable MClass */;
4451 val
* var_mclass
/* var mclass: nullable MClass */;
4452 val
* var158
/* : null */;
4453 short int var159
/* : Bool */;
4454 short int var160
/* : Bool */;
4455 val
* var_other
/* var other: nullable Object */;
4456 short int var162
/* : Bool */;
4457 short int var164
/* : Bool */;
4458 short int var165
/* : Bool */;
4459 val
* var166
/* : Array[MType] */;
4460 long var167
/* : Int */;
4461 val
* var_168
/* var : Array[MType] */;
4462 val
* var169
/* : MClassType */;
4463 val
* var_array_mtype
/* var array_mtype: MClassType */;
4464 val
* var170
/* : AExpr */;
4465 val
* var172
/* : AExpr */;
4466 val
* var173
/* : nullable MType */;
4467 val
* var174
/* : AExpr */;
4468 val
* var176
/* : AExpr */;
4469 val
* var177
/* : nullable MType */;
4470 long var_j179
/* var j: Int */;
4471 long var180
/* : Int */;
4472 short int var182
/* : Bool */;
4475 const char* var_class_name185
;
4476 long var186
/* : Int */;
4477 long var_187
/* var : Int */;
4478 short int var188
/* : Bool */;
4479 short int var190
/* : Bool */;
4482 const char* var_class_name193
;
4483 short int var194
/* : Bool */;
4484 val
* var195
/* : nullable Object */;
4485 val
* var196
/* : nullable MType */;
4486 long var197
/* : Int */;
4487 long var198
/* : Int */;
4488 short int var200
/* : Bool */;
4492 var_msignature
= p3
;
4494 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
4495 var3
= var_msignature
->attrs
[COLOR_model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:MSignature> */
4500 var_vararg_rank
= var1
;
4503 { /* Inline kernel#Int#>= (var_vararg_rank,var4) on <var_vararg_rank:Int> */
4504 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
4505 /* <var4:Int> isa OTHER */
4506 var7
= 1; /* easy <var4:Int> isa OTHER*/
4507 if (unlikely(!var7
)) {
4508 var_class_name
= type_kernel__Int
.name
;
4509 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4510 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
4513 var8
= var_vararg_rank
>= var4
;
4521 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4522 var11
= var_args
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4524 RET_LABEL10
:(void)0;
4528 var12
= model__MSignature__arity(var_msignature
);
4531 { /* Inline kernel#Int#< (var9,var12) on <var9:Int> */
4532 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
4533 /* <var12:Int> isa OTHER */
4534 var15
= 1; /* easy <var12:Int> isa OTHER*/
4535 if (unlikely(!var15
)) {
4536 var_class_name18
= type_kernel__Int
.name
;
4537 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18
);
4538 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
4541 var19
= var9
< var12
;
4544 RET_LABEL14
:(void)0;
4549 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
4550 var22
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
4551 if (unlikely(var22
== NULL
)) {
4552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4553 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
4557 RET_LABEL21
:(void)0;
4563 var24
= "Error: arity mismatch; prototype is \'";
4565 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4574 var31
= string__NativeString__to_s_with_length(var29
, var30
);
4578 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
4579 { /* var32 = array_instance Array[Object] */
4581 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
4582 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
4583 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_name
;
4584 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var_msignature
;
4585 ((struct instance_array__NativeArray
*)var34
)->values
[3] = (val
*) var28
;
4587 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
4591 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
4594 modelbuilder__ModelBuilder__error(var20
, var_node
, var35
); /* Direct call modelbuilder#ModelBuilder#error on <var20:ModelBuilder>*/
4603 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4604 var39
= var_args
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4606 RET_LABEL38
:(void)0;
4610 var40
= model__MSignature__arity(var_msignature
);
4613 { /* Inline kernel#Int#!= (var37,var40) on <var37:Int> */
4614 var44
= var37
== var40
;
4618 RET_LABEL43
:(void)0;
4624 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
4625 var48
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
4626 if (unlikely(var48
== NULL
)) {
4627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4628 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
4632 RET_LABEL47
:(void)0;
4638 var51
= "Error: Incorrect number of parameters. Got ";
4640 var53
= string__NativeString__to_s_with_length(var51
, var52
);
4645 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4646 var56
= var_args
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4648 RET_LABEL55
:(void)0;
4654 var59
= ", expected ";
4656 var61
= string__NativeString__to_s_with_length(var59
, var60
);
4661 var62
= model__MSignature__arity(var_msignature
);
4666 var65
= ". Signature is ";
4668 var67
= string__NativeString__to_s_with_length(var65
, var66
);
4672 var68
= NEW_array__Array(&type_array__Arraykernel__Object
);
4673 { /* var68 = array_instance Array[Object] */
4675 var70
= NEW_array__NativeArray(var69
, &type_array__NativeArraykernel__Object
);
4676 ((struct instance_array__NativeArray
*)var70
)->values
[0] = (val
*) var50
;
4677 var71
= BOX_kernel__Int(var54
); /* autobox from Int to Object */
4678 ((struct instance_array__NativeArray
*)var70
)->values
[1] = (val
*) var71
;
4679 ((struct instance_array__NativeArray
*)var70
)->values
[2] = (val
*) var58
;
4680 var72
= BOX_kernel__Int(var62
); /* autobox from Int to Object */
4681 ((struct instance_array__NativeArray
*)var70
)->values
[3] = (val
*) var72
;
4682 ((struct instance_array__NativeArray
*)var70
)->values
[4] = (val
*) var64
;
4683 ((struct instance_array__NativeArray
*)var70
)->values
[5] = (val
*) var_msignature
;
4685 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_array__Array__with_native
]))(var68
, var70
, var69
) /* with_native on <var68:Array[Object]>*/;
4689 var73
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_string__Object__to_s
]))(var68
) /* to_s on <var68:Array[Object]>*/;
4692 modelbuilder__ModelBuilder__error(var46
, var_node
, var73
); /* Direct call modelbuilder#ModelBuilder#error on <var46:ModelBuilder>*/
4701 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4702 var77
= var_args
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4704 RET_LABEL76
:(void)0;
4708 var78
= model__MSignature__arity(var_msignature
);
4711 { /* Inline kernel#Int#- (var75,var78) on <var75:Int> */
4712 /* Covariant cast for argument 0 (i) <var78:Int> isa OTHER */
4713 /* <var78:Int> isa OTHER */
4714 var81
= 1; /* easy <var78:Int> isa OTHER*/
4715 if (unlikely(!var81
)) {
4716 var_class_name84
= type_kernel__Int
.name
;
4717 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84
);
4718 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
4721 var85
= var75
- var78
;
4724 RET_LABEL80
:(void)0;
4727 var_vararg_decl
= var79
;
4731 var87
= model__MSignature__arity(var_msignature
);
4736 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
4737 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
4738 /* <var_:Int> isa OTHER */
4739 var90
= 1; /* easy <var_:Int> isa OTHER*/
4740 if (unlikely(!var90
)) {
4741 var_class_name93
= type_kernel__Int
.name
;
4742 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name93
);
4743 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
4746 var94
= var_i
< var_
;
4749 RET_LABEL89
:(void)0;
4755 { /* Inline kernel#Int#== (var_i,var_vararg_rank) on <var_i:Int> */
4756 var98
= var_i
== var_vararg_rank
;
4759 RET_LABEL97
:(void)0;
4768 { /* Inline kernel#Int#> (var_i,var_vararg_rank) on <var_i:Int> */
4769 /* Covariant cast for argument 0 (i) <var_vararg_rank:Int> isa OTHER */
4770 /* <var_vararg_rank:Int> isa OTHER */
4771 var101
= 1; /* easy <var_vararg_rank:Int> isa OTHER*/
4772 if (unlikely(!var101
)) {
4773 var_class_name104
= type_kernel__Int
.name
;
4774 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name104
);
4775 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
4778 var105
= var_i
> var_vararg_rank
;
4781 RET_LABEL100
:(void)0;
4786 { /* Inline kernel#Int#+ (var_i,var_vararg_decl) on <var_i:Int> */
4787 /* Covariant cast for argument 0 (i) <var_vararg_decl:Int> isa OTHER */
4788 /* <var_vararg_decl:Int> isa OTHER */
4789 var108
= 1; /* easy <var_vararg_decl:Int> isa OTHER*/
4790 if (unlikely(!var108
)) {
4791 var_class_name111
= type_kernel__Int
.name
;
4792 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name111
);
4793 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
4796 var112
= var_i
+ var_vararg_decl
;
4799 RET_LABEL107
:(void)0;
4806 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
4807 var115
= var_msignature
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
4808 if (unlikely(var115
== NULL
)) {
4809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4810 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
4814 RET_LABEL114
:(void)0;
4818 var116
= array__Array___91d_93d(var113
, var_i
);
4821 { /* Inline model#MParameter#mtype (var116) on <var116:nullable Object(MParameter)> */
4822 var119
= var116
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var116:nullable Object(MParameter)> */
4823 if (unlikely(var119
== NULL
)) {
4824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4825 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
4829 RET_LABEL118
:(void)0;
4832 var_paramtype
= var117
;
4834 var120
= array__Array___91d_93d(var_args
, var_j
);
4837 var121
= typing__TypeVisitor__visit_expr_subtype(self
, var120
, var_paramtype
);
4839 BREAK_label
: (void)0;
4842 var123
= kernel__Int__successor(var_i
, var122
);
4846 goto BREAK_label124
;
4849 BREAK_label124
: (void)0;
4852 { /* Inline kernel#Int#>= (var_vararg_rank,var125) on <var_vararg_rank:Int> */
4853 /* Covariant cast for argument 0 (i) <var125:Int> isa OTHER */
4854 /* <var125:Int> isa OTHER */
4855 var128
= 1; /* easy <var125:Int> isa OTHER*/
4856 if (unlikely(!var128
)) {
4857 var_class_name131
= type_kernel__Int
.name
;
4858 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name131
);
4859 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
4862 var132
= var_vararg_rank
>= var125
;
4865 RET_LABEL127
:(void)0;
4870 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
4871 var135
= var_msignature
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
4872 if (unlikely(var135
== NULL
)) {
4873 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4874 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
4878 RET_LABEL134
:(void)0;
4882 var136
= array__Array___91d_93d(var133
, var_vararg_rank
);
4885 { /* Inline model#MParameter#mtype (var136) on <var136:nullable Object(MParameter)> */
4886 var139
= var136
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var136:nullable Object(MParameter)> */
4887 if (unlikely(var139
== NULL
)) {
4888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4889 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
4893 RET_LABEL138
:(void)0;
4896 var_paramtype140
= var137
;
4898 var141
= array__Array___91d_93d(var_args
, var_vararg_rank
);
4903 { /* Inline kernel#Int#== (var_vararg_decl,var143) on <var_vararg_decl:Int> */
4904 var147
= var_vararg_decl
== var143
;
4907 RET_LABEL146
:(void)0;
4913 /* <var_first:AExpr> isa AVarargExpr */
4914 cltype150
= type_parser_nodes__AVarargExpr
.color
;
4915 idtype151
= type_parser_nodes__AVarargExpr
.id
;
4916 if(cltype150
>= var_first
->type
->table_size
) {
4919 var149
= var_first
->type
->type_table
[cltype150
] == idtype151
;
4927 var153
= varonce152
;
4931 var156
= string__NativeString__to_s_with_length(var154
, var155
);
4933 varonce152
= var153
;
4936 var157
= typing__TypeVisitor__get_mclass(self
, var_node
, var153
);
4938 var_mclass
= var157
;
4940 if (var_mclass
== NULL
) {
4941 var159
= 1; /* is null */
4943 var159
= 0; /* arg is null but recv is not */
4946 { /* Inline kernel#Object#== (var_mclass,var158) on <var_mclass:nullable MClass> */
4949 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
4950 var164
= var_mclass
== var_other
;
4953 RET_LABEL163
:(void)0;
4958 RET_LABEL161
:(void)0;
4968 var166
= NEW_array__Array(&type_array__Arraymodel__MType
);
4971 array__Array__with_capacity(var166
, var167
); /* Direct call array#Array#with_capacity on <var166:Array[MType]>*/
4975 array__AbstractArray__push(var_168
, var_paramtype140
); /* Direct call array#AbstractArray#push on <var_168:Array[MType]>*/
4978 var169
= model__MClass__get_mtype(var_mclass
, var_168
);
4980 var_array_mtype
= var169
;
4982 { /* Inline parser_nodes#AVarargExpr#n_expr (var_first) on <var_first:AExpr(AVarargExpr)> */
4983 var172
= var_first
->attrs
[COLOR_parser_nodes__AVarargExpr___n_expr
].val
; /* _n_expr on <var_first:AExpr(AVarargExpr)> */
4984 if (unlikely(var172
== NULL
)) {
4985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4986 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1902);
4990 RET_LABEL171
:(void)0;
4994 var173
= typing__TypeVisitor__visit_expr_subtype(self
, var170
, var_array_mtype
);
4997 { /* Inline parser_nodes#AVarargExpr#n_expr (var_first) on <var_first:AExpr(AVarargExpr)> */
4998 var176
= var_first
->attrs
[COLOR_parser_nodes__AVarargExpr___n_expr
].val
; /* _n_expr on <var_first:AExpr(AVarargExpr)> */
4999 if (unlikely(var176
== NULL
)) {
5000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5001 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1902);
5005 RET_LABEL175
:(void)0;
5009 var177
= ((val
* (*)(val
*))(var174
->class->vft
[COLOR_typing__AExpr__mtype
]))(var174
) /* mtype on <var174:AExpr>*/;
5012 { /* Inline typing#AExpr#mtype= (var_first,var177) on <var_first:AExpr(AVarargExpr)> */
5013 var_first
->attrs
[COLOR_typing__AExpr___mtype
].val
= var177
; /* _mtype on <var_first:AExpr(AVarargExpr)> */
5014 RET_LABEL178
:(void)0;
5018 var_j179
= var_vararg_rank
;
5020 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_decl) on <var_vararg_rank:Int> */
5021 /* Covariant cast for argument 0 (i) <var_vararg_decl:Int> isa OTHER */
5022 /* <var_vararg_decl:Int> isa OTHER */
5023 var182
= 1; /* easy <var_vararg_decl:Int> isa OTHER*/
5024 if (unlikely(!var182
)) {
5025 var_class_name185
= type_kernel__Int
.name
;
5026 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name185
);
5027 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
5030 var186
= var_vararg_rank
+ var_vararg_decl
;
5033 RET_LABEL181
:(void)0;
5039 { /* Inline kernel#Int#<= (var_j179,var_187) on <var_j179:Int> */
5040 /* Covariant cast for argument 0 (i) <var_187:Int> isa OTHER */
5041 /* <var_187:Int> isa OTHER */
5042 var190
= 1; /* easy <var_187:Int> isa OTHER*/
5043 if (unlikely(!var190
)) {
5044 var_class_name193
= type_kernel__Int
.name
;
5045 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name193
);
5046 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
5049 var194
= var_j179
<= var_187
;
5052 RET_LABEL189
:(void)0;
5057 var195
= array__Array___91d_93d(var_args
, var_j179
);
5060 var196
= typing__TypeVisitor__visit_expr_subtype(self
, var195
, var_paramtype140
);
5064 var198
= kernel__Int__successor(var_j179
, var197
);
5068 goto BREAK_label199
;
5071 BREAK_label199
: (void)0;
5081 /* method typing#TypeVisitor#check_signature for (self: Object, ANode, Array[AExpr], String, MSignature): Bool */
5082 short int VIRTUAL_typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
5083 short int var
/* : Bool */;
5084 short int var1
/* : Bool */;
5085 var1
= typing__TypeVisitor__check_signature(self
, p0
, p1
, p2
, p3
);
5090 /* method typing#TypeVisitor#error for (self: TypeVisitor, ANode, String) */
5091 void typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
5092 val
* var_node
/* var node: ANode */;
5093 val
* var_message
/* var message: String */;
5094 val
* var
/* : ModelBuilder */;
5095 val
* var2
/* : ModelBuilder */;
5096 val
* var3
/* : ToolContext */;
5097 val
* var5
/* : ToolContext */;
5098 val
* var6
/* : Location */;
5102 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5103 var2
= self
->attrs
[COLOR_typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5104 if (unlikely(var2
== NULL
)) {
5105 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5106 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 34);
5114 { /* Inline modelbuilder#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
5115 var5
= var
->attrs
[COLOR_modelbuilder__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var:ModelBuilder> */
5116 if (unlikely(var5
== NULL
)) {
5117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5118 PRINT_ERROR(" (%s:%d)\n", "modelbuilder.nit", 106);
5126 var6
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_node
) /* hot_location on <var_node:ANode>*/;
5129 toolcontext__ToolContext__error(var3
, var6
, var_message
); /* Direct call toolcontext#ToolContext#error on <var3:ToolContext>*/
5133 /* method typing#TypeVisitor#error for (self: Object, ANode, String) */
5134 void VIRTUAL_typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
5135 typing__TypeVisitor__error(self
, p0
, p1
); /* Direct call typing#TypeVisitor#error on <self:Object(TypeVisitor)>*/
5138 /* method typing#TypeVisitor#get_variable for (self: TypeVisitor, AExpr, Variable): nullable MType */
5139 val
* typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
5140 val
* var
/* : nullable MType */;
5141 val
* var_node
/* var node: AExpr */;
5142 val
* var_variable
/* var variable: Variable */;
5143 val
* var1
/* : nullable FlowContext */;
5144 val
* var3
/* : nullable FlowContext */;
5145 val
* var_flow
/* var flow: nullable FlowContext */;
5146 val
* var4
/* : null */;
5147 short int var5
/* : Bool */;
5148 short int var6
/* : Bool */;
5149 val
* var_other
/* var other: nullable Object */;
5150 short int var8
/* : Bool */;
5151 short int var10
/* : Bool */;
5152 static val
* varonce
;
5153 val
* var11
/* : String */;
5154 char* var12
/* : NativeString */;
5155 long var13
/* : Int */;
5156 val
* var14
/* : FlatString */;
5157 val
* var15
/* : null */;
5158 val
* var16
/* : HashMap[Variable, nullable MType] */;
5159 val
* var18
/* : HashMap[Variable, nullable MType] */;
5160 short int var19
/* : Bool */;
5161 val
* var20
/* : HashMap[Variable, nullable MType] */;
5162 val
* var22
/* : HashMap[Variable, nullable MType] */;
5163 val
* var23
/* : nullable Object */;
5164 val
* var24
/* : nullable Array[nullable MType] */;
5165 val
* var_mtypes
/* var mtypes: nullable Array[nullable MType] */;
5166 short int var25
/* : Bool */;
5167 val
* var26
/* : null */;
5168 short int var27
/* : Bool */;
5169 short int var28
/* : Bool */;
5170 short int var_
/* var : Bool */;
5171 long var29
/* : Int */;
5172 long var31
/* : Int */;
5173 long var32
/* : Int */;
5174 short int var33
/* : Bool */;
5175 short int var34
/* : Bool */;
5176 short int var36
/* : Bool */;
5177 val
* var37
/* : nullable MType */;
5178 val
* var39
/* : nullable MType */;
5179 long var40
/* : Int */;
5180 long var42
/* : Int */;
5181 long var43
/* : Int */;
5182 short int var44
/* : Bool */;
5183 short int var45
/* : Bool */;
5184 short int var47
/* : Bool */;
5185 val
* var48
/* : nullable Object */;
5186 val
* var49
/* : nullable MType */;
5187 val
* var_res
/* var res: nullable MType */;
5188 val
* var50
/* : null */;
5189 short int var51
/* : Bool */;
5190 short int var52
/* : Bool */;
5191 short int var54
/* : Bool */;
5192 short int var56
/* : Bool */;
5193 val
* var57
/* : nullable MType */;
5194 val
* var59
/* : nullable MType */;
5198 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
5199 var3
= var_node
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
5206 if (var_flow
== NULL
) {
5207 var5
= 1; /* is null */
5209 var5
= 0; /* arg is null but recv is not */
5212 { /* Inline kernel#Object#== (var_flow,var4) on <var_flow:nullable FlowContext> */
5215 { /* Inline kernel#Object#is_same_instance (var_flow,var_other) on <var_flow:nullable FlowContext(FlowContext)> */
5216 var10
= var_flow
== var_other
;
5232 var12
= "No context!";
5234 var14
= string__NativeString__to_s_with_length(var12
, var13
);
5239 typing__TypeVisitor__error(self
, var_node
, var11
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
5247 { /* Inline typing#FlowContext#vars (var_flow) on <var_flow:nullable FlowContext(FlowContext)> */
5248 var18
= var_flow
->attrs
[COLOR_typing__FlowContext___vars
].val
; /* _vars on <var_flow:nullable FlowContext(FlowContext)> */
5249 if (unlikely(var18
== NULL
)) {
5250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
5251 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 508);
5255 RET_LABEL17
:(void)0;
5259 var19
= abstract_collection__MapRead__has_key(var16
, var_variable
);
5263 { /* Inline typing#FlowContext#vars (var_flow) on <var_flow:nullable FlowContext(FlowContext)> */
5264 var22
= var_flow
->attrs
[COLOR_typing__FlowContext___vars
].val
; /* _vars on <var_flow:nullable FlowContext(FlowContext)> */
5265 if (unlikely(var22
== NULL
)) {
5266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
5267 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 508);
5271 RET_LABEL21
:(void)0;
5275 var23
= hash_collection__HashMap___91d_93d(var20
, var_variable
);
5281 var24
= typing__FlowContext__collect_types(var_flow
, var_variable
);
5285 if (var_mtypes
== NULL
) {
5286 var27
= 1; /* is null */
5288 var27
= 0; /* arg is null but recv is not */
5291 var28
= array__Array___61d_61d(var_mtypes
, var26
);
5299 { /* Inline array#AbstractArrayRead#length (var_mtypes) on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])> */
5300 var31
= var_mtypes
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])> */
5302 RET_LABEL30
:(void)0;
5307 { /* Inline kernel#Int#== (var29,var32) on <var29:Int> */
5308 var36
= var29
== var32
;
5311 RET_LABEL35
:(void)0;
5319 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
5320 var39
= var_variable
->attrs
[COLOR_typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
5322 RET_LABEL38
:(void)0;
5329 { /* Inline array#AbstractArrayRead#length (var_mtypes) on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])> */
5330 var42
= var_mtypes
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])> */
5332 RET_LABEL41
:(void)0;
5337 { /* Inline kernel#Int#== (var40,var43) on <var40:Int> */
5338 var47
= var40
== var43
;
5341 RET_LABEL46
:(void)0;
5347 var48
= abstract_collection__SequenceRead__first(var_mtypes
);
5353 var49
= typing__TypeVisitor__merge_types(self
, var_node
, var_mtypes
);
5357 if (var_res
== NULL
) {
5358 var51
= 1; /* is null */
5360 var51
= 0; /* arg is null but recv is not */
5363 { /* Inline kernel#Object#== (var_res,var50) on <var_res:nullable MType> */
5366 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MType(MType)> */
5367 var56
= var_res
== var_other
;
5370 RET_LABEL55
:(void)0;
5375 RET_LABEL53
:(void)0;
5381 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
5382 var59
= var_variable
->attrs
[COLOR_typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
5384 RET_LABEL58
:(void)0;
5398 /* method typing#TypeVisitor#get_variable for (self: Object, AExpr, Variable): nullable MType */
5399 val
* VIRTUAL_typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
5400 val
* var
/* : nullable MType */;
5401 val
* var1
/* : nullable MType */;
5402 var1
= typing__TypeVisitor__get_variable(self
, p0
, p1
);
5407 /* method typing#TypeVisitor#set_variable for (self: TypeVisitor, AExpr, Variable, nullable MType) */
5408 void typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5409 val
* var_node
/* var node: AExpr */;
5410 val
* var_variable
/* var variable: Variable */;
5411 val
* var_mtype
/* var mtype: nullable MType */;
5412 val
* var
/* : nullable FlowContext */;
5413 val
* var2
/* : nullable FlowContext */;
5414 val
* var_flow
/* var flow: nullable FlowContext */;
5415 val
* var3
/* : null */;
5416 short int var4
/* : Bool */;
5417 short int var5
/* : Bool */;
5418 val
* var_other
/* var other: nullable Object */;
5419 short int var7
/* : Bool */;
5420 short int var8
/* : Bool */;
5421 short int var9
/* : Bool */;
5426 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
5427 var2
= var_node
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
5434 if (var_flow
== NULL
) {
5435 var4
= 0; /* is null */
5437 var4
= 1; /* arg is null and recv is not */
5440 { /* Inline kernel#Object#!= (var_flow,var3) on <var_flow:nullable FlowContext> */
5443 var8
= ((short int (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_flow
, var_other
) /* == on <var_flow:nullable FlowContext(FlowContext)>*/;
5453 if (unlikely(!var4
)) {
5454 PRINT_ERROR("Runtime error: %s", "Assert failed");
5455 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 436);
5459 typing__FlowContext__set_var(var_flow
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var_flow:nullable FlowContext(FlowContext)>*/
5463 /* method typing#TypeVisitor#set_variable for (self: Object, AExpr, Variable, nullable MType) */
5464 void VIRTUAL_typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5465 typing__TypeVisitor__set_variable(self
, p0
, p1
, p2
); /* Direct call typing#TypeVisitor#set_variable on <self:Object(TypeVisitor)>*/
5468 /* method typing#TypeVisitor#merge_types for (self: TypeVisitor, ANode, Array[nullable MType]): nullable MType */
5469 val
* typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
5470 val
* var
/* : nullable MType */;
5471 val
* var_node
/* var node: ANode */;
5472 val
* var_col
/* var col: Array[nullable MType] */;
5473 long var1
/* : Int */;
5474 long var3
/* : Int */;
5475 long var4
/* : Int */;
5476 short int var5
/* : Bool */;
5477 short int var6
/* : Bool */;
5478 short int var8
/* : Bool */;
5479 val
* var9
/* : nullable Object */;
5480 val
* var_
/* var : Array[nullable MType] */;
5481 val
* var10
/* : ArrayIterator[nullable Object] */;
5482 val
* var_11
/* var : ArrayIterator[nullable MType] */;
5483 short int var12
/* : Bool */;
5484 val
* var13
/* : nullable Object */;
5485 val
* var_t1
/* var t1: nullable MType */;
5486 val
* var14
/* : null */;
5487 short int var15
/* : Bool */;
5488 short int var16
/* : Bool */;
5489 val
* var_other
/* var other: nullable Object */;
5490 short int var18
/* : Bool */;
5491 short int var20
/* : Bool */;
5492 short int var21
/* : Bool */;
5493 short int var_found
/* var found: Bool */;
5494 val
* var_22
/* var : Array[nullable MType] */;
5495 val
* var23
/* : ArrayIterator[nullable Object] */;
5496 val
* var_24
/* var : ArrayIterator[nullable MType] */;
5497 short int var25
/* : Bool */;
5498 val
* var26
/* : nullable Object */;
5499 val
* var_t2
/* var t2: nullable MType */;
5500 val
* var27
/* : null */;
5501 short int var28
/* : Bool */;
5502 short int var29
/* : Bool */;
5503 short int var31
/* : Bool */;
5504 short int var33
/* : Bool */;
5505 short int var35
/* : Bool */;
5506 short int var36
/* : Bool */;
5509 short int var_37
/* var : Bool */;
5510 short int var38
/* : Bool */;
5513 val
* var41
/* : MType */;
5514 short int var42
/* : Bool */;
5515 short int var43
/* : Bool */;
5516 short int var44
/* : Bool */;
5517 val
* var49
/* : null */;
5521 { /* Inline array#AbstractArrayRead#length (var_col) on <var_col:Array[nullable MType]> */
5522 var3
= var_col
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_col:Array[nullable MType]> */
5529 { /* Inline kernel#Int#== (var1,var4) on <var1:Int> */
5530 var8
= var1
== var4
;
5539 var9
= abstract_collection__SequenceRead__first(var_col
);
5547 var10
= array__AbstractArrayRead__iterator(var_
);
5552 var12
= array__ArrayIterator__is_ok(var_11
);
5556 var13
= array__ArrayIterator__item(var_11
);
5560 if (var_t1
== NULL
) {
5561 var15
= 1; /* is null */
5563 var15
= 0; /* arg is null but recv is not */
5566 { /* Inline kernel#Object#== (var_t1,var14) on <var_t1:nullable MType> */
5569 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
5570 var20
= var_t1
== var_other
;
5573 RET_LABEL19
:(void)0;
5578 RET_LABEL17
:(void)0;
5590 var23
= array__AbstractArrayRead__iterator(var_22
);
5595 var25
= array__ArrayIterator__is_ok(var_24
);
5599 var26
= array__ArrayIterator__item(var_24
);
5603 if (var_t2
== NULL
) {
5604 var28
= 1; /* is null */
5606 var28
= 0; /* arg is null but recv is not */
5609 { /* Inline kernel#Object#== (var_t2,var27) on <var_t2:nullable MType> */
5612 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
5613 var33
= var_t2
== var_other
;
5616 RET_LABEL32
:(void)0;
5621 RET_LABEL30
:(void)0;
5629 /* <var_t2:nullable MType(MType)> isa MNullableType */
5630 cltype
= type_model__MNullableType
.color
;
5631 idtype
= type_model__MNullableType
.id
;
5632 if(cltype
>= var_t2
->type
->table_size
) {
5635 var36
= var_t2
->type
->type_table
[cltype
] == idtype
;
5641 /* <var_t2:nullable MType(MType)> isa MNullType */
5642 cltype39
= type_model__MNullType
.color
;
5643 idtype40
= type_model__MNullType
.id
;
5644 if(cltype39
>= var_t2
->type
->table_size
) {
5647 var38
= var_t2
->type
->type_table
[cltype39
] == idtype40
;
5653 var41
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t1
) /* as_nullable on <var_t1:nullable MType(MType)>*/;
5659 var42
= typing__TypeVisitor__is_subtype(self
, var_t2
, var_t1
);
5667 BREAK_label34
: (void)0;
5669 array__ArrayIterator__next(var_24
); /* Direct call array#ArrayIterator#next on <var_24:ArrayIterator[nullable MType]>*/
5675 BREAK_label45
: (void)0;
5677 { /* Inline abstract_collection#Iterator#finish (var_24) on <var_24:ArrayIterator[nullable MType]> */
5678 RET_LABEL46
:(void)0;
5686 BREAK_label
: (void)0;
5688 array__ArrayIterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[nullable MType]>*/
5694 BREAK_label47
: (void)0;
5696 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[nullable MType]> */
5697 RET_LABEL48
:(void)0;
5706 /* method typing#TypeVisitor#merge_types for (self: Object, ANode, Array[nullable MType]): nullable MType */
5707 val
* VIRTUAL_typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
5708 val
* var
/* : nullable MType */;
5709 val
* var1
/* : nullable MType */;
5710 var1
= typing__TypeVisitor__merge_types(self
, p0
, p1
);
5715 /* method typing#CallSite#node for (self: CallSite): ANode */
5716 val
* typing__CallSite__node(val
* self
) {
5717 val
* var
/* : ANode */;
5718 val
* var1
/* : ANode */;
5719 var1
= self
->attrs
[COLOR_typing__CallSite___node
].val
; /* _node on <self:CallSite> */
5720 if (unlikely(var1
== NULL
)) {
5721 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5722 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 466);
5729 /* method typing#CallSite#node for (self: Object): ANode */
5730 val
* VIRTUAL_typing__CallSite__node(val
* self
) {
5731 val
* var
/* : ANode */;
5732 val
* var1
/* : ANode */;
5733 val
* var3
/* : ANode */;
5734 { /* Inline typing#CallSite#node (self) on <self:Object(CallSite)> */
5735 var3
= self
->attrs
[COLOR_typing__CallSite___node
].val
; /* _node on <self:Object(CallSite)> */
5736 if (unlikely(var3
== NULL
)) {
5737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
5738 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 466);
5748 /* method typing#CallSite#node= for (self: CallSite, ANode) */
5749 void typing__CallSite__node_61d(val
* self
, val
* p0
) {
5750 self
->attrs
[COLOR_typing__CallSite___node
].val
= p0
; /* _node on <self:CallSite> */
5753 /* method typing#CallSite#node= for (self: Object, ANode) */
5754 void VIRTUAL_typing__CallSite__node_61d(val
* self
, val
* p0
) {
5755 { /* Inline typing#CallSite#node= (self,p0) on <self:Object(CallSite)> */
5756 self
->attrs
[COLOR_typing__CallSite___node
].val
= p0
; /* _node on <self:Object(CallSite)> */
5761 /* method typing#CallSite#recv for (self: CallSite): MType */
5762 val
* typing__CallSite__recv(val
* self
) {
5763 val
* var
/* : MType */;
5764 val
* var1
/* : MType */;
5765 var1
= self
->attrs
[COLOR_typing__CallSite___recv
].val
; /* _recv on <self:CallSite> */
5766 if (unlikely(var1
== NULL
)) {
5767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5768 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 469);
5775 /* method typing#CallSite#recv for (self: Object): MType */
5776 val
* VIRTUAL_typing__CallSite__recv(val
* self
) {
5777 val
* var
/* : MType */;
5778 val
* var1
/* : MType */;
5779 val
* var3
/* : MType */;
5780 { /* Inline typing#CallSite#recv (self) on <self:Object(CallSite)> */
5781 var3
= self
->attrs
[COLOR_typing__CallSite___recv
].val
; /* _recv on <self:Object(CallSite)> */
5782 if (unlikely(var3
== NULL
)) {
5783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
5784 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 469);
5794 /* method typing#CallSite#recv= for (self: CallSite, MType) */
5795 void typing__CallSite__recv_61d(val
* self
, val
* p0
) {
5796 self
->attrs
[COLOR_typing__CallSite___recv
].val
= p0
; /* _recv on <self:CallSite> */
5799 /* method typing#CallSite#recv= for (self: Object, MType) */
5800 void VIRTUAL_typing__CallSite__recv_61d(val
* self
, val
* p0
) {
5801 { /* Inline typing#CallSite#recv= (self,p0) on <self:Object(CallSite)> */
5802 self
->attrs
[COLOR_typing__CallSite___recv
].val
= p0
; /* _recv on <self:Object(CallSite)> */
5807 /* method typing#CallSite#mmodule for (self: CallSite): MModule */
5808 val
* typing__CallSite__mmodule(val
* self
) {
5809 val
* var
/* : MModule */;
5810 val
* var1
/* : MModule */;
5811 var1
= self
->attrs
[COLOR_typing__CallSite___mmodule
].val
; /* _mmodule on <self:CallSite> */
5812 if (unlikely(var1
== NULL
)) {
5813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5814 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 472);
5821 /* method typing#CallSite#mmodule for (self: Object): MModule */
5822 val
* VIRTUAL_typing__CallSite__mmodule(val
* self
) {
5823 val
* var
/* : MModule */;
5824 val
* var1
/* : MModule */;
5825 val
* var3
/* : MModule */;
5826 { /* Inline typing#CallSite#mmodule (self) on <self:Object(CallSite)> */
5827 var3
= self
->attrs
[COLOR_typing__CallSite___mmodule
].val
; /* _mmodule on <self:Object(CallSite)> */
5828 if (unlikely(var3
== NULL
)) {
5829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5830 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 472);
5840 /* method typing#CallSite#mmodule= for (self: CallSite, MModule) */
5841 void typing__CallSite__mmodule_61d(val
* self
, val
* p0
) {
5842 self
->attrs
[COLOR_typing__CallSite___mmodule
].val
= p0
; /* _mmodule on <self:CallSite> */
5845 /* method typing#CallSite#mmodule= for (self: Object, MModule) */
5846 void VIRTUAL_typing__CallSite__mmodule_61d(val
* self
, val
* p0
) {
5847 { /* Inline typing#CallSite#mmodule= (self,p0) on <self:Object(CallSite)> */
5848 self
->attrs
[COLOR_typing__CallSite___mmodule
].val
= p0
; /* _mmodule on <self:Object(CallSite)> */
5853 /* method typing#CallSite#anchor for (self: CallSite): nullable MClassType */
5854 val
* typing__CallSite__anchor(val
* self
) {
5855 val
* var
/* : nullable MClassType */;
5856 val
* var1
/* : nullable MClassType */;
5857 var1
= self
->attrs
[COLOR_typing__CallSite___anchor
].val
; /* _anchor on <self:CallSite> */
5862 /* method typing#CallSite#anchor for (self: Object): nullable MClassType */
5863 val
* VIRTUAL_typing__CallSite__anchor(val
* self
) {
5864 val
* var
/* : nullable MClassType */;
5865 val
* var1
/* : nullable MClassType */;
5866 val
* var3
/* : nullable MClassType */;
5867 { /* Inline typing#CallSite#anchor (self) on <self:Object(CallSite)> */
5868 var3
= self
->attrs
[COLOR_typing__CallSite___anchor
].val
; /* _anchor on <self:Object(CallSite)> */
5876 /* method typing#CallSite#anchor= for (self: CallSite, nullable MClassType) */
5877 void typing__CallSite__anchor_61d(val
* self
, val
* p0
) {
5878 self
->attrs
[COLOR_typing__CallSite___anchor
].val
= p0
; /* _anchor on <self:CallSite> */
5881 /* method typing#CallSite#anchor= for (self: Object, nullable MClassType) */
5882 void VIRTUAL_typing__CallSite__anchor_61d(val
* self
, val
* p0
) {
5883 { /* Inline typing#CallSite#anchor= (self,p0) on <self:Object(CallSite)> */
5884 self
->attrs
[COLOR_typing__CallSite___anchor
].val
= p0
; /* _anchor on <self:Object(CallSite)> */
5889 /* method typing#CallSite#recv_is_self= for (self: CallSite, Bool) */
5890 void typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
5891 self
->attrs
[COLOR_typing__CallSite___recv_is_self
].s
= p0
; /* _recv_is_self on <self:CallSite> */
5894 /* method typing#CallSite#recv_is_self= for (self: Object, Bool) */
5895 void VIRTUAL_typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
5896 { /* Inline typing#CallSite#recv_is_self= (self,p0) on <self:Object(CallSite)> */
5897 self
->attrs
[COLOR_typing__CallSite___recv_is_self
].s
= p0
; /* _recv_is_self on <self:Object(CallSite)> */
5902 /* method typing#CallSite#mproperty for (self: CallSite): MMethod */
5903 val
* typing__CallSite__mproperty(val
* self
) {
5904 val
* var
/* : MMethod */;
5905 val
* var1
/* : MMethod */;
5906 var1
= self
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <self:CallSite> */
5907 if (unlikely(var1
== NULL
)) {
5908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5909 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 483);
5916 /* method typing#CallSite#mproperty for (self: Object): MMethod */
5917 val
* VIRTUAL_typing__CallSite__mproperty(val
* self
) {
5918 val
* var
/* : MMethod */;
5919 val
* var1
/* : MMethod */;
5920 val
* var3
/* : MMethod */;
5921 { /* Inline typing#CallSite#mproperty (self) on <self:Object(CallSite)> */
5922 var3
= self
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <self:Object(CallSite)> */
5923 if (unlikely(var3
== NULL
)) {
5924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5925 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 483);
5935 /* method typing#CallSite#mproperty= for (self: CallSite, MMethod) */
5936 void typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
5937 self
->attrs
[COLOR_typing__CallSite___mproperty
].val
= p0
; /* _mproperty on <self:CallSite> */
5940 /* method typing#CallSite#mproperty= for (self: Object, MMethod) */
5941 void VIRTUAL_typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
5942 { /* Inline typing#CallSite#mproperty= (self,p0) on <self:Object(CallSite)> */
5943 self
->attrs
[COLOR_typing__CallSite___mproperty
].val
= p0
; /* _mproperty on <self:Object(CallSite)> */
5948 /* method typing#CallSite#mpropdef for (self: CallSite): MMethodDef */
5949 val
* typing__CallSite__mpropdef(val
* self
) {
5950 val
* var
/* : MMethodDef */;
5951 val
* var1
/* : MMethodDef */;
5952 var1
= self
->attrs
[COLOR_typing__CallSite___mpropdef
].val
; /* _mpropdef on <self:CallSite> */
5953 if (unlikely(var1
== NULL
)) {
5954 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
5955 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 486);
5962 /* method typing#CallSite#mpropdef for (self: Object): MMethodDef */
5963 val
* VIRTUAL_typing__CallSite__mpropdef(val
* self
) {
5964 val
* var
/* : MMethodDef */;
5965 val
* var1
/* : MMethodDef */;
5966 val
* var3
/* : MMethodDef */;
5967 { /* Inline typing#CallSite#mpropdef (self) on <self:Object(CallSite)> */
5968 var3
= self
->attrs
[COLOR_typing__CallSite___mpropdef
].val
; /* _mpropdef on <self:Object(CallSite)> */
5969 if (unlikely(var3
== NULL
)) {
5970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
5971 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 486);
5981 /* method typing#CallSite#mpropdef= for (self: CallSite, MMethodDef) */
5982 void typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
5983 self
->attrs
[COLOR_typing__CallSite___mpropdef
].val
= p0
; /* _mpropdef on <self:CallSite> */
5986 /* method typing#CallSite#mpropdef= for (self: Object, MMethodDef) */
5987 void VIRTUAL_typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
5988 { /* Inline typing#CallSite#mpropdef= (self,p0) on <self:Object(CallSite)> */
5989 self
->attrs
[COLOR_typing__CallSite___mpropdef
].val
= p0
; /* _mpropdef on <self:Object(CallSite)> */
5994 /* method typing#CallSite#msignature for (self: CallSite): MSignature */
5995 val
* typing__CallSite__msignature(val
* self
) {
5996 val
* var
/* : MSignature */;
5997 val
* var1
/* : MSignature */;
5998 var1
= self
->attrs
[COLOR_typing__CallSite___msignature
].val
; /* _msignature on <self:CallSite> */
5999 if (unlikely(var1
== NULL
)) {
6000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
6001 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 490);
6008 /* method typing#CallSite#msignature for (self: Object): MSignature */
6009 val
* VIRTUAL_typing__CallSite__msignature(val
* self
) {
6010 val
* var
/* : MSignature */;
6011 val
* var1
/* : MSignature */;
6012 val
* var3
/* : MSignature */;
6013 { /* Inline typing#CallSite#msignature (self) on <self:Object(CallSite)> */
6014 var3
= self
->attrs
[COLOR_typing__CallSite___msignature
].val
; /* _msignature on <self:Object(CallSite)> */
6015 if (unlikely(var3
== NULL
)) {
6016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
6017 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 490);
6027 /* method typing#CallSite#msignature= for (self: CallSite, MSignature) */
6028 void typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
6029 self
->attrs
[COLOR_typing__CallSite___msignature
].val
= p0
; /* _msignature on <self:CallSite> */
6032 /* method typing#CallSite#msignature= for (self: Object, MSignature) */
6033 void VIRTUAL_typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
6034 { /* Inline typing#CallSite#msignature= (self,p0) on <self:Object(CallSite)> */
6035 self
->attrs
[COLOR_typing__CallSite___msignature
].val
= p0
; /* _msignature on <self:Object(CallSite)> */
6040 /* method typing#CallSite#erasure_cast for (self: CallSite): Bool */
6041 short int typing__CallSite__erasure_cast(val
* self
) {
6042 short int var
/* : Bool */;
6043 short int var1
/* : Bool */;
6044 var1
= self
->attrs
[COLOR_typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <self:CallSite> */
6049 /* method typing#CallSite#erasure_cast for (self: Object): Bool */
6050 short int VIRTUAL_typing__CallSite__erasure_cast(val
* self
) {
6051 short int var
/* : Bool */;
6052 short int var1
/* : Bool */;
6053 short int var3
/* : Bool */;
6054 { /* Inline typing#CallSite#erasure_cast (self) on <self:Object(CallSite)> */
6055 var3
= self
->attrs
[COLOR_typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <self:Object(CallSite)> */
6063 /* method typing#CallSite#erasure_cast= for (self: CallSite, Bool) */
6064 void typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
6065 self
->attrs
[COLOR_typing__CallSite___erasure_cast
].s
= p0
; /* _erasure_cast on <self:CallSite> */
6068 /* method typing#CallSite#erasure_cast= for (self: Object, Bool) */
6069 void VIRTUAL_typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
6070 { /* Inline typing#CallSite#erasure_cast= (self,p0) on <self:Object(CallSite)> */
6071 self
->attrs
[COLOR_typing__CallSite___erasure_cast
].s
= p0
; /* _erasure_cast on <self:Object(CallSite)> */
6076 /* method typing#CallSite#check_signature for (self: CallSite, TypeVisitor, Array[AExpr]): Bool */
6077 short int typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
6078 short int var
/* : Bool */;
6079 val
* var_v
/* var v: TypeVisitor */;
6080 val
* var_args
/* var args: Array[AExpr] */;
6081 val
* var1
/* : ANode */;
6082 val
* var3
/* : ANode */;
6083 val
* var4
/* : MMethod */;
6084 val
* var6
/* : MMethod */;
6085 val
* var7
/* : String */;
6086 val
* var9
/* : String */;
6087 val
* var10
/* : MSignature */;
6088 val
* var12
/* : MSignature */;
6089 short int var13
/* : Bool */;
6093 { /* Inline typing#CallSite#node (self) on <self:CallSite> */
6094 var3
= self
->attrs
[COLOR_typing__CallSite___node
].val
; /* _node on <self:CallSite> */
6095 if (unlikely(var3
== NULL
)) {
6096 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _node");
6097 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 466);
6105 { /* Inline typing#CallSite#mproperty (self) on <self:CallSite> */
6106 var6
= self
->attrs
[COLOR_typing__CallSite___mproperty
].val
; /* _mproperty on <self:CallSite> */
6107 if (unlikely(var6
== NULL
)) {
6108 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6109 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 483);
6117 { /* Inline model#MProperty#name (var4) on <var4:MMethod> */
6118 var9
= var4
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var4:MMethod> */
6119 if (unlikely(var9
== NULL
)) {
6120 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6121 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
6129 { /* Inline typing#CallSite#msignature (self) on <self:CallSite> */
6130 var12
= self
->attrs
[COLOR_typing__CallSite___msignature
].val
; /* _msignature on <self:CallSite> */
6131 if (unlikely(var12
== NULL
)) {
6132 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
6133 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 490);
6137 RET_LABEL11
:(void)0;
6141 var13
= typing__TypeVisitor__check_signature(var_v
, var1
, var_args
, var7
, var10
);
6148 /* method typing#CallSite#check_signature for (self: Object, TypeVisitor, Array[AExpr]): Bool */
6149 short int VIRTUAL_typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
6150 short int var
/* : Bool */;
6151 short int var1
/* : Bool */;
6152 var1
= typing__CallSite__check_signature(self
, p0
, p1
);
6157 /* method typing#CallSite#init for (self: CallSite) */
6158 void typing__CallSite__init(val
* self
) {
6160 ((void (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__init
]))(self
) /* init on <self:CallSite>*/;
6164 /* method typing#CallSite#init for (self: Object) */
6165 void VIRTUAL_typing__CallSite__init(val
* self
) {
6166 { /* Inline typing#CallSite#init (self) on <self:Object(CallSite)> */
6168 ((void (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__init
]))(self
) /* init on <self:Object(CallSite)>*/;
6174 /* method typing#Variable#declared_type for (self: Variable): nullable MType */
6175 val
* typing__Variable__declared_type(val
* self
) {
6176 val
* var
/* : nullable MType */;
6177 val
* var1
/* : nullable MType */;
6178 var1
= self
->attrs
[COLOR_typing__Variable___declared_type
].val
; /* _declared_type on <self:Variable> */
6183 /* method typing#Variable#declared_type for (self: Object): nullable MType */
6184 val
* VIRTUAL_typing__Variable__declared_type(val
* self
) {
6185 val
* var
/* : nullable MType */;
6186 val
* var1
/* : nullable MType */;
6187 val
* var3
/* : nullable MType */;
6188 { /* Inline typing#Variable#declared_type (self) on <self:Object(Variable)> */
6189 var3
= self
->attrs
[COLOR_typing__Variable___declared_type
].val
; /* _declared_type on <self:Object(Variable)> */
6197 /* method typing#Variable#declared_type= for (self: Variable, nullable MType) */
6198 void typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
6199 self
->attrs
[COLOR_typing__Variable___declared_type
].val
= p0
; /* _declared_type on <self:Variable> */
6202 /* method typing#Variable#declared_type= for (self: Object, nullable MType) */
6203 void VIRTUAL_typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
6204 { /* Inline typing#Variable#declared_type= (self,p0) on <self:Object(Variable)> */
6205 self
->attrs
[COLOR_typing__Variable___declared_type
].val
= p0
; /* _declared_type on <self:Object(Variable)> */
6210 /* method typing#FlowContext#vars for (self: FlowContext): HashMap[Variable, nullable MType] */
6211 val
* typing__FlowContext__vars(val
* self
) {
6212 val
* var
/* : HashMap[Variable, nullable MType] */;
6213 val
* var1
/* : HashMap[Variable, nullable MType] */;
6214 var1
= self
->attrs
[COLOR_typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
6215 if (unlikely(var1
== NULL
)) {
6216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6217 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 508);
6224 /* method typing#FlowContext#vars for (self: Object): HashMap[Variable, nullable MType] */
6225 val
* VIRTUAL_typing__FlowContext__vars(val
* self
) {
6226 val
* var
/* : HashMap[Variable, nullable MType] */;
6227 val
* var1
/* : HashMap[Variable, nullable MType] */;
6228 val
* var3
/* : HashMap[Variable, nullable MType] */;
6229 { /* Inline typing#FlowContext#vars (self) on <self:Object(FlowContext)> */
6230 var3
= self
->attrs
[COLOR_typing__FlowContext___vars
].val
; /* _vars on <self:Object(FlowContext)> */
6231 if (unlikely(var3
== NULL
)) {
6232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6233 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 508);
6243 /* method typing#FlowContext#cache for (self: FlowContext): HashMap[Variable, nullable Array[nullable MType]] */
6244 val
* typing__FlowContext__cache(val
* self
) {
6245 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6246 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6247 var1
= self
->attrs
[COLOR_typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
6248 if (unlikely(var1
== NULL
)) {
6249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
6250 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 510);
6257 /* method typing#FlowContext#cache for (self: Object): HashMap[Variable, nullable Array[nullable MType]] */
6258 val
* VIRTUAL_typing__FlowContext__cache(val
* self
) {
6259 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6260 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6261 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6262 { /* Inline typing#FlowContext#cache (self) on <self:Object(FlowContext)> */
6263 var3
= self
->attrs
[COLOR_typing__FlowContext___cache
].val
; /* _cache on <self:Object(FlowContext)> */
6264 if (unlikely(var3
== NULL
)) {
6265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
6266 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 510);
6276 /* method typing#FlowContext#set_var for (self: FlowContext, Variable, nullable MType) */
6277 void typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
6278 val
* var_variable
/* var variable: Variable */;
6279 val
* var_mtype
/* var mtype: nullable MType */;
6280 val
* var
/* : HashMap[Variable, nullable MType] */;
6281 val
* var2
/* : HashMap[Variable, nullable MType] */;
6282 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6283 val
* var5
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6284 val
* var6
/* : RemovableCollection[Object] */;
6285 val
* var8
/* : RemovableCollection[Object] */;
6289 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
6290 var2
= self
->attrs
[COLOR_typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
6291 if (unlikely(var2
== NULL
)) {
6292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6293 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 508);
6301 hash_collection__HashMap___91d_93d_61d(var
, var_variable
, var_mtype
); /* Direct call hash_collection#HashMap#[]= on <var:HashMap[Variable, nullable MType]>*/
6304 { /* Inline typing#FlowContext#cache (self) on <self:FlowContext> */
6305 var5
= self
->attrs
[COLOR_typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
6306 if (unlikely(var5
== NULL
)) {
6307 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
6308 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 510);
6316 { /* Inline hash_collection#HashMap#keys (var3) on <var3:HashMap[Variable, nullable Array[nullable MType]]> */
6317 var8
= var3
->attrs
[COLOR_hash_collection__HashMap___keys
].val
; /* _keys on <var3:HashMap[Variable, nullable Array[nullable MType]]> */
6318 if (unlikely(var8
== NULL
)) {
6319 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
6320 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/hash_collection.nit", 249);
6328 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__RemovableCollection__remove
]))(var6
, var_variable
) /* remove on <var6:RemovableCollection[Object](RemovableCollection[Variable])>*/;
6332 /* method typing#FlowContext#set_var for (self: Object, Variable, nullable MType) */
6333 void VIRTUAL_typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
6334 typing__FlowContext__set_var(self
, p0
, p1
); /* Direct call typing#FlowContext#set_var on <self:Object(FlowContext)>*/
6337 /* method typing#FlowContext#collect_types for (self: FlowContext, Variable): nullable Array[nullable MType] */
6338 val
* typing__FlowContext__collect_types(val
* self
, val
* p0
) {
6339 val
* var
/* : nullable Array[nullable MType] */;
6340 val
* var_variable
/* var variable: Variable */;
6341 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6342 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6343 short int var4
/* : Bool */;
6344 val
* var5
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6345 val
* var7
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6346 val
* var8
/* : nullable Object */;
6347 val
* var9
/* : null */;
6348 val
* var_res
/* var res: nullable Array[nullable MType] */;
6349 val
* var10
/* : HashMap[Variable, nullable MType] */;
6350 val
* var12
/* : HashMap[Variable, nullable MType] */;
6351 short int var13
/* : Bool */;
6352 val
* var14
/* : HashMap[Variable, nullable MType] */;
6353 val
* var16
/* : HashMap[Variable, nullable MType] */;
6354 val
* var17
/* : nullable Object */;
6355 val
* var_mtype
/* var mtype: nullable MType */;
6356 val
* var18
/* : Array[nullable MType] */;
6357 long var19
/* : Int */;
6358 val
* var_
/* var : Array[nullable MType] */;
6359 val
* var20
/* : Array[FlowContext] */;
6360 val
* var22
/* : Array[FlowContext] */;
6361 short int var23
/* : Bool */;
6362 val
* var24
/* : Array[nullable MType] */;
6363 long var25
/* : Int */;
6364 val
* var_26
/* var : Array[nullable MType] */;
6365 val
* var27
/* : nullable MType */;
6366 val
* var29
/* : nullable MType */;
6367 val
* var30
/* : Array[FlowContext] */;
6368 val
* var32
/* : Array[FlowContext] */;
6369 val
* var_33
/* var : Array[FlowContext] */;
6370 val
* var34
/* : ArrayIterator[nullable Object] */;
6371 val
* var_35
/* var : ArrayIterator[FlowContext] */;
6372 short int var36
/* : Bool */;
6373 val
* var37
/* : nullable Object */;
6374 val
* var_flow
/* var flow: FlowContext */;
6375 short int var38
/* : Bool */;
6376 val
* var39
/* : nullable Array[nullable MType] */;
6377 val
* var_r2
/* var r2: nullable Array[nullable MType] */;
6378 val
* var40
/* : null */;
6379 short int var41
/* : Bool */;
6380 short int var42
/* : Bool */;
6381 val
* var43
/* : null */;
6382 short int var44
/* : Bool */;
6383 short int var45
/* : Bool */;
6384 val
* var46
/* : Array[nullable Object] */;
6385 val
* var_47
/* var : Array[nullable MType] */;
6386 val
* var48
/* : ArrayIterator[nullable Object] */;
6387 val
* var_49
/* var : ArrayIterator[nullable MType] */;
6388 short int var50
/* : Bool */;
6389 val
* var51
/* : nullable Object */;
6390 val
* var_t
/* var t: nullable MType */;
6391 short int var52
/* : Bool */;
6392 short int var53
/* : Bool */;
6393 val
* var58
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6394 val
* var60
/* : HashMap[Variable, nullable Array[nullable MType]] */;
6397 { /* Inline typing#FlowContext#cache (self) on <self:FlowContext> */
6398 var3
= self
->attrs
[COLOR_typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
6399 if (unlikely(var3
== NULL
)) {
6400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
6401 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 510);
6409 var4
= abstract_collection__MapRead__has_key(var1
, var_variable
);
6413 { /* Inline typing#FlowContext#cache (self) on <self:FlowContext> */
6414 var7
= self
->attrs
[COLOR_typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
6415 if (unlikely(var7
== NULL
)) {
6416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
6417 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 510);
6425 var8
= hash_collection__HashMap___91d_93d(var5
, var_variable
);
6434 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
6435 var12
= self
->attrs
[COLOR_typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
6436 if (unlikely(var12
== NULL
)) {
6437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6438 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 508);
6442 RET_LABEL11
:(void)0;
6446 var13
= abstract_collection__MapRead__has_key(var10
, var_variable
);
6450 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
6451 var16
= self
->attrs
[COLOR_typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
6452 if (unlikely(var16
== NULL
)) {
6453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6454 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 508);
6458 RET_LABEL15
:(void)0;
6462 var17
= hash_collection__HashMap___91d_93d(var14
, var_variable
);
6465 var18
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
6468 array__Array__with_capacity(var18
, var19
); /* Direct call array#Array#with_capacity on <var18:Array[nullable MType]>*/
6472 array__AbstractArray__push(var_
, var_mtype
); /* Direct call array#AbstractArray#push on <var_:Array[nullable MType]>*/
6477 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
6478 var22
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
6479 if (unlikely(var22
== NULL
)) {
6480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
6481 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
6485 RET_LABEL21
:(void)0;
6489 var23
= array__AbstractArrayRead__is_empty(var20
);
6492 var24
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
6495 array__Array__with_capacity(var24
, var25
); /* Direct call array#Array#with_capacity on <var24:Array[nullable MType]>*/
6499 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
6500 var29
= var_variable
->attrs
[COLOR_typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
6502 RET_LABEL28
:(void)0;
6506 array__AbstractArray__push(var_26
, var27
); /* Direct call array#AbstractArray#push on <var_26:Array[nullable MType]>*/
6511 { /* Inline flow#FlowContext#previous (self) on <self:FlowContext> */
6512 var32
= self
->attrs
[COLOR_flow__FlowContext___previous
].val
; /* _previous on <self:FlowContext> */
6513 if (unlikely(var32
== NULL
)) {
6514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
6515 PRINT_ERROR(" (%s:%d)\n", "semantize/flow.nit", 189);
6519 RET_LABEL31
:(void)0;
6524 var34
= array__AbstractArrayRead__iterator(var_33
);
6529 var36
= array__ArrayIterator__is_ok(var_35
);
6533 var37
= array__ArrayIterator__item(var_35
);
6537 var38
= flow__FlowContext__is_unreachable(var_flow
);
6544 var39
= typing__FlowContext__collect_types(var_flow
, var_variable
);
6548 if (var_r2
== NULL
) {
6549 var41
= 1; /* is null */
6551 var41
= 0; /* arg is null but recv is not */
6554 var42
= array__Array___61d_61d(var_r2
, var40
);
6562 if (var_res
== NULL
) {
6563 var44
= 1; /* is null */
6565 var44
= 0; /* arg is null but recv is not */
6568 var45
= array__Array___61d_61d(var_res
, var43
);
6573 var46
= array__Collection__to_a(var_r2
);
6579 var48
= array__AbstractArrayRead__iterator(var_47
);
6584 var50
= array__ArrayIterator__is_ok(var_49
);
6588 var51
= array__ArrayIterator__item(var_49
);
6592 var52
= array__AbstractArrayRead__has(var_res
, var_t
);
6597 array__Array__add(var_res
, var_t
); /* Direct call array#Array#add on <var_res:nullable Array[nullable MType](Array[nullable MType])>*/
6602 array__ArrayIterator__next(var_49
); /* Direct call array#ArrayIterator#next on <var_49:ArrayIterator[nullable MType]>*/
6608 BREAK_label54
: (void)0;
6610 { /* Inline abstract_collection#Iterator#finish (var_49) on <var_49:ArrayIterator[nullable MType]> */
6611 RET_LABEL55
:(void)0;
6615 BREAK_label
: (void)0;
6617 array__ArrayIterator__next(var_35
); /* Direct call array#ArrayIterator#next on <var_35:ArrayIterator[FlowContext]>*/
6623 BREAK_label56
: (void)0;
6625 { /* Inline abstract_collection#Iterator#finish (var_35) on <var_35:ArrayIterator[FlowContext]> */
6626 RET_LABEL57
:(void)0;
6632 { /* Inline typing#FlowContext#cache (self) on <self:FlowContext> */
6633 var60
= self
->attrs
[COLOR_typing__FlowContext___cache
].val
; /* _cache on <self:FlowContext> */
6634 if (unlikely(var60
== NULL
)) {
6635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cache");
6636 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 510);
6640 RET_LABEL59
:(void)0;
6644 hash_collection__HashMap___91d_93d_61d(var58
, var_variable
, var_res
); /* Direct call hash_collection#HashMap#[]= on <var58:HashMap[Variable, nullable Array[nullable MType]]>*/
6651 /* method typing#FlowContext#collect_types for (self: Object, Variable): nullable Array[nullable MType] */
6652 val
* VIRTUAL_typing__FlowContext__collect_types(val
* self
, val
* p0
) {
6653 val
* var
/* : nullable Array[nullable MType] */;
6654 val
* var1
/* : nullable Array[nullable MType] */;
6655 var1
= typing__FlowContext__collect_types(self
, p0
);
6660 /* method typing#APropdef#do_typing for (self: APropdef, ModelBuilder) */
6661 void typing__APropdef__do_typing(val
* self
, val
* p0
) {
6662 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
6663 var_modelbuilder
= p0
;
6666 /* method typing#APropdef#do_typing for (self: Object, ModelBuilder) */
6667 void VIRTUAL_typing__APropdef__do_typing(val
* self
, val
* p0
) {
6668 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
6669 { /* Inline typing#APropdef#do_typing (self,p0) on <self:Object(APropdef)> */
6670 var_modelbuilder
= p0
;
6675 /* method typing#APropdef#selfvariable= for (self: APropdef, nullable Variable) */
6676 void typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
6677 self
->attrs
[COLOR_typing__APropdef___selfvariable
].val
= p0
; /* _selfvariable on <self:APropdef> */
6680 /* method typing#APropdef#selfvariable= for (self: Object, nullable Variable) */
6681 void VIRTUAL_typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
6682 { /* Inline typing#APropdef#selfvariable= (self,p0) on <self:Object(APropdef)> */
6683 self
->attrs
[COLOR_typing__APropdef___selfvariable
].val
= p0
; /* _selfvariable on <self:Object(APropdef)> */
6688 /* method typing#AMethPropdef#do_typing for (self: AMethPropdef, ModelBuilder) */
6689 void typing__AMethPropdef__do_typing(val
* self
, val
* p0
) {
6690 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
6691 val
* var
/* : nullable AExpr */;
6692 val
* var2
/* : nullable AExpr */;
6693 val
* var_nblock
/* var nblock: nullable AExpr */;
6694 val
* var3
/* : null */;
6695 short int var4
/* : Bool */;
6696 short int var5
/* : Bool */;
6697 val
* var_other
/* var other: nullable Object */;
6698 short int var7
/* : Bool */;
6699 short int var9
/* : Bool */;
6700 val
* var10
/* : nullable MPropDef */;
6701 val
* var12
/* : nullable MPropDef */;
6702 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
6703 val
* var13
/* : TypeVisitor */;
6704 val
* var14
/* : MClassDef */;
6705 val
* var16
/* : MClassDef */;
6706 val
* var17
/* : MModule */;
6707 val
* var19
/* : MModule */;
6708 val
* var_v
/* var v: TypeVisitor */;
6709 val
* var20
/* : Variable */;
6710 val
* var22
/* : Variable */;
6711 val
* var24
/* : nullable MPropDef */;
6712 val
* var26
/* : nullable MPropDef */;
6713 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
6714 long var27
/* : Int */;
6715 long var_i
/* var i: Int */;
6716 val
* var28
/* : nullable MSignature */;
6717 val
* var30
/* : nullable MSignature */;
6718 long var31
/* : Int */;
6719 long var_
/* var : Int */;
6720 short int var32
/* : Bool */;
6721 short int var34
/* : Bool */;
6724 const char* var_class_name
;
6725 short int var35
/* : Bool */;
6726 val
* var36
/* : nullable MSignature */;
6727 val
* var38
/* : nullable MSignature */;
6728 val
* var39
/* : Array[MParameter] */;
6729 val
* var41
/* : Array[MParameter] */;
6730 val
* var42
/* : nullable Object */;
6731 val
* var43
/* : MType */;
6732 val
* var45
/* : MType */;
6733 val
* var_mtype
/* var mtype: MType */;
6734 val
* var46
/* : nullable MSignature */;
6735 val
* var48
/* : nullable MSignature */;
6736 long var49
/* : Int */;
6737 long var51
/* : Int */;
6738 short int var52
/* : Bool */;
6739 short int var53
/* : Bool */;
6740 short int var55
/* : Bool */;
6741 val
* var56
/* : nullable ASignature */;
6742 val
* var58
/* : nullable ASignature */;
6743 val
* var59
/* : ANodes[AParam] */;
6744 val
* var61
/* : ANodes[AParam] */;
6745 val
* var62
/* : ANode */;
6746 static val
* varonce
;
6747 val
* var63
/* : String */;
6748 char* var64
/* : NativeString */;
6749 long var65
/* : Int */;
6750 val
* var66
/* : FlatString */;
6751 val
* var67
/* : nullable MClass */;
6752 val
* var_arrayclass
/* var arrayclass: nullable MClass */;
6753 val
* var68
/* : null */;
6754 short int var69
/* : Bool */;
6755 short int var70
/* : Bool */;
6756 short int var72
/* : Bool */;
6757 short int var74
/* : Bool */;
6758 val
* var75
/* : Array[MType] */;
6759 long var76
/* : Int */;
6760 val
* var_77
/* var : Array[MType] */;
6761 val
* var78
/* : MClassType */;
6762 val
* var79
/* : nullable ASignature */;
6763 val
* var81
/* : nullable ASignature */;
6764 val
* var82
/* : ANodes[AParam] */;
6765 val
* var84
/* : ANodes[AParam] */;
6766 val
* var85
/* : ANode */;
6767 val
* var86
/* : nullable Variable */;
6768 val
* var88
/* : nullable Variable */;
6769 val
* var_variable
/* var variable: nullable Variable */;
6770 val
* var89
/* : null */;
6771 short int var90
/* : Bool */;
6772 short int var91
/* : Bool */;
6773 val
* var_other93
/* var other: nullable Object */;
6774 short int var94
/* : Bool */;
6775 short int var95
/* : Bool */;
6776 short int var96
/* : Bool */;
6777 long var98
/* : Int */;
6778 long var99
/* : Int */;
6779 short int var100
/* : Bool */;
6780 val
* var101
/* : nullable FlowContext */;
6781 val
* var103
/* : nullable FlowContext */;
6782 short int var104
/* : Bool */;
6783 short int var105
/* : Bool */;
6784 short int var_106
/* var : Bool */;
6785 val
* var107
/* : nullable MSignature */;
6786 val
* var109
/* : nullable MSignature */;
6787 val
* var110
/* : nullable MType */;
6788 val
* var112
/* : nullable MType */;
6789 val
* var113
/* : null */;
6790 short int var114
/* : Bool */;
6791 short int var115
/* : Bool */;
6792 short int var117
/* : Bool */;
6793 short int var118
/* : Bool */;
6794 short int var119
/* : Bool */;
6795 static val
* varonce120
;
6796 val
* var121
/* : String */;
6797 char* var122
/* : NativeString */;
6798 long var123
/* : Int */;
6799 val
* var124
/* : FlatString */;
6800 var_modelbuilder
= p0
;
6802 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
6803 var2
= self
->attrs
[COLOR_parser_nodes__AMethPropdef___n_block
].val
; /* _n_block on <self:AMethPropdef> */
6810 if (var_nblock
== NULL
) {
6811 var4
= 1; /* is null */
6813 var4
= 0; /* arg is null but recv is not */
6816 { /* Inline kernel#Object#== (var_nblock,var3) on <var_nblock:nullable AExpr> */
6819 { /* Inline kernel#Object#is_same_instance (var_nblock,var_other) on <var_nblock:nullable AExpr(AExpr)> */
6820 var9
= var_nblock
== var_other
;
6837 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
6838 var12
= self
->attrs
[COLOR_modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AMethPropdef> */
6840 RET_LABEL11
:(void)0;
6843 if (unlikely(var10
== NULL
)) {
6844 PRINT_ERROR("Runtime error: %s", "Cast failed");
6845 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 568);
6848 var_mpropdef
= var10
;
6849 var13
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
6851 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
6852 var16
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MMethodDef> */
6853 if (unlikely(var16
== NULL
)) {
6854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6855 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
6859 RET_LABEL15
:(void)0;
6863 { /* Inline model#MClassDef#mmodule (var14) on <var14:MClassDef> */
6864 var19
= var14
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var14:MClassDef> */
6865 if (unlikely(var19
== NULL
)) {
6866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6867 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
6871 RET_LABEL18
:(void)0;
6875 typing__TypeVisitor__init(var13
, var_modelbuilder
, var17
, var_mpropdef
); /* Direct call typing#TypeVisitor#init on <var13:TypeVisitor>*/
6879 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
6880 var22
= var_v
->attrs
[COLOR_typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
6881 if (unlikely(var22
== NULL
)) {
6882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
6883 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 50);
6887 RET_LABEL21
:(void)0;
6891 { /* Inline typing#APropdef#selfvariable= (self,var20) on <self:AMethPropdef> */
6892 self
->attrs
[COLOR_typing__APropdef___selfvariable
].val
= var20
; /* _selfvariable on <self:AMethPropdef> */
6893 RET_LABEL23
:(void)0;
6897 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
6898 var26
= self
->attrs
[COLOR_modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AMethPropdef> */
6900 RET_LABEL25
:(void)0;
6903 if (unlikely(var24
== NULL
)) {
6904 PRINT_ERROR("Runtime error: %s", "Cast failed");
6905 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 572);
6908 var_mmethoddef
= var24
;
6912 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6913 var30
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
6915 RET_LABEL29
:(void)0;
6918 if (var28
== NULL
) {
6919 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6920 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 573);
6923 var31
= model__MSignature__arity(var28
);
6928 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
6929 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
6930 /* <var_:Int> isa OTHER */
6931 var34
= 1; /* easy <var_:Int> isa OTHER*/
6932 if (unlikely(!var34
)) {
6933 var_class_name
= type_kernel__Int
.name
;
6934 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6935 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
6938 var35
= var_i
< var_
;
6941 RET_LABEL33
:(void)0;
6946 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6947 var38
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
6949 RET_LABEL37
:(void)0;
6952 if (var36
== NULL
) {
6953 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6954 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 574);
6957 { /* Inline model#MSignature#mparameters (var36) on <var36:nullable MSignature> */
6958 if (unlikely(var36
== NULL
)) {
6959 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6960 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
6963 var41
= var36
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var36:nullable MSignature> */
6964 if (unlikely(var41
== NULL
)) {
6965 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6966 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
6970 RET_LABEL40
:(void)0;
6974 var42
= array__Array___91d_93d(var39
, var_i
);
6977 { /* Inline model#MParameter#mtype (var42) on <var42:nullable Object(MParameter)> */
6978 var45
= var42
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var42:nullable Object(MParameter)> */
6979 if (unlikely(var45
== NULL
)) {
6980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6981 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
6985 RET_LABEL44
:(void)0;
6990 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6991 var48
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
6993 RET_LABEL47
:(void)0;
6996 if (var46
== NULL
) {
6997 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6998 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 575);
7001 { /* Inline model#MSignature#vararg_rank (var46) on <var46:nullable MSignature> */
7002 if (unlikely(var46
== NULL
)) {
7003 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7004 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1510);
7007 var51
= var46
->attrs
[COLOR_model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var46:nullable MSignature> */
7009 RET_LABEL50
:(void)0;
7013 { /* Inline kernel#Int#== (var49,var_i) on <var49:Int> */
7014 var55
= var49
== var_i
;
7017 RET_LABEL54
:(void)0;
7023 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
7024 var58
= self
->attrs
[COLOR_parser_nodes__AMethPropdef___n_signature
].val
; /* _n_signature on <self:AMethPropdef> */
7026 RET_LABEL57
:(void)0;
7029 if (var56
== NULL
) {
7030 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7031 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 576);
7034 { /* Inline parser_nodes#ASignature#n_params (var56) on <var56:nullable ASignature> */
7035 if (unlikely(var56
== NULL
)) {
7036 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7037 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1279);
7040 var61
= var56
->attrs
[COLOR_parser_nodes__ASignature___n_params
].val
; /* _n_params on <var56:nullable ASignature> */
7041 if (unlikely(var61
== NULL
)) {
7042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
7043 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1279);
7047 RET_LABEL60
:(void)0;
7051 var62
= parser_nodes__ANodes___91d_93d(var59
, var_i
);
7058 var66
= string__NativeString__to_s_with_length(var64
, var65
);
7063 var67
= typing__TypeVisitor__get_mclass(var_v
, var62
, var63
);
7065 var_arrayclass
= var67
;
7067 if (var_arrayclass
== NULL
) {
7068 var69
= 1; /* is null */
7070 var69
= 0; /* arg is null but recv is not */
7073 { /* Inline kernel#Object#== (var_arrayclass,var68) on <var_arrayclass:nullable MClass> */
7076 { /* Inline kernel#Object#is_same_instance (var_arrayclass,var_other) on <var_arrayclass:nullable MClass(MClass)> */
7077 var74
= var_arrayclass
== var_other
;
7080 RET_LABEL73
:(void)0;
7085 RET_LABEL71
:(void)0;
7093 var75
= NEW_array__Array(&type_array__Arraymodel__MType
);
7096 array__Array__with_capacity(var75
, var76
); /* Direct call array#Array#with_capacity on <var75:Array[MType]>*/
7100 array__AbstractArray__push(var_77
, var_mtype
); /* Direct call array#AbstractArray#push on <var_77:Array[MType]>*/
7103 var78
= model__MClass__get_mtype(var_arrayclass
, var_77
);
7109 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
7110 var81
= self
->attrs
[COLOR_parser_nodes__AMethPropdef___n_signature
].val
; /* _n_signature on <self:AMethPropdef> */
7112 RET_LABEL80
:(void)0;
7115 if (var79
== NULL
) {
7116 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7117 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 580);
7120 { /* Inline parser_nodes#ASignature#n_params (var79) on <var79:nullable ASignature> */
7121 if (unlikely(var79
== NULL
)) {
7122 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7123 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1279);
7126 var84
= var79
->attrs
[COLOR_parser_nodes__ASignature___n_params
].val
; /* _n_params on <var79:nullable ASignature> */
7127 if (unlikely(var84
== NULL
)) {
7128 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
7129 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1279);
7133 RET_LABEL83
:(void)0;
7137 var85
= parser_nodes__ANodes___91d_93d(var82
, var_i
);
7140 { /* Inline scope#AParam#variable (var85) on <var85:ANode(AParam)> */
7141 var88
= var85
->attrs
[COLOR_scope__AParam___variable
].val
; /* _variable on <var85:ANode(AParam)> */
7143 RET_LABEL87
:(void)0;
7146 var_variable
= var86
;
7148 if (var_variable
== NULL
) {
7149 var90
= 0; /* is null */
7151 var90
= 1; /* arg is null and recv is not */
7154 { /* Inline kernel#Object#!= (var_variable,var89) on <var_variable:nullable Variable> */
7155 var_other93
= var89
;
7157 var95
= ((short int (*)(val
*, val
*))(var_variable
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_variable
, var_other93
) /* == on <var_variable:nullable Variable(Variable)>*/;
7163 RET_LABEL92
:(void)0;
7167 if (unlikely(!var90
)) {
7168 PRINT_ERROR("Runtime error: %s", "Assert failed");
7169 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 581);
7173 { /* Inline typing#Variable#declared_type= (var_variable,var_mtype) on <var_variable:nullable Variable(Variable)> */
7174 var_variable
->attrs
[COLOR_typing__Variable___declared_type
].val
= var_mtype
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
7175 RET_LABEL97
:(void)0;
7180 var99
= kernel__Int__successor(var_i
, var98
);
7187 BREAK_label
: (void)0;
7189 typing__TypeVisitor__visit_stmt(var_v
, var_nblock
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
7192 { /* Inline flow#AExpr#after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
7193 var103
= var_nblock
->attrs
[COLOR_flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
7195 RET_LABEL102
:(void)0;
7198 if (var101
== NULL
) {
7199 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7200 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 586);
7203 var104
= flow__FlowContext__is_unreachable(var101
);
7209 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
7210 var109
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
7212 RET_LABEL108
:(void)0;
7215 if (var107
== NULL
) {
7216 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7217 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 586);
7220 { /* Inline model#MSignature#return_mtype (var107) on <var107:nullable MSignature> */
7221 if (unlikely(var107
== NULL
)) {
7222 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7223 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1468);
7226 var112
= var107
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var107:nullable MSignature> */
7228 RET_LABEL111
:(void)0;
7232 if (var110
== NULL
) {
7233 var114
= 0; /* is null */
7235 var114
= 1; /* arg is null and recv is not */
7238 { /* Inline kernel#Object#!= (var110,var113) on <var110:nullable MType> */
7239 var_other93
= var113
;
7241 var118
= ((short int (*)(val
*, val
*))(var110
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var110
, var_other93
) /* == on <var110:nullable MType(MType)>*/;
7247 RET_LABEL116
:(void)0;
7257 var121
= varonce120
;
7259 var122
= "Control error: Reached end of function (a \'return\' with a value was expected).";
7261 var124
= string__NativeString__to_s_with_length(var122
, var123
);
7263 varonce120
= var121
;
7266 typing__TypeVisitor__error(var_v
, self
, var121
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7272 /* method typing#AMethPropdef#do_typing for (self: Object, ModelBuilder) */
7273 void VIRTUAL_typing__AMethPropdef__do_typing(val
* self
, val
* p0
) {
7274 typing__AMethPropdef__do_typing(self
, p0
); /* Direct call typing#AMethPropdef#do_typing on <self:Object(AMethPropdef)>*/
7277 /* method typing#AAttrPropdef#do_typing for (self: AAttrPropdef, ModelBuilder) */
7278 void typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
7279 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
7280 val
* var
/* : nullable MPropDef */;
7281 val
* var2
/* : nullable MPropDef */;
7282 val
* var_mpropdef
/* var mpropdef: MAttributeDef */;
7283 val
* var3
/* : TypeVisitor */;
7284 val
* var4
/* : MClassDef */;
7285 val
* var6
/* : MClassDef */;
7286 val
* var7
/* : MModule */;
7287 val
* var9
/* : MModule */;
7288 val
* var_v
/* var v: TypeVisitor */;
7289 val
* var10
/* : Variable */;
7290 val
* var12
/* : Variable */;
7291 val
* var14
/* : nullable AExpr */;
7292 val
* var16
/* : nullable AExpr */;
7293 val
* var_nexpr
/* var nexpr: nullable AExpr */;
7294 val
* var17
/* : null */;
7295 short int var18
/* : Bool */;
7296 short int var19
/* : Bool */;
7297 val
* var_other
/* var other: nullable Object */;
7298 short int var21
/* : Bool */;
7299 short int var22
/* : Bool */;
7300 short int var23
/* : Bool */;
7301 val
* var24
/* : nullable MPropDef */;
7302 val
* var26
/* : nullable MPropDef */;
7303 val
* var27
/* : nullable MType */;
7304 val
* var29
/* : nullable MType */;
7305 val
* var_mtype
/* var mtype: nullable MType */;
7306 val
* var30
/* : nullable MType */;
7307 val
* var31
/* : nullable AExpr */;
7308 val
* var33
/* : nullable AExpr */;
7309 val
* var_nblock
/* var nblock: nullable AExpr */;
7310 val
* var34
/* : null */;
7311 short int var35
/* : Bool */;
7312 short int var36
/* : Bool */;
7313 short int var38
/* : Bool */;
7314 short int var39
/* : Bool */;
7315 short int var40
/* : Bool */;
7316 var_modelbuilder
= p0
;
7318 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
7319 var2
= self
->attrs
[COLOR_modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AAttrPropdef> */
7324 if (unlikely(var
== NULL
)) {
7325 PRINT_ERROR("Runtime error: %s", "Cast failed");
7326 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 596);
7330 var3
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
7332 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MAttributeDef> */
7333 var6
= var_mpropdef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:MAttributeDef> */
7334 if (unlikely(var6
== NULL
)) {
7335 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7336 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
7344 { /* Inline model#MClassDef#mmodule (var4) on <var4:MClassDef> */
7345 var9
= var4
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var4:MClassDef> */
7346 if (unlikely(var9
== NULL
)) {
7347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7348 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
7356 typing__TypeVisitor__init(var3
, var_modelbuilder
, var7
, var_mpropdef
); /* Direct call typing#TypeVisitor#init on <var3:TypeVisitor>*/
7360 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
7361 var12
= var_v
->attrs
[COLOR_typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
7362 if (unlikely(var12
== NULL
)) {
7363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
7364 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 50);
7368 RET_LABEL11
:(void)0;
7372 { /* Inline typing#APropdef#selfvariable= (self,var10) on <self:AAttrPropdef> */
7373 self
->attrs
[COLOR_typing__APropdef___selfvariable
].val
= var10
; /* _selfvariable on <self:AAttrPropdef> */
7374 RET_LABEL13
:(void)0;
7378 { /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
7379 var16
= self
->attrs
[COLOR_parser_nodes__AAttrPropdef___n_expr
].val
; /* _n_expr on <self:AAttrPropdef> */
7381 RET_LABEL15
:(void)0;
7386 if (var_nexpr
== NULL
) {
7387 var18
= 0; /* is null */
7389 var18
= 1; /* arg is null and recv is not */
7392 { /* Inline kernel#Object#!= (var_nexpr,var17) on <var_nexpr:nullable AExpr> */
7395 var22
= ((short int (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nexpr
, var_other
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
7401 RET_LABEL20
:(void)0;
7407 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
7408 var26
= self
->attrs
[COLOR_modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AAttrPropdef> */
7410 RET_LABEL25
:(void)0;
7413 if (var24
== NULL
) {
7414 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7415 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 602);
7418 { /* Inline model#MAttributeDef#static_mtype (var24) on <var24:nullable MPropDef(nullable MAttributeDef)> */
7419 if (unlikely(var24
== NULL
)) {
7420 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7421 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 2006);
7424 var29
= var24
->attrs
[COLOR_model__MAttributeDef___static_mtype
].val
; /* _static_mtype on <var24:nullable MPropDef(nullable MAttributeDef)> */
7426 RET_LABEL28
:(void)0;
7431 var30
= typing__TypeVisitor__visit_expr_subtype(var_v
, var_nexpr
, var_mtype
);
7436 { /* Inline parser_nodes#AAttrPropdef#n_block (self) on <self:AAttrPropdef> */
7437 var33
= self
->attrs
[COLOR_parser_nodes__AAttrPropdef___n_block
].val
; /* _n_block on <self:AAttrPropdef> */
7439 RET_LABEL32
:(void)0;
7444 if (var_nblock
== NULL
) {
7445 var35
= 0; /* is null */
7447 var35
= 1; /* arg is null and recv is not */
7450 { /* Inline kernel#Object#!= (var_nblock,var34) on <var_nblock:nullable AExpr> */
7453 var39
= ((short int (*)(val
*, val
*))(var_nblock
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nblock
, var_other
) /* == on <var_nblock:nullable AExpr(AExpr)>*/;
7459 RET_LABEL37
:(void)0;
7465 typing__TypeVisitor__visit_stmt(var_v
, var_nblock
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
7471 /* method typing#AAttrPropdef#do_typing for (self: Object, ModelBuilder) */
7472 void VIRTUAL_typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
7473 typing__AAttrPropdef__do_typing(self
, p0
); /* Direct call typing#AAttrPropdef#do_typing on <self:Object(AAttrPropdef)>*/
7476 /* method typing#AExpr#mtype for (self: AExpr): nullable MType */
7477 val
* typing__AExpr__mtype(val
* self
) {
7478 val
* var
/* : nullable MType */;
7479 val
* var1
/* : nullable MType */;
7480 var1
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:AExpr> */
7485 /* method typing#AExpr#mtype for (self: Object): nullable MType */
7486 val
* VIRTUAL_typing__AExpr__mtype(val
* self
) {
7487 val
* var
/* : nullable MType */;
7488 val
* var1
/* : nullable MType */;
7489 val
* var3
/* : nullable MType */;
7490 { /* Inline typing#AExpr#mtype (self) on <self:Object(AExpr)> */
7491 var3
= self
->attrs
[COLOR_typing__AExpr___mtype
].val
; /* _mtype on <self:Object(AExpr)> */
7499 /* method typing#AExpr#mtype= for (self: AExpr, nullable MType) */
7500 void typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
7501 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= p0
; /* _mtype on <self:AExpr> */
7504 /* method typing#AExpr#mtype= for (self: Object, nullable MType) */
7505 void VIRTUAL_typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
7506 { /* Inline typing#AExpr#mtype= (self,p0) on <self:Object(AExpr)> */
7507 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= p0
; /* _mtype on <self:Object(AExpr)> */
7512 /* method typing#AExpr#is_typed for (self: AExpr): Bool */
7513 short int typing__AExpr__is_typed(val
* self
) {
7514 short int var
/* : Bool */;
7515 short int var1
/* : Bool */;
7516 var1
= self
->attrs
[COLOR_typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
7521 /* method typing#AExpr#is_typed for (self: Object): Bool */
7522 short int VIRTUAL_typing__AExpr__is_typed(val
* self
) {
7523 short int var
/* : Bool */;
7524 short int var1
/* : Bool */;
7525 short int var3
/* : Bool */;
7526 { /* Inline typing#AExpr#is_typed (self) on <self:Object(AExpr)> */
7527 var3
= self
->attrs
[COLOR_typing__AExpr___is_typed
].s
; /* _is_typed on <self:Object(AExpr)> */
7535 /* method typing#AExpr#is_typed= for (self: AExpr, Bool) */
7536 void typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
7537 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= p0
; /* _is_typed on <self:AExpr> */
7540 /* method typing#AExpr#is_typed= for (self: Object, Bool) */
7541 void VIRTUAL_typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
7542 { /* Inline typing#AExpr#is_typed= (self,p0) on <self:Object(AExpr)> */
7543 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= p0
; /* _is_typed on <self:Object(AExpr)> */
7548 /* method typing#AExpr#implicit_cast_to for (self: AExpr): nullable MType */
7549 val
* typing__AExpr__implicit_cast_to(val
* self
) {
7550 val
* var
/* : nullable MType */;
7551 val
* var1
/* : nullable MType */;
7552 var1
= self
->attrs
[COLOR_typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <self:AExpr> */
7557 /* method typing#AExpr#implicit_cast_to for (self: Object): nullable MType */
7558 val
* VIRTUAL_typing__AExpr__implicit_cast_to(val
* self
) {
7559 val
* var
/* : nullable MType */;
7560 val
* var1
/* : nullable MType */;
7561 val
* var3
/* : nullable MType */;
7562 { /* Inline typing#AExpr#implicit_cast_to (self) on <self:Object(AExpr)> */
7563 var3
= self
->attrs
[COLOR_typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <self:Object(AExpr)> */
7571 /* method typing#AExpr#implicit_cast_to= for (self: AExpr, nullable MType) */
7572 void typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
7573 self
->attrs
[COLOR_typing__AExpr___implicit_cast_to
].val
= p0
; /* _implicit_cast_to on <self:AExpr> */
7576 /* method typing#AExpr#implicit_cast_to= for (self: Object, nullable MType) */
7577 void VIRTUAL_typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
7578 { /* Inline typing#AExpr#implicit_cast_to= (self,p0) on <self:Object(AExpr)> */
7579 self
->attrs
[COLOR_typing__AExpr___implicit_cast_to
].val
= p0
; /* _implicit_cast_to on <self:Object(AExpr)> */
7584 /* method typing#AExpr#its_variable for (self: AExpr): nullable Variable */
7585 val
* typing__AExpr__its_variable(val
* self
) {
7586 val
* var
/* : nullable Variable */;
7587 val
* var1
/* : null */;
7594 /* method typing#AExpr#its_variable for (self: Object): nullable Variable */
7595 val
* VIRTUAL_typing__AExpr__its_variable(val
* self
) {
7596 val
* var
/* : nullable Variable */;
7597 val
* var1
/* : nullable Variable */;
7598 var1
= typing__AExpr__its_variable(self
);
7603 /* method typing#AExpr#accept_typing for (self: AExpr, TypeVisitor) */
7604 void typing__AExpr__accept_typing(val
* self
, val
* p0
) {
7605 val
* var_v
/* var v: TypeVisitor */;
7606 static val
* varonce
;
7607 val
* var
/* : String */;
7608 char* var1
/* : NativeString */;
7609 long var2
/* : Int */;
7610 val
* var3
/* : FlatString */;
7611 val
* var4
/* : String */;
7612 val
* var5
/* : Array[Object] */;
7613 long var6
/* : Int */;
7614 val
* var7
/* : NativeArray[Object] */;
7615 val
* var8
/* : String */;
7620 var1
= "no implemented accept_typing for ";
7622 var3
= string__NativeString__to_s_with_length(var1
, var2
);
7627 var4
= string__Object__class_name(self
);
7629 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
7630 { /* var5 = array_instance Array[Object] */
7632 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
7633 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
7634 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var4
;
7636 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
7640 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
7643 typing__TypeVisitor__error(var_v
, self
, var8
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
7647 /* method typing#AExpr#accept_typing for (self: Object, TypeVisitor) */
7648 void VIRTUAL_typing__AExpr__accept_typing(val
* self
, val
* p0
) {
7649 typing__AExpr__accept_typing(self
, p0
); /* Direct call typing#AExpr#accept_typing on <self:Object(AExpr)>*/
7652 /* method typing#ABlockExpr#accept_typing for (self: ABlockExpr, TypeVisitor) */
7653 void typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
7654 val
* var_v
/* var v: TypeVisitor */;
7655 val
* var
/* : ANodes[AExpr] */;
7656 val
* var2
/* : ANodes[AExpr] */;
7657 val
* var_
/* var : ANodes[AExpr] */;
7658 val
* var3
/* : Iterator[ANode] */;
7659 val
* var_4
/* var : Iterator[AExpr] */;
7660 short int var5
/* : Bool */;
7661 val
* var6
/* : nullable Object */;
7662 val
* var_e
/* var e: AExpr */;
7663 short int var8
/* : Bool */;
7666 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
7667 var2
= self
->attrs
[COLOR_parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
7668 if (unlikely(var2
== NULL
)) {
7669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7670 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1321);
7679 var3
= parser_nodes__ANodes__iterator(var_
);
7684 var5
= ((short int (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_4
) /* is_ok on <var_4:Iterator[AExpr]>*/;
7688 var6
= ((val
* (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_4
) /* item on <var_4:Iterator[AExpr]>*/;
7692 typing__TypeVisitor__visit_stmt(var_v
, var_e
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
7695 ((void (*)(val
*))(var_4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_4
) /* next on <var_4:Iterator[AExpr]>*/;
7701 BREAK_label
: (void)0;
7703 { /* Inline abstract_collection#Iterator#finish (var_4) on <var_4:Iterator[AExpr]> */
7709 { /* Inline typing#AExpr#is_typed= (self,var8) on <self:ABlockExpr> */
7710 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var8
; /* _is_typed on <self:ABlockExpr> */
7716 /* method typing#ABlockExpr#accept_typing for (self: Object, TypeVisitor) */
7717 void VIRTUAL_typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
7718 typing__ABlockExpr__accept_typing(self
, p0
); /* Direct call typing#ABlockExpr#accept_typing on <self:Object(ABlockExpr)>*/
7721 /* method typing#ABlockExpr#mtype for (self: ABlockExpr): nullable MType */
7722 val
* typing__ABlockExpr__mtype(val
* self
) {
7723 val
* var
/* : nullable MType */;
7724 val
* var1
/* : ANodes[AExpr] */;
7725 val
* var3
/* : ANodes[AExpr] */;
7726 short int var4
/* : Bool */;
7727 val
* var5
/* : null */;
7728 val
* var6
/* : ANodes[AExpr] */;
7729 val
* var8
/* : ANodes[AExpr] */;
7730 val
* var9
/* : nullable Object */;
7731 val
* var10
/* : nullable MType */;
7733 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
7734 var3
= self
->attrs
[COLOR_parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
7735 if (unlikely(var3
== NULL
)) {
7736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7737 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1321);
7745 var4
= parser_nodes__ANodes__is_empty(var1
);
7754 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
7755 var8
= self
->attrs
[COLOR_parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
7756 if (unlikely(var8
== NULL
)) {
7757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7758 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1321);
7766 var9
= abstract_collection__SequenceRead__last(var6
);
7769 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_typing__AExpr__mtype
]))(var9
) /* mtype on <var9:nullable Object(AExpr)>*/;
7776 /* method typing#ABlockExpr#mtype for (self: Object): nullable MType */
7777 val
* VIRTUAL_typing__ABlockExpr__mtype(val
* self
) {
7778 val
* var
/* : nullable MType */;
7779 val
* var1
/* : nullable MType */;
7780 var1
= typing__ABlockExpr__mtype(self
);
7785 /* method typing#AVardeclExpr#accept_typing for (self: AVardeclExpr, TypeVisitor) */
7786 void typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
7787 val
* var_v
/* var v: TypeVisitor */;
7788 val
* var
/* : nullable Variable */;
7789 val
* var2
/* : nullable Variable */;
7790 val
* var_variable
/* var variable: nullable Variable */;
7791 val
* var3
/* : null */;
7792 short int var4
/* : Bool */;
7793 short int var5
/* : Bool */;
7794 val
* var_other
/* var other: nullable Object */;
7795 short int var7
/* : Bool */;
7796 short int var9
/* : Bool */;
7797 val
* var10
/* : nullable AType */;
7798 val
* var12
/* : nullable AType */;
7799 val
* var_ntype
/* var ntype: nullable AType */;
7800 val
* var13
/* : null */;
7801 short int var14
/* : Bool */;
7802 short int var15
/* : Bool */;
7803 short int var17
/* : Bool */;
7804 short int var19
/* : Bool */;
7805 val
* var20
/* : null */;
7806 val
* var_mtype
/* var mtype: nullable MType */;
7807 val
* var21
/* : nullable MType */;
7808 val
* var22
/* : null */;
7809 short int var23
/* : Bool */;
7810 short int var24
/* : Bool */;
7811 short int var26
/* : Bool */;
7812 short int var28
/* : Bool */;
7813 val
* var29
/* : nullable AExpr */;
7814 val
* var31
/* : nullable AExpr */;
7815 val
* var_nexpr
/* var nexpr: nullable AExpr */;
7816 val
* var32
/* : null */;
7817 short int var33
/* : Bool */;
7818 short int var34
/* : Bool */;
7819 val
* var_other36
/* var other: nullable Object */;
7820 short int var37
/* : Bool */;
7821 short int var38
/* : Bool */;
7822 short int var39
/* : Bool */;
7823 val
* var40
/* : null */;
7824 short int var41
/* : Bool */;
7825 short int var42
/* : Bool */;
7826 short int var44
/* : Bool */;
7827 short int var45
/* : Bool */;
7828 short int var46
/* : Bool */;
7829 val
* var47
/* : nullable MType */;
7830 val
* var48
/* : nullable MType */;
7831 val
* var49
/* : null */;
7832 short int var50
/* : Bool */;
7833 short int var51
/* : Bool */;
7834 short int var53
/* : Bool */;
7835 short int var55
/* : Bool */;
7836 val
* var_decltype
/* var decltype: nullable MType */;
7837 short int var56
/* : Bool */;
7838 val
* var57
/* : null */;
7839 short int var58
/* : Bool */;
7840 short int var59
/* : Bool */;
7841 short int var61
/* : Bool */;
7842 short int var63
/* : Bool */;
7843 short int var_
/* var : Bool */;
7844 short int var64
/* : Bool */;
7847 static val
* varonce
;
7848 val
* var65
/* : String */;
7849 char* var66
/* : NativeString */;
7850 long var67
/* : Int */;
7851 val
* var68
/* : FlatString */;
7852 val
* var69
/* : nullable MClass */;
7853 val
* var70
/* : MClassType */;
7854 val
* var72
/* : MClassType */;
7855 val
* var73
/* : MType */;
7856 val
* var74
/* : null */;
7857 short int var75
/* : Bool */;
7858 short int var76
/* : Bool */;
7859 short int var78
/* : Bool */;
7860 short int var80
/* : Bool */;
7861 short int var82
/* : Bool */;
7864 { /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
7865 var2
= self
->attrs
[COLOR_scope__AVardeclExpr___variable
].val
; /* _variable on <self:AVardeclExpr> */
7872 if (var_variable
== NULL
) {
7873 var4
= 1; /* is null */
7875 var4
= 0; /* arg is null but recv is not */
7878 { /* Inline kernel#Object#== (var_variable,var3) on <var_variable:nullable Variable> */
7881 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
7882 var9
= var_variable
== var_other
;
7899 { /* Inline parser_nodes#AVardeclExpr#n_type (self) on <self:AVardeclExpr> */
7900 var12
= self
->attrs
[COLOR_parser_nodes__AVardeclExpr___n_type
].val
; /* _n_type on <self:AVardeclExpr> */
7902 RET_LABEL11
:(void)0;
7907 if (var_ntype
== NULL
) {
7908 var14
= 1; /* is null */
7910 var14
= 0; /* arg is null but recv is not */
7913 { /* Inline kernel#Object#== (var_ntype,var13) on <var_ntype:nullable AType> */
7916 { /* Inline kernel#Object#is_same_instance (var_ntype,var_other) on <var_ntype:nullable AType(AType)> */
7917 var19
= var_ntype
== var_other
;
7920 RET_LABEL18
:(void)0;
7925 RET_LABEL16
:(void)0;
7934 var21
= typing__TypeVisitor__resolve_mtype(var_v
, var_ntype
);
7938 if (var_mtype
== NULL
) {
7939 var23
= 1; /* is null */
7941 var23
= 0; /* arg is null but recv is not */
7944 { /* Inline kernel#Object#== (var_mtype,var22) on <var_mtype:nullable MType> */
7947 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
7948 var28
= var_mtype
== var_other
;
7951 RET_LABEL27
:(void)0;
7956 RET_LABEL25
:(void)0;
7966 { /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
7967 var31
= self
->attrs
[COLOR_parser_nodes__AVardeclExpr___n_expr
].val
; /* _n_expr on <self:AVardeclExpr> */
7969 RET_LABEL30
:(void)0;
7974 if (var_nexpr
== NULL
) {
7975 var33
= 0; /* is null */
7977 var33
= 1; /* arg is null and recv is not */
7980 { /* Inline kernel#Object#!= (var_nexpr,var32) on <var_nexpr:nullable AExpr> */
7981 var_other36
= var32
;
7983 var38
= ((short int (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nexpr
, var_other36
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
7989 RET_LABEL35
:(void)0;
7995 if (var_mtype
== NULL
) {
7996 var41
= 0; /* is null */
7998 var41
= 1; /* arg is null and recv is not */
8001 { /* Inline kernel#Object#!= (var_mtype,var40) on <var_mtype:nullable MType> */
8002 var_other36
= var40
;
8004 var45
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other36
) /* == on <var_mtype:nullable MType(MType)>*/;
8010 RET_LABEL43
:(void)0;
8016 var47
= typing__TypeVisitor__visit_expr_subtype(var_v
, var_nexpr
, var_mtype
);
8020 var48
= typing__TypeVisitor__visit_expr(var_v
, var_nexpr
);
8024 if (var_mtype
== NULL
) {
8025 var50
= 1; /* is null */
8027 var50
= 0; /* arg is null but recv is not */
8030 { /* Inline kernel#Object#== (var_mtype,var49) on <var_mtype:nullable MType> */
8033 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
8034 var55
= var_mtype
== var_other
;
8037 RET_LABEL54
:(void)0;
8042 RET_LABEL52
:(void)0;
8053 var_decltype
= var_mtype
;
8055 if (var_mtype
== NULL
) {
8056 var58
= 1; /* is null */
8058 var58
= 0; /* arg is null but recv is not */
8061 { /* Inline kernel#Object#== (var_mtype,var57) on <var_mtype:nullable MType> */
8064 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
8065 var63
= var_mtype
== var_other
;
8068 RET_LABEL62
:(void)0;
8073 RET_LABEL60
:(void)0;
8081 /* <var_mtype:nullable MType(MType)> isa MNullType */
8082 cltype
= type_model__MNullType
.color
;
8083 idtype
= type_model__MNullType
.id
;
8084 if(cltype
>= var_mtype
->type
->table_size
) {
8087 var64
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8097 var68
= string__NativeString__to_s_with_length(var66
, var67
);
8102 var69
= typing__TypeVisitor__get_mclass(var_v
, self
, var65
);
8104 if (var69
== NULL
) {
8105 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8106 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 681);
8109 { /* Inline model#MClass#mclass_type (var69) on <var69:nullable MClass> */
8110 if (unlikely(var69
== NULL
)) {
8111 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8112 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
8115 var72
= var69
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var69:nullable MClass> */
8116 if (unlikely(var72
== NULL
)) {
8117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
8118 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
8122 RET_LABEL71
:(void)0;
8126 var73
= model__MType__as_nullable(var70
);
8128 var_decltype
= var73
;
8130 if (var_mtype
== NULL
) {
8131 var75
= 1; /* is null */
8133 var75
= 0; /* arg is null but recv is not */
8136 { /* Inline kernel#Object#== (var_mtype,var74) on <var_mtype:nullable MType(nullable MNullType)> */
8139 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MNullType(MNullType)> */
8140 var80
= var_mtype
== var_other
;
8143 RET_LABEL79
:(void)0;
8148 RET_LABEL77
:(void)0;
8153 var_mtype
= var_decltype
;
8159 { /* Inline typing#Variable#declared_type= (var_variable,var_decltype) on <var_variable:nullable Variable(Variable)> */
8160 var_variable
->attrs
[COLOR_typing__Variable___declared_type
].val
= var_decltype
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
8161 RET_LABEL81
:(void)0;
8165 typing__TypeVisitor__set_variable(var_v
, self
, var_variable
, var_mtype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
8169 { /* Inline typing#AExpr#is_typed= (self,var82) on <self:AVardeclExpr> */
8170 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var82
; /* _is_typed on <self:AVardeclExpr> */
8171 RET_LABEL83
:(void)0;
8176 /* method typing#AVardeclExpr#accept_typing for (self: Object, TypeVisitor) */
8177 void VIRTUAL_typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
8178 typing__AVardeclExpr__accept_typing(self
, p0
); /* Direct call typing#AVardeclExpr#accept_typing on <self:Object(AVardeclExpr)>*/
8181 /* method typing#AVarExpr#its_variable for (self: AVarExpr): nullable Variable */
8182 val
* typing__AVarExpr__its_variable(val
* self
) {
8183 val
* var
/* : nullable Variable */;
8184 val
* var1
/* : nullable Variable */;
8185 val
* var3
/* : nullable Variable */;
8187 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
8188 var3
= self
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarExpr> */
8198 /* method typing#AVarExpr#its_variable for (self: Object): nullable Variable */
8199 val
* VIRTUAL_typing__AVarExpr__its_variable(val
* self
) {
8200 val
* var
/* : nullable Variable */;
8201 val
* var1
/* : nullable Variable */;
8202 var1
= typing__AVarExpr__its_variable(self
);
8207 /* method typing#AVarExpr#accept_typing for (self: AVarExpr, TypeVisitor) */
8208 void typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
8209 val
* var_v
/* var v: TypeVisitor */;
8210 val
* var
/* : nullable Variable */;
8211 val
* var2
/* : nullable Variable */;
8212 val
* var_variable
/* var variable: nullable Variable */;
8213 val
* var3
/* : null */;
8214 short int var4
/* : Bool */;
8215 short int var5
/* : Bool */;
8216 val
* var_other
/* var other: nullable Object */;
8217 short int var7
/* : Bool */;
8218 short int var9
/* : Bool */;
8219 val
* var10
/* : nullable MType */;
8220 val
* var_mtype
/* var mtype: nullable MType */;
8221 val
* var11
/* : null */;
8222 short int var12
/* : Bool */;
8223 short int var13
/* : Bool */;
8224 val
* var_other15
/* var other: nullable Object */;
8225 short int var16
/* : Bool */;
8226 short int var17
/* : Bool */;
8227 short int var18
/* : Bool */;
8230 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
8231 var2
= self
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarExpr> */
8238 if (var_variable
== NULL
) {
8239 var4
= 1; /* is null */
8241 var4
= 0; /* arg is null but recv is not */
8244 { /* Inline kernel#Object#== (var_variable,var3) on <var_variable:nullable Variable> */
8247 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
8248 var9
= var_variable
== var_other
;
8265 var10
= typing__TypeVisitor__get_variable(var_v
, self
, var_variable
);
8269 if (var_mtype
== NULL
) {
8270 var12
= 0; /* is null */
8272 var12
= 1; /* arg is null and recv is not */
8275 { /* Inline kernel#Object#!= (var_mtype,var11) on <var_mtype:nullable MType> */
8276 var_other15
= var11
;
8278 var17
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var_other15
) /* == on <var_mtype:nullable MType(MType)>*/;
8284 RET_LABEL14
:(void)0;
8292 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVarExpr> */
8293 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:AVarExpr> */
8294 RET_LABEL19
:(void)0;
8299 /* method typing#AVarExpr#accept_typing for (self: Object, TypeVisitor) */
8300 void VIRTUAL_typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
8301 typing__AVarExpr__accept_typing(self
, p0
); /* Direct call typing#AVarExpr#accept_typing on <self:Object(AVarExpr)>*/
8304 /* method typing#AVarAssignExpr#accept_typing for (self: AVarAssignExpr, TypeVisitor) */
8305 void typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
8306 val
* var_v
/* var v: TypeVisitor */;
8307 val
* var
/* : nullable Variable */;
8308 val
* var2
/* : nullable Variable */;
8309 val
* var_variable
/* var variable: nullable Variable */;
8310 val
* var3
/* : null */;
8311 short int var4
/* : Bool */;
8312 short int var5
/* : Bool */;
8313 val
* var_other
/* var other: nullable Object */;
8314 short int var7
/* : Bool */;
8315 short int var8
/* : Bool */;
8316 short int var9
/* : Bool */;
8317 val
* var10
/* : AExpr */;
8318 val
* var12
/* : AExpr */;
8319 val
* var13
/* : nullable MType */;
8320 val
* var15
/* : nullable MType */;
8321 val
* var16
/* : nullable MType */;
8322 val
* var_mtype
/* var mtype: nullable MType */;
8323 short int var17
/* : Bool */;
8326 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarAssignExpr> */
8327 var2
= self
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarAssignExpr> */
8334 if (var_variable
== NULL
) {
8335 var4
= 0; /* is null */
8337 var4
= 1; /* arg is null and recv is not */
8340 { /* Inline kernel#Object#!= (var_variable,var3) on <var_variable:nullable Variable> */
8343 var8
= ((short int (*)(val
*, val
*))(var_variable
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_variable
, var_other
) /* == on <var_variable:nullable Variable(Variable)>*/;
8353 if (unlikely(!var4
)) {
8354 PRINT_ERROR("Runtime error: %s", "Assert failed");
8355 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 716);
8359 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AVarAssignExpr> */
8360 var12
= self
->attrs
[COLOR_parser_nodes__AAssignFormExpr___n_value
].val
; /* _n_value on <self:AVarAssignExpr> */
8361 if (unlikely(var12
== NULL
)) {
8362 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8363 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1445);
8367 RET_LABEL11
:(void)0;
8371 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
8372 var15
= var_variable
->attrs
[COLOR_typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
8374 RET_LABEL14
:(void)0;
8378 var16
= typing__TypeVisitor__visit_expr_subtype(var_v
, var10
, var13
);
8382 typing__TypeVisitor__set_variable(var_v
, self
, var_variable
, var_mtype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
8386 { /* Inline typing#AExpr#is_typed= (self,var17) on <self:AVarAssignExpr> */
8387 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var17
; /* _is_typed on <self:AVarAssignExpr> */
8388 RET_LABEL18
:(void)0;
8393 /* method typing#AVarAssignExpr#accept_typing for (self: Object, TypeVisitor) */
8394 void VIRTUAL_typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
8395 typing__AVarAssignExpr__accept_typing(self
, p0
); /* Direct call typing#AVarAssignExpr#accept_typing on <self:Object(AVarAssignExpr)>*/
8398 /* method typing#AReassignFormExpr#reassign_callsite for (self: AReassignFormExpr): nullable CallSite */
8399 val
* typing__AReassignFormExpr__reassign_callsite(val
* self
) {
8400 val
* var
/* : nullable CallSite */;
8401 val
* var1
/* : nullable CallSite */;
8402 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:AReassignFormExpr> */
8407 /* method typing#AReassignFormExpr#reassign_callsite for (self: Object): nullable CallSite */
8408 val
* VIRTUAL_typing__AReassignFormExpr__reassign_callsite(val
* self
) {
8409 val
* var
/* : nullable CallSite */;
8410 val
* var1
/* : nullable CallSite */;
8411 val
* var3
/* : nullable CallSite */;
8412 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:Object(AReassignFormExpr)> */
8413 var3
= self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
; /* _reassign_callsite on <self:Object(AReassignFormExpr)> */
8421 /* method typing#AReassignFormExpr#reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */
8422 void typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
8423 self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
= p0
; /* _reassign_callsite on <self:AReassignFormExpr> */
8426 /* method typing#AReassignFormExpr#reassign_callsite= for (self: Object, nullable CallSite) */
8427 void VIRTUAL_typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
8428 { /* Inline typing#AReassignFormExpr#reassign_callsite= (self,p0) on <self:Object(AReassignFormExpr)> */
8429 self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
= p0
; /* _reassign_callsite on <self:Object(AReassignFormExpr)> */
8434 /* method typing#AReassignFormExpr#read_type for (self: AReassignFormExpr): nullable MType */
8435 val
* typing__AReassignFormExpr__read_type(val
* self
) {
8436 val
* var
/* : nullable MType */;
8437 val
* var1
/* : nullable MType */;
8438 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___read_type
].val
; /* _read_type on <self:AReassignFormExpr> */
8443 /* method typing#AReassignFormExpr#read_type for (self: Object): nullable MType */
8444 val
* VIRTUAL_typing__AReassignFormExpr__read_type(val
* self
) {
8445 val
* var
/* : nullable MType */;
8446 val
* var1
/* : nullable MType */;
8447 val
* var3
/* : nullable MType */;
8448 { /* Inline typing#AReassignFormExpr#read_type (self) on <self:Object(AReassignFormExpr)> */
8449 var3
= self
->attrs
[COLOR_typing__AReassignFormExpr___read_type
].val
; /* _read_type on <self:Object(AReassignFormExpr)> */
8457 /* method typing#AReassignFormExpr#read_type= for (self: AReassignFormExpr, nullable MType) */
8458 void typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
8459 self
->attrs
[COLOR_typing__AReassignFormExpr___read_type
].val
= p0
; /* _read_type on <self:AReassignFormExpr> */
8462 /* method typing#AReassignFormExpr#read_type= for (self: Object, nullable MType) */
8463 void VIRTUAL_typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
8464 { /* Inline typing#AReassignFormExpr#read_type= (self,p0) on <self:Object(AReassignFormExpr)> */
8465 self
->attrs
[COLOR_typing__AReassignFormExpr___read_type
].val
= p0
; /* _read_type on <self:Object(AReassignFormExpr)> */
8470 /* method typing#AReassignFormExpr#resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */
8471 val
* typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8472 val
* var
/* : nullable MType */;
8473 val
* var_v
/* var v: TypeVisitor */;
8474 val
* var_readtype
/* var readtype: MType */;
8475 val
* var_writetype
/* var writetype: MType */;
8476 val
* var1
/* : AAssignOp */;
8477 val
* var3
/* : AAssignOp */;
8478 short int var4
/* : Bool */;
8481 static val
* varonce
;
8482 val
* var5
/* : String */;
8483 char* var6
/* : NativeString */;
8484 long var7
/* : Int */;
8485 val
* var8
/* : FlatString */;
8486 val
* var_reassign_name
/* var reassign_name: String */;
8487 val
* var9
/* : AAssignOp */;
8488 val
* var11
/* : AAssignOp */;
8489 short int var12
/* : Bool */;
8492 static val
* varonce15
;
8493 val
* var16
/* : String */;
8494 char* var17
/* : NativeString */;
8495 long var18
/* : Int */;
8496 val
* var19
/* : FlatString */;
8497 short int var21
/* : Bool */;
8500 static val
* varonce24
;
8501 val
* var25
/* : String */;
8502 char* var26
/* : NativeString */;
8503 long var27
/* : Int */;
8504 val
* var28
/* : FlatString */;
8505 static val
* varonce29
;
8506 val
* var30
/* : String */;
8507 char* var31
/* : NativeString */;
8508 long var32
/* : Int */;
8509 val
* var33
/* : FlatString */;
8510 val
* var34
/* : Array[Object] */;
8511 long var35
/* : Int */;
8512 val
* var36
/* : NativeArray[Object] */;
8513 val
* var37
/* : String */;
8514 val
* var38
/* : null */;
8515 short int var39
/* : Bool */;
8516 val
* var40
/* : nullable CallSite */;
8517 val
* var_callsite
/* var callsite: nullable CallSite */;
8518 val
* var41
/* : null */;
8519 short int var42
/* : Bool */;
8520 short int var43
/* : Bool */;
8521 val
* var_other
/* var other: nullable Object */;
8522 short int var45
/* : Bool */;
8523 short int var47
/* : Bool */;
8524 val
* var48
/* : null */;
8525 val
* var50
/* : MSignature */;
8526 val
* var52
/* : MSignature */;
8527 val
* var_msignature
/* var msignature: MSignature */;
8528 val
* var53
/* : nullable MType */;
8529 val
* var55
/* : nullable MType */;
8530 val
* var_rettype
/* var rettype: nullable MType */;
8531 short int var56
/* : Bool */;
8532 long var57
/* : Int */;
8533 long var58
/* : Int */;
8534 short int var59
/* : Bool */;
8535 short int var60
/* : Bool */;
8536 short int var62
/* : Bool */;
8537 short int var_
/* var : Bool */;
8538 val
* var63
/* : null */;
8539 short int var64
/* : Bool */;
8540 short int var65
/* : Bool */;
8541 val
* var_other67
/* var other: nullable Object */;
8542 short int var68
/* : Bool */;
8543 short int var69
/* : Bool */;
8544 short int var70
/* : Bool */;
8545 val
* var71
/* : AExpr */;
8546 val
* var73
/* : AExpr */;
8547 val
* var74
/* : Array[MParameter] */;
8548 val
* var76
/* : Array[MParameter] */;
8549 val
* var77
/* : nullable Object */;
8550 val
* var78
/* : MType */;
8551 val
* var80
/* : MType */;
8552 val
* var81
/* : nullable MType */;
8553 val
* var_value_type
/* var value_type: nullable MType */;
8554 val
* var82
/* : null */;
8555 short int var83
/* : Bool */;
8556 short int var84
/* : Bool */;
8557 short int var86
/* : Bool */;
8558 short int var88
/* : Bool */;
8559 val
* var89
/* : null */;
8560 val
* var90
/* : nullable MType */;
8565 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:AReassignFormExpr> */
8566 var3
= self
->attrs
[COLOR_parser_nodes__AReassignFormExpr___n_assign_op
].val
; /* _n_assign_op on <self:AReassignFormExpr> */
8567 if (unlikely(var3
== NULL
)) {
8568 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
8569 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1451);
8576 /* <var1:AAssignOp> isa APlusAssignOp */
8577 cltype
= type_parser_nodes__APlusAssignOp
.color
;
8578 idtype
= type_parser_nodes__APlusAssignOp
.id
;
8579 if(cltype
>= var1
->type
->table_size
) {
8582 var4
= var1
->type
->type_table
[cltype
] == idtype
;
8590 var8
= string__NativeString__to_s_with_length(var6
, var7
);
8594 var_reassign_name
= var5
;
8597 { /* Inline parser_nodes#AReassignFormExpr#n_assign_op (self) on <self:AReassignFormExpr> */
8598 var11
= self
->attrs
[COLOR_parser_nodes__AReassignFormExpr___n_assign_op
].val
; /* _n_assign_op on <self:AReassignFormExpr> */
8599 if (unlikely(var11
== NULL
)) {
8600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
8601 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1451);
8605 RET_LABEL10
:(void)0;
8608 /* <var9:AAssignOp> isa AMinusAssignOp */
8609 cltype13
= type_parser_nodes__AMinusAssignOp
.color
;
8610 idtype14
= type_parser_nodes__AMinusAssignOp
.id
;
8611 if(cltype13
>= var9
->type
->table_size
) {
8614 var12
= var9
->type
->type_table
[cltype13
] == idtype14
;
8622 var19
= string__NativeString__to_s_with_length(var17
, var18
);
8626 var_reassign_name
= var16
;
8628 PRINT_ERROR("Runtime error: %s", "Aborted");
8629 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 745);
8634 { /* Inline typing#AReassignFormExpr#read_type= (self,var_readtype) on <self:AReassignFormExpr> */
8635 self
->attrs
[COLOR_typing__AReassignFormExpr___read_type
].val
= var_readtype
; /* _read_type on <self:AReassignFormExpr> */
8636 RET_LABEL20
:(void)0;
8639 /* <var_readtype:MType> isa MNullType */
8640 cltype22
= type_model__MNullType
.color
;
8641 idtype23
= type_model__MNullType
.id
;
8642 if(cltype22
>= var_readtype
->type
->table_size
) {
8645 var21
= var_readtype
->type
->type_table
[cltype22
] == idtype23
;
8651 var26
= "Error: Method \'";
8653 var28
= string__NativeString__to_s_with_length(var26
, var27
);
8660 var31
= "\' call on \'null\'.";
8662 var33
= string__NativeString__to_s_with_length(var31
, var32
);
8666 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
8667 { /* var34 = array_instance Array[Object] */
8669 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
8670 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var25
;
8671 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var_reassign_name
;
8672 ((struct instance_array__NativeArray
*)var36
)->values
[2] = (val
*) var30
;
8674 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
8678 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
8681 typing__TypeVisitor__error(var_v
, self
, var37
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8690 var40
= typing__TypeVisitor__get_method(var_v
, self
, var_readtype
, var_reassign_name
, var39
);
8692 var_callsite
= var40
;
8694 if (var_callsite
== NULL
) {
8695 var42
= 1; /* is null */
8697 var42
= 0; /* arg is null but recv is not */
8700 { /* Inline kernel#Object#== (var_callsite,var41) on <var_callsite:nullable CallSite> */
8703 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
8704 var47
= var_callsite
== var_other
;
8707 RET_LABEL46
:(void)0;
8712 RET_LABEL44
:(void)0;
8723 { /* Inline typing#AReassignFormExpr#reassign_callsite= (self,var_callsite) on <self:AReassignFormExpr> */
8724 self
->attrs
[COLOR_typing__AReassignFormExpr___reassign_callsite
].val
= var_callsite
; /* _reassign_callsite on <self:AReassignFormExpr> */
8725 RET_LABEL49
:(void)0;
8729 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
8730 var52
= var_callsite
->attrs
[COLOR_typing__CallSite___msignature
].val
; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
8731 if (unlikely(var52
== NULL
)) {
8732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
8733 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 490);
8737 RET_LABEL51
:(void)0;
8740 var_msignature
= var50
;
8742 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
8743 var55
= var_msignature
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
8745 RET_LABEL54
:(void)0;
8748 var_rettype
= var53
;
8750 var57
= model__MSignature__arity(var_msignature
);
8754 { /* Inline kernel#Int#== (var57,var58) on <var57:Int> */
8755 var62
= var57
== var58
;
8758 RET_LABEL61
:(void)0;
8765 if (var_rettype
== NULL
) {
8766 var64
= 0; /* is null */
8768 var64
= 1; /* arg is null and recv is not */
8771 { /* Inline kernel#Object#!= (var_rettype,var63) on <var_rettype:nullable MType> */
8772 var_other67
= var63
;
8774 var69
= ((short int (*)(val
*, val
*))(var_rettype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_rettype
, var_other67
) /* == on <var_rettype:nullable MType(MType)>*/;
8780 RET_LABEL66
:(void)0;
8788 if (unlikely(!var56
)) {
8789 PRINT_ERROR("Runtime error: %s", "Assert failed");
8790 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 761);
8794 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:AReassignFormExpr> */
8795 var73
= self
->attrs
[COLOR_parser_nodes__AReassignFormExpr___n_value
].val
; /* _n_value on <self:AReassignFormExpr> */
8796 if (unlikely(var73
== NULL
)) {
8797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8798 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1452);
8802 RET_LABEL72
:(void)0;
8806 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
8807 var76
= var_msignature
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
8808 if (unlikely(var76
== NULL
)) {
8809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
8810 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
8814 RET_LABEL75
:(void)0;
8818 var77
= abstract_collection__SequenceRead__first(var74
);
8821 { /* Inline model#MParameter#mtype (var77) on <var77:nullable Object(MParameter)> */
8822 var80
= var77
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var77:nullable Object(MParameter)> */
8823 if (unlikely(var80
== NULL
)) {
8824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8825 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
8829 RET_LABEL79
:(void)0;
8833 var81
= typing__TypeVisitor__visit_expr_subtype(var_v
, var71
, var78
);
8835 var_value_type
= var81
;
8837 if (var_value_type
== NULL
) {
8838 var83
= 1; /* is null */
8840 var83
= 0; /* arg is null but recv is not */
8843 { /* Inline kernel#Object#== (var_value_type,var82) on <var_value_type:nullable MType> */
8846 { /* Inline kernel#Object#is_same_instance (var_value_type,var_other) on <var_value_type:nullable MType(MType)> */
8847 var88
= var_value_type
== var_other
;
8850 RET_LABEL87
:(void)0;
8855 RET_LABEL85
:(void)0;
8866 var90
= typing__TypeVisitor__check_subtype(var_v
, self
, var_rettype
, var_writetype
);
8873 /* method typing#AReassignFormExpr#resolve_reassignment for (self: Object, TypeVisitor, MType, MType): nullable MType */
8874 val
* VIRTUAL_typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8875 val
* var
/* : nullable MType */;
8876 val
* var1
/* : nullable MType */;
8877 var1
= typing__AReassignFormExpr__resolve_reassignment(self
, p0
, p1
, p2
);
8882 /* method typing#AVarReassignExpr#accept_typing for (self: AVarReassignExpr, TypeVisitor) */
8883 void typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
8884 val
* var_v
/* var v: TypeVisitor */;
8885 val
* var
/* : nullable Variable */;
8886 val
* var2
/* : nullable Variable */;
8887 val
* var_variable
/* var variable: nullable Variable */;
8888 val
* var3
/* : null */;
8889 short int var4
/* : Bool */;
8890 short int var5
/* : Bool */;
8891 val
* var_other
/* var other: nullable Object */;
8892 short int var7
/* : Bool */;
8893 short int var8
/* : Bool */;
8894 short int var9
/* : Bool */;
8895 val
* var10
/* : nullable MType */;
8896 val
* var_readtype
/* var readtype: nullable MType */;
8897 val
* var11
/* : null */;
8898 short int var12
/* : Bool */;
8899 short int var13
/* : Bool */;
8900 val
* var_other15
/* var other: nullable Object */;
8901 short int var16
/* : Bool */;
8902 short int var18
/* : Bool */;
8903 val
* var20
/* : nullable MType */;
8904 val
* var22
/* : nullable MType */;
8905 val
* var_writetype
/* var writetype: nullable MType */;
8906 val
* var23
/* : null */;
8907 short int var24
/* : Bool */;
8908 short int var25
/* : Bool */;
8909 short int var27
/* : Bool */;
8910 short int var29
/* : Bool */;
8911 val
* var30
/* : nullable MType */;
8912 val
* var_rettype
/* var rettype: nullable MType */;
8913 short int var31
/* : Bool */;
8916 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarReassignExpr> */
8917 var2
= self
->attrs
[COLOR_scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarReassignExpr> */
8924 if (var_variable
== NULL
) {
8925 var4
= 0; /* is null */
8927 var4
= 1; /* arg is null and recv is not */
8930 { /* Inline kernel#Object#!= (var_variable,var3) on <var_variable:nullable Variable> */
8933 var8
= ((short int (*)(val
*, val
*))(var_variable
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_variable
, var_other
) /* == on <var_variable:nullable Variable(Variable)>*/;
8943 if (unlikely(!var4
)) {
8944 PRINT_ERROR("Runtime error: %s", "Assert failed");
8945 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 775);
8949 var10
= typing__TypeVisitor__get_variable(var_v
, self
, var_variable
);
8951 var_readtype
= var10
;
8953 if (var_readtype
== NULL
) {
8954 var12
= 1; /* is null */
8956 var12
= 0; /* arg is null but recv is not */
8959 { /* Inline kernel#Object#== (var_readtype,var11) on <var_readtype:nullable MType> */
8960 var_other15
= var11
;
8962 { /* Inline kernel#Object#is_same_instance (var_readtype,var_other15) on <var_readtype:nullable MType(MType)> */
8963 var18
= var_readtype
== var_other15
;
8966 RET_LABEL17
:(void)0;
8971 RET_LABEL14
:(void)0;
8980 { /* Inline typing#AReassignFormExpr#read_type= (self,var_readtype) on <self:AVarReassignExpr> */
8981 self
->attrs
[COLOR_typing__AReassignFormExpr___read_type
].val
= var_readtype
; /* _read_type on <self:AVarReassignExpr> */
8982 RET_LABEL19
:(void)0;
8986 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
8987 var22
= var_variable
->attrs
[COLOR_typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
8989 RET_LABEL21
:(void)0;
8992 var_writetype
= var20
;
8994 if (var_writetype
== NULL
) {
8995 var24
= 1; /* is null */
8997 var24
= 0; /* arg is null but recv is not */
9000 { /* Inline kernel#Object#== (var_writetype,var23) on <var_writetype:nullable MType> */
9001 var_other15
= var23
;
9003 { /* Inline kernel#Object#is_same_instance (var_writetype,var_other15) on <var_writetype:nullable MType(MType)> */
9004 var29
= var_writetype
== var_other15
;
9007 RET_LABEL28
:(void)0;
9012 RET_LABEL26
:(void)0;
9021 var30
= typing__AReassignFormExpr__resolve_reassignment(self
, var_v
, var_readtype
, var_writetype
);
9023 var_rettype
= var30
;
9025 typing__TypeVisitor__set_variable(var_v
, self
, var_variable
, var_rettype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
9029 { /* Inline typing#AExpr#is_typed= (self,var31) on <self:AVarReassignExpr> */
9030 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var31
; /* _is_typed on <self:AVarReassignExpr> */
9031 RET_LABEL32
:(void)0;
9036 /* method typing#AVarReassignExpr#accept_typing for (self: Object, TypeVisitor) */
9037 void VIRTUAL_typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
9038 typing__AVarReassignExpr__accept_typing(self
, p0
); /* Direct call typing#AVarReassignExpr#accept_typing on <self:Object(AVarReassignExpr)>*/
9041 /* method typing#AContinueExpr#accept_typing for (self: AContinueExpr, TypeVisitor) */
9042 void typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
9043 val
* var_v
/* var v: TypeVisitor */;
9044 val
* var
/* : nullable AExpr */;
9045 val
* var2
/* : nullable AExpr */;
9046 val
* var_nexpr
/* var nexpr: nullable AExpr */;
9047 val
* var3
/* : null */;
9048 short int var4
/* : Bool */;
9049 short int var5
/* : Bool */;
9050 val
* var_other
/* var other: nullable Object */;
9051 short int var7
/* : Bool */;
9052 short int var8
/* : Bool */;
9053 short int var9
/* : Bool */;
9054 val
* var10
/* : nullable MType */;
9055 short int var11
/* : Bool */;
9058 { /* Inline parser_nodes#AEscapeExpr#n_expr (self) on <self:AContinueExpr> */
9059 var2
= self
->attrs
[COLOR_parser_nodes__AEscapeExpr___n_expr
].val
; /* _n_expr on <self:AContinueExpr> */
9066 if (var_nexpr
== NULL
) {
9067 var4
= 0; /* is null */
9069 var4
= 1; /* arg is null and recv is not */
9072 { /* Inline kernel#Object#!= (var_nexpr,var3) on <var_nexpr:nullable AExpr> */
9075 var8
= ((short int (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nexpr
, var_other
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
9087 var10
= typing__TypeVisitor__visit_expr(var_v
, var_nexpr
);
9093 { /* Inline typing#AExpr#is_typed= (self,var11) on <self:AContinueExpr> */
9094 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var11
; /* _is_typed on <self:AContinueExpr> */
9095 RET_LABEL12
:(void)0;
9100 /* method typing#AContinueExpr#accept_typing for (self: Object, TypeVisitor) */
9101 void VIRTUAL_typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
9102 typing__AContinueExpr__accept_typing(self
, p0
); /* Direct call typing#AContinueExpr#accept_typing on <self:Object(AContinueExpr)>*/
9105 /* method typing#ABreakExpr#accept_typing for (self: ABreakExpr, TypeVisitor) */
9106 void typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
9107 val
* var_v
/* var v: TypeVisitor */;
9108 val
* var
/* : nullable AExpr */;
9109 val
* var2
/* : nullable AExpr */;
9110 val
* var_nexpr
/* var nexpr: nullable AExpr */;
9111 val
* var3
/* : null */;
9112 short int var4
/* : Bool */;
9113 short int var5
/* : Bool */;
9114 val
* var_other
/* var other: nullable Object */;
9115 short int var7
/* : Bool */;
9116 short int var8
/* : Bool */;
9117 short int var9
/* : Bool */;
9118 val
* var10
/* : nullable MType */;
9119 short int var11
/* : Bool */;
9122 { /* Inline parser_nodes#AEscapeExpr#n_expr (self) on <self:ABreakExpr> */
9123 var2
= self
->attrs
[COLOR_parser_nodes__AEscapeExpr___n_expr
].val
; /* _n_expr on <self:ABreakExpr> */
9130 if (var_nexpr
== NULL
) {
9131 var4
= 0; /* is null */
9133 var4
= 1; /* arg is null and recv is not */
9136 { /* Inline kernel#Object#!= (var_nexpr,var3) on <var_nexpr:nullable AExpr> */
9139 var8
= ((short int (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nexpr
, var_other
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
9151 var10
= typing__TypeVisitor__visit_expr(var_v
, var_nexpr
);
9157 { /* Inline typing#AExpr#is_typed= (self,var11) on <self:ABreakExpr> */
9158 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var11
; /* _is_typed on <self:ABreakExpr> */
9159 RET_LABEL12
:(void)0;
9164 /* method typing#ABreakExpr#accept_typing for (self: Object, TypeVisitor) */
9165 void VIRTUAL_typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
9166 typing__ABreakExpr__accept_typing(self
, p0
); /* Direct call typing#ABreakExpr#accept_typing on <self:Object(ABreakExpr)>*/
9169 /* method typing#AReturnExpr#accept_typing for (self: AReturnExpr, TypeVisitor) */
9170 void typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
9171 val
* var_v
/* var v: TypeVisitor */;
9172 val
* var
/* : nullable AExpr */;
9173 val
* var2
/* : nullable AExpr */;
9174 val
* var_nexpr
/* var nexpr: nullable AExpr */;
9175 val
* var3
/* : nullable MPropDef */;
9176 val
* var5
/* : nullable MPropDef */;
9177 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
9178 short int var6
/* : Bool */;
9181 val
* var7
/* : nullable MSignature */;
9182 val
* var9
/* : nullable MSignature */;
9183 val
* var10
/* : nullable MType */;
9184 val
* var12
/* : nullable MType */;
9185 val
* var_ret_type
/* var ret_type: nullable Object */;
9186 short int var13
/* : Bool */;
9189 val
* var16
/* : nullable MType */;
9190 val
* var18
/* : nullable MType */;
9191 val
* var19
/* : null */;
9192 short int var20
/* : Bool */;
9193 short int var21
/* : Bool */;
9194 val
* var_other
/* var other: nullable Object */;
9195 short int var23
/* : Bool */;
9196 short int var24
/* : Bool */;
9197 short int var25
/* : Bool */;
9198 val
* var26
/* : null */;
9199 short int var27
/* : Bool */;
9200 short int var28
/* : Bool */;
9201 short int var30
/* : Bool */;
9202 short int var31
/* : Bool */;
9203 short int var32
/* : Bool */;
9204 val
* var33
/* : nullable MType */;
9205 val
* var34
/* : nullable MType */;
9206 static val
* varonce
;
9207 val
* var35
/* : String */;
9208 char* var36
/* : NativeString */;
9209 long var37
/* : Int */;
9210 val
* var38
/* : FlatString */;
9211 val
* var39
/* : null */;
9212 short int var40
/* : Bool */;
9213 short int var41
/* : Bool */;
9214 short int var43
/* : Bool */;
9215 short int var44
/* : Bool */;
9216 short int var45
/* : Bool */;
9217 static val
* varonce46
;
9218 val
* var47
/* : String */;
9219 char* var48
/* : NativeString */;
9220 long var49
/* : Int */;
9221 val
* var50
/* : FlatString */;
9222 short int var51
/* : Bool */;
9225 { /* Inline parser_nodes#AReturnExpr#n_expr (self) on <self:AReturnExpr> */
9226 var2
= self
->attrs
[COLOR_parser_nodes__AReturnExpr___n_expr
].val
; /* _n_expr on <self:AReturnExpr> */
9233 { /* Inline typing#TypeVisitor#mpropdef (var_v) on <var_v:TypeVisitor> */
9234 var5
= var_v
->attrs
[COLOR_typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <var_v:TypeVisitor> */
9239 var_mpropdef
= var3
;
9240 /* <var_mpropdef:nullable MPropDef> isa MMethodDef */
9241 cltype
= type_model__MMethodDef
.color
;
9242 idtype
= type_model__MMethodDef
.id
;
9243 if(var_mpropdef
== NULL
) {
9246 if(cltype
>= var_mpropdef
->type
->table_size
) {
9249 var6
= var_mpropdef
->type
->type_table
[cltype
] == idtype
;
9254 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
9255 var9
= var_mpropdef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
9261 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9262 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 823);
9265 { /* Inline model#MSignature#return_mtype (var7) on <var7:nullable MSignature> */
9266 if (unlikely(var7
== NULL
)) {
9267 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9268 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1468);
9271 var12
= var7
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var7:nullable MSignature> */
9273 RET_LABEL11
:(void)0;
9276 var_ret_type
= var10
;
9278 /* <var_mpropdef:nullable MPropDef> isa MAttributeDef */
9279 cltype14
= type_model__MAttributeDef
.color
;
9280 idtype15
= type_model__MAttributeDef
.id
;
9281 if(var_mpropdef
== NULL
) {
9284 if(cltype14
>= var_mpropdef
->type
->table_size
) {
9287 var13
= var_mpropdef
->type
->type_table
[cltype14
] == idtype15
;
9292 { /* Inline model#MAttributeDef#static_mtype (var_mpropdef) on <var_mpropdef:nullable MPropDef(MAttributeDef)> */
9293 var18
= var_mpropdef
->attrs
[COLOR_model__MAttributeDef___static_mtype
].val
; /* _static_mtype on <var_mpropdef:nullable MPropDef(MAttributeDef)> */
9295 RET_LABEL17
:(void)0;
9298 var_ret_type
= var16
;
9300 PRINT_ERROR("Runtime error: %s", "Aborted");
9301 PRINT_ERROR(" (%s:%d)\n", "semantize/typing.nit", 827);
9306 if (var_nexpr
== NULL
) {
9307 var20
= 0; /* is null */
9309 var20
= 1; /* arg is null and recv is not */
9312 { /* Inline kernel#Object#!= (var_nexpr,var19) on <var_nexpr:nullable AExpr> */
9315 var24
= ((short int (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_nexpr
, var_other
) /* == on <var_nexpr:nullable AExpr(AExpr)>*/;
9321 RET_LABEL22
:(void)0;
9327 if (var_ret_type
== NULL
) {
9328 var27
= 0; /* is null */
9330 var27
= 1; /* arg is null and recv is not */
9333 { /* Inline kernel#Object#!= (var_ret_type,var26) on <var_ret_type:nullable Object(nullable MType)> */
9336 var31
= ((short int (*)(val
*, val
*))(var_ret_type
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret_type
, var_other
) /* == on <var_ret_type:nullable MType(MType)>*/;
9342 RET_LABEL29
:(void)0;
9348 var33
= typing__TypeVisitor__visit_expr_subtype(var_v
, var_nexpr
, var_ret_type
);
9352 var34
= typing__TypeVisitor__visit_expr(var_v
, var_nexpr
);
9357 var36
= "Error: Return with value in a procedure.";
9359 var38
= string__NativeString__to_s_with_length(var36
, var37
);
9364 typing__TypeVisitor__error(var_v
, self
, var35
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9369 if (var_ret_type
== NULL
) {
9370 var40
= 0; /* is null */
9372 var40
= 1; /* arg is null and recv is not */
9375 { /* Inline kernel#Object#!= (var_ret_type,var39) on <var_ret_type:nullable Object(nullable MType)> */
9378 var44
= ((short int (*)(val
*, val
*))(var_ret_type
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret_type
, var_other
) /* == on <var_ret_type:nullable MType(MType)>*/;
9384 RET_LABEL42
:(void)0;
9392 var48
= "Error: Return without value in a function.";
9394 var50
= string__NativeString__to_s_with_length(var48
, var49
);
9399 typing__TypeVisitor__error(var_v
, self
, var47
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9406 { /* Inline typing#AExpr#is_typed= (self,var51) on <self:AReturnExpr> */
9407 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var51
; /* _is_typed on <self:AReturnExpr> */
9408 RET_LABEL52
:(void)0;
9413 /* method typing#AReturnExpr#accept_typing for (self: Object, TypeVisitor) */
9414 void VIRTUAL_typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
9415 typing__AReturnExpr__accept_typing(self
, p0
); /* Direct call typing#AReturnExpr#accept_typing on <self:Object(AReturnExpr)>*/
9418 /* method typing#AAbortExpr#accept_typing for (self: AAbortExpr, TypeVisitor) */
9419 void typing__AAbortExpr__accept_typing(val
* self
, val
* p0
) {
9420 val
* var_v
/* var v: TypeVisitor */;
9421 short int var
/* : Bool */;
9425 { /* Inline typing#AExpr#is_typed= (self,var) on <self:AAbortExpr> */
9426 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var
; /* _is_typed on <self:AAbortExpr> */
9432 /* method typing#AAbortExpr#accept_typing for (self: Object, TypeVisitor) */
9433 void VIRTUAL_typing__AAbortExpr__accept_typing(val
* self
, val
* p0
) {
9434 typing__AAbortExpr__accept_typing(self
, p0
); /* Direct call typing#AAbortExpr#accept_typing on <self:Object(AAbortExpr)>*/
9437 /* method typing#AIfExpr#accept_typing for (self: AIfExpr, TypeVisitor) */
9438 void typing__AIfExpr__accept_typing(val
* self
, val
* p0
) {
9439 val
* var_v
/* var v: TypeVisitor */;
9440 val
* var
/* : AExpr */;
9441 val
* var2
/* : AExpr */;
9442 val
* var3
/* : nullable MType */;
9443 val
* var4
/* : nullable AExpr */;
9444 val
* var6
/* : nullable AExpr */;
9445 val
* var7
/* : nullable AExpr */;
9446 val
* var9
/* : nullable AExpr */;
9447 short int var10
/* : Bool */;
9450 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
9451 var2
= self
->attrs
[COLOR_parser_nodes__AIfExpr___n_expr
].val
; /* _n_expr on <self:AIfExpr> */
9452 if (unlikely(var2
== NULL
)) {
9453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9454 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1387);
9462 var3
= typing__TypeVisitor__visit_expr_bool(var_v
, var
);
9465 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
9466 var6
= self
->attrs
[COLOR_parser_nodes__AIfExpr___n_then
].val
; /* _n_then on <self:AIfExpr> */
9472 typing__TypeVisitor__visit_stmt(var_v
, var4
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9475 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
9476 var9
= self
->attrs
[COLOR_parser_nodes__AIfExpr___n_else
].val
; /* _n_else on <self:AIfExpr> */
9482 typing__TypeVisitor__visit_stmt(var_v
, var7
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9486 { /* Inline typing#AExpr#is_typed= (self,var10) on <self:AIfExpr> */
9487 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var10
; /* _is_typed on <self:AIfExpr> */
9488 RET_LABEL11
:(void)0;
9493 /* method typing#AIfExpr#accept_typing for (self: Object, TypeVisitor) */
9494 void VIRTUAL_typing__AIfExpr__accept_typing(val
* self
, val
* p0
) {
9495 typing__AIfExpr__accept_typing(self
, p0
); /* Direct call typing#AIfExpr#accept_typing on <self:Object(AIfExpr)>*/
9498 /* method typing#AIfexprExpr#accept_typing for (self: AIfexprExpr, TypeVisitor) */
9499 void typing__AIfexprExpr__accept_typing(val
* self
, val
* p0
) {
9500 val
* var_v
/* var v: TypeVisitor */;
9501 val
* var
/* : AExpr */;
9502 val
* var2
/* : AExpr */;
9503 val
* var3
/* : nullable MType */;
9504 val
* var4
/* : AExpr */;
9505 val
* var6
/* : AExpr */;
9506 val
* var7
/* : nullable MType */;
9507 val
* var_t1
/* var t1: nullable MType */;
9508 val
* var8
/* : AExpr */;
9509 val
* var10
/* : AExpr */;
9510 val
* var11
/* : nullable MType */;
9511 val
* var_t2
/* var t2: nullable MType */;
9512 short int var12
/* : Bool */;
9513 val
* var13
/* : null */;
9514 short int var14
/* : Bool */;
9515 short int var15
/* : Bool */;
9516 val
* var_other
/* var other: nullable Object */;
9517 short int var17
/* : Bool */;
9518 short int var19
/* : Bool */;
9519 short int var_
/* var : Bool */;
9520 val
* var20
/* : null */;
9521 short int var21
/* : Bool */;
9522 short int var22
/* : Bool */;
9523 short int var24
/* : Bool */;
9524 short int var26
/* : Bool */;
9525 val
* var27
/* : Array[MType] */;
9526 long var28
/* : Int */;
9527 val
* var_29
/* var : Array[MType] */;
9528 val
* var30
/* : nullable MType */;
9529 val
* var_t
/* var t: nullable MType */;
9530 val
* var31
/* : null */;
9531 short int var32
/* : Bool */;
9532 short int var33
/* : Bool */;
9533 short int var35
/* : Bool */;
9534 short int var37
/* : Bool */;
9535 static val
* varonce
;
9536 val
* var38
/* : String */;
9537 char* var39
/* : NativeString */;
9538 long var40
/* : Int */;
9539 val
* var41
/* : FlatString */;
9540 static val
* varonce42
;
9541 val
* var43
/* : String */;
9542 char* var44
/* : NativeString */;
9543 long var45
/* : Int */;
9544 val
* var46
/* : FlatString */;
9545 val
* var47
/* : Array[Object] */;
9546 long var48
/* : Int */;
9547 val
* var49
/* : NativeArray[Object] */;
9548 val
* var50
/* : String */;
9551 { /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
9552 var2
= self
->attrs
[COLOR_parser_nodes__AIfexprExpr___n_expr
].val
; /* _n_expr on <self:AIfexprExpr> */
9553 if (unlikely(var2
== NULL
)) {
9554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9555 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1396);
9563 var3
= typing__TypeVisitor__visit_expr_bool(var_v
, var
);
9566 { /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
9567 var6
= self
->attrs
[COLOR_parser_nodes__AIfexprExpr___n_then
].val
; /* _n_then on <self:AIfexprExpr> */
9568 if (unlikely(var6
== NULL
)) {
9569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
9570 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1398);
9578 var7
= typing__TypeVisitor__visit_expr(var_v
, var4
);
9582 { /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
9583 var10
= self
->attrs
[COLOR_parser_nodes__AIfexprExpr___n_else
].val
; /* _n_else on <self:AIfexprExpr> */
9584 if (unlikely(var10
== NULL
)) {
9585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
9586 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1400);
9594 var11
= typing__TypeVisitor__visit_expr(var_v
, var8
);
9598 if (var_t1
== NULL
) {
9599 var14
= 1; /* is null */
9601 var14
= 0; /* arg is null but recv is not */
9604 { /* Inline kernel#Object#== (var_t1,var13) on <var_t1:nullable MType> */
9607 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
9608 var19
= var_t1
== var_other
;
9611 RET_LABEL18
:(void)0;
9616 RET_LABEL16
:(void)0;
9625 if (var_t2
== NULL
) {
9626 var21
= 1; /* is null */
9628 var21
= 0; /* arg is null but recv is not */
9631 { /* Inline kernel#Object#== (var_t2,var20) on <var_t2:nullable MType> */
9634 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
9635 var26
= var_t2
== var_other
;
9638 RET_LABEL25
:(void)0;
9643 RET_LABEL23
:(void)0;
9653 var27
= NEW_array__Array(&type_array__Arraymodel__MType
);
9656 array__Array__with_capacity(var27
, var28
); /* Direct call array#Array#with_capacity on <var27:Array[MType]>*/
9660 array__AbstractArray__push(var_29
, var_t1
); /* Direct call array#AbstractArray#push on <var_29:Array[MType]>*/
9663 array__AbstractArray__push(var_29
, var_t2
); /* Direct call array#AbstractArray#push on <var_29:Array[MType]>*/
9666 var30
= typing__TypeVisitor__merge_types(var_v
, self
, var_29
);
9670 if (var_t
== NULL
) {
9671 var32
= 1; /* is null */
9673 var32
= 0; /* arg is null but recv is not */
9676 { /* Inline kernel#Object#== (var_t,var31) on <var_t:nullable MType> */
9679 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
9680 var37
= var_t
== var_other
;
9683 RET_LABEL36
:(void)0;
9688 RET_LABEL34
:(void)0;
9696 var39
= "Type Error: ambiguous type ";
9698 var41
= string__NativeString__to_s_with_length(var39
, var40
);
9707 var46
= string__NativeString__to_s_with_length(var44
, var45
);
9711 var47
= NEW_array__Array(&type_array__Arraykernel__Object
);
9712 { /* var47 = array_instance Array[Object] */
9714 var49
= NEW_array__NativeArray(var48
, &type_array__NativeArraykernel__Object
);
9715 ((struct instance_array__NativeArray
*)var49
)->values
[0] = (val
*) var38
;
9716 ((struct instance_array__NativeArray
*)var49
)->values
[1] = (val
*) var_t1
;
9717 ((struct instance_array__NativeArray
*)var49
)->values
[2] = (val
*) var43
;
9718 ((struct instance_array__NativeArray
*)var49
)->values
[3] = (val
*) var_t2
;
9720 ((void (*)(val
*, val
*, long))(var47
->class->vft
[COLOR_array__Array__with_native
]))(var47
, var49
, var48
) /* with_native on <var47:Array[Object]>*/;
9724 var50
= ((val
* (*)(val
*))(var47
->class->vft
[COLOR_string__Object__to_s
]))(var47
) /* to_s on <var47:Array[Object]>*/;
9727 typing__TypeVisitor__error(var_v
, self
, var50
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9732 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:AIfexprExpr> */
9733 self
->attrs
[COLOR_typing__AExpr___mtype
].val
= var_t
; /* _mtype on <self:AIfexprExpr> */
9734 RET_LABEL51
:(void)0;
9739 /* method typing#AIfexprExpr#accept_typing for (self: Object, TypeVisitor) */
9740 void VIRTUAL_typing__AIfexprExpr__accept_typing(val
* self
, val
* p0
) {
9741 typing__AIfexprExpr__accept_typing(self
, p0
); /* Direct call typing#AIfexprExpr#accept_typing on <self:Object(AIfexprExpr)>*/
9744 /* method typing#ADoExpr#accept_typing for (self: ADoExpr, TypeVisitor) */
9745 void typing__ADoExpr__accept_typing(val
* self
, val
* p0
) {
9746 val
* var_v
/* var v: TypeVisitor */;
9747 val
* var
/* : nullable AExpr */;
9748 val
* var2
/* : nullable AExpr */;
9749 short int var3
/* : Bool */;
9752 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
9753 var2
= self
->attrs
[COLOR_parser_nodes__ADoExpr___n_block
].val
; /* _n_block on <self:ADoExpr> */
9759 typing__TypeVisitor__visit_stmt(var_v
, var
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9763 { /* Inline typing#AExpr#is_typed= (self,var3) on <self:ADoExpr> */
9764 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var3
; /* _is_typed on <self:ADoExpr> */
9770 /* method typing#ADoExpr#accept_typing for (self: Object, TypeVisitor) */
9771 void VIRTUAL_typing__ADoExpr__accept_typing(val
* self
, val
* p0
) {
9772 typing__ADoExpr__accept_typing(self
, p0
); /* Direct call typing#ADoExpr#accept_typing on <self:Object(ADoExpr)>*/
9775 /* method typing#AWhileExpr#accept_typing for (self: AWhileExpr, TypeVisitor) */
9776 void typing__AWhileExpr__accept_typing(val
* self
, val
* p0
) {
9777 val
* var_v
/* var v: TypeVisitor */;
9778 val
* var
/* : AExpr */;
9779 val
* var2
/* : AExpr */;
9780 val
* var3
/* : nullable MType */;
9781 val
* var4
/* : nullable AExpr */;
9782 val
* var6
/* : nullable AExpr */;
9783 short int var7
/* : Bool */;
9786 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
9787 var2
= self
->attrs
[COLOR_parser_nodes__AWhileExpr___n_expr
].val
; /* _n_expr on <self:AWhileExpr> */
9788 if (unlikely(var2
== NULL
)) {
9789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9790 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1408);
9798 var3
= typing__TypeVisitor__visit_expr_bool(var_v
, var
);
9801 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
9802 var6
= self
->attrs
[COLOR_parser_nodes__AWhileExpr___n_block
].val
; /* _n_block on <self:AWhileExpr> */
9808 typing__TypeVisitor__visit_stmt(var_v
, var4
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9812 { /* Inline typing#AExpr#is_typed= (self,var7) on <self:AWhileExpr> */
9813 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var7
; /* _is_typed on <self:AWhileExpr> */
9819 /* method typing#AWhileExpr#accept_typing for (self: Object, TypeVisitor) */
9820 void VIRTUAL_typing__AWhileExpr__accept_typing(val
* self
, val
* p0
) {
9821 typing__AWhileExpr__accept_typing(self
, p0
); /* Direct call typing#AWhileExpr#accept_typing on <self:Object(AWhileExpr)>*/
9824 /* method typing#ALoopExpr#accept_typing for (self: ALoopExpr, TypeVisitor) */
9825 void typing__ALoopExpr__accept_typing(val
* self
, val
* p0
) {
9826 val
* var_v
/* var v: TypeVisitor */;
9827 val
* var
/* : nullable AExpr */;
9828 val
* var2
/* : nullable AExpr */;
9829 short int var3
/* : Bool */;
9832 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
9833 var2
= self
->attrs
[COLOR_parser_nodes__ALoopExpr___n_block
].val
; /* _n_block on <self:ALoopExpr> */
9839 typing__TypeVisitor__visit_stmt(var_v
, var
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9843 { /* Inline typing#AExpr#is_typed= (self,var3) on <self:ALoopExpr> */
9844 self
->attrs
[COLOR_typing__AExpr___is_typed
].s
= var3
; /* _is_typed on <self:ALoopExpr> */
9850 /* method typing#ALoopExpr#accept_typing for (self: Object, TypeVisitor) */
9851 void VIRTUAL_typing__ALoopExpr__accept_typing(val
* self
, val
* p0
) {
9852 typing__ALoopExpr__accept_typing(self
, p0
); /* Direct call typing#ALoopExpr#accept_typing on <self:Object(ALoopExpr)>*/
9855 /* method typing#AForExpr#coltype= for (self: AForExpr, nullable MClassType) */
9856 void typing__AForExpr__coltype_61d(val
* self
, val
* p0
) {
9857 self
->attrs
[COLOR_typing__AForExpr___coltype
].val
= p0
; /* _coltype on <self:AForExpr> */
9860 /* method typing#AForExpr#coltype= for (self: Object, nullable MClassType) */
9861 void VIRTUAL_typing__AForExpr__coltype_61d(val
* self
, val
* p0
) {
9862 { /* Inline typing#AForExpr#coltype= (self,p0) on <self:Object(AForExpr)> */
9863 self
->attrs
[COLOR_typing__AForExpr___coltype
].val
= p0
; /* _coltype on <self:Object(AForExpr)> */
9868 /* method typing#AForExpr#method_iterator for (self: AForExpr): nullable CallSite */
9869 val
* typing__AForExpr__method_iterator(val
* self
) {
9870 val
* var
/* : nullable CallSite */;
9871 val
* var1
/* : nullable CallSite */;
9872 var1
= self
->attrs
[COLOR_typing__AForExpr___method_iterator
].val
; /* _method_iterator on <self:AForExpr> */
9877 /* method typing#AForExpr#method_iterator for (self: Object): nullable CallSite */
9878 val
* VIRTUAL_typing__AForExpr__method_iterator(val
* self
) {
9879 val
* var
/* : nullable CallSite */;
9880 val
* var1
/* : nullable CallSite */;
9881 val
* var3
/* : nullable CallSite */;
9882 { /* Inline typing#AForExpr#method_iterator (self) on <self:Object(AForExpr)> */
9883 var3
= self
->attrs
[COLOR_typing__AForExpr___method_iterator
].val
; /* _method_iterator on <self:Object(AForExpr)> */
9891 /* method typing#AForExpr#method_iterator= for (self: AForExpr, nullable CallSite) */
9892 void typing__AForExpr__method_iterator_61d(val
* self
, val
* p0
) {
9893 self
->attrs
[COLOR_typing__AForExpr___method_iterator
].val
= p0
; /* _method_iterator on <self:AForExpr> */
9896 /* method typing#AForExpr#method_iterator= for (self: Object, nullable CallSite) */
9897 void VIRTUAL_typing__AForExpr__method_iterator_61d(val
* self
, val
* p0
) {
9898 { /* Inline typing#AForExpr#method_iterator= (self,p0) on <self:Object(AForExpr)> */
9899 self
->attrs
[COLOR_typing__AForExpr___method_iterator
].val
= p0
; /* _method_iterator on <self:Object(AForExpr)> */
9904 /* method typing#AForExpr#method_is_ok for (self: AForExpr): nullable CallSite */
9905 val
* typing__AForExpr__method_is_ok(val
* self
) {
9906 val
* var
/* : nullable CallSite */;
9907 val
* var1
/* : nullable CallSite */;
9908 var1
= self
->attrs
[COLOR_typing__AForExpr___method_is_ok
].val
; /* _method_is_ok on <self:AForExpr> */
9913 /* method typing#AForExpr#method_is_ok for (self: Object): nullable CallSite */
9914 val
* VIRTUAL_typing__AForExpr__method_is_ok(val
* self
) {
9915 val
* var
/* : nullable CallSite */;
9916 val
* var1
/* : nullable CallSite */;
9917 val
* var3
/* : nullable CallSite */;
9918 { /* Inline typing#AForExpr#method_is_ok (self) on <self:Object(AForExpr)> */
9919 var3
= self
->attrs
[COLOR_typing__AForExpr___method_is_ok
].val
; /* _method_is_ok on <self:Object(AForExpr)> */
9927 /* method typing#AForExpr#method_is_ok= for (self: AForExpr, nullable CallSite) */
9928 void typing__AForExpr__method_is_ok_61d(val
* self
, val
* p0
) {
9929 self
->attrs
[COLOR_typing__AForExpr___method_is_ok
].val
= p0
; /* _method_is_ok on <self:AForExpr> */
9932 /* method typing#AForExpr#method_is_ok= for (self: Object, nullable CallSite) */
9933 void VIRTUAL_typing__AForExpr__method_is_ok_61d(val
* self
, val
* p0
) {
9934 { /* Inline typing#AForExpr#method_is_ok= (self,p0) on <self:Object(AForExpr)> */
9935 self
->attrs
[COLOR_typing__AForExpr___method_is_ok
].val
= p0
; /* _method_is_ok on <self:Object(AForExpr)> */
9940 /* method typing#AForExpr#method_item for (self: AForExpr): nullable CallSite */
9941 val
* typing__AForExpr__method_item(val
* self
) {
9942 val
* var
/* : nullable CallSite */;
9943 val
* var1
/* : nullable CallSite */;
9944 var1
= self
->attrs
[COLOR_typing__AForExpr___method_item
].val
; /* _method_item on <self:AForExpr> */
9949 /* method typing#AForExpr#method_item for (self: Object): nullable CallSite */
9950 val
* VIRTUAL_typing__AForExpr__method_item(val
* self
) {
9951 val
* var
/* : nullable CallSite */;
9952 val
* var1
/* : nullable CallSite */;
9953 val
* var3
/* : nullable CallSite */;
9954 { /* Inline typing#AForExpr#method_item (self) on <self:Object(AForExpr)> */
9955 var3
= self
->attrs
[COLOR_typing__AForExpr___method_item
].val
; /* _method_item on <self:Object(AForExpr)> */
9963 /* method typing#AForExpr#method_item= for (self: AForExpr, nullable CallSite) */
9964 void typing__AForExpr__method_item_61d(val
* self
, val
* p0
) {
9965 self
->attrs
[COLOR_typing__AForExpr___method_item
].val
= p0
; /* _method_item on <self:AForExpr> */
9968 /* method typing#AForExpr#method_item= for (self: Object, nullable CallSite) */
9969 void VIRTUAL_typing__AForExpr__method_item_61d(val
* self
, val
* p0
) {
9970 { /* Inline typing#AForExpr#method_item= (self,p0) on <self:Object(AForExpr)> */
9971 self
->attrs
[COLOR_typing__AForExpr___method_item
].val
= p0
; /* _method_item on <self:Object(AForExpr)> */
9976 /* method typing#AForExpr#method_next for (self: AForExpr): nullable CallSite */
9977 val
* typing__AForExpr__method_next(val
* self
) {
9978 val
* var
/* : nullable CallSite */;
9979 val
* var1
/* : nullable CallSite */;
9980 var1
= self
->attrs
[COLOR_typing__AForExpr___method_next
].val
; /* _method_next on <self:AForExpr> */
9985 /* method typing#AForExpr#method_next for (self: Object): nullable CallSite */
9986 val
* VIRTUAL_typing__AForExpr__method_next(val
* self
) {
9987 val
* var
/* : nullable CallSite */;
9988 val
* var1
/* : nullable CallSite */;
9989 val
* var3
/* : nullable CallSite */;
9990 { /* Inline typing#AForExpr#method_next (self) on <self:Object(AForExpr)> */
9991 var3
= self
->attrs
[COLOR_typing__AForExpr___method_next
].val
; /* _method_next on <self:Object(AForExpr)> */