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___64dtyping_phase
].val
; /* @typing_phase on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @typing_phase");
9 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 27);
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 var1
= typing__ToolContext__typing_phase(self
);
25 /* method typing#ToolContext#typing_phase= for (self: ToolContext, Phase) */
26 void typing__ToolContext__typing_phase_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_typing__ToolContext___64dtyping_phase
].val
= p0
; /* @typing_phase on <self:ToolContext> */
30 /* method typing#ToolContext#typing_phase= for (self: Object, Phase) */
31 void VIRTUAL_typing__ToolContext__typing_phase_61d(val
* self
, val
* p0
) {
32 typing__ToolContext__typing_phase_61d(self
, p0
);
35 /* method typing#MPropDef#has_supercall for (self: MPropDef): Bool */
36 short int typing__MPropDef__has_supercall(val
* self
) {
37 short int var
/* : Bool */;
38 short int var1
/* : Bool */;
39 var1
= self
->attrs
[COLOR_typing__MPropDef___64dhas_supercall
].s
; /* @has_supercall on <self:MPropDef> */
44 /* method typing#MPropDef#has_supercall for (self: Object): Bool */
45 short int VIRTUAL_typing__MPropDef__has_supercall(val
* self
) {
46 short int var
/* : Bool */;
47 short int var1
/* : Bool */;
48 var1
= typing__MPropDef__has_supercall(self
);
53 /* method typing#MPropDef#has_supercall= for (self: MPropDef, Bool) */
54 void typing__MPropDef__has_supercall_61d(val
* self
, short int p0
) {
55 self
->attrs
[COLOR_typing__MPropDef___64dhas_supercall
].s
= p0
; /* @has_supercall on <self:MPropDef> */
58 /* method typing#MPropDef#has_supercall= for (self: Object, Bool) */
59 void VIRTUAL_typing__MPropDef__has_supercall_61d(val
* self
, short int p0
) {
60 typing__MPropDef__has_supercall_61d(self
, p0
);
63 /* method typing#TypingPhase#process_npropdef for (self: TypingPhase, APropdef) */
64 void typing__TypingPhase__process_npropdef(val
* self
, val
* p0
) {
65 val
* var_npropdef
/* var npropdef: APropdef */;
66 val
* var
/* : ToolContext */;
67 val
* var1
/* : ModelBuilder */;
69 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:TypingPhase>*/;
70 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ToolContext__modelbuilder
]))(var
) /* modelbuilder on <var:ToolContext>*/;
71 ((void (*)(val
*, val
*))(var_npropdef
->class->vft
[COLOR_typing__APropdef__do_typing
]))(var_npropdef
, var1
) /* do_typing on <var_npropdef:APropdef>*/;
74 /* method typing#TypingPhase#process_npropdef for (self: Object, APropdef) */
75 void VIRTUAL_typing__TypingPhase__process_npropdef(val
* self
, val
* p0
) {
76 typing__TypingPhase__process_npropdef(self
, p0
);
79 /* method typing#TypeVisitor#modelbuilder for (self: TypeVisitor): ModelBuilder */
80 val
* typing__TypeVisitor__modelbuilder(val
* self
) {
81 val
* var
/* : ModelBuilder */;
82 val
* var1
/* : ModelBuilder */;
83 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dmodelbuilder
].val
; /* @modelbuilder on <self:TypeVisitor> */
85 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @modelbuilder");
86 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 41);
93 /* method typing#TypeVisitor#modelbuilder for (self: Object): ModelBuilder */
94 val
* VIRTUAL_typing__TypeVisitor__modelbuilder(val
* self
) {
95 val
* var
/* : ModelBuilder */;
96 val
* var1
/* : ModelBuilder */;
97 var1
= typing__TypeVisitor__modelbuilder(self
);
102 /* method typing#TypeVisitor#modelbuilder= for (self: TypeVisitor, ModelBuilder) */
103 void typing__TypeVisitor__modelbuilder_61d(val
* self
, val
* p0
) {
104 self
->attrs
[COLOR_typing__TypeVisitor___64dmodelbuilder
].val
= p0
; /* @modelbuilder on <self:TypeVisitor> */
107 /* method typing#TypeVisitor#modelbuilder= for (self: Object, ModelBuilder) */
108 void VIRTUAL_typing__TypeVisitor__modelbuilder_61d(val
* self
, val
* p0
) {
109 typing__TypeVisitor__modelbuilder_61d(self
, p0
);
112 /* method typing#TypeVisitor#nclassdef for (self: TypeVisitor): AClassdef */
113 val
* typing__TypeVisitor__nclassdef(val
* self
) {
114 val
* var
/* : AClassdef */;
115 val
* var1
/* : AClassdef */;
116 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dnclassdef
].val
; /* @nclassdef on <self:TypeVisitor> */
118 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @nclassdef");
119 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 42);
126 /* method typing#TypeVisitor#nclassdef for (self: Object): AClassdef */
127 val
* VIRTUAL_typing__TypeVisitor__nclassdef(val
* self
) {
128 val
* var
/* : AClassdef */;
129 val
* var1
/* : AClassdef */;
130 var1
= typing__TypeVisitor__nclassdef(self
);
135 /* method typing#TypeVisitor#nclassdef= for (self: TypeVisitor, AClassdef) */
136 void typing__TypeVisitor__nclassdef_61d(val
* self
, val
* p0
) {
137 self
->attrs
[COLOR_typing__TypeVisitor___64dnclassdef
].val
= p0
; /* @nclassdef on <self:TypeVisitor> */
140 /* method typing#TypeVisitor#nclassdef= for (self: Object, AClassdef) */
141 void VIRTUAL_typing__TypeVisitor__nclassdef_61d(val
* self
, val
* p0
) {
142 typing__TypeVisitor__nclassdef_61d(self
, p0
);
145 /* method typing#TypeVisitor#mpropdef for (self: TypeVisitor): MPropDef */
146 val
* typing__TypeVisitor__mpropdef(val
* self
) {
147 val
* var
/* : MPropDef */;
148 val
* var1
/* : MPropDef */;
149 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dmpropdef
].val
; /* @mpropdef on <self:TypeVisitor> */
151 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdef");
152 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 43);
159 /* method typing#TypeVisitor#mpropdef for (self: Object): MPropDef */
160 val
* VIRTUAL_typing__TypeVisitor__mpropdef(val
* self
) {
161 val
* var
/* : MPropDef */;
162 val
* var1
/* : MPropDef */;
163 var1
= typing__TypeVisitor__mpropdef(self
);
168 /* method typing#TypeVisitor#mpropdef= for (self: TypeVisitor, MPropDef) */
169 void typing__TypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
170 self
->attrs
[COLOR_typing__TypeVisitor___64dmpropdef
].val
= p0
; /* @mpropdef on <self:TypeVisitor> */
173 /* method typing#TypeVisitor#mpropdef= for (self: Object, MPropDef) */
174 void VIRTUAL_typing__TypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
175 typing__TypeVisitor__mpropdef_61d(self
, p0
);
178 /* method typing#TypeVisitor#selfvariable for (self: TypeVisitor): Variable */
179 val
* typing__TypeVisitor__selfvariable(val
* self
) {
180 val
* var
/* : Variable */;
181 val
* var1
/* : Variable */;
182 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dselfvariable
].val
; /* @selfvariable on <self:TypeVisitor> */
184 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @selfvariable");
185 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 45);
192 /* method typing#TypeVisitor#selfvariable for (self: Object): Variable */
193 val
* VIRTUAL_typing__TypeVisitor__selfvariable(val
* self
) {
194 val
* var
/* : Variable */;
195 val
* var1
/* : Variable */;
196 var1
= typing__TypeVisitor__selfvariable(self
);
201 /* method typing#TypeVisitor#selfvariable= for (self: TypeVisitor, Variable) */
202 void typing__TypeVisitor__selfvariable_61d(val
* self
, val
* p0
) {
203 self
->attrs
[COLOR_typing__TypeVisitor___64dselfvariable
].val
= p0
; /* @selfvariable on <self:TypeVisitor> */
206 /* method typing#TypeVisitor#selfvariable= for (self: Object, Variable) */
207 void VIRTUAL_typing__TypeVisitor__selfvariable_61d(val
* self
, val
* p0
) {
208 typing__TypeVisitor__selfvariable_61d(self
, p0
);
211 /* method typing#TypeVisitor#init for (self: TypeVisitor, ModelBuilder, AClassdef, MPropDef) */
212 void typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
213 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
214 val
* var_nclassdef
/* var nclassdef: AClassdef */;
215 val
* var_mpropdef
/* var mpropdef: MPropDef */;
216 val
* var
/* : nullable MClassDef */;
217 val
* var1
/* : MClass */;
218 val
* var_mclass
/* var mclass: MClass */;
219 val
* var2
/* : Variable */;
221 val
* var3
/* : String */;
222 char* var4
/* : NativeString */;
223 long var5
/* : Int */;
224 val
* var6
/* : String */;
225 val
* var_selfvariable
/* var selfvariable: Variable */;
226 val
* var7
/* : MClassType */;
227 var_modelbuilder
= p0
;
230 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder_61d
]))(self
, var_modelbuilder
) /* modelbuilder= on <self:TypeVisitor>*/;
231 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef_61d
]))(self
, var_nclassdef
) /* nclassdef= on <self:TypeVisitor>*/;
232 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mpropdef_61d
]))(self
, var_mpropdef
) /* mpropdef= on <self:TypeVisitor>*/;
233 var
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef
) /* mclassdef on <var_nclassdef:AClassdef>*/;
235 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
236 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 53);
239 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__mclass
]))(var
) /* mclass on <var:nullable MClassDef>*/;
242 var2
= NEW_scope__Variable(&type_scope__Variable
);
248 var6
= string__NativeString__to_s_with_length(var4
, var5
);
252 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_scope__Variable__init
]))(var2
, var3
) /* init on <var2:Variable>*/;
253 var_selfvariable
= var2
;
254 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__selfvariable_61d
]))(self
, var_selfvariable
) /* selfvariable= on <self:TypeVisitor>*/;
255 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:MClass>*/;
256 ((void (*)(val
*, val
*))(var_selfvariable
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var_selfvariable
, var7
) /* declared_type= on <var_selfvariable:Variable>*/;
259 /* method typing#TypeVisitor#init for (self: Object, ModelBuilder, AClassdef, MPropDef) */
260 void VIRTUAL_typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
261 typing__TypeVisitor__init(self
, p0
, p1
, p2
);
264 /* method typing#TypeVisitor#mmodule for (self: TypeVisitor): MModule */
265 val
* typing__TypeVisitor__mmodule(val
* self
) {
266 val
* var
/* : MModule */;
267 val
* var1
/* : AClassdef */;
268 val
* var2
/* : nullable MClassDef */;
269 val
* var3
/* : MModule */;
270 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
271 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
273 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
274 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 60);
277 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
284 /* method typing#TypeVisitor#mmodule for (self: Object): MModule */
285 val
* VIRTUAL_typing__TypeVisitor__mmodule(val
* self
) {
286 val
* var
/* : MModule */;
287 val
* var1
/* : MModule */;
288 var1
= typing__TypeVisitor__mmodule(self
);
293 /* method typing#TypeVisitor#anchor for (self: TypeVisitor): MClassType */
294 val
* typing__TypeVisitor__anchor(val
* self
) {
295 val
* var
/* : MClassType */;
296 val
* var1
/* : AClassdef */;
297 val
* var2
/* : nullable MClassDef */;
298 val
* var3
/* : MClassType */;
299 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
300 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
302 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
303 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 62);
306 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var2
) /* bound_mtype on <var2:nullable MClassDef>*/;
313 /* method typing#TypeVisitor#anchor for (self: Object): MClassType */
314 val
* VIRTUAL_typing__TypeVisitor__anchor(val
* self
) {
315 val
* var
/* : MClassType */;
316 val
* var1
/* : MClassType */;
317 var1
= typing__TypeVisitor__anchor(self
);
322 /* method typing#TypeVisitor#anchor_to for (self: TypeVisitor, MType): MType */
323 val
* typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
324 val
* var
/* : MType */;
325 val
* var_mtype
/* var mtype: MType */;
326 val
* var1
/* : AClassdef */;
327 val
* var2
/* : nullable MClassDef */;
328 val
* var3
/* : MModule */;
329 val
* var_mmodule
/* var mmodule: MModule */;
330 val
* var4
/* : AClassdef */;
331 val
* var5
/* : nullable MClassDef */;
332 val
* var6
/* : MClassType */;
333 val
* var_anchor
/* var anchor: MClassType */;
334 val
* var7
/* : MType */;
336 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
337 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
339 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
340 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 66);
343 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
346 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
347 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
349 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
350 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 67);
353 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
356 var7
= ((val
* (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_mtype
, var_mmodule
, var_anchor
) /* anchor_to on <var_mtype:MType>*/;
362 /* method typing#TypeVisitor#anchor_to for (self: Object, MType): MType */
363 val
* VIRTUAL_typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
364 val
* var
/* : MType */;
365 val
* var1
/* : MType */;
366 var1
= typing__TypeVisitor__anchor_to(self
, p0
);
371 /* method typing#TypeVisitor#is_subtype for (self: TypeVisitor, MType, MType): Bool */
372 short int typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
373 short int var
/* : Bool */;
374 val
* var_sub
/* var sub: MType */;
375 val
* var_sup
/* var sup: MType */;
376 val
* var1
/* : AClassdef */;
377 val
* var2
/* : nullable MClassDef */;
378 val
* var3
/* : MModule */;
379 val
* var_mmodule
/* var mmodule: MModule */;
380 val
* var4
/* : AClassdef */;
381 val
* var5
/* : nullable MClassDef */;
382 val
* var6
/* : MClassType */;
383 val
* var_anchor
/* var anchor: MClassType */;
384 short int var7
/* : Bool */;
387 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
388 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
390 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
391 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 73);
394 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
397 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
398 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
400 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
401 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 74);
404 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
407 var7
= ((short int (*)(val
*, val
*, val
*, val
*))(var_sub
->class->vft
[COLOR_model__MType__is_subtype
]))(var_sub
, var_mmodule
, var_anchor
, var_sup
) /* is_subtype on <var_sub:MType>*/;
413 /* method typing#TypeVisitor#is_subtype for (self: Object, MType, MType): Bool */
414 short int VIRTUAL_typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
415 short int var
/* : Bool */;
416 short int var1
/* : Bool */;
417 var1
= typing__TypeVisitor__is_subtype(self
, p0
, p1
);
422 /* method typing#TypeVisitor#resolve_for for (self: TypeVisitor, MType, MType, Bool): MType */
423 val
* typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
424 val
* var
/* : MType */;
425 val
* var_mtype
/* var mtype: MType */;
426 val
* var_subtype
/* var subtype: MType */;
427 short int var_for_self
/* var for_self: Bool */;
428 val
* var1
/* : AClassdef */;
429 val
* var2
/* : nullable MClassDef */;
430 val
* var3
/* : MModule */;
431 val
* var_mmodule
/* var mmodule: MModule */;
432 val
* var4
/* : AClassdef */;
433 val
* var5
/* : nullable MClassDef */;
434 val
* var6
/* : MClassType */;
435 val
* var_anchor
/* var anchor: MClassType */;
436 short int var7
/* : Bool */;
437 val
* var8
/* : MType */;
438 val
* var_res
/* var res: MType */;
442 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
443 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
445 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
446 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 80);
449 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
452 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
453 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
455 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
456 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 81);
459 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
462 var7
= !var_for_self
;
463 var8
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_mtype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_mtype
, var_subtype
, var_anchor
, var_mmodule
, var7
) /* resolve_for on <var_mtype:MType>*/;
470 /* method typing#TypeVisitor#resolve_for for (self: Object, MType, MType, Bool): MType */
471 val
* VIRTUAL_typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
472 val
* var
/* : MType */;
473 val
* var1
/* : MType */;
474 var1
= typing__TypeVisitor__resolve_for(self
, p0
, p1
, p2
);
479 /* method typing#TypeVisitor#resolve_signature_for for (self: TypeVisitor, MMethodDef, MType, Bool): MSignature */
480 val
* typing__TypeVisitor__resolve_signature_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
481 val
* var
/* : MSignature */;
482 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
483 val
* var_recv
/* var recv: MType */;
484 short int var_for_self
/* var for_self: Bool */;
485 val
* var1
/* : nullable MSignature */;
486 val
* var2
/* : MType */;
487 short int var3
/* : Bool */;
490 const char* var_class_name
;
494 var1
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
496 fprintf(stderr
, "Runtime error: %s", "Cast failed");
497 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 94);
500 var2
= ((val
* (*)(val
*, val
*, val
*, short int))(self
->class->vft
[COLOR_typing__TypeVisitor__resolve_for
]))(self
, var1
, var_recv
, var_for_self
) /* resolve_for on <self:TypeVisitor>*/;
501 /* <var2:MType> isa MSignature */
502 cltype
= type_model__MSignature
.color
;
503 idtype
= type_model__MSignature
.id
;
504 if(cltype
>= var2
->type
->table_size
) {
507 var3
= var2
->type
->type_table
[cltype
] == idtype
;
510 var_class_name
= var2
== NULL ?
"null" : var2
->type
->name
;
511 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
512 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 94);
520 /* method typing#TypeVisitor#resolve_signature_for for (self: Object, MMethodDef, MType, Bool): MSignature */
521 val
* VIRTUAL_typing__TypeVisitor__resolve_signature_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
522 val
* var
/* : MSignature */;
523 val
* var1
/* : MSignature */;
524 var1
= typing__TypeVisitor__resolve_signature_for(self
, p0
, p1
, p2
);
529 /* method typing#TypeVisitor#check_subtype for (self: TypeVisitor, ANode, MType, MType): nullable MType */
530 val
* typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
531 val
* var
/* : nullable MType */;
532 val
* var_node
/* var node: ANode */;
533 val
* var_sub
/* var sub: MType */;
534 val
* var_sup
/* var sup: MType */;
535 short int var1
/* : Bool */;
536 val
* var2
/* : MType */;
537 short int var3
/* : Bool */;
538 val
* var4
/* : ModelBuilder */;
540 val
* var5
/* : String */;
541 char* var6
/* : NativeString */;
542 long var7
/* : Int */;
543 val
* var8
/* : String */;
544 static val
* varonce9
;
545 val
* var10
/* : String */;
546 char* var11
/* : NativeString */;
547 long var12
/* : Int */;
548 val
* var13
/* : String */;
549 val
* var14
/* : Array[Object] */;
550 long var15
/* : Int */;
551 val
* var16
/* : NativeArray[Object] */;
552 val
* var17
/* : String */;
553 val
* var18
/* : null */;
557 var1
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var_sup
) /* is_subtype on <self:TypeVisitor>*/;
563 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(self
, var_sup
) /* anchor_to on <self:TypeVisitor>*/;
564 var3
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var2
) /* is_subtype on <self:TypeVisitor>*/;
570 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
574 var6
= "Type error: expected ";
576 var8
= string__NativeString__to_s_with_length(var6
, var7
);
585 var13
= string__NativeString__to_s_with_length(var11
, var12
);
589 var14
= NEW_array__Array(&type_array__Arraykernel__Object
);
590 { /* var14 = array_instance Array[Object] */
592 var16
= NEW_array__NativeArray(var15
, &type_array__NativeArraykernel__Object
);
593 ((struct instance_array__NativeArray
*)var16
)->values
[0] = (val
*) var5
;
594 ((struct instance_array__NativeArray
*)var16
)->values
[1] = (val
*) var_sup
;
595 ((struct instance_array__NativeArray
*)var16
)->values
[2] = (val
*) var10
;
596 ((struct instance_array__NativeArray
*)var16
)->values
[3] = (val
*) var_sub
;
597 ((void (*)(val
*, val
*, long))(var14
->class->vft
[COLOR_array__Array__with_native
]))(var14
, var16
, var15
) /* with_native on <var14:Array[Object]>*/;
599 var17
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_string__Object__to_s
]))(var14
) /* to_s on <var14:Array[Object]>*/;
600 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var4
, var_node
, var17
) /* error on <var4:ModelBuilder>*/;
607 /* method typing#TypeVisitor#check_subtype for (self: Object, ANode, MType, MType): nullable MType */
608 val
* VIRTUAL_typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
609 val
* var
/* : nullable MType */;
610 val
* var1
/* : nullable MType */;
611 var1
= typing__TypeVisitor__check_subtype(self
, p0
, p1
, p2
);
616 /* method typing#TypeVisitor#visit_stmt for (self: TypeVisitor, nullable AExpr) */
617 void typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
618 val
* var_nexpr
/* var nexpr: nullable AExpr */;
619 val
* var
/* : null */;
620 short int var1
/* : Bool */;
623 if (var_nexpr
== NULL
) {
624 var1
= 1; /* is null */
626 var1
= 0; /* arg is null but recv is not */
632 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:nullable AExpr(AExpr)>*/;
635 /* method typing#TypeVisitor#visit_stmt for (self: Object, nullable AExpr) */
636 void VIRTUAL_typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
637 typing__TypeVisitor__visit_stmt(self
, p0
);
640 /* method typing#TypeVisitor#visit_expr for (self: TypeVisitor, AExpr): nullable MType */
641 val
* typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
642 val
* var
/* : nullable MType */;
643 val
* var_nexpr
/* var nexpr: AExpr */;
644 val
* var1
/* : nullable MType */;
645 val
* var_mtype
/* var mtype: nullable MType */;
646 val
* var2
/* : null */;
647 short int var3
/* : Bool */;
648 short int var4
/* : Bool */;
649 short int var5
/* : Bool */;
650 val
* var6
/* : ModelBuilder */;
651 val
* var7
/* : ToolContext */;
652 long var8
/* : Int */;
653 long var9
/* : Int */;
654 short int var10
/* : Bool */;
655 short int var12
/* : Bool */;
658 const char* var_class_name
;
659 short int var13
/* : Bool */;
660 short int var14
/* : Bool */;
661 val
* var15
/* : ModelBuilder */;
662 val
* var16
/* : ToolContext */;
663 long var17
/* : Int */;
664 long var18
/* : Int */;
665 short int var19
/* : Bool */;
666 short int var21
/* : Bool */;
669 const char* var_class_name24
;
670 short int var25
/* : Bool */;
672 val
* var26
/* : String */;
673 char* var27
/* : NativeString */;
674 long var28
/* : Int */;
675 val
* var29
/* : String */;
676 val
* var30
/* : null */;
677 static val
* varonce31
;
678 val
* var32
/* : String */;
679 char* var33
/* : NativeString */;
680 long var34
/* : Int */;
681 val
* var35
/* : String */;
682 val
* var36
/* : null */;
684 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:AExpr>*/;
685 var1
= ((val
* (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__mtype
]))(var_nexpr
) /* mtype on <var_nexpr:AExpr>*/;
688 if (var_mtype
== NULL
) {
689 var3
= 0; /* is null */
691 var3
= 1; /* arg is null and recv is not */
698 var4
= ((short int (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__is_typed
]))(var_nexpr
) /* is_typed on <var_nexpr:AExpr>*/;
701 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
702 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var6
) /* toolcontext on <var6:ModelBuilder>*/;
703 var8
= ((long (*)(val
*))(var7
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var7
) /* error_count on <var7:ToolContext>*/;
705 { /* Inline kernel#Int#> (var8,var9) */
706 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
707 /* <var9:Int> isa OTHER */
708 var12
= 1; /* easy <var9:Int> isa OTHER*/
710 var_class_name
= type_kernel__Int
.name
;
711 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
712 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
722 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
723 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var15
) /* toolcontext on <var15:ModelBuilder>*/;
724 var17
= ((long (*)(val
*))(var16
->class->vft
[COLOR_toolcontext__ToolContext__verbose_level
]))(var16
) /* verbose_level on <var16:ToolContext>*/;
726 { /* Inline kernel#Int#> (var17,var18) */
727 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
728 /* <var18:Int> isa OTHER */
729 var21
= 1; /* easy <var18:Int> isa OTHER*/
731 var_class_name24
= type_kernel__Int
.name
;
732 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24
);
733 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
736 var25
= var17
> var18
;
745 var27
= "No return type but no error.";
747 var29
= string__NativeString__to_s_with_length(var27
, var28
);
751 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(var_nexpr
, var26
) /* debug on <var_nexpr:AExpr>*/;
764 var33
= "Type error: expected expression.";
766 var35
= string__NativeString__to_s_with_length(var33
, var34
);
770 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_nexpr
, var32
) /* error on <self:TypeVisitor>*/;
777 /* method typing#TypeVisitor#visit_expr for (self: Object, AExpr): nullable MType */
778 val
* VIRTUAL_typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
779 val
* var
/* : nullable MType */;
780 val
* var1
/* : nullable MType */;
781 var1
= typing__TypeVisitor__visit_expr(self
, p0
);
786 /* method typing#TypeVisitor#visit_expr_subtype for (self: TypeVisitor, AExpr, nullable MType): nullable MType */
787 val
* typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
788 val
* var
/* : nullable MType */;
789 val
* var_nexpr
/* var nexpr: AExpr */;
790 val
* var_sup
/* var sup: nullable MType */;
791 val
* var1
/* : nullable MType */;
792 val
* var_sub
/* var sub: nullable MType */;
793 val
* var2
/* : null */;
794 short int var3
/* : Bool */;
795 val
* var4
/* : null */;
796 val
* var5
/* : null */;
797 short int var6
/* : Bool */;
798 val
* var7
/* : null */;
799 val
* var8
/* : nullable MType */;
800 val
* var_res
/* var res: nullable MType */;
801 short int var9
/* : Bool */;
804 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(self
, var_nexpr
) /* visit_expr on <self:TypeVisitor>*/;
807 if (var_sub
== NULL
) {
808 var3
= 1; /* is null */
810 var3
= 0; /* arg is null but recv is not */
819 if (var_sup
== NULL
) {
820 var6
= 1; /* is null */
822 var6
= 0; /* arg is null but recv is not */
830 var8
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__check_subtype
]))(self
, var_nexpr
, var_sub
, var_sup
) /* check_subtype on <self:TypeVisitor>*/;
832 if (var_res
== NULL
) {
833 var9
= 1; /* <var_sub:nullable MType(MType)> cannot be null */
835 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_res
, var_sub
) /* != on <var_res:nullable MType>*/;
838 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__implicit_cast_to_61d
]))(var_nexpr
, var_res
) /* implicit_cast_to= on <var_nexpr:AExpr>*/;
846 /* method typing#TypeVisitor#visit_expr_subtype for (self: Object, AExpr, nullable MType): nullable MType */
847 val
* VIRTUAL_typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
848 val
* var
/* : nullable MType */;
849 val
* var1
/* : nullable MType */;
850 var1
= typing__TypeVisitor__visit_expr_subtype(self
, p0
, p1
);
855 /* method typing#TypeVisitor#visit_expr_bool for (self: TypeVisitor, AExpr): nullable MType */
856 val
* typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
857 val
* var
/* : nullable MType */;
858 val
* var_nexpr
/* var nexpr: AExpr */;
859 val
* var1
/* : nullable MType */;
860 val
* var2
/* : nullable MType */;
862 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(self
, var_nexpr
) /* type_bool on <self:TypeVisitor>*/;
863 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var_nexpr
, var1
) /* visit_expr_subtype on <self:TypeVisitor>*/;
869 /* method typing#TypeVisitor#visit_expr_bool for (self: Object, AExpr): nullable MType */
870 val
* VIRTUAL_typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
871 val
* var
/* : nullable MType */;
872 val
* var1
/* : nullable MType */;
873 var1
= typing__TypeVisitor__visit_expr_bool(self
, p0
);
878 /* method typing#TypeVisitor#visit_expr_cast for (self: TypeVisitor, ANode, AExpr, AType): nullable MType */
879 val
* typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
880 val
* var
/* : nullable MType */;
881 val
* var_node
/* var node: ANode */;
882 val
* var_nexpr
/* var nexpr: AExpr */;
883 val
* var_ntype
/* var ntype: AType */;
884 val
* var1
/* : nullable MType */;
885 val
* var_sub
/* var sub: nullable MType */;
886 val
* var2
/* : null */;
887 short int var3
/* : Bool */;
888 val
* var4
/* : null */;
889 val
* var5
/* : nullable MType */;
890 val
* var_sup
/* var sup: nullable MType */;
891 val
* var6
/* : null */;
892 short int var7
/* : Bool */;
893 val
* var8
/* : null */;
894 val
* var9
/* : AClassdef */;
895 val
* var10
/* : nullable MClassDef */;
896 val
* var11
/* : MModule */;
897 val
* var_mmodule
/* var mmodule: MModule */;
898 val
* var12
/* : AClassdef */;
899 val
* var13
/* : nullable MClassDef */;
900 val
* var14
/* : MClassType */;
901 val
* var_anchor
/* var anchor: MClassType */;
902 short int var15
/* : Bool */;
903 val
* var16
/* : ModelBuilder */;
905 val
* var17
/* : String */;
906 char* var18
/* : NativeString */;
907 long var19
/* : Int */;
908 val
* var20
/* : String */;
909 static val
* varonce21
;
910 val
* var22
/* : String */;
911 char* var23
/* : NativeString */;
912 long var24
/* : Int */;
913 val
* var25
/* : String */;
914 val
* var26
/* : Array[Object] */;
915 long var27
/* : Int */;
916 val
* var28
/* : NativeArray[Object] */;
917 val
* var29
/* : String */;
918 short int var30
/* : Bool */;
919 short int var31
/* : Bool */;
920 short int var_
/* var : Bool */;
921 short int var32
/* : Bool */;
922 short int var33
/* : Bool */;
923 val
* var34
/* : ModelBuilder */;
924 static val
* varonce35
;
925 val
* var36
/* : String */;
926 char* var37
/* : NativeString */;
927 long var38
/* : Int */;
928 val
* var39
/* : String */;
929 static val
* varonce40
;
930 val
* var41
/* : String */;
931 char* var42
/* : NativeString */;
932 long var43
/* : Int */;
933 val
* var44
/* : String */;
934 static val
* varonce45
;
935 val
* var46
/* : String */;
936 char* var47
/* : NativeString */;
937 long var48
/* : Int */;
938 val
* var49
/* : String */;
939 val
* var50
/* : Array[Object] */;
940 long var51
/* : Int */;
941 val
* var52
/* : NativeArray[Object] */;
942 val
* var53
/* : String */;
946 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(self
, var_nexpr
) /* visit_expr on <self:TypeVisitor>*/;
949 if (var_sub
== NULL
) {
950 var3
= 1; /* is null */
952 var3
= 0; /* arg is null but recv is not */
960 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(self
, var_ntype
) /* resolve_mtype on <self:TypeVisitor>*/;
963 if (var_sup
== NULL
) {
964 var7
= 1; /* is null */
966 var7
= 0; /* arg is null but recv is not */
974 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
975 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var9
) /* mclassdef on <var9:AClassdef>*/;
977 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
978 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 184);
981 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var10
) /* mmodule on <var10:nullable MClassDef>*/;
984 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
985 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var12
) /* mclassdef on <var12:AClassdef>*/;
987 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
988 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 185);
991 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var13
) /* bound_mtype on <var13:nullable MClassDef>*/;
994 var15
= ((short int (*)(val
*, val
*))(var_sup
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sup
, var_sub
) /* == on <var_sup:nullable MType(MType)>*/;
996 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1000 var18
= "Warning: Expression is already a ";
1002 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1011 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1015 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
1016 { /* var26 = array_instance Array[Object] */
1018 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
1019 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
1020 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_sup
;
1021 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var22
;
1022 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
1024 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
1025 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var16
, var_node
, var29
) /* warning on <var16:ModelBuilder>*/;
1027 var31
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var_sup
) /* is_subtype on <self:TypeVisitor>*/;
1030 var32
= ((short int (*)(val
*))(var_sup
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sup
) /* need_anchor on <var_sup:nullable MType(MType)>*/;
1037 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1041 var37
= "Warning: Expression is already a ";
1043 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1050 var42
= " since it is a ";
1052 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1061 var49
= string__NativeString__to_s_with_length(var47
, var48
);
1065 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
1066 { /* var50 = array_instance Array[Object] */
1068 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
1069 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var36
;
1070 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var_sup
;
1071 ((struct instance_array__NativeArray
*)var52
)->values
[2] = (val
*) var41
;
1072 ((struct instance_array__NativeArray
*)var52
)->values
[3] = (val
*) var_sub
;
1073 ((struct instance_array__NativeArray
*)var52
)->values
[4] = (val
*) var46
;
1074 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
1076 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
1077 ((void (*)(val
*, val
*, val
*))(var34
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var34
, var_node
, var53
) /* warning on <var34:ModelBuilder>*/;
1086 /* method typing#TypeVisitor#visit_expr_cast for (self: Object, ANode, AExpr, AType): nullable MType */
1087 val
* VIRTUAL_typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1088 val
* var
/* : nullable MType */;
1089 val
* var1
/* : nullable MType */;
1090 var1
= typing__TypeVisitor__visit_expr_cast(self
, p0
, p1
, p2
);
1095 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: TypeVisitor, ANode, MType, String): nullable MProperty */
1096 val
* typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1097 val
* var
/* : nullable MProperty */;
1098 val
* var_anode
/* var anode: ANode */;
1099 val
* var_mtype
/* var mtype: MType */;
1100 val
* var_name
/* var name: String */;
1101 val
* var1
/* : ModelBuilder */;
1102 val
* var2
/* : AClassdef */;
1103 val
* var3
/* : nullable MClassDef */;
1104 val
* var4
/* : MModule */;
1105 val
* var5
/* : nullable MProperty */;
1109 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1110 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1111 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var2
) /* mclassdef on <var2:AClassdef>*/;
1113 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1114 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 196);
1117 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var3
) /* mmodule on <var3:nullable MClassDef>*/;
1119 var5
= ((val
* (*)(val
*, val
*, val
*, val
*, val
*))(var1
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name2
]))(var1
, var_anode
, var4
, var_mtype
, var_name
) /* try_get_mproperty_by_name2 on <var1:ModelBuilder>*/;
1125 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: Object, ANode, MType, String): nullable MProperty */
1126 val
* VIRTUAL_typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1127 val
* var
/* : nullable MProperty */;
1128 val
* var1
/* : nullable MProperty */;
1129 var1
= typing__TypeVisitor__try_get_mproperty_by_name2(self
, p0
, p1
, p2
);
1134 /* method typing#TypeVisitor#resolve_mtype for (self: TypeVisitor, AType): nullable MType */
1135 val
* typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
1136 val
* var
/* : nullable MType */;
1137 val
* var_node
/* var node: AType */;
1138 val
* var1
/* : ModelBuilder */;
1139 val
* var2
/* : AClassdef */;
1140 val
* var3
/* : nullable MType */;
1142 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1143 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1144 var3
= ((val
* (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype
]))(var1
, var2
, var_node
) /* resolve_mtype on <var1:ModelBuilder>*/;
1150 /* method typing#TypeVisitor#resolve_mtype for (self: Object, AType): nullable MType */
1151 val
* VIRTUAL_typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
1152 val
* var
/* : nullable MType */;
1153 val
* var1
/* : nullable MType */;
1154 var1
= typing__TypeVisitor__resolve_mtype(self
, p0
);
1159 /* method typing#TypeVisitor#try_get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1160 val
* typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1161 val
* var
/* : nullable MClass */;
1162 val
* var_node
/* var node: ANode */;
1163 val
* var_name
/* var name: String */;
1164 val
* var1
/* : AClassdef */;
1165 val
* var2
/* : nullable MClassDef */;
1166 val
* var3
/* : MModule */;
1167 val
* var_mmodule
/* var mmodule: MModule */;
1168 val
* var4
/* : ModelBuilder */;
1169 val
* var5
/* : nullable MClass */;
1170 val
* var_mclass
/* var mclass: nullable MClass */;
1173 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1174 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
1176 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1177 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 206);
1180 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
1183 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1184 var5
= ((val
* (*)(val
*, val
*, val
*, val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(var4
, var_node
, var_mmodule
, var_name
) /* try_get_mclass_by_name on <var4:ModelBuilder>*/;
1191 /* method typing#TypeVisitor#try_get_mclass for (self: Object, ANode, String): nullable MClass */
1192 val
* VIRTUAL_typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1193 val
* var
/* : nullable MClass */;
1194 val
* var1
/* : nullable MClass */;
1195 var1
= typing__TypeVisitor__try_get_mclass(self
, p0
, p1
);
1200 /* method typing#TypeVisitor#get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1201 val
* typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
1202 val
* var
/* : nullable MClass */;
1203 val
* var_node
/* var node: ANode */;
1204 val
* var_name
/* var name: String */;
1205 val
* var1
/* : AClassdef */;
1206 val
* var2
/* : nullable MClassDef */;
1207 val
* var3
/* : MModule */;
1208 val
* var_mmodule
/* var mmodule: MModule */;
1209 val
* var4
/* : ModelBuilder */;
1210 val
* var5
/* : nullable MClass */;
1211 val
* var_mclass
/* var mclass: nullable MClass */;
1212 val
* var6
/* : null */;
1213 short int var7
/* : Bool */;
1214 val
* var8
/* : ModelBuilder */;
1215 static val
* varonce
;
1216 val
* var9
/* : String */;
1217 char* var10
/* : NativeString */;
1218 long var11
/* : Int */;
1219 val
* var12
/* : String */;
1220 static val
* varonce13
;
1221 val
* var14
/* : String */;
1222 char* var15
/* : NativeString */;
1223 long var16
/* : Int */;
1224 val
* var17
/* : String */;
1225 val
* var18
/* : Array[Object] */;
1226 long var19
/* : Int */;
1227 val
* var20
/* : NativeArray[Object] */;
1228 val
* var21
/* : String */;
1231 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1232 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
1234 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1235 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 213);
1238 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
1241 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1242 var5
= ((val
* (*)(val
*, val
*, val
*, val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__try_get_mclass_by_name
]))(var4
, var_node
, var_mmodule
, var_name
) /* try_get_mclass_by_name on <var4:ModelBuilder>*/;
1245 if (var_mclass
== NULL
) {
1246 var7
= 1; /* is null */
1248 var7
= 0; /* arg is null but recv is not */
1251 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1255 var10
= "Type Error: missing primitive class `";
1257 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1266 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1270 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
1271 { /* var18 = array_instance Array[Object] */
1273 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
1274 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var9
;
1275 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var_name
;
1276 ((struct instance_array__NativeArray
*)var20
)->values
[2] = (val
*) var14
;
1277 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
1279 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
1280 ((void (*)(val
*, val
*, val
*))(var8
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var8
, var_node
, var21
) /* error on <var8:ModelBuilder>*/;
1288 /* method typing#TypeVisitor#get_mclass for (self: Object, ANode, String): nullable MClass */
1289 val
* VIRTUAL_typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
1290 val
* var
/* : nullable MClass */;
1291 val
* var1
/* : nullable MClass */;
1292 var1
= typing__TypeVisitor__get_mclass(self
, p0
, p1
);
1297 /* method typing#TypeVisitor#type_bool for (self: TypeVisitor, ANode): nullable MType */
1298 val
* typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
1299 val
* var
/* : nullable MType */;
1300 val
* var_node
/* var node: ANode */;
1301 static val
* varonce
;
1302 val
* var1
/* : String */;
1303 char* var2
/* : NativeString */;
1304 long var3
/* : Int */;
1305 val
* var4
/* : String */;
1306 val
* var5
/* : nullable MClass */;
1307 val
* var_mclass
/* var mclass: nullable MClass */;
1308 val
* var6
/* : null */;
1309 short int var7
/* : Bool */;
1310 val
* var8
/* : null */;
1311 val
* var9
/* : MClassType */;
1318 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1322 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(self
, var_node
, var1
) /* get_mclass on <self:TypeVisitor>*/;
1325 if (var_mclass
== NULL
) {
1326 var7
= 1; /* is null */
1328 var7
= 0; /* arg is null but recv is not */
1336 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
1342 /* method typing#TypeVisitor#type_bool for (self: Object, ANode): nullable MType */
1343 val
* VIRTUAL_typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
1344 val
* var
/* : nullable MType */;
1345 val
* var1
/* : nullable MType */;
1346 var1
= typing__TypeVisitor__type_bool(self
, p0
);
1351 /* method typing#TypeVisitor#get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
1352 val
* typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
1353 val
* var
/* : nullable CallSite */;
1354 val
* var_node
/* var node: ANode */;
1355 val
* var_recvtype
/* var recvtype: MType */;
1356 val
* var_name
/* var name: String */;
1357 short int var_recv_is_self
/* var recv_is_self: Bool */;
1358 val
* var1
/* : MType */;
1359 val
* var_unsafe_type
/* var unsafe_type: MType */;
1360 short int var2
/* : Bool */;
1363 static val
* varonce
;
1364 val
* var3
/* : String */;
1365 char* var4
/* : NativeString */;
1366 long var5
/* : Int */;
1367 val
* var6
/* : String */;
1368 static val
* varonce7
;
1369 val
* var8
/* : String */;
1370 char* var9
/* : NativeString */;
1371 long var10
/* : Int */;
1372 val
* var11
/* : String */;
1373 val
* var12
/* : Array[Object] */;
1374 long var13
/* : Int */;
1375 val
* var14
/* : NativeArray[Object] */;
1376 val
* var15
/* : String */;
1377 val
* var16
/* : null */;
1378 val
* var17
/* : nullable MProperty */;
1379 val
* var_mproperty
/* var mproperty: nullable MProperty */;
1380 val
* var18
/* : null */;
1381 short int var19
/* : Bool */;
1382 val
* var20
/* : ModelBuilder */;
1383 static val
* varonce21
;
1384 val
* var22
/* : String */;
1385 char* var23
/* : NativeString */;
1386 long var24
/* : Int */;
1387 val
* var25
/* : String */;
1388 static val
* varonce26
;
1389 val
* var27
/* : String */;
1390 char* var28
/* : NativeString */;
1391 long var29
/* : Int */;
1392 val
* var30
/* : String */;
1393 static val
* varonce31
;
1394 val
* var32
/* : String */;
1395 char* var33
/* : NativeString */;
1396 long var34
/* : Int */;
1397 val
* var35
/* : String */;
1398 val
* var36
/* : Array[Object] */;
1399 long var37
/* : Int */;
1400 val
* var38
/* : NativeArray[Object] */;
1401 val
* var39
/* : String */;
1402 val
* var40
/* : ModelBuilder */;
1403 static val
* varonce41
;
1404 val
* var42
/* : String */;
1405 char* var43
/* : NativeString */;
1406 long var44
/* : Int */;
1407 val
* var45
/* : String */;
1408 static val
* varonce46
;
1409 val
* var47
/* : String */;
1410 char* var48
/* : NativeString */;
1411 long var49
/* : Int */;
1412 val
* var50
/* : String */;
1413 static val
* varonce51
;
1414 val
* var52
/* : String */;
1415 char* var53
/* : NativeString */;
1416 long var54
/* : Int */;
1417 val
* var55
/* : String */;
1418 val
* var56
/* : Array[Object] */;
1419 long var57
/* : Int */;
1420 val
* var58
/* : NativeArray[Object] */;
1421 val
* var59
/* : String */;
1422 val
* var60
/* : null */;
1423 short int var61
/* : Bool */;
1426 short int var64
/* : Bool */;
1427 short int var65
/* : Bool */;
1428 val
* var66
/* : MVisibility */;
1429 val
* var67
/* : MVisibility */;
1430 short int var68
/* : Bool */;
1431 short int var_
/* var : Bool */;
1432 short int var69
/* : Bool */;
1433 short int var_70
/* var : Bool */;
1434 val
* var71
/* : MModule */;
1435 val
* var72
/* : MClassDef */;
1436 val
* var73
/* : MModule */;
1437 val
* var74
/* : MVisibility */;
1438 val
* var75
/* : MVisibility */;
1439 short int var76
/* : Bool */;
1440 val
* var77
/* : ModelBuilder */;
1441 static val
* varonce78
;
1442 val
* var79
/* : String */;
1443 char* var80
/* : NativeString */;
1444 long var81
/* : Int */;
1445 val
* var82
/* : String */;
1446 static val
* varonce83
;
1447 val
* var84
/* : String */;
1448 char* var85
/* : NativeString */;
1449 long var86
/* : Int */;
1450 val
* var87
/* : String */;
1451 val
* var88
/* : MClassDef */;
1452 val
* var89
/* : MModule */;
1453 val
* var90
/* : MModule */;
1454 val
* var91
/* : MVisibility */;
1455 val
* var92
/* : Array[Object] */;
1456 long var93
/* : Int */;
1457 val
* var94
/* : NativeArray[Object] */;
1458 val
* var95
/* : String */;
1459 val
* var96
/* : null */;
1460 val
* var97
/* : MModule */;
1461 val
* var98
/* : Array[MPropDef] */;
1462 val
* var_propdefs
/* var propdefs: Array[MMethodDef] */;
1463 long var99
/* : Int */;
1464 long var100
/* : Int */;
1465 short int var101
/* : Bool */;
1466 short int var103
/* : Bool */;
1467 val
* var104
/* : ModelBuilder */;
1468 static val
* varonce105
;
1469 val
* var106
/* : String */;
1470 char* var107
/* : NativeString */;
1471 long var108
/* : Int */;
1472 val
* var109
/* : String */;
1473 static val
* varonce110
;
1474 val
* var111
/* : String */;
1475 char* var112
/* : NativeString */;
1476 long var113
/* : Int */;
1477 val
* var114
/* : String */;
1478 val
* var115
/* : Array[Object] */;
1479 long var116
/* : Int */;
1480 val
* var117
/* : NativeArray[Object] */;
1481 val
* var118
/* : String */;
1482 val
* var119
/* : null */;
1483 long var120
/* : Int */;
1484 long var121
/* : Int */;
1485 short int var122
/* : Bool */;
1486 short int var124
/* : Bool */;
1487 val
* var125
/* : nullable Object */;
1488 val
* var_mpropdef
/* var mpropdef: nullable Object */;
1489 val
* var126
/* : ModelBuilder */;
1490 static val
* varonce127
;
1491 val
* var128
/* : String */;
1492 char* var129
/* : NativeString */;
1493 long var130
/* : Int */;
1494 val
* var131
/* : String */;
1495 static val
* varonce132
;
1496 val
* var133
/* : String */;
1497 char* var134
/* : NativeString */;
1498 long var135
/* : Int */;
1499 val
* var136
/* : String */;
1500 static val
* varonce137
;
1501 val
* var138
/* : String */;
1502 char* var139
/* : NativeString */;
1503 long var140
/* : Int */;
1504 val
* var141
/* : String */;
1505 static val
* varonce142
;
1506 val
* var143
/* : String */;
1507 char* var144
/* : NativeString */;
1508 long var145
/* : Int */;
1509 val
* var146
/* : String */;
1510 val
* var147
/* : String */;
1511 val
* var148
/* : Array[Object] */;
1512 long var149
/* : Int */;
1513 val
* var150
/* : NativeArray[Object] */;
1514 val
* var151
/* : String */;
1515 val
* var152
/* : MPropDef */;
1516 val
* var153
/* : MSignature */;
1517 val
* var_msignature
/* var msignature: MSignature */;
1518 short int var154
/* : Bool */;
1519 short int var_erasure_cast
/* var erasure_cast: Bool */;
1520 val
* var155
/* : nullable MSignature */;
1521 val
* var156
/* : nullable MType */;
1522 val
* var_rettype
/* var rettype: nullable MType */;
1523 short int var157
/* : Bool */;
1524 short int var158
/* : Bool */;
1525 short int var_159
/* var : Bool */;
1526 val
* var160
/* : null */;
1527 short int var161
/* : Bool */;
1528 short int var162
/* : Bool */;
1531 val
* var165
/* : MType */;
1532 short int var166
/* : Bool */;
1535 val
* var169
/* : nullable MType */;
1536 val
* var_erased_rettype
/* var erased_rettype: nullable MType */;
1537 val
* var170
/* : null */;
1538 short int var171
/* : Bool */;
1539 short int var172
/* : Bool */;
1540 val
* var173
/* : CallSite */;
1541 val
* var_callsite
/* var callsite: CallSite */;
1545 var_recv_is_self
= p3
;
1546 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(self
, var_recvtype
) /* anchor_to on <self:TypeVisitor>*/;
1547 var_unsafe_type
= var1
;
1548 /* <var_recvtype:MType> isa MNullType */
1549 cltype
= type_model__MNullType
.color
;
1550 idtype
= type_model__MNullType
.id
;
1551 if(cltype
>= var_recvtype
->type
->table_size
) {
1554 var2
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
1560 var4
= "Error: Method \'";
1562 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1569 var9
= "\' call on \'null\'.";
1571 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1575 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
1576 { /* var12 = array_instance Array[Object] */
1578 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
1579 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var3
;
1580 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var_name
;
1581 ((struct instance_array__NativeArray
*)var14
)->values
[2] = (val
*) var8
;
1582 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
1584 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
1585 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_node
, var15
) /* error on <self:TypeVisitor>*/;
1591 var17
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__try_get_mproperty_by_name2
]))(self
, var_node
, var_unsafe_type
, var_name
) /* try_get_mproperty_by_name2 on <self:TypeVisitor>*/;
1592 var_mproperty
= var17
;
1594 if (var_mproperty
== NULL
) {
1595 var19
= 1; /* is null */
1597 var19
= 0; /* arg is null but recv is not */
1600 if (var_recv_is_self
){
1601 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1605 var23
= "Error: Method or variable \'";
1607 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1614 var28
= "\' unknown in ";
1616 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1625 var35
= string__NativeString__to_s_with_length(var33
, var34
);
1629 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
1630 { /* var36 = array_instance Array[Object] */
1632 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
1633 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var22
;
1634 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var_name
;
1635 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var27
;
1636 ((struct instance_array__NativeArray
*)var38
)->values
[3] = (val
*) var_recvtype
;
1637 ((struct instance_array__NativeArray
*)var38
)->values
[4] = (val
*) var32
;
1638 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
1640 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
1641 ((void (*)(val
*, val
*, val
*))(var20
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var20
, var_node
, var39
) /* error on <var20:ModelBuilder>*/;
1643 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1647 var43
= "Error: Method \'";
1649 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1656 var48
= "\' doesn\'t exists in ";
1658 var50
= string__NativeString__to_s_with_length(var48
, var49
);
1667 var55
= string__NativeString__to_s_with_length(var53
, var54
);
1671 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
1672 { /* var56 = array_instance Array[Object] */
1674 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
1675 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var42
;
1676 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_name
;
1677 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
1678 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var_recvtype
;
1679 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
1680 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
1682 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
1683 ((void (*)(val
*, val
*, val
*))(var40
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var40
, var_node
, var59
) /* error on <var40:ModelBuilder>*/;
1690 /* <var_mproperty:nullable MProperty(MProperty)> isa MMethod */
1691 cltype62
= type_model__MMethod
.color
;
1692 idtype63
= type_model__MMethod
.id
;
1693 if(cltype62
>= var_mproperty
->type
->table_size
) {
1696 var61
= var_mproperty
->type
->type_table
[cltype62
] == idtype63
;
1699 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1700 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 249);
1703 var66
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__visibility
]))(var_mproperty
) /* visibility on <var_mproperty:nullable MProperty(MMethod)>*/;
1704 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__protected_visibility
]))(self
) /* protected_visibility on <self:TypeVisitor>*/;
1705 var68
= ((short int (*)(val
*, val
*))(var66
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var66
, var67
) /* == on <var66:MVisibility>*/;
1708 var69
= !var_recv_is_self
;
1715 var71
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1716 var72
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)>*/;
1717 var73
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var72
) /* mmodule on <var72:MClassDef>*/;
1718 var74
= ((val
* (*)(val
*, val
*))(var71
->class->vft
[COLOR_mmodule__MModule__visibility_for
]))(var71
, var73
) /* visibility_for on <var71:MModule>*/;
1719 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__intrude_visibility
]))(self
) /* intrude_visibility on <self:TypeVisitor>*/;
1720 var76
= ((short int (*)(val
*, val
*))(var74
->class->vft
[COLOR_kernel__Comparable___60d
]))(var74
, var75
) /* < on <var74:MVisibility>*/;
1726 var77
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1730 var80
= "Error: Method \'";
1732 var82
= string__NativeString__to_s_with_length(var80
, var81
);
1739 var85
= "\' is protected and can only acceded by self. ";
1741 var87
= string__NativeString__to_s_with_length(var85
, var86
);
1745 var88
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)>*/;
1746 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var88
) /* mmodule on <var88:MClassDef>*/;
1747 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1748 var91
= ((val
* (*)(val
*, val
*))(var89
->class->vft
[COLOR_mmodule__MModule__visibility_for
]))(var89
, var90
) /* visibility_for on <var89:MModule>*/;
1749 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
1750 { /* var92 = array_instance Array[Object] */
1752 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
1753 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var79
;
1754 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var_name
;
1755 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var84
;
1756 ((struct instance_array__NativeArray
*)var94
)->values
[3] = (val
*) var91
;
1757 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
1759 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
1760 ((void (*)(val
*, val
*, val
*))(var77
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var77
, var_node
, var95
) /* error on <var77:ModelBuilder>*/;
1766 var97
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1767 var98
= ((val
* (*)(val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__lookup_definitions
]))(var_mproperty
, var97
, var_unsafe_type
) /* lookup_definitions on <var_mproperty:nullable MProperty(MMethod)>*/;
1768 var_propdefs
= var98
;
1769 var99
= ((long (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_propdefs
) /* length on <var_propdefs:Array[MMethodDef]>*/;
1771 { /* Inline kernel#Int#== (var99,var100) */
1772 var103
= var99
== var100
;
1775 RET_LABEL102
:(void)0;
1778 var104
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1780 var106
= varonce105
;
1782 var107
= "Type error: no definition found for property ";
1784 var109
= string__NativeString__to_s_with_length(var107
, var108
);
1786 varonce105
= var106
;
1789 var111
= varonce110
;
1793 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1795 varonce110
= var111
;
1797 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
1798 { /* var115 = array_instance Array[Object] */
1800 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
1801 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var106
;
1802 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var_name
;
1803 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var111
;
1804 ((struct instance_array__NativeArray
*)var117
)->values
[3] = (val
*) var_unsafe_type
;
1805 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
1807 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
1808 ((void (*)(val
*, val
*, val
*))(var104
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var104
, var_node
, var118
) /* error on <var104:ModelBuilder>*/;
1813 var120
= ((long (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_propdefs
) /* length on <var_propdefs:Array[MMethodDef]>*/;
1815 { /* Inline kernel#Int#== (var120,var121) */
1816 var124
= var120
== var121
;
1819 RET_LABEL123
:(void)0;
1822 var125
= ((val
* (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_propdefs
) /* first on <var_propdefs:Array[MMethodDef]>*/;
1823 var_mpropdef
= var125
;
1825 var126
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1827 var128
= varonce127
;
1829 var129
= "Warning: confliting property definitions for property ";
1831 var131
= string__NativeString__to_s_with_length(var129
, var130
);
1833 varonce127
= var128
;
1836 var133
= varonce132
;
1840 var136
= string__NativeString__to_s_with_length(var134
, var135
);
1842 varonce132
= var133
;
1845 var138
= varonce137
;
1849 var141
= string__NativeString__to_s_with_length(var139
, var140
);
1851 varonce137
= var138
;
1854 var143
= varonce142
;
1858 var146
= string__NativeString__to_s_with_length(var144
, var145
);
1860 varonce142
= var143
;
1862 var147
= ((val
* (*)(val
*, val
*))(var_propdefs
->class->vft
[COLOR_string__Collection__join
]))(var_propdefs
, var143
) /* join on <var_propdefs:Array[MMethodDef]>*/;
1863 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
1864 { /* var148 = array_instance Array[Object] */
1866 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
1867 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var128
;
1868 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var_name
;
1869 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var133
;
1870 ((struct instance_array__NativeArray
*)var150
)->values
[3] = (val
*) var_unsafe_type
;
1871 ((struct instance_array__NativeArray
*)var150
)->values
[4] = (val
*) var138
;
1872 ((struct instance_array__NativeArray
*)var150
)->values
[5] = (val
*) var147
;
1873 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
1875 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
1876 ((void (*)(val
*, val
*, val
*))(var126
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var126
, var_node
, var151
) /* warning on <var126:ModelBuilder>*/;
1877 var152
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro
]))(var_mproperty
) /* intro on <var_mproperty:nullable MProperty(MMethod)>*/;
1878 var_mpropdef
= var152
;
1881 var153
= ((val
* (*)(val
*, val
*, val
*, short int))(self
->class->vft
[COLOR_typing__TypeVisitor__resolve_signature_for
]))(self
, var_mpropdef
, var_recvtype
, var_recv_is_self
) /* resolve_signature_for on <self:TypeVisitor>*/;
1882 var_msignature
= var153
;
1884 var_erasure_cast
= var154
;
1885 var155
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:nullable Object(MMethodDef)>*/;
1886 if (var155
== NULL
) {
1887 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1888 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 271);
1891 var156
= ((val
* (*)(val
*))(var155
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var155
) /* return_mtype on <var155:nullable MSignature>*/;
1893 var_rettype
= var156
;
1894 var158
= !var_recv_is_self
;
1898 if (var_rettype
== NULL
) {
1899 var161
= 0; /* is null */
1901 var161
= 1; /* arg is null and recv is not */
1908 /* <var_rettype:nullable MType(MType)> isa MNullableType */
1909 cltype163
= type_model__MNullableType
.color
;
1910 idtype164
= type_model__MNullableType
.id
;
1911 if(cltype163
>= var_rettype
->type
->table_size
) {
1914 var162
= var_rettype
->type
->type_table
[cltype163
] == idtype164
;
1917 var165
= ((val
* (*)(val
*))(var_rettype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_rettype
) /* mtype on <var_rettype:nullable MType(MNullableType)>*/;
1918 var_rettype
= var165
;
1921 /* <var_rettype:nullable MType(MType)> isa MParameterType */
1922 cltype167
= type_model__MParameterType
.color
;
1923 idtype168
= type_model__MParameterType
.id
;
1924 if(cltype167
>= var_rettype
->type
->table_size
) {
1927 var166
= var_rettype
->type
->type_table
[cltype167
] == idtype168
;
1930 var169
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
1931 var_erased_rettype
= var169
;
1933 if (var_erased_rettype
== NULL
) {
1934 var171
= 0; /* is null */
1936 var171
= 1; /* arg is null and recv is not */
1939 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1940 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 276);
1944 var_erasure_cast
= var172
;
1949 var173
= NEW_typing__CallSite(&type_typing__CallSite
);
1950 ((void (*)(val
*, val
*, val
*, short int, val
*, val
*, val
*, short int))(var173
->class->vft
[COLOR_typing__CallSite__init
]))(var173
, var_node
, var_recvtype
, var_recv_is_self
, var_mproperty
, var_mpropdef
, var_msignature
, var_erasure_cast
) /* init on <var173:CallSite>*/;
1951 var_callsite
= var173
;
1957 /* method typing#TypeVisitor#get_method for (self: Object, ANode, MType, String, Bool): nullable CallSite */
1958 val
* VIRTUAL_typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
1959 val
* var
/* : nullable CallSite */;
1960 val
* var1
/* : nullable CallSite */;
1961 var1
= typing__TypeVisitor__get_method(self
, p0
, p1
, p2
, p3
);
1966 /* method typing#TypeVisitor#check_signature for (self: TypeVisitor, ANode, Array[AExpr], String, MSignature): Bool */
1967 short int typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
1968 short int var
/* : Bool */;
1969 val
* var_node
/* var node: ANode */;
1970 val
* var_args
/* var args: Array[AExpr] */;
1971 val
* var_name
/* var name: String */;
1972 val
* var_msignature
/* var msignature: MSignature */;
1973 long var1
/* : Int */;
1974 long var_vararg_rank
/* var vararg_rank: Int */;
1975 long var2
/* : Int */;
1976 short int var3
/* : Bool */;
1977 short int var5
/* : Bool */;
1980 const char* var_class_name
;
1981 short int var6
/* : Bool */;
1982 long var7
/* : Int */;
1983 long var8
/* : Int */;
1984 short int var9
/* : Bool */;
1985 short int var11
/* : Bool */;
1988 const char* var_class_name14
;
1989 short int var15
/* : Bool */;
1990 val
* var16
/* : ModelBuilder */;
1991 static val
* varonce
;
1992 val
* var17
/* : String */;
1993 char* var18
/* : NativeString */;
1994 long var19
/* : Int */;
1995 val
* var20
/* : String */;
1996 static val
* varonce21
;
1997 val
* var22
/* : String */;
1998 char* var23
/* : NativeString */;
1999 long var24
/* : Int */;
2000 val
* var25
/* : String */;
2001 val
* var26
/* : Array[Object] */;
2002 long var27
/* : Int */;
2003 val
* var28
/* : NativeArray[Object] */;
2004 val
* var29
/* : String */;
2005 short int var30
/* : Bool */;
2006 long var31
/* : Int */;
2007 long var32
/* : Int */;
2008 short int var33
/* : Bool */;
2009 short int var35
/* : Bool */;
2010 short int var36
/* : Bool */;
2011 val
* var37
/* : ModelBuilder */;
2012 static val
* varonce38
;
2013 val
* var39
/* : String */;
2014 char* var40
/* : NativeString */;
2015 long var41
/* : Int */;
2016 val
* var42
/* : String */;
2017 long var43
/* : Int */;
2018 static val
* varonce44
;
2019 val
* var45
/* : String */;
2020 char* var46
/* : NativeString */;
2021 long var47
/* : Int */;
2022 val
* var48
/* : String */;
2023 long var49
/* : Int */;
2024 static val
* varonce50
;
2025 val
* var51
/* : String */;
2026 char* var52
/* : NativeString */;
2027 long var53
/* : Int */;
2028 val
* var54
/* : String */;
2029 val
* var55
/* : Array[Object] */;
2030 long var56
/* : Int */;
2031 val
* var57
/* : NativeArray[Object] */;
2032 val
* var58
/* : Object */;
2033 val
* var59
/* : Object */;
2034 val
* var60
/* : String */;
2035 short int var61
/* : Bool */;
2036 long var62
/* : Int */;
2037 long var63
/* : Int */;
2038 long var64
/* : Int */;
2039 long var66
/* : Int */;
2040 long var_vararg_decl
/* var vararg_decl: Int */;
2041 val
* var67
/* : Range[Int] */;
2042 long var68
/* : Int */;
2043 long var69
/* : Int */;
2044 val
* var70
/* : Discrete */;
2045 val
* var71
/* : Discrete */;
2046 val
* var72
/* : Iterator[nullable Object] */;
2047 short int var73
/* : Bool */;
2048 val
* var74
/* : nullable Object */;
2049 long var_i
/* var i: Int */;
2050 long var75
/* : Int */;
2051 long var_j
/* var j: Int */;
2052 short int var76
/* : Bool */;
2053 short int var78
/* : Bool */;
2054 short int var79
/* : Bool */;
2055 short int var81
/* : Bool */;
2058 const char* var_class_name84
;
2059 short int var85
/* : Bool */;
2060 long var86
/* : Int */;
2061 long var88
/* : Int */;
2062 val
* var89
/* : Array[MParameter] */;
2063 val
* var90
/* : nullable Object */;
2064 val
* var91
/* : MType */;
2065 val
* var_paramtype
/* var paramtype: MType */;
2066 val
* var92
/* : nullable Object */;
2067 val
* var93
/* : nullable MType */;
2068 long var94
/* : Int */;
2069 short int var95
/* : Bool */;
2070 short int var97
/* : Bool */;
2073 const char* var_class_name100
;
2074 short int var101
/* : Bool */;
2075 val
* var102
/* : Array[AExpr] */;
2076 val
* var_varargs
/* var varargs: Array[AExpr] */;
2077 val
* var103
/* : Array[MParameter] */;
2078 val
* var104
/* : nullable Object */;
2079 val
* var105
/* : MType */;
2080 val
* var_paramtype106
/* var paramtype: MType */;
2081 val
* var107
/* : Range[Int] */;
2082 long var108
/* : Int */;
2083 long var110
/* : Int */;
2084 val
* var111
/* : Discrete */;
2085 val
* var112
/* : Discrete */;
2086 val
* var113
/* : Iterator[nullable Object] */;
2087 short int var114
/* : Bool */;
2088 val
* var115
/* : nullable Object */;
2089 long var_j116
/* var j: Int */;
2090 long var117
/* : Int */;
2091 val
* var118
/* : nullable Object */;
2092 val
* var119
/* : nullable Object */;
2093 val
* var120
/* : nullable MType */;
2094 short int var122
/* : Bool */;
2098 var_msignature
= p3
;
2099 var1
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
2100 var_vararg_rank
= var1
;
2102 { /* Inline kernel#Int#>= (var_vararg_rank,var2) */
2103 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2104 /* <var2:Int> isa OTHER */
2105 var5
= 1; /* easy <var2:Int> isa OTHER*/
2107 var_class_name
= type_kernel__Int
.name
;
2108 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2109 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
2112 var6
= var_vararg_rank
>= var2
;
2118 var7
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2119 var8
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2120 { /* Inline kernel#Int#< (var7,var8) */
2121 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
2122 /* <var8:Int> isa OTHER */
2123 var11
= 1; /* easy <var8:Int> isa OTHER*/
2125 var_class_name14
= type_kernel__Int
.name
;
2126 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14
);
2127 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2130 var15
= var7
< var8
;
2133 RET_LABEL10
:(void)0;
2136 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2140 var18
= "Error: arity mismatch; prototype is \'";
2142 var20
= string__NativeString__to_s_with_length(var18
, var19
);
2151 var25
= string__NativeString__to_s_with_length(var23
, var24
);
2155 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
2156 { /* var26 = array_instance Array[Object] */
2158 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
2159 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
2160 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_name
;
2161 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var_msignature
;
2162 ((struct instance_array__NativeArray
*)var28
)->values
[3] = (val
*) var22
;
2163 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
2165 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
2166 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var16
, var_node
, var29
) /* error on <var16:ModelBuilder>*/;
2173 var31
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2174 var32
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2175 { /* Inline kernel#Int#!= (var31,var32) */
2176 var35
= var31
== var32
;
2180 RET_LABEL34
:(void)0;
2183 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2187 var40
= "Error: Incorrect number of parameters. Got ";
2189 var42
= string__NativeString__to_s_with_length(var40
, var41
);
2193 var43
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2197 var46
= ", expected ";
2199 var48
= string__NativeString__to_s_with_length(var46
, var47
);
2203 var49
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2207 var52
= ". Signature is ";
2209 var54
= string__NativeString__to_s_with_length(var52
, var53
);
2213 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
2214 { /* var55 = array_instance Array[Object] */
2216 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
2217 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var39
;
2218 var58
= BOX_kernel__Int(var43
); /* autobox from Int to Object */
2219 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var58
;
2220 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var45
;
2221 var59
= BOX_kernel__Int(var49
); /* autobox from Int to Object */
2222 ((struct instance_array__NativeArray
*)var57
)->values
[3] = (val
*) var59
;
2223 ((struct instance_array__NativeArray
*)var57
)->values
[4] = (val
*) var51
;
2224 ((struct instance_array__NativeArray
*)var57
)->values
[5] = (val
*) var_msignature
;
2225 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
2227 var60
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
2228 ((void (*)(val
*, val
*, val
*))(var37
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var37
, var_node
, var60
) /* error on <var37:ModelBuilder>*/;
2235 var62
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2236 var63
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2237 { /* Inline kernel#Int#- (var62,var63) */
2238 var66
= var62
- var63
;
2241 RET_LABEL65
:(void)0;
2243 var_vararg_decl
= var64
;
2244 var67
= NEW_range__Range(&type_range__Rangekernel__Int
);
2246 var69
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2247 var70
= BOX_kernel__Int(var68
); /* autobox from Int to Discrete */
2248 var71
= BOX_kernel__Int(var69
); /* autobox from Int to Discrete */
2249 ((void (*)(val
*, val
*, val
*))(var67
->class->vft
[COLOR_range__Range__without_last
]))(var67
, var70
, var71
) /* without_last on <var67:Range[Int]>*/;
2250 var72
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var67
) /* iterator on <var67:Range[Int]>*/;
2252 var73
= ((short int (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var72
) /* is_ok on <var72:Iterator[nullable Object]>*/;
2254 var74
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var72
) /* item on <var72:Iterator[nullable Object]>*/;
2255 var75
= ((struct instance_kernel__Int
*)var74
)->value
; /* autounbox from nullable Object to Int */;
2258 { /* Inline kernel#Int#== (var_i,var_vararg_rank) */
2259 var78
= var_i
== var_vararg_rank
;
2262 RET_LABEL77
:(void)0;
2265 goto CONTINUE_label
;
2268 { /* Inline kernel#Int#> (var_i,var_vararg_rank) */
2269 /* Covariant cast for argument 0 (i) <var_vararg_rank:Int> isa OTHER */
2270 /* <var_vararg_rank:Int> isa OTHER */
2271 var81
= 1; /* easy <var_vararg_rank:Int> isa OTHER*/
2273 var_class_name84
= type_kernel__Int
.name
;
2274 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84
);
2275 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
2278 var85
= var_i
> var_vararg_rank
;
2281 RET_LABEL80
:(void)0;
2284 { /* Inline kernel#Int#+ (var_i,var_vararg_decl) */
2285 var88
= var_i
+ var_vararg_decl
;
2288 RET_LABEL87
:(void)0;
2293 var89
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2294 var90
= ((val
* (*)(val
*, long))(var89
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var89
, var_i
) /* [] on <var89:Array[MParameter]>*/;
2295 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_model__MParameter__mtype
]))(var90
) /* mtype on <var90:nullable Object(MParameter)>*/;
2296 var_paramtype
= var91
;
2297 var92
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j
) /* [] on <var_args:Array[AExpr]>*/;
2298 var93
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var92
, var_paramtype
) /* visit_expr_subtype on <self:TypeVisitor>*/;
2300 CONTINUE_label
: (void)0;
2301 ((void (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var72
) /* next on <var72:Iterator[nullable Object]>*/;
2303 BREAK_label
: (void)0;
2305 { /* Inline kernel#Int#>= (var_vararg_rank,var94) */
2306 /* Covariant cast for argument 0 (i) <var94:Int> isa OTHER */
2307 /* <var94:Int> isa OTHER */
2308 var97
= 1; /* easy <var94:Int> isa OTHER*/
2310 var_class_name100
= type_kernel__Int
.name
;
2311 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name100
);
2312 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
2315 var101
= var_vararg_rank
>= var94
;
2318 RET_LABEL96
:(void)0;
2321 var102
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
2322 ((void (*)(val
*))(var102
->class->vft
[COLOR_array__Array__init
]))(var102
) /* init on <var102:Array[AExpr]>*/;
2323 var_varargs
= var102
;
2324 var103
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2325 var104
= ((val
* (*)(val
*, long))(var103
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var103
, var_vararg_rank
) /* [] on <var103:Array[MParameter]>*/;
2326 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_model__MParameter__mtype
]))(var104
) /* mtype on <var104:nullable Object(MParameter)>*/;
2327 var_paramtype106
= var105
;
2328 var107
= NEW_range__Range(&type_range__Rangekernel__Int
);
2329 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_decl) */
2330 var110
= var_vararg_rank
+ var_vararg_decl
;
2333 RET_LABEL109
:(void)0;
2335 var111
= BOX_kernel__Int(var_vararg_rank
); /* autobox from Int to Discrete */
2336 var112
= BOX_kernel__Int(var108
); /* autobox from Int to Discrete */
2337 ((void (*)(val
*, val
*, val
*))(var107
->class->vft
[COLOR_range__Range__init
]))(var107
, var111
, var112
) /* init on <var107:Range[Int]>*/;
2338 var113
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var107
) /* iterator on <var107:Range[Int]>*/;
2340 var114
= ((short int (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var113
) /* is_ok on <var113:Iterator[nullable Object]>*/;
2342 var115
= ((val
* (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var113
) /* item on <var113:Iterator[nullable Object]>*/;
2343 var117
= ((struct instance_kernel__Int
*)var115
)->value
; /* autounbox from nullable Object to Int */;
2345 var118
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j116
) /* [] on <var_args:Array[AExpr]>*/;
2346 ((void (*)(val
*, val
*))(var_varargs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_varargs
, var118
) /* add on <var_varargs:Array[AExpr]>*/;
2347 var119
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j116
) /* [] on <var_args:Array[AExpr]>*/;
2348 var120
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var119
, var_paramtype106
) /* visit_expr_subtype on <self:TypeVisitor>*/;
2350 CONTINUE_label121
: (void)0;
2351 ((void (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var113
) /* next on <var113:Iterator[nullable Object]>*/;
2353 BREAK_label121
: (void)0;
2362 /* method typing#TypeVisitor#check_signature for (self: Object, ANode, Array[AExpr], String, MSignature): Bool */
2363 short int VIRTUAL_typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2364 short int var
/* : Bool */;
2365 short int var1
/* : Bool */;
2366 var1
= typing__TypeVisitor__check_signature(self
, p0
, p1
, p2
, p3
);
2371 /* method typing#TypeVisitor#error for (self: TypeVisitor, ANode, String) */
2372 void typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
2373 val
* var_node
/* var node: ANode */;
2374 val
* var_message
/* var message: String */;
2375 val
* var
/* : ModelBuilder */;
2376 val
* var1
/* : ToolContext */;
2377 val
* var2
/* : Location */;
2380 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2381 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
2382 var2
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_node
) /* hot_location on <var_node:ANode>*/;
2383 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var1
, var2
, var_message
) /* error on <var1:ToolContext>*/;
2386 /* method typing#TypeVisitor#error for (self: Object, ANode, String) */
2387 void VIRTUAL_typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
2388 typing__TypeVisitor__error(self
, p0
, p1
);
2391 /* method typing#TypeVisitor#get_variable for (self: TypeVisitor, AExpr, Variable): nullable MType */
2392 val
* typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
2393 val
* var
/* : nullable MType */;
2394 val
* var_node
/* var node: AExpr */;
2395 val
* var_variable
/* var variable: Variable */;
2396 val
* var1
/* : nullable FlowContext */;
2397 val
* var_flow
/* var flow: nullable FlowContext */;
2398 val
* var2
/* : null */;
2399 short int var3
/* : Bool */;
2400 static val
* varonce
;
2401 val
* var4
/* : String */;
2402 char* var5
/* : NativeString */;
2403 long var6
/* : Int */;
2404 val
* var7
/* : String */;
2405 val
* var8
/* : null */;
2406 val
* var9
/* : HashMap[Variable, nullable MType] */;
2407 short int var10
/* : Bool */;
2408 val
* var11
/* : HashMap[Variable, nullable MType] */;
2409 val
* var12
/* : nullable Object */;
2410 val
* var13
/* : nullable Array[nullable MType] */;
2411 val
* var_mtypes
/* var mtypes: nullable Array[nullable MType] */;
2412 short int var14
/* : Bool */;
2413 val
* var15
/* : null */;
2414 short int var16
/* : Bool */;
2415 short int var_
/* var : Bool */;
2416 long var17
/* : Int */;
2417 long var18
/* : Int */;
2418 short int var19
/* : Bool */;
2419 short int var21
/* : Bool */;
2420 val
* var22
/* : nullable MType */;
2421 long var23
/* : Int */;
2422 long var24
/* : Int */;
2423 short int var25
/* : Bool */;
2424 short int var27
/* : Bool */;
2425 val
* var28
/* : nullable Object */;
2426 val
* var29
/* : nullable MType */;
2427 val
* var_res
/* var res: nullable MType */;
2428 val
* var30
/* : null */;
2429 short int var31
/* : Bool */;
2430 val
* var32
/* : nullable MType */;
2433 var1
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
2436 if (var_flow
== NULL
) {
2437 var3
= 1; /* is null */
2439 var3
= 0; /* arg is null but recv is not */
2445 var5
= "No context!";
2447 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2451 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_node
, var4
) /* error on <self:TypeVisitor>*/;
2457 var9
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__vars
]))(var_flow
) /* vars on <var_flow:nullable FlowContext(FlowContext)>*/;
2458 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var9
, var_variable
) /* has_key on <var9:HashMap[Variable, nullable MType]>*/;
2460 var11
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__vars
]))(var_flow
) /* vars on <var_flow:nullable FlowContext(FlowContext)>*/;
2461 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_variable
) /* [] on <var11:HashMap[Variable, nullable MType]>*/;
2465 var13
= ((val
* (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__collect_types
]))(var_flow
, var_variable
) /* collect_types on <var_flow:nullable FlowContext(FlowContext)>*/;
2468 if (var_mtypes
== NULL
) {
2469 var16
= 1; /* is null */
2471 var16
= 0; /* arg is null but recv is not */
2477 var17
= ((long (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mtypes
) /* length on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])>*/;
2479 { /* Inline kernel#Int#== (var17,var18) */
2480 var21
= var17
== var18
;
2483 RET_LABEL20
:(void)0;
2488 var22
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
2492 var23
= ((long (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mtypes
) /* length on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])>*/;
2494 { /* Inline kernel#Int#== (var23,var24) */
2495 var27
= var23
== var24
;
2498 RET_LABEL26
:(void)0;
2501 var28
= ((val
* (*)(val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_mtypes
) /* first on <var_mtypes:nullable Array[nullable MType](Array[nullable MType])>*/;
2505 var29
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(self
, var_node
, var_mtypes
) /* merge_types on <self:TypeVisitor>*/;
2508 if (var_res
== NULL
) {
2509 var31
= 1; /* is null */
2511 var31
= 0; /* arg is null but recv is not */
2514 var32
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
2526 /* method typing#TypeVisitor#get_variable for (self: Object, AExpr, Variable): nullable MType */
2527 val
* VIRTUAL_typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
2528 val
* var
/* : nullable MType */;
2529 val
* var1
/* : nullable MType */;
2530 var1
= typing__TypeVisitor__get_variable(self
, p0
, p1
);
2535 /* method typing#TypeVisitor#set_variable for (self: TypeVisitor, AExpr, Variable, nullable MType) */
2536 void typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2537 val
* var_node
/* var node: AExpr */;
2538 val
* var_variable
/* var variable: Variable */;
2539 val
* var_mtype
/* var mtype: nullable MType */;
2540 val
* var
/* : nullable FlowContext */;
2541 val
* var_flow
/* var flow: nullable FlowContext */;
2542 val
* var1
/* : null */;
2543 short int var2
/* : Bool */;
2547 var
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
2550 if (var_flow
== NULL
) {
2551 var2
= 0; /* is null */
2553 var2
= 1; /* arg is null and recv is not */
2556 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2557 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 360);
2560 ((void (*)(val
*, val
*, val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var_flow
, var_variable
, var_mtype
) /* set_var on <var_flow:nullable FlowContext(FlowContext)>*/;
2563 /* method typing#TypeVisitor#set_variable for (self: Object, AExpr, Variable, nullable MType) */
2564 void VIRTUAL_typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2565 typing__TypeVisitor__set_variable(self
, p0
, p1
, p2
);
2568 /* method typing#TypeVisitor#merge_types for (self: TypeVisitor, ANode, Array[nullable MType]): nullable MType */
2569 val
* typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
2570 val
* var
/* : nullable MType */;
2571 val
* var_node
/* var node: ANode */;
2572 val
* var_col
/* var col: Array[nullable MType] */;
2573 long var1
/* : Int */;
2574 long var2
/* : Int */;
2575 short int var3
/* : Bool */;
2576 short int var5
/* : Bool */;
2577 val
* var6
/* : nullable Object */;
2578 val
* var7
/* : Array[nullable MType] */;
2579 val
* var_res
/* var res: Array[nullable MType] */;
2580 val
* var8
/* : Iterator[nullable Object] */;
2581 short int var9
/* : Bool */;
2582 val
* var10
/* : nullable Object */;
2583 val
* var_t1
/* var t1: nullable MType */;
2584 val
* var11
/* : null */;
2585 short int var12
/* : Bool */;
2586 short int var13
/* : Bool */;
2587 short int var_found
/* var found: Bool */;
2588 val
* var14
/* : Iterator[nullable Object] */;
2589 short int var15
/* : Bool */;
2590 val
* var16
/* : nullable Object */;
2591 val
* var_t2
/* var t2: nullable MType */;
2592 val
* var17
/* : null */;
2593 short int var18
/* : Bool */;
2594 short int var20
/* : Bool */;
2595 short int var21
/* : Bool */;
2598 short int var_
/* var : Bool */;
2599 short int var22
/* : Bool */;
2602 val
* var25
/* : MType */;
2603 short int var26
/* : Bool */;
2604 short int var27
/* : Bool */;
2605 short int var28
/* : Bool */;
2606 val
* var29
/* : null */;
2609 var1
= ((long (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_col
) /* length on <var_col:Array[nullable MType]>*/;
2611 { /* Inline kernel#Int#== (var1,var2) */
2612 var5
= var1
== var2
;
2618 var6
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_col
) /* first on <var_col:Array[nullable MType]>*/;
2623 var7
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
2624 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[nullable MType]>*/;
2626 var8
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_col
) /* iterator on <var_col:Array[nullable MType]>*/;
2628 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
2630 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
2633 if (var_t1
== NULL
) {
2634 var12
= 1; /* is null */
2636 var12
= 0; /* arg is null but recv is not */
2639 goto CONTINUE_label
;
2644 var14
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_col
) /* iterator on <var_col:Array[nullable MType]>*/;
2646 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var14
) /* is_ok on <var14:Iterator[nullable Object]>*/;
2648 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var14
) /* item on <var14:Iterator[nullable Object]>*/;
2651 if (var_t2
== NULL
) {
2652 var18
= 1; /* is null */
2654 var18
= 0; /* arg is null but recv is not */
2657 goto CONTINUE_label19
;
2660 /* <var_t2:nullable MType(MType)> isa MNullableType */
2661 cltype
= type_model__MNullableType
.color
;
2662 idtype
= type_model__MNullableType
.id
;
2663 if(cltype
>= var_t2
->type
->table_size
) {
2666 var21
= var_t2
->type
->type_table
[cltype
] == idtype
;
2672 /* <var_t2:nullable MType(MType)> isa MNullType */
2673 cltype23
= type_model__MNullType
.color
;
2674 idtype24
= type_model__MNullType
.id
;
2675 if(cltype23
>= var_t2
->type
->table_size
) {
2678 var22
= var_t2
->type
->type_table
[cltype23
] == idtype24
;
2683 var25
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t1
) /* as_nullable on <var_t1:nullable MType(MType)>*/;
2687 var26
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_t2
, var_t1
) /* is_subtype on <self:TypeVisitor>*/;
2694 CONTINUE_label19
: (void)0;
2695 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var14
) /* next on <var14:Iterator[nullable Object]>*/;
2697 BREAK_label19
: (void)0;
2703 CONTINUE_label
: (void)0;
2704 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
2706 BREAK_label
: (void)0;
2713 /* method typing#TypeVisitor#merge_types for (self: Object, ANode, Array[nullable MType]): nullable MType */
2714 val
* VIRTUAL_typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
2715 val
* var
/* : nullable MType */;
2716 val
* var1
/* : nullable MType */;
2717 var1
= typing__TypeVisitor__merge_types(self
, p0
, p1
);
2722 /* method typing#CallSite#node for (self: CallSite): ANode */
2723 val
* typing__CallSite__node(val
* self
) {
2724 val
* var
/* : ANode */;
2725 val
* var1
/* : ANode */;
2726 var1
= self
->attrs
[COLOR_typing__CallSite___64dnode
].val
; /* @node on <self:CallSite> */
2728 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @node");
2729 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 391);
2736 /* method typing#CallSite#node for (self: Object): ANode */
2737 val
* VIRTUAL_typing__CallSite__node(val
* self
) {
2738 val
* var
/* : ANode */;
2739 val
* var1
/* : ANode */;
2740 var1
= typing__CallSite__node(self
);
2745 /* method typing#CallSite#node= for (self: CallSite, ANode) */
2746 void typing__CallSite__node_61d(val
* self
, val
* p0
) {
2747 self
->attrs
[COLOR_typing__CallSite___64dnode
].val
= p0
; /* @node on <self:CallSite> */
2750 /* method typing#CallSite#node= for (self: Object, ANode) */
2751 void VIRTUAL_typing__CallSite__node_61d(val
* self
, val
* p0
) {
2752 typing__CallSite__node_61d(self
, p0
);
2755 /* method typing#CallSite#recv for (self: CallSite): MType */
2756 val
* typing__CallSite__recv(val
* self
) {
2757 val
* var
/* : MType */;
2758 val
* var1
/* : MType */;
2759 var1
= self
->attrs
[COLOR_typing__CallSite___64drecv
].val
; /* @recv on <self:CallSite> */
2761 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @recv");
2762 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 394);
2769 /* method typing#CallSite#recv for (self: Object): MType */
2770 val
* VIRTUAL_typing__CallSite__recv(val
* self
) {
2771 val
* var
/* : MType */;
2772 val
* var1
/* : MType */;
2773 var1
= typing__CallSite__recv(self
);
2778 /* method typing#CallSite#recv= for (self: CallSite, MType) */
2779 void typing__CallSite__recv_61d(val
* self
, val
* p0
) {
2780 self
->attrs
[COLOR_typing__CallSite___64drecv
].val
= p0
; /* @recv on <self:CallSite> */
2783 /* method typing#CallSite#recv= for (self: Object, MType) */
2784 void VIRTUAL_typing__CallSite__recv_61d(val
* self
, val
* p0
) {
2785 typing__CallSite__recv_61d(self
, p0
);
2788 /* method typing#CallSite#recv_is_self for (self: CallSite): Bool */
2789 short int typing__CallSite__recv_is_self(val
* self
) {
2790 short int var
/* : Bool */;
2791 short int var1
/* : Bool */;
2792 var1
= self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
; /* @recv_is_self on <self:CallSite> */
2797 /* method typing#CallSite#recv_is_self for (self: Object): Bool */
2798 short int VIRTUAL_typing__CallSite__recv_is_self(val
* self
) {
2799 short int var
/* : Bool */;
2800 short int var1
/* : Bool */;
2801 var1
= typing__CallSite__recv_is_self(self
);
2806 /* method typing#CallSite#recv_is_self= for (self: CallSite, Bool) */
2807 void typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
2808 self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
= p0
; /* @recv_is_self on <self:CallSite> */
2811 /* method typing#CallSite#recv_is_self= for (self: Object, Bool) */
2812 void VIRTUAL_typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
2813 typing__CallSite__recv_is_self_61d(self
, p0
);
2816 /* method typing#CallSite#mproperty for (self: CallSite): MMethod */
2817 val
* typing__CallSite__mproperty(val
* self
) {
2818 val
* var
/* : MMethod */;
2819 val
* var1
/* : MMethod */;
2820 var1
= self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
; /* @mproperty on <self:CallSite> */
2822 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperty");
2823 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 402);
2830 /* method typing#CallSite#mproperty for (self: Object): MMethod */
2831 val
* VIRTUAL_typing__CallSite__mproperty(val
* self
) {
2832 val
* var
/* : MMethod */;
2833 val
* var1
/* : MMethod */;
2834 var1
= typing__CallSite__mproperty(self
);
2839 /* method typing#CallSite#mproperty= for (self: CallSite, MMethod) */
2840 void typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
2841 self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
= p0
; /* @mproperty on <self:CallSite> */
2844 /* method typing#CallSite#mproperty= for (self: Object, MMethod) */
2845 void VIRTUAL_typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
2846 typing__CallSite__mproperty_61d(self
, p0
);
2849 /* method typing#CallSite#mpropdef for (self: CallSite): MMethodDef */
2850 val
* typing__CallSite__mpropdef(val
* self
) {
2851 val
* var
/* : MMethodDef */;
2852 val
* var1
/* : MMethodDef */;
2853 var1
= self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
; /* @mpropdef on <self:CallSite> */
2855 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdef");
2856 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 405);
2863 /* method typing#CallSite#mpropdef for (self: Object): MMethodDef */
2864 val
* VIRTUAL_typing__CallSite__mpropdef(val
* self
) {
2865 val
* var
/* : MMethodDef */;
2866 val
* var1
/* : MMethodDef */;
2867 var1
= typing__CallSite__mpropdef(self
);
2872 /* method typing#CallSite#mpropdef= for (self: CallSite, MMethodDef) */
2873 void typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
2874 self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
= p0
; /* @mpropdef on <self:CallSite> */
2877 /* method typing#CallSite#mpropdef= for (self: Object, MMethodDef) */
2878 void VIRTUAL_typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
2879 typing__CallSite__mpropdef_61d(self
, p0
);
2882 /* method typing#CallSite#msignature for (self: CallSite): MSignature */
2883 val
* typing__CallSite__msignature(val
* self
) {
2884 val
* var
/* : MSignature */;
2885 val
* var1
/* : MSignature */;
2886 var1
= self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
; /* @msignature on <self:CallSite> */
2888 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @msignature");
2889 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 409);
2896 /* method typing#CallSite#msignature for (self: Object): MSignature */
2897 val
* VIRTUAL_typing__CallSite__msignature(val
* self
) {
2898 val
* var
/* : MSignature */;
2899 val
* var1
/* : MSignature */;
2900 var1
= typing__CallSite__msignature(self
);
2905 /* method typing#CallSite#msignature= for (self: CallSite, MSignature) */
2906 void typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
2907 self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
= p0
; /* @msignature on <self:CallSite> */
2910 /* method typing#CallSite#msignature= for (self: Object, MSignature) */
2911 void VIRTUAL_typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
2912 typing__CallSite__msignature_61d(self
, p0
);
2915 /* method typing#CallSite#erasure_cast for (self: CallSite): Bool */
2916 short int typing__CallSite__erasure_cast(val
* self
) {
2917 short int var
/* : Bool */;
2918 short int var1
/* : Bool */;
2919 var1
= self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
; /* @erasure_cast on <self:CallSite> */
2924 /* method typing#CallSite#erasure_cast for (self: Object): Bool */
2925 short int VIRTUAL_typing__CallSite__erasure_cast(val
* self
) {
2926 short int var
/* : Bool */;
2927 short int var1
/* : Bool */;
2928 var1
= typing__CallSite__erasure_cast(self
);
2933 /* method typing#CallSite#erasure_cast= for (self: CallSite, Bool) */
2934 void typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
2935 self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
= p0
; /* @erasure_cast on <self:CallSite> */
2938 /* method typing#CallSite#erasure_cast= for (self: Object, Bool) */
2939 void VIRTUAL_typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
2940 typing__CallSite__erasure_cast_61d(self
, p0
);
2943 /* method typing#CallSite#check_signature for (self: CallSite, TypeVisitor, Array[AExpr]): Bool */
2944 short int typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
2945 short int var
/* : Bool */;
2946 val
* var_v
/* var v: TypeVisitor */;
2947 val
* var_args
/* var args: Array[AExpr] */;
2948 val
* var1
/* : ANode */;
2949 val
* var2
/* : MMethod */;
2950 val
* var3
/* : String */;
2951 val
* var4
/* : MSignature */;
2952 short int var5
/* : Bool */;
2955 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__node
]))(self
) /* node on <self:CallSite>*/;
2956 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__mproperty
]))(self
) /* mproperty on <self:CallSite>*/;
2957 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MProperty__name
]))(var2
) /* name on <var2:MMethod>*/;
2958 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__msignature
]))(self
) /* msignature on <self:CallSite>*/;
2959 var5
= ((short int (*)(val
*, val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__check_signature
]))(var_v
, var1
, var_args
, var3
, var4
) /* check_signature on <var_v:TypeVisitor>*/;
2965 /* method typing#CallSite#check_signature for (self: Object, TypeVisitor, Array[AExpr]): Bool */
2966 short int VIRTUAL_typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
2967 short int var
/* : Bool */;
2968 short int var1
/* : Bool */;
2969 var1
= typing__CallSite__check_signature(self
, p0
, p1
);
2974 /* method typing#CallSite#init for (self: CallSite, ANode, MType, Bool, MMethod, MMethodDef, MSignature, Bool) */
2975 void typing__CallSite__init(val
* self
, val
* p0
, val
* p1
, short int p2
, val
* p3
, val
* p4
, val
* p5
, short int p6
) {
2976 self
->attrs
[COLOR_typing__CallSite___64dnode
].val
= p0
; /* @node on <self:CallSite> */
2977 self
->attrs
[COLOR_typing__CallSite___64drecv
].val
= p1
; /* @recv on <self:CallSite> */
2978 self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
= p2
; /* @recv_is_self on <self:CallSite> */
2979 self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
= p3
; /* @mproperty on <self:CallSite> */
2980 self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
= p4
; /* @mpropdef on <self:CallSite> */
2981 self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
= p5
; /* @msignature on <self:CallSite> */
2982 self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
= p6
; /* @erasure_cast on <self:CallSite> */
2985 /* method typing#CallSite#init for (self: Object, ANode, MType, Bool, MMethod, MMethodDef, MSignature, Bool) */
2986 void VIRTUAL_typing__CallSite__init(val
* self
, val
* p0
, val
* p1
, short int p2
, val
* p3
, val
* p4
, val
* p5
, short int p6
) {
2987 typing__CallSite__init(self
, p0
, p1
, p2
, p3
, p4
, p5
, p6
);
2990 /* method typing#Variable#declared_type for (self: Variable): nullable MType */
2991 val
* typing__Variable__declared_type(val
* self
) {
2992 val
* var
/* : nullable MType */;
2993 val
* var1
/* : nullable MType */;
2994 var1
= self
->attrs
[COLOR_typing__Variable___64ddeclared_type
].val
; /* @declared_type on <self:Variable> */
2999 /* method typing#Variable#declared_type for (self: Object): nullable MType */
3000 val
* VIRTUAL_typing__Variable__declared_type(val
* self
) {
3001 val
* var
/* : nullable MType */;
3002 val
* var1
/* : nullable MType */;
3003 var1
= typing__Variable__declared_type(self
);
3008 /* method typing#Variable#declared_type= for (self: Variable, nullable MType) */
3009 void typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
3010 self
->attrs
[COLOR_typing__Variable___64ddeclared_type
].val
= p0
; /* @declared_type on <self:Variable> */
3013 /* method typing#Variable#declared_type= for (self: Object, nullable MType) */
3014 void VIRTUAL_typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
3015 typing__Variable__declared_type_61d(self
, p0
);
3018 /* method typing#FlowContext#vars for (self: FlowContext): HashMap[Variable, nullable MType] */
3019 val
* typing__FlowContext__vars(val
* self
) {
3020 val
* var
/* : HashMap[Variable, nullable MType] */;
3021 val
* var1
/* : HashMap[Variable, nullable MType] */;
3022 var1
= self
->attrs
[COLOR_typing__FlowContext___64dvars
].val
; /* @vars on <self:FlowContext> */
3024 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @vars");
3025 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 427);
3032 /* method typing#FlowContext#vars for (self: Object): HashMap[Variable, nullable MType] */
3033 val
* VIRTUAL_typing__FlowContext__vars(val
* self
) {
3034 val
* var
/* : HashMap[Variable, nullable MType] */;
3035 val
* var1
/* : HashMap[Variable, nullable MType] */;
3036 var1
= typing__FlowContext__vars(self
);
3041 /* method typing#FlowContext#vars= for (self: FlowContext, HashMap[Variable, nullable MType]) */
3042 void typing__FlowContext__vars_61d(val
* self
, val
* p0
) {
3043 self
->attrs
[COLOR_typing__FlowContext___64dvars
].val
= p0
; /* @vars on <self:FlowContext> */
3046 /* method typing#FlowContext#vars= for (self: Object, HashMap[Variable, nullable MType]) */
3047 void VIRTUAL_typing__FlowContext__vars_61d(val
* self
, val
* p0
) {
3048 typing__FlowContext__vars_61d(self
, p0
);
3051 /* method typing#FlowContext#cache for (self: FlowContext): HashMap[Variable, nullable Array[nullable MType]] */
3052 val
* typing__FlowContext__cache(val
* self
) {
3053 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3054 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3055 var1
= self
->attrs
[COLOR_typing__FlowContext___64dcache
].val
; /* @cache on <self:FlowContext> */
3057 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @cache");
3058 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 429);
3065 /* method typing#FlowContext#cache for (self: Object): HashMap[Variable, nullable Array[nullable MType]] */
3066 val
* VIRTUAL_typing__FlowContext__cache(val
* self
) {
3067 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3068 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3069 var1
= typing__FlowContext__cache(self
);
3074 /* method typing#FlowContext#cache= for (self: FlowContext, HashMap[Variable, nullable Array[nullable MType]]) */
3075 void typing__FlowContext__cache_61d(val
* self
, val
* p0
) {
3076 self
->attrs
[COLOR_typing__FlowContext___64dcache
].val
= p0
; /* @cache on <self:FlowContext> */
3079 /* method typing#FlowContext#cache= for (self: Object, HashMap[Variable, nullable Array[nullable MType]]) */
3080 void VIRTUAL_typing__FlowContext__cache_61d(val
* self
, val
* p0
) {
3081 typing__FlowContext__cache_61d(self
, p0
);
3084 /* method typing#FlowContext#set_var for (self: FlowContext, Variable, nullable MType) */
3085 void typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
3086 val
* var_variable
/* var variable: Variable */;
3087 val
* var_mtype
/* var mtype: nullable MType */;
3088 val
* var
/* : HashMap[Variable, nullable MType] */;
3089 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3090 val
* var2
/* : Collection[Object] */;
3093 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3094 ((void (*)(val
*, val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var
, var_variable
, var_mtype
) /* []= on <var:HashMap[Variable, nullable MType]>*/;
3095 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3096 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var1
) /* keys on <var1:HashMap[Variable, nullable Array[nullable MType]]>*/;
3097 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__RemovableCollection__remove
]))(var2
, var_variable
) /* remove on <var2:Collection[Object](HashMapKeys[Variable, nullable Array[nullable MType]])>*/;
3100 /* method typing#FlowContext#set_var for (self: Object, Variable, nullable MType) */
3101 void VIRTUAL_typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
3102 typing__FlowContext__set_var(self
, p0
, p1
);
3105 /* method typing#FlowContext#collect_types for (self: FlowContext, Variable): nullable Array[nullable MType] */
3106 val
* typing__FlowContext__collect_types(val
* self
, val
* p0
) {
3107 val
* var
/* : nullable Array[nullable MType] */;
3108 val
* var_variable
/* var variable: Variable */;
3109 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3110 short int var2
/* : Bool */;
3111 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3112 val
* var4
/* : nullable Object */;
3113 val
* var5
/* : null */;
3114 val
* var_res
/* var res: nullable Array[nullable MType] */;
3115 val
* var6
/* : HashMap[Variable, nullable MType] */;
3116 short int var7
/* : Bool */;
3117 val
* var8
/* : HashMap[Variable, nullable MType] */;
3118 val
* var9
/* : nullable Object */;
3119 val
* var_mtype
/* var mtype: nullable MType */;
3120 val
* var10
/* : Array[nullable MType] */;
3121 long var11
/* : Int */;
3122 val
* var_
/* var : Array[nullable MType] */;
3123 val
* var12
/* : Array[FlowContext] */;
3124 short int var13
/* : Bool */;
3125 val
* var14
/* : Array[nullable MType] */;
3126 long var15
/* : Int */;
3127 val
* var_16
/* var : Array[nullable MType] */;
3128 val
* var17
/* : nullable MType */;
3129 val
* var18
/* : Array[FlowContext] */;
3130 val
* var19
/* : Iterator[nullable Object] */;
3131 short int var20
/* : Bool */;
3132 val
* var21
/* : nullable Object */;
3133 val
* var_flow
/* var flow: FlowContext */;
3134 short int var22
/* : Bool */;
3135 val
* var23
/* : nullable Array[nullable MType] */;
3136 val
* var_r2
/* var r2: nullable Array[nullable MType] */;
3137 val
* var24
/* : null */;
3138 short int var25
/* : Bool */;
3139 val
* var26
/* : null */;
3140 short int var27
/* : Bool */;
3141 val
* var28
/* : Array[nullable Object] */;
3142 val
* var29
/* : Iterator[nullable Object] */;
3143 short int var30
/* : Bool */;
3144 val
* var31
/* : nullable Object */;
3145 val
* var_t
/* var t: nullable MType */;
3146 short int var32
/* : Bool */;
3147 short int var33
/* : Bool */;
3148 val
* var35
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3150 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3151 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_variable
) /* has_key on <var1:HashMap[Variable, nullable Array[nullable MType]]>*/;
3153 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3154 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_variable
) /* [] on <var3:HashMap[Variable, nullable Array[nullable MType]]>*/;
3161 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3162 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var6
, var_variable
) /* has_key on <var6:HashMap[Variable, nullable MType]>*/;
3164 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3165 var9
= ((val
* (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var8
, var_variable
) /* [] on <var8:HashMap[Variable, nullable MType]>*/;
3167 var10
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3169 ((void (*)(val
*, long))(var10
->class->vft
[COLOR_array__Array__with_capacity
]))(var10
, var11
) /* with_capacity on <var10:Array[nullable MType]>*/;
3171 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_mtype
) /* push on <var_:Array[nullable MType]>*/;
3174 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
3175 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var12
) /* is_empty on <var12:Array[FlowContext]>*/;
3177 var14
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3179 ((void (*)(val
*, long))(var14
->class->vft
[COLOR_array__Array__with_capacity
]))(var14
, var15
) /* with_capacity on <var14:Array[nullable MType]>*/;
3181 var17
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
3182 ((void (*)(val
*, val
*))(var_16
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_16
, var17
) /* push on <var_16:Array[nullable MType]>*/;
3185 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
3186 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:Array[FlowContext]>*/;
3188 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[nullable Object]>*/;
3190 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[nullable Object]>*/;
3192 var22
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
3194 goto CONTINUE_label
;
3197 var23
= ((val
* (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__collect_types
]))(var_flow
, var_variable
) /* collect_types on <var_flow:FlowContext>*/;
3200 if (var_r2
== NULL
) {
3201 var25
= 1; /* is null */
3203 var25
= 0; /* arg is null but recv is not */
3206 goto CONTINUE_label
;
3210 if (var_res
== NULL
) {
3211 var27
= 1; /* is null */
3213 var27
= 0; /* arg is null but recv is not */
3216 var28
= ((val
* (*)(val
*))(var_r2
->class->vft
[COLOR_array__Collection__to_a
]))(var_r2
) /* to_a on <var_r2:nullable Array[nullable MType](Array[nullable MType])>*/;
3219 var29
= ((val
* (*)(val
*))(var_r2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_r2
) /* iterator on <var_r2:nullable Array[nullable MType](Array[nullable MType])>*/;
3221 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[nullable Object]>*/;
3223 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[nullable Object]>*/;
3225 var32
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_res
, var_t
) /* has on <var_res:nullable Array[nullable MType](Array[nullable MType])>*/;
3228 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_t
) /* add on <var_res:nullable Array[nullable MType](Array[nullable MType])>*/;
3231 CONTINUE_label34
: (void)0;
3232 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[nullable Object]>*/;
3234 BREAK_label34
: (void)0;
3236 CONTINUE_label
: (void)0;
3237 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[nullable Object]>*/;
3239 BREAK_label
: (void)0;
3242 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3243 ((void (*)(val
*, val
*, val
*))(var35
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var35
, var_variable
, var_res
) /* []= on <var35:HashMap[Variable, nullable Array[nullable MType]]>*/;
3249 /* method typing#FlowContext#collect_types for (self: Object, Variable): nullable Array[nullable MType] */
3250 val
* VIRTUAL_typing__FlowContext__collect_types(val
* self
, val
* p0
) {
3251 val
* var
/* : nullable Array[nullable MType] */;
3252 val
* var1
/* : nullable Array[nullable MType] */;
3253 var1
= typing__FlowContext__collect_types(self
, p0
);
3258 /* method typing#APropdef#do_typing for (self: APropdef, ModelBuilder) */
3259 void typing__APropdef__do_typing(val
* self
, val
* p0
) {
3260 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3261 var_modelbuilder
= p0
;
3264 /* method typing#APropdef#do_typing for (self: Object, ModelBuilder) */
3265 void VIRTUAL_typing__APropdef__do_typing(val
* self
, val
* p0
) {
3266 typing__APropdef__do_typing(self
, p0
);
3269 /* method typing#APropdef#selfvariable for (self: APropdef): nullable Variable */
3270 val
* typing__APropdef__selfvariable(val
* self
) {
3271 val
* var
/* : nullable Variable */;
3272 val
* var1
/* : nullable Variable */;
3273 var1
= self
->attrs
[COLOR_typing__APropdef___64dselfvariable
].val
; /* @selfvariable on <self:APropdef> */
3278 /* method typing#APropdef#selfvariable for (self: Object): nullable Variable */
3279 val
* VIRTUAL_typing__APropdef__selfvariable(val
* self
) {
3280 val
* var
/* : nullable Variable */;
3281 val
* var1
/* : nullable Variable */;
3282 var1
= typing__APropdef__selfvariable(self
);
3287 /* method typing#APropdef#selfvariable= for (self: APropdef, nullable Variable) */
3288 void typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
3289 self
->attrs
[COLOR_typing__APropdef___64dselfvariable
].val
= p0
; /* @selfvariable on <self:APropdef> */
3292 /* method typing#APropdef#selfvariable= for (self: Object, nullable Variable) */
3293 void VIRTUAL_typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
3294 typing__APropdef__selfvariable_61d(self
, p0
);
3297 /* method typing#AConcreteMethPropdef#do_typing for (self: AConcreteMethPropdef, ModelBuilder) */
3298 void typing__AConcreteMethPropdef__do_typing(val
* self
, val
* p0
) {
3299 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3300 val
* var
/* : nullable ANode */;
3301 short int var1
/* : Bool */;
3304 const char* var_class_name
;
3305 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3306 val
* var2
/* : nullable MPropDef */;
3307 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
3308 val
* var3
/* : TypeVisitor */;
3309 val
* var_v
/* var v: TypeVisitor */;
3310 val
* var4
/* : Variable */;
3311 val
* var5
/* : nullable AExpr */;
3312 val
* var_nblock
/* var nblock: nullable AExpr */;
3313 val
* var6
/* : null */;
3314 short int var7
/* : Bool */;
3315 val
* var8
/* : nullable MPropDef */;
3316 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
3317 val
* var9
/* : Range[Int] */;
3318 long var10
/* : Int */;
3319 val
* var11
/* : nullable MSignature */;
3320 long var12
/* : Int */;
3321 val
* var13
/* : Discrete */;
3322 val
* var14
/* : Discrete */;
3323 val
* var15
/* : Iterator[nullable Object] */;
3324 short int var16
/* : Bool */;
3325 val
* var17
/* : nullable Object */;
3326 long var_i
/* var i: Int */;
3327 long var18
/* : Int */;
3328 val
* var19
/* : nullable MSignature */;
3329 val
* var20
/* : Array[MParameter] */;
3330 val
* var21
/* : nullable Object */;
3331 val
* var22
/* : MType */;
3332 val
* var_mtype
/* var mtype: MType */;
3333 val
* var23
/* : nullable MSignature */;
3334 long var24
/* : Int */;
3335 short int var25
/* : Bool */;
3336 short int var27
/* : Bool */;
3337 val
* var28
/* : nullable ASignature */;
3338 val
* var29
/* : ANodes[AParam] */;
3339 val
* var30
/* : nullable Object */;
3340 static val
* varonce
;
3341 val
* var31
/* : String */;
3342 char* var32
/* : NativeString */;
3343 long var33
/* : Int */;
3344 val
* var34
/* : String */;
3345 val
* var35
/* : nullable MClass */;
3346 val
* var_arrayclass
/* var arrayclass: nullable MClass */;
3347 val
* var36
/* : null */;
3348 short int var37
/* : Bool */;
3349 val
* var38
/* : Array[MType] */;
3350 long var39
/* : Int */;
3351 val
* var40
/* : NativeArray[MType] */;
3352 val
* var41
/* : MClassType */;
3353 val
* var42
/* : nullable ASignature */;
3354 val
* var43
/* : ANodes[AParam] */;
3355 val
* var44
/* : nullable Object */;
3356 val
* var45
/* : nullable Variable */;
3357 val
* var_variable
/* var variable: nullable Variable */;
3358 val
* var46
/* : null */;
3359 short int var47
/* : Bool */;
3360 short int var48
/* : Bool */;
3361 val
* var49
/* : nullable FlowContext */;
3362 short int var50
/* : Bool */;
3363 short int var51
/* : Bool */;
3364 short int var_
/* var : Bool */;
3365 val
* var52
/* : nullable MSignature */;
3366 val
* var53
/* : nullable MType */;
3367 val
* var54
/* : null */;
3368 short int var55
/* : Bool */;
3369 static val
* varonce56
;
3370 val
* var57
/* : String */;
3371 char* var58
/* : NativeString */;
3372 long var59
/* : Int */;
3373 val
* var60
/* : String */;
3374 var_modelbuilder
= p0
;
3375 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:AConcreteMethPropdef>*/;
3376 /* <var:nullable ANode> isa AClassdef */
3377 cltype
= type_parser_nodes__AClassdef
.color
;
3378 idtype
= type_parser_nodes__AClassdef
.id
;
3382 if(cltype
>= var
->type
->table_size
) {
3385 var1
= var
->type
->type_table
[cltype
] == idtype
;
3389 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
3390 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name
);
3391 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 484);
3394 var_nclassdef
= var
;
3395 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AConcreteMethPropdef>*/;
3397 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3398 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 485);
3401 var_mpropdef
= var2
;
3402 var3
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
3403 ((void (*)(val
*, val
*, val
*, val
*))(var3
->class->vft
[COLOR_typing__TypeVisitor__init
]))(var3
, var_modelbuilder
, var_nclassdef
, var_mpropdef
) /* init on <var3:TypeVisitor>*/;
3405 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
3406 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__APropdef__selfvariable_61d
]))(self
, var4
) /* selfvariable= on <self:AConcreteMethPropdef>*/;
3407 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AConcreteMethPropdef__n_block
]))(self
) /* n_block on <self:AConcreteMethPropdef>*/;
3410 if (var_nblock
== NULL
) {
3411 var7
= 1; /* is null */
3413 var7
= 0; /* arg is null but recv is not */
3419 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AConcreteMethPropdef>*/;
3421 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3422 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 492);
3425 var_mmethoddef
= var8
;
3426 var9
= NEW_range__Range(&type_range__Rangekernel__Int
);
3428 var11
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3429 if (var11
== NULL
) {
3430 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3431 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 493);
3434 var12
= ((long (*)(val
*))(var11
->class->vft
[COLOR_model__MSignature__arity
]))(var11
) /* arity on <var11:nullable MSignature>*/;
3436 var13
= BOX_kernel__Int(var10
); /* autobox from Int to Discrete */
3437 var14
= BOX_kernel__Int(var12
); /* autobox from Int to Discrete */
3438 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_range__Range__without_last
]))(var9
, var13
, var14
) /* without_last on <var9:Range[Int]>*/;
3439 var15
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Range[Int]>*/;
3441 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
3443 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
3444 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
3446 var19
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3447 if (var19
== NULL
) {
3448 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3449 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 494);
3452 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_model__MSignature__mparameters
]))(var19
) /* mparameters on <var19:nullable MSignature>*/;
3454 var21
= ((val
* (*)(val
*, long))(var20
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var20
, var_i
) /* [] on <var20:Array[MParameter]>*/;
3455 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_model__MParameter__mtype
]))(var21
) /* mtype on <var21:nullable Object(MParameter)>*/;
3457 var23
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3458 if (var23
== NULL
) {
3459 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3460 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 495);
3463 var24
= ((long (*)(val
*))(var23
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var23
) /* vararg_rank on <var23:nullable MSignature>*/;
3465 { /* Inline kernel#Int#== (var24,var_i) */
3466 var27
= var24
== var_i
;
3469 RET_LABEL26
:(void)0;
3472 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3473 if (var28
== NULL
) {
3474 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3475 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 496);
3478 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_parser_nodes__ASignature__n_params
]))(var28
) /* n_params on <var28:nullable ASignature>*/;
3480 var30
= ((val
* (*)(val
*, long))(var29
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var29
, var_i
) /* [] on <var29:ANodes[AParam]>*/;
3486 var34
= string__NativeString__to_s_with_length(var32
, var33
);
3490 var35
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, var30
, var31
) /* get_mclass on <var_v:TypeVisitor>*/;
3491 var_arrayclass
= var35
;
3493 if (var_arrayclass
== NULL
) {
3494 var37
= 1; /* is null */
3496 var37
= 0; /* arg is null but recv is not */
3502 var38
= NEW_array__Array(&type_array__Arraymodel__MType
);
3503 { /* var38 = array_instance Array[MType] */
3505 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraymodel__MType
);
3506 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_mtype
;
3507 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[MType]>*/;
3509 var41
= ((val
* (*)(val
*, val
*))(var_arrayclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_arrayclass
, var38
) /* get_mtype on <var_arrayclass:nullable MClass(MClass)>*/;
3513 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3514 if (var42
== NULL
) {
3515 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3516 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 500);
3519 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_parser_nodes__ASignature__n_params
]))(var42
) /* n_params on <var42:nullable ASignature>*/;
3521 var44
= ((val
* (*)(val
*, long))(var43
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var43
, var_i
) /* [] on <var43:ANodes[AParam]>*/;
3522 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_scope__AParam__variable
]))(var44
) /* variable on <var44:nullable Object(AParam)>*/;
3523 var_variable
= var45
;
3525 if (var_variable
== NULL
) {
3526 var47
= 0; /* is null */
3528 var47
= 1; /* arg is null and recv is not */
3531 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3532 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 501);
3535 ((void (*)(val
*, val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var_variable
, var_mtype
) /* declared_type= on <var_variable:nullable Variable(Variable)>*/;
3536 CONTINUE_label
: (void)0;
3537 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
3539 BREAK_label
: (void)0;
3540 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var_nblock
) /* visit_stmt on <var_v:TypeVisitor>*/;
3541 var49
= ((val
* (*)(val
*))(var_nblock
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_nblock
) /* after_flow_context on <var_nblock:nullable AExpr(AExpr)>*/;
3542 if (var49
== NULL
) {
3543 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3544 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 506);
3547 var50
= ((short int (*)(val
*))(var49
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var49
) /* is_unreachable on <var49:nullable FlowContext>*/;
3552 var52
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3553 if (var52
== NULL
) {
3554 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3555 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 506);
3558 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var52
) /* return_mtype on <var52:nullable MSignature>*/;
3561 if (var53
== NULL
) {
3562 var55
= 0; /* is null */
3564 var55
= 1; /* arg is null and recv is not */
3574 var58
= "Control error: Reached end of function (a \'return\' with a value was expected).";
3576 var60
= string__NativeString__to_s_with_length(var58
, var59
);
3580 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var57
) /* error on <var_v:TypeVisitor>*/;
3585 /* method typing#AConcreteMethPropdef#do_typing for (self: Object, ModelBuilder) */
3586 void VIRTUAL_typing__AConcreteMethPropdef__do_typing(val
* self
, val
* p0
) {
3587 typing__AConcreteMethPropdef__do_typing(self
, p0
);
3590 /* method typing#AAttrPropdef#do_typing for (self: AAttrPropdef, ModelBuilder) */
3591 void typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
3592 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3593 val
* var
/* : nullable ANode */;
3594 short int var1
/* : Bool */;
3597 const char* var_class_name
;
3598 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3599 val
* var2
/* : TypeVisitor */;
3600 val
* var3
/* : nullable MPropDef */;
3601 val
* var_v
/* var v: TypeVisitor */;
3602 val
* var4
/* : Variable */;
3603 val
* var5
/* : nullable AExpr */;
3604 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3605 val
* var6
/* : null */;
3606 short int var7
/* : Bool */;
3607 val
* var8
/* : nullable MPropDef */;
3608 val
* var9
/* : nullable MType */;
3609 val
* var_mtype
/* var mtype: nullable MType */;
3610 val
* var10
/* : nullable MType */;
3611 var_modelbuilder
= p0
;
3612 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:AAttrPropdef>*/;
3613 /* <var:nullable ANode> isa AClassdef */
3614 cltype
= type_parser_nodes__AClassdef
.color
;
3615 idtype
= type_parser_nodes__AClassdef
.id
;
3619 if(cltype
>= var
->type
->table_size
) {
3622 var1
= var
->type
->type_table
[cltype
] == idtype
;
3626 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
3627 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name
);
3628 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 516);
3631 var_nclassdef
= var
;
3632 var2
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
3633 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AAttrPropdef>*/;
3635 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3636 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 517);
3639 ((void (*)(val
*, val
*, val
*, val
*))(var2
->class->vft
[COLOR_typing__TypeVisitor__init
]))(var2
, var_modelbuilder
, var_nclassdef
, var3
) /* init on <var2:TypeVisitor>*/;
3641 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
3642 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__APropdef__selfvariable_61d
]))(self
, var4
) /* selfvariable= on <self:AAttrPropdef>*/;
3643 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_expr
]))(self
) /* n_expr on <self:AAttrPropdef>*/;
3646 if (var_nexpr
== NULL
) {
3647 var7
= 0; /* is null */
3649 var7
= 1; /* arg is null and recv is not */
3652 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AAttrPropdef>*/;
3654 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3655 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 522);
3658 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var8
) /* static_mtype on <var8:nullable MPropDef(nullable MAttributeDef)>*/;
3661 var10
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(var_v
, var_nexpr
, var_mtype
) /* visit_expr_subtype on <var_v:TypeVisitor>*/;
3667 /* method typing#AAttrPropdef#do_typing for (self: Object, ModelBuilder) */
3668 void VIRTUAL_typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
3669 typing__AAttrPropdef__do_typing(self
, p0
);
3672 /* method typing#AExpr#mtype for (self: AExpr): nullable MType */
3673 val
* typing__AExpr__mtype(val
* self
) {
3674 val
* var
/* : nullable MType */;
3675 val
* var1
/* : nullable MType */;
3676 var1
= self
->attrs
[COLOR_typing__AExpr___64dmtype
].val
; /* @mtype on <self:AExpr> */
3681 /* method typing#AExpr#mtype for (self: Object): nullable MType */
3682 val
* VIRTUAL_typing__AExpr__mtype(val
* self
) {
3683 val
* var
/* : nullable MType */;
3684 val
* var1
/* : nullable MType */;
3685 var1
= typing__AExpr__mtype(self
);
3690 /* method typing#AExpr#mtype= for (self: AExpr, nullable MType) */
3691 void typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
3692 self
->attrs
[COLOR_typing__AExpr___64dmtype
].val
= p0
; /* @mtype on <self:AExpr> */
3695 /* method typing#AExpr#mtype= for (self: Object, nullable MType) */
3696 void VIRTUAL_typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
3697 typing__AExpr__mtype_61d(self
, p0
);
3700 /* method typing#AExpr#is_typed for (self: AExpr): Bool */
3701 short int typing__AExpr__is_typed(val
* self
) {
3702 short int var
/* : Bool */;
3703 short int var1
/* : Bool */;
3704 var1
= self
->attrs
[COLOR_typing__AExpr___64dis_typed
].s
; /* @is_typed on <self:AExpr> */
3709 /* method typing#AExpr#is_typed for (self: Object): Bool */
3710 short int VIRTUAL_typing__AExpr__is_typed(val
* self
) {
3711 short int var
/* : Bool */;
3712 short int var1
/* : Bool */;
3713 var1
= typing__AExpr__is_typed(self
);
3718 /* method typing#AExpr#is_typed= for (self: AExpr, Bool) */
3719 void typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
3720 self
->attrs
[COLOR_typing__AExpr___64dis_typed
].s
= p0
; /* @is_typed on <self:AExpr> */
3723 /* method typing#AExpr#is_typed= for (self: Object, Bool) */
3724 void VIRTUAL_typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
3725 typing__AExpr__is_typed_61d(self
, p0
);
3728 /* method typing#AExpr#implicit_cast_to for (self: AExpr): nullable MType */
3729 val
* typing__AExpr__implicit_cast_to(val
* self
) {
3730 val
* var
/* : nullable MType */;
3731 val
* var1
/* : nullable MType */;
3732 var1
= self
->attrs
[COLOR_typing__AExpr___64dimplicit_cast_to
].val
; /* @implicit_cast_to on <self:AExpr> */
3737 /* method typing#AExpr#implicit_cast_to for (self: Object): nullable MType */
3738 val
* VIRTUAL_typing__AExpr__implicit_cast_to(val
* self
) {
3739 val
* var
/* : nullable MType */;
3740 val
* var1
/* : nullable MType */;
3741 var1
= typing__AExpr__implicit_cast_to(self
);
3746 /* method typing#AExpr#implicit_cast_to= for (self: AExpr, nullable MType) */
3747 void typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
3748 self
->attrs
[COLOR_typing__AExpr___64dimplicit_cast_to
].val
= p0
; /* @implicit_cast_to on <self:AExpr> */
3751 /* method typing#AExpr#implicit_cast_to= for (self: Object, nullable MType) */
3752 void VIRTUAL_typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
3753 typing__AExpr__implicit_cast_to_61d(self
, p0
);
3756 /* method typing#AExpr#its_variable for (self: AExpr): nullable Variable */
3757 val
* typing__AExpr__its_variable(val
* self
) {
3758 val
* var
/* : nullable Variable */;
3759 val
* var1
/* : null */;
3766 /* method typing#AExpr#its_variable for (self: Object): nullable Variable */
3767 val
* VIRTUAL_typing__AExpr__its_variable(val
* self
) {
3768 val
* var
/* : nullable Variable */;
3769 val
* var1
/* : nullable Variable */;
3770 var1
= typing__AExpr__its_variable(self
);
3775 /* method typing#AExpr#accept_typing for (self: AExpr, TypeVisitor) */
3776 void typing__AExpr__accept_typing(val
* self
, val
* p0
) {
3777 val
* var_v
/* var v: TypeVisitor */;
3778 static val
* varonce
;
3779 val
* var
/* : String */;
3780 char* var1
/* : NativeString */;
3781 long var2
/* : Int */;
3782 val
* var3
/* : String */;
3783 val
* var4
/* : String */;
3784 val
* var5
/* : Array[Object] */;
3785 long var6
/* : Int */;
3786 val
* var7
/* : NativeArray[Object] */;
3787 val
* var8
/* : String */;
3792 var1
= "no implemented accept_typing for ";
3794 var3
= string__NativeString__to_s_with_length(var1
, var2
);
3798 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__Object__class_name
]))(self
) /* class_name on <self:AExpr>*/;
3799 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
3800 { /* var5 = array_instance Array[Object] */
3802 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
3803 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
3804 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var4
;
3805 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
3807 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
3808 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var8
) /* error on <var_v:TypeVisitor>*/;
3811 /* method typing#AExpr#accept_typing for (self: Object, TypeVisitor) */
3812 void VIRTUAL_typing__AExpr__accept_typing(val
* self
, val
* p0
) {
3813 typing__AExpr__accept_typing(self
, p0
);
3816 /* method typing#ABlockExpr#accept_typing for (self: ABlockExpr, TypeVisitor) */
3817 void typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
3818 val
* var_v
/* var v: TypeVisitor */;
3819 val
* var
/* : ANodes[AExpr] */;
3820 val
* var1
/* : Iterator[nullable Object] */;
3821 short int var2
/* : Bool */;
3822 val
* var3
/* : nullable Object */;
3823 val
* var_e
/* var e: AExpr */;
3824 short int var4
/* : Bool */;
3826 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3827 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var
) /* iterator on <var:ANodes[AExpr]>*/;
3829 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
3831 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
3833 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var_e
) /* visit_stmt on <var_v:TypeVisitor>*/;
3834 CONTINUE_label
: (void)0;
3835 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
3837 BREAK_label
: (void)0;
3839 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:ABlockExpr>*/;
3842 /* method typing#ABlockExpr#accept_typing for (self: Object, TypeVisitor) */
3843 void VIRTUAL_typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
3844 typing__ABlockExpr__accept_typing(self
, p0
);
3847 /* method typing#ABlockExpr#mtype for (self: ABlockExpr): nullable MType */
3848 val
* typing__ABlockExpr__mtype(val
* self
) {
3849 val
* var
/* : nullable MType */;
3850 val
* var1
/* : ANodes[AExpr] */;
3851 short int var2
/* : Bool */;
3852 val
* var3
/* : null */;
3853 val
* var4
/* : ANodes[AExpr] */;
3854 val
* var5
/* : nullable Object */;
3855 val
* var6
/* : nullable MType */;
3856 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3857 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var1
) /* is_empty on <var1:ANodes[AExpr]>*/;
3864 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3865 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var4
) /* last on <var4:ANodes[AExpr]>*/;
3866 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_typing__AExpr__mtype
]))(var5
) /* mtype on <var5:nullable Object(AExpr)>*/;
3872 /* method typing#ABlockExpr#mtype for (self: Object): nullable MType */
3873 val
* VIRTUAL_typing__ABlockExpr__mtype(val
* self
) {
3874 val
* var
/* : nullable MType */;
3875 val
* var1
/* : nullable MType */;
3876 var1
= typing__ABlockExpr__mtype(self
);
3881 /* method typing#AVardeclExpr#accept_typing for (self: AVardeclExpr, TypeVisitor) */
3882 void typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
3883 val
* var_v
/* var v: TypeVisitor */;
3884 val
* var
/* : nullable Variable */;
3885 val
* var_variable
/* var variable: nullable Variable */;
3886 val
* var1
/* : null */;
3887 short int var2
/* : Bool */;
3888 val
* var3
/* : nullable AType */;
3889 val
* var_ntype
/* var ntype: nullable AType */;
3890 val
* var4
/* : null */;
3891 short int var5
/* : Bool */;
3892 val
* var6
/* : null */;
3893 val
* var_mtype
/* var mtype: nullable MType */;
3894 val
* var7
/* : nullable MType */;
3895 val
* var8
/* : null */;
3896 short int var9
/* : Bool */;
3897 val
* var10
/* : nullable AExpr */;
3898 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3899 val
* var11
/* : null */;
3900 short int var12
/* : Bool */;
3901 val
* var13
/* : null */;
3902 short int var14
/* : Bool */;
3903 val
* var15
/* : nullable MType */;
3904 val
* var16
/* : nullable MType */;
3905 val
* var17
/* : null */;
3906 short int var18
/* : Bool */;
3907 val
* var_decltype
/* var decltype: nullable MType */;
3908 short int var19
/* : Bool */;
3909 val
* var20
/* : null */;
3910 short int var21
/* : Bool */;
3911 short int var_
/* var : Bool */;
3912 short int var22
/* : Bool */;
3915 static val
* varonce
;
3916 val
* var23
/* : String */;
3917 char* var24
/* : NativeString */;
3918 long var25
/* : Int */;
3919 val
* var26
/* : String */;
3920 val
* var27
/* : nullable MClass */;
3921 val
* var28
/* : MClassType */;
3922 val
* var29
/* : MType */;
3923 val
* var30
/* : null */;
3924 short int var31
/* : Bool */;
3925 short int var32
/* : Bool */;
3927 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVardeclExpr__variable
]))(self
) /* variable on <self:AVardeclExpr>*/;
3930 if (var_variable
== NULL
) {
3931 var2
= 1; /* is null */
3933 var2
= 0; /* arg is null but recv is not */
3939 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AVardeclExpr__n_type
]))(self
) /* n_type on <self:AVardeclExpr>*/;
3942 if (var_ntype
== NULL
) {
3943 var5
= 1; /* is null */
3945 var5
= 0; /* arg is null but recv is not */
3951 var7
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var_ntype
) /* resolve_mtype on <var_v:TypeVisitor>*/;
3954 if (var_mtype
== NULL
) {
3955 var9
= 1; /* is null */
3957 var9
= 0; /* arg is null but recv is not */
3964 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AVardeclExpr__n_expr
]))(self
) /* n_expr on <self:AVardeclExpr>*/;
3967 if (var_nexpr
== NULL
) {
3968 var12
= 0; /* is null */
3970 var12
= 1; /* arg is null and recv is not */
3974 if (var_mtype
== NULL
) {
3975 var14
= 0; /* is null */
3977 var14
= 1; /* arg is null and recv is not */
3980 var15
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(var_v
, var_nexpr
, var_mtype
) /* visit_expr_subtype on <var_v:TypeVisitor>*/;
3983 var16
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
3986 if (var_mtype
== NULL
) {
3987 var18
= 1; /* is null */
3989 var18
= 0; /* arg is null but recv is not */
3998 var_decltype
= var_mtype
;
4000 if (var_mtype
== NULL
) {
4001 var21
= 1; /* is null */
4003 var21
= 0; /* arg is null but recv is not */
4009 /* <var_mtype:nullable MType(MType)> isa MNullType */
4010 cltype
= type_model__MNullType
.color
;
4011 idtype
= type_model__MNullType
.id
;
4012 if(cltype
>= var_mtype
->type
->table_size
) {
4015 var22
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4025 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4029 var27
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var23
) /* get_mclass on <var_v:TypeVisitor>*/;
4030 if (var27
== NULL
) {
4031 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4032 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 597);
4035 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_model__MClass__mclass_type
]))(var27
) /* mclass_type on <var27:nullable MClass>*/;
4037 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MType__as_nullable
]))(var28
) /* as_nullable on <var28:MClassType>*/;
4038 var_decltype
= var29
;
4040 if (var_mtype
== NULL
) {
4041 var31
= 1; /* is null */
4043 var31
= 0; /* arg is null but recv is not */
4046 var_mtype
= var_decltype
;
4051 ((void (*)(val
*, val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var_variable
, var_decltype
) /* declared_type= on <var_variable:nullable Variable(Variable)>*/;
4052 ((void (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__set_variable
]))(var_v
, self
, var_variable
, var_mtype
) /* set_variable on <var_v:TypeVisitor>*/;
4054 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var32
) /* is_typed= on <self:AVardeclExpr>*/;
4057 /* method typing#AVardeclExpr#accept_typing for (self: Object, TypeVisitor) */
4058 void VIRTUAL_typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
4059 typing__AVardeclExpr__accept_typing(self
, p0
);
4062 /* method typing#AVarExpr#its_variable for (self: AVarExpr): nullable Variable */
4063 val
* typing__AVarExpr__its_variable(val
* self
) {
4064 val
* var
/* : nullable Variable */;
4065 val
* var1
/* : nullable Variable */;
4066 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarExpr>*/;
4072 /* method typing#AVarExpr#its_variable for (self: Object): nullable Variable */
4073 val
* VIRTUAL_typing__AVarExpr__its_variable(val
* self
) {
4074 val
* var
/* : nullable Variable */;
4075 val
* var1
/* : nullable Variable */;
4076 var1
= typing__AVarExpr__its_variable(self
);
4081 /* method typing#AVarExpr#accept_typing for (self: AVarExpr, TypeVisitor) */
4082 void typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
4083 val
* var_v
/* var v: TypeVisitor */;
4084 val
* var
/* : nullable Variable */;
4085 val
* var_variable
/* var variable: nullable Variable */;
4086 val
* var1
/* : null */;
4087 short int var2
/* : Bool */;
4088 val
* var3
/* : nullable MType */;
4089 val
* var_mtype
/* var mtype: nullable MType */;
4090 val
* var4
/* : null */;
4091 short int var5
/* : Bool */;
4093 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarExpr>*/;
4096 if (var_variable
== NULL
) {
4097 var2
= 1; /* is null */
4099 var2
= 0; /* arg is null but recv is not */
4105 var3
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_variable
]))(var_v
, self
, var_variable
) /* get_variable on <var_v:TypeVisitor>*/;
4108 if (var_mtype
== NULL
) {
4109 var5
= 0; /* is null */
4111 var5
= 1; /* arg is null and recv is not */
4116 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:AVarExpr>*/;
4119 /* method typing#AVarExpr#accept_typing for (self: Object, TypeVisitor) */
4120 void VIRTUAL_typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
4121 typing__AVarExpr__accept_typing(self
, p0
);
4124 /* method typing#AVarAssignExpr#accept_typing for (self: AVarAssignExpr, TypeVisitor) */
4125 void typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
4126 val
* var_v
/* var v: TypeVisitor */;
4127 val
* var
/* : nullable Variable */;
4128 val
* var_variable
/* var variable: nullable Variable */;
4129 val
* var1
/* : null */;
4130 short int var2
/* : Bool */;
4131 val
* var3
/* : AExpr */;
4132 val
* var4
/* : nullable MType */;
4133 val
* var5
/* : nullable MType */;
4134 val
* var_mtype
/* var mtype: nullable MType */;
4135 short int var6
/* : Bool */;
4137 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarAssignExpr>*/;
4140 if (var_variable
== NULL
) {
4141 var2
= 0; /* is null */
4143 var2
= 1; /* arg is null and recv is not */
4146 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4147 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 632);
4150 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:AVarAssignExpr>*/;
4151 var4
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
4152 var5
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(var_v
, var3
, var4
) /* visit_expr_subtype on <var_v:TypeVisitor>*/;
4154 ((void (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__set_variable
]))(var_v
, self
, var_variable
, var_mtype
) /* set_variable on <var_v:TypeVisitor>*/;
4156 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var6
) /* is_typed= on <self:AVarAssignExpr>*/;
4159 /* method typing#AVarAssignExpr#accept_typing for (self: Object, TypeVisitor) */
4160 void VIRTUAL_typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
4161 typing__AVarAssignExpr__accept_typing(self
, p0
);
4164 /* method typing#AReassignFormExpr#reassign_property for (self: AReassignFormExpr): nullable MMethodDef */
4165 val
* typing__AReassignFormExpr__reassign_property(val
* self
) {
4166 val
* var
/* : nullable MMethodDef */;
4167 val
* var1
/* : nullable CallSite */;
4168 val
* var2
/* : MMethodDef */;
4169 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite
]))(self
) /* reassign_callsite on <self:AReassignFormExpr>*/;
4171 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4172 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 644);
4175 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mpropdef
]))(var1
) /* mpropdef on <var1:nullable CallSite>*/;
4182 /* method typing#AReassignFormExpr#reassign_property for (self: Object): nullable MMethodDef */
4183 val
* VIRTUAL_typing__AReassignFormExpr__reassign_property(val
* self
) {
4184 val
* var
/* : nullable MMethodDef */;
4185 val
* var1
/* : nullable MMethodDef */;
4186 var1
= typing__AReassignFormExpr__reassign_property(self
);
4191 /* method typing#AReassignFormExpr#reassign_callsite for (self: AReassignFormExpr): nullable CallSite */
4192 val
* typing__AReassignFormExpr__reassign_callsite(val
* self
) {
4193 val
* var
/* : nullable CallSite */;
4194 val
* var1
/* : nullable CallSite */;
4195 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___64dreassign_callsite
].val
; /* @reassign_callsite on <self:AReassignFormExpr> */
4200 /* method typing#AReassignFormExpr#reassign_callsite for (self: Object): nullable CallSite */
4201 val
* VIRTUAL_typing__AReassignFormExpr__reassign_callsite(val
* self
) {
4202 val
* var
/* : nullable CallSite */;
4203 val
* var1
/* : nullable CallSite */;
4204 var1
= typing__AReassignFormExpr__reassign_callsite(self
);
4209 /* method typing#AReassignFormExpr#reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */
4210 void typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
4211 self
->attrs
[COLOR_typing__AReassignFormExpr___64dreassign_callsite
].val
= p0
; /* @reassign_callsite on <self:AReassignFormExpr> */
4214 /* method typing#AReassignFormExpr#reassign_callsite= for (self: Object, nullable CallSite) */
4215 void VIRTUAL_typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
4216 typing__AReassignFormExpr__reassign_callsite_61d(self
, p0
);
4219 /* method typing#AReassignFormExpr#read_type for (self: AReassignFormExpr): nullable MType */
4220 val
* typing__AReassignFormExpr__read_type(val
* self
) {
4221 val
* var
/* : nullable MType */;
4222 val
* var1
/* : nullable MType */;
4223 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___64dread_type
].val
; /* @read_type on <self:AReassignFormExpr> */
4228 /* method typing#AReassignFormExpr#read_type for (self: Object): nullable MType */
4229 val
* VIRTUAL_typing__AReassignFormExpr__read_type(val
* self
) {
4230 val
* var
/* : nullable MType */;
4231 val
* var1
/* : nullable MType */;
4232 var1
= typing__AReassignFormExpr__read_type(self
);
4237 /* method typing#AReassignFormExpr#read_type= for (self: AReassignFormExpr, nullable MType) */
4238 void typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
4239 self
->attrs
[COLOR_typing__AReassignFormExpr___64dread_type
].val
= p0
; /* @read_type on <self:AReassignFormExpr> */
4242 /* method typing#AReassignFormExpr#read_type= for (self: Object, nullable MType) */
4243 void VIRTUAL_typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
4244 typing__AReassignFormExpr__read_type_61d(self
, p0
);
4247 /* method typing#AReassignFormExpr#resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */
4248 val
* typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4249 val
* var
/* : nullable MType */;
4250 val
* var_v
/* var v: TypeVisitor */;
4251 val
* var_readtype
/* var readtype: MType */;
4252 val
* var_writetype
/* var writetype: MType */;
4253 val
* var1
/* : AAssignOp */;
4254 short int var2
/* : Bool */;
4257 static val
* varonce
;
4258 val
* var3
/* : String */;
4259 char* var4
/* : NativeString */;
4260 long var5
/* : Int */;
4261 val
* var6
/* : String */;
4262 val
* var_reassign_name
/* var reassign_name: String */;
4263 val
* var7
/* : AAssignOp */;
4264 short int var8
/* : Bool */;
4267 static val
* varonce11
;
4268 val
* var12
/* : String */;
4269 char* var13
/* : NativeString */;
4270 long var14
/* : Int */;
4271 val
* var15
/* : String */;
4272 short int var16
/* : Bool */;
4275 static val
* varonce19
;
4276 val
* var20
/* : String */;
4277 char* var21
/* : NativeString */;
4278 long var22
/* : Int */;
4279 val
* var23
/* : String */;
4280 static val
* varonce24
;
4281 val
* var25
/* : String */;
4282 char* var26
/* : NativeString */;
4283 long var27
/* : Int */;
4284 val
* var28
/* : String */;
4285 val
* var29
/* : Array[Object] */;
4286 long var30
/* : Int */;
4287 val
* var31
/* : NativeArray[Object] */;
4288 val
* var32
/* : String */;
4289 val
* var33
/* : null */;
4290 short int var34
/* : Bool */;
4291 val
* var35
/* : nullable CallSite */;
4292 val
* var_callsite
/* var callsite: nullable CallSite */;
4293 val
* var36
/* : null */;
4294 short int var37
/* : Bool */;
4295 val
* var38
/* : null */;
4296 val
* var39
/* : MSignature */;
4297 val
* var_msignature
/* var msignature: MSignature */;
4298 val
* var40
/* : nullable MType */;
4299 val
* var_rettype
/* var rettype: nullable MType */;
4300 short int var41
/* : Bool */;
4301 long var42
/* : Int */;
4302 long var43
/* : Int */;
4303 short int var44
/* : Bool */;
4304 short int var46
/* : Bool */;
4305 short int var_
/* var : Bool */;
4306 val
* var47
/* : null */;
4307 short int var48
/* : Bool */;
4308 val
* var49
/* : AExpr */;
4309 val
* var50
/* : Array[MParameter] */;
4310 val
* var51
/* : nullable Object */;
4311 val
* var52
/* : MType */;
4312 val
* var53
/* : nullable MType */;
4313 val
* var_value_type
/* var value_type: nullable MType */;
4314 val
* var54
/* : null */;
4315 short int var55
/* : Bool */;
4316 val
* var56
/* : null */;
4317 val
* var57
/* : nullable MType */;
4321 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_assign_op
]))(self
) /* n_assign_op on <self:AReassignFormExpr>*/;
4322 /* <var1:AAssignOp> isa APlusAssignOp */
4323 cltype
= type_parser_nodes__APlusAssignOp
.color
;
4324 idtype
= type_parser_nodes__APlusAssignOp
.id
;
4325 if(cltype
>= var1
->type
->table_size
) {
4328 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4336 var6
= string__NativeString__to_s_with_length(var4
, var5
);
4340 var_reassign_name
= var3
;
4342 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_assign_op
]))(self
) /* n_assign_op on <self:AReassignFormExpr>*/;
4343 /* <var7:AAssignOp> isa AMinusAssignOp */
4344 cltype9
= type_parser_nodes__AMinusAssignOp
.color
;
4345 idtype10
= type_parser_nodes__AMinusAssignOp
.id
;
4346 if(cltype9
>= var7
->type
->table_size
) {
4349 var8
= var7
->type
->type_table
[cltype9
] == idtype10
;
4357 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4361 var_reassign_name
= var12
;
4363 fprintf(stderr
, "Runtime error: %s", "Aborted");
4364 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 664);
4368 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type_61d
]))(self
, var_readtype
) /* read_type= on <self:AReassignFormExpr>*/;
4369 /* <var_readtype:MType> isa MNullType */
4370 cltype17
= type_model__MNullType
.color
;
4371 idtype18
= type_model__MNullType
.id
;
4372 if(cltype17
>= var_readtype
->type
->table_size
) {
4375 var16
= var_readtype
->type
->type_table
[cltype17
] == idtype18
;
4381 var21
= "Error: Method \'";
4383 var23
= string__NativeString__to_s_with_length(var21
, var22
);
4390 var26
= "\' call on \'null\'.";
4392 var28
= string__NativeString__to_s_with_length(var26
, var27
);
4396 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
4397 { /* var29 = array_instance Array[Object] */
4399 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
4400 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var20
;
4401 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_reassign_name
;
4402 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
4403 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
4405 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
4406 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var32
) /* error on <var_v:TypeVisitor>*/;
4413 var35
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_readtype
, var_reassign_name
, var34
) /* get_method on <var_v:TypeVisitor>*/;
4414 var_callsite
= var35
;
4416 if (var_callsite
== NULL
) {
4417 var37
= 1; /* is null */
4419 var37
= 0; /* arg is null but recv is not */
4427 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite_61d
]))(self
, var_callsite
) /* reassign_callsite= on <self:AReassignFormExpr>*/;
4428 var39
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
4429 var_msignature
= var39
;
4430 var40
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
4431 var_rettype
= var40
;
4432 var42
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
4434 { /* Inline kernel#Int#== (var42,var43) */
4435 var46
= var42
== var43
;
4438 RET_LABEL45
:(void)0;
4443 if (var_rettype
== NULL
) {
4444 var48
= 0; /* is null */
4446 var48
= 1; /* arg is null and recv is not */
4453 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4454 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 680);
4457 var49
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:AReassignFormExpr>*/;
4458 var50
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
4459 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var50
) /* first on <var50:Array[MParameter]>*/;
4460 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_model__MParameter__mtype
]))(var51
) /* mtype on <var51:nullable Object(MParameter)>*/;
4461 var53
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(var_v
, var49
, var52
) /* visit_expr_subtype on <var_v:TypeVisitor>*/;
4462 var_value_type
= var53
;
4464 if (var_value_type
== NULL
) {
4465 var55
= 1; /* is null */
4467 var55
= 0; /* arg is null but recv is not */
4475 var57
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__check_subtype
]))(var_v
, self
, var_rettype
, var_writetype
) /* check_subtype on <var_v:TypeVisitor>*/;
4482 /* method typing#AReassignFormExpr#resolve_reassignment for (self: Object, TypeVisitor, MType, MType): nullable MType */
4483 val
* VIRTUAL_typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4484 val
* var
/* : nullable MType */;
4485 val
* var1
/* : nullable MType */;
4486 var1
= typing__AReassignFormExpr__resolve_reassignment(self
, p0
, p1
, p2
);
4491 /* method typing#AVarReassignExpr#accept_typing for (self: AVarReassignExpr, TypeVisitor) */
4492 void typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
4493 val
* var_v
/* var v: TypeVisitor */;
4494 val
* var
/* : nullable Variable */;
4495 val
* var_variable
/* var variable: nullable Variable */;
4496 val
* var1
/* : null */;
4497 short int var2
/* : Bool */;
4498 val
* var3
/* : nullable MType */;
4499 val
* var_readtype
/* var readtype: nullable MType */;
4500 val
* var4
/* : null */;
4501 short int var5
/* : Bool */;
4502 val
* var6
/* : nullable MType */;
4503 val
* var_writetype
/* var writetype: nullable MType */;
4504 val
* var7
/* : null */;
4505 short int var8
/* : Bool */;
4506 val
* var9
/* : nullable MType */;
4507 val
* var_rettype
/* var rettype: nullable MType */;
4508 short int var10
/* : Bool */;
4510 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarReassignExpr>*/;
4513 if (var_variable
== NULL
) {
4514 var2
= 0; /* is null */
4516 var2
= 1; /* arg is null and recv is not */
4519 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4520 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 694);
4523 var3
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_variable
]))(var_v
, self
, var_variable
) /* get_variable on <var_v:TypeVisitor>*/;
4524 var_readtype
= var3
;
4526 if (var_readtype
== NULL
) {
4527 var5
= 1; /* is null */
4529 var5
= 0; /* arg is null but recv is not */
4535 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type_61d
]))(self
, var_readtype
) /* read_type= on <self:AVarReassignExpr>*/;
4536 var6
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
4537 var_writetype
= var6
;
4539 if (var_writetype
== NULL
) {
4540 var8
= 1; /* is null */
4542 var8
= 0; /* arg is null but recv is not */
4548 var9
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__resolve_reassignment
]))(self
, var_v
, var_readtype
, var_writetype
) /* resolve_reassignment on <self:AVarReassignExpr>*/;
4550 ((void (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__set_variable
]))(var_v
, self
, var_variable
, var_rettype
) /* set_variable on <var_v:TypeVisitor>*/;
4552 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var10
) /* is_typed= on <self:AVarReassignExpr>*/;
4555 /* method typing#AVarReassignExpr#accept_typing for (self: Object, TypeVisitor) */
4556 void VIRTUAL_typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
4557 typing__AVarReassignExpr__accept_typing(self
, p0
);
4560 /* method typing#AContinueExpr#accept_typing for (self: AContinueExpr, TypeVisitor) */
4561 void typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
4562 val
* var_v
/* var v: TypeVisitor */;
4563 val
* var
/* : nullable AExpr */;
4564 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4565 val
* var1
/* : null */;
4566 short int var2
/* : Bool */;
4567 val
* var3
/* : nullable MType */;
4568 val
* var_mtype
/* var mtype: nullable MType */;
4569 short int var4
/* : Bool */;
4571 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AContinueExpr__n_expr
]))(self
) /* n_expr on <self:AContinueExpr>*/;
4574 if (var_nexpr
== NULL
) {
4575 var2
= 0; /* is null */
4577 var2
= 1; /* arg is null and recv is not */
4580 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4585 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AContinueExpr>*/;
4588 /* method typing#AContinueExpr#accept_typing for (self: Object, TypeVisitor) */
4589 void VIRTUAL_typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
4590 typing__AContinueExpr__accept_typing(self
, p0
);
4593 /* method typing#ABreakExpr#accept_typing for (self: ABreakExpr, TypeVisitor) */
4594 void typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
4595 val
* var_v
/* var v: TypeVisitor */;
4596 val
* var
/* : nullable AExpr */;
4597 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4598 val
* var1
/* : null */;
4599 short int var2
/* : Bool */;
4600 val
* var3
/* : nullable MType */;
4601 val
* var_mtype
/* var mtype: nullable MType */;
4602 short int var4
/* : Bool */;
4604 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABreakExpr__n_expr
]))(self
) /* n_expr on <self:ABreakExpr>*/;
4607 if (var_nexpr
== NULL
) {
4608 var2
= 0; /* is null */
4610 var2
= 1; /* arg is null and recv is not */
4613 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4618 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:ABreakExpr>*/;
4621 /* method typing#ABreakExpr#accept_typing for (self: Object, TypeVisitor) */
4622 void VIRTUAL_typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
4623 typing__ABreakExpr__accept_typing(self
, p0
);
4626 /* method typing#AReturnExpr#accept_typing for (self: AReturnExpr, TypeVisitor) */
4627 void typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
4628 val
* var_v
/* var v: TypeVisitor */;
4629 val
* var
/* : nullable AExpr */;
4630 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4631 val
* var1
/* : MPropDef */;
4632 short int var2
/* : Bool */;
4635 const char* var_class_name
;
4636 val
* var3
/* : nullable MSignature */;
4637 val
* var4
/* : nullable MType */;
4638 val
* var_ret_type
/* var ret_type: nullable MType */;
4639 val
* var5
/* : null */;
4640 short int var6
/* : Bool */;
4641 val
* var7
/* : null */;
4642 short int var8
/* : Bool */;
4643 val
* var9
/* : nullable MType */;
4644 val
* var_mtype
/* var mtype: nullable MType */;
4645 val
* var10
/* : nullable MType */;
4646 val
* var_mtype11
/* var mtype: nullable MType */;
4647 static val
* varonce
;
4648 val
* var12
/* : String */;
4649 char* var13
/* : NativeString */;
4650 long var14
/* : Int */;
4651 val
* var15
/* : String */;
4652 val
* var16
/* : null */;
4653 short int var17
/* : Bool */;
4654 static val
* varonce18
;
4655 val
* var19
/* : String */;
4656 char* var20
/* : NativeString */;
4657 long var21
/* : Int */;
4658 val
* var22
/* : String */;
4659 short int var23
/* : Bool */;
4661 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReturnExpr__n_expr
]))(self
) /* n_expr on <self:AReturnExpr>*/;
4663 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
4664 /* <var1:MPropDef> isa MMethodDef */
4665 cltype
= type_model__MMethodDef
.color
;
4666 idtype
= type_model__MMethodDef
.id
;
4667 if(cltype
>= var1
->type
->table_size
) {
4670 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4673 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
4674 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name
);
4675 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 739);
4678 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var1
) /* msignature on <var1:MPropDef(MMethodDef)>*/;
4680 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4681 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 739);
4684 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var3
) /* return_mtype on <var3:nullable MSignature>*/;
4686 var_ret_type
= var4
;
4688 if (var_nexpr
== NULL
) {
4689 var6
= 0; /* is null */
4691 var6
= 1; /* arg is null and recv is not */
4695 if (var_ret_type
== NULL
) {
4696 var8
= 0; /* is null */
4698 var8
= 1; /* arg is null and recv is not */
4701 var9
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(var_v
, var_nexpr
, var_ret_type
) /* visit_expr_subtype on <var_v:TypeVisitor>*/;
4704 var10
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4705 var_mtype11
= var10
;
4709 var13
= "Error: Return with value in a procedure.";
4711 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4715 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var12
) /* error on <var_v:TypeVisitor>*/;
4719 if (var_ret_type
== NULL
) {
4720 var17
= 0; /* is null */
4722 var17
= 1; /* arg is null and recv is not */
4728 var20
= "Error: Return without value in a function.";
4730 var22
= string__NativeString__to_s_with_length(var20
, var21
);
4734 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var19
) /* error on <var_v:TypeVisitor>*/;
4739 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var23
) /* is_typed= on <self:AReturnExpr>*/;
4742 /* method typing#AReturnExpr#accept_typing for (self: Object, TypeVisitor) */
4743 void VIRTUAL_typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
4744 typing__AReturnExpr__accept_typing(self
, p0
);
4747 /* method typing#AAbortExpr#accept_typing for (self: AAbortExpr, TypeVisitor) */
4748 void typing__AAbortExpr__accept_typing(val
* self
, val
* p0
) {
4749 val
* var_v
/* var v: TypeVisitor */;
4750 short int var
/* : Bool */;
4753 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var
) /* is_typed= on <self:AAbortExpr>*/;
4756 /* method typing#AAbortExpr#accept_typing for (self: Object, TypeVisitor) */
4757 void VIRTUAL_typing__AAbortExpr__accept_typing(val
* self
, val
* p0
) {
4758 typing__AAbortExpr__accept_typing(self
, p0
);
4761 /* method typing#AIfExpr#accept_typing for (self: AIfExpr, TypeVisitor) */
4762 void typing__AIfExpr__accept_typing(val
* self
, val
* p0
) {
4763 val
* var_v
/* var v: TypeVisitor */;
4764 val
* var
/* : AExpr */;
4765 val
* var1
/* : nullable MType */;
4766 val
* var2
/* : nullable AExpr */;
4767 val
* var3
/* : nullable AExpr */;
4768 short int var4
/* : Bool */;
4770 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_expr
]))(self
) /* n_expr on <self:AIfExpr>*/;
4771 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4773 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_then
]))(self
) /* n_then on <self:AIfExpr>*/;
4774 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
4775 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_else
]))(self
) /* n_else on <self:AIfExpr>*/;
4776 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var3
) /* visit_stmt on <var_v:TypeVisitor>*/;
4778 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AIfExpr>*/;
4781 /* method typing#AIfExpr#accept_typing for (self: Object, TypeVisitor) */
4782 void VIRTUAL_typing__AIfExpr__accept_typing(val
* self
, val
* p0
) {
4783 typing__AIfExpr__accept_typing(self
, p0
);
4786 /* method typing#AIfexprExpr#accept_typing for (self: AIfexprExpr, TypeVisitor) */
4787 void typing__AIfexprExpr__accept_typing(val
* self
, val
* p0
) {
4788 val
* var_v
/* var v: TypeVisitor */;
4789 val
* var
/* : AExpr */;
4790 val
* var1
/* : nullable MType */;
4791 val
* var2
/* : AExpr */;
4792 val
* var3
/* : nullable MType */;
4793 val
* var_t1
/* var t1: nullable MType */;
4794 val
* var4
/* : AExpr */;
4795 val
* var5
/* : nullable MType */;
4796 val
* var_t2
/* var t2: nullable MType */;
4797 short int var6
/* : Bool */;
4798 val
* var7
/* : null */;
4799 short int var8
/* : Bool */;
4800 short int var_
/* var : Bool */;
4801 val
* var9
/* : null */;
4802 short int var10
/* : Bool */;
4803 val
* var11
/* : Array[MType] */;
4804 long var12
/* : Int */;
4805 val
* var13
/* : NativeArray[MType] */;
4806 val
* var14
/* : nullable MType */;
4807 val
* var_t
/* var t: nullable MType */;
4808 val
* var15
/* : null */;
4809 short int var16
/* : Bool */;
4810 static val
* varonce
;
4811 val
* var17
/* : String */;
4812 char* var18
/* : NativeString */;
4813 long var19
/* : Int */;
4814 val
* var20
/* : String */;
4815 static val
* varonce21
;
4816 val
* var22
/* : String */;
4817 char* var23
/* : NativeString */;
4818 long var24
/* : Int */;
4819 val
* var25
/* : String */;
4820 val
* var26
/* : Array[Object] */;
4821 long var27
/* : Int */;
4822 val
* var28
/* : NativeArray[Object] */;
4823 val
* var29
/* : String */;
4825 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_expr
]))(self
) /* n_expr on <self:AIfexprExpr>*/;
4826 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4828 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_then
]))(self
) /* n_then on <self:AIfexprExpr>*/;
4829 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var2
) /* visit_expr on <var_v:TypeVisitor>*/;
4831 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_else
]))(self
) /* n_else on <self:AIfexprExpr>*/;
4832 var5
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var4
) /* visit_expr on <var_v:TypeVisitor>*/;
4835 if (var_t1
== NULL
) {
4836 var8
= 1; /* is null */
4838 var8
= 0; /* arg is null but recv is not */
4845 if (var_t2
== NULL
) {
4846 var10
= 1; /* is null */
4848 var10
= 0; /* arg is null but recv is not */
4856 var11
= NEW_array__Array(&type_array__Arraymodel__MType
);
4857 { /* var11 = array_instance Array[MType] */
4859 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraymodel__MType
);
4860 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_t1
;
4861 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_t2
;
4862 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[MType]>*/;
4864 var14
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(var_v
, self
, var11
) /* merge_types on <var_v:TypeVisitor>*/;
4867 if (var_t
== NULL
) {
4868 var16
= 1; /* is null */
4870 var16
= 0; /* arg is null but recv is not */
4876 var18
= "Type Error: ambiguous type ";
4878 var20
= string__NativeString__to_s_with_length(var18
, var19
);
4887 var25
= string__NativeString__to_s_with_length(var23
, var24
);
4891 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
4892 { /* var26 = array_instance Array[Object] */
4894 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
4895 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
4896 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_t1
;
4897 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var22
;
4898 ((struct instance_array__NativeArray
*)var28
)->values
[3] = (val
*) var_t2
;
4899 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
4901 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
4902 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var29
) /* error on <var_v:TypeVisitor>*/;
4905 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_t
) /* mtype= on <self:AIfexprExpr>*/;
4908 /* method typing#AIfexprExpr#accept_typing for (self: Object, TypeVisitor) */
4909 void VIRTUAL_typing__AIfexprExpr__accept_typing(val
* self
, val
* p0
) {
4910 typing__AIfexprExpr__accept_typing(self
, p0
);
4913 /* method typing#ADoExpr#accept_typing for (self: ADoExpr, TypeVisitor) */
4914 void typing__ADoExpr__accept_typing(val
* self
, val
* p0
) {
4915 val
* var_v
/* var v: TypeVisitor */;
4916 val
* var
/* : nullable AExpr */;
4917 short int var1
/* : Bool */;
4919 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ADoExpr__n_block
]))(self
) /* n_block on <self:ADoExpr>*/;
4920 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var
) /* visit_stmt on <var_v:TypeVisitor>*/;
4922 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var1
) /* is_typed= on <self:ADoExpr>*/;
4925 /* method typing#ADoExpr#accept_typing for (self: Object, TypeVisitor) */
4926 void VIRTUAL_typing__ADoExpr__accept_typing(val
* self
, val
* p0
) {
4927 typing__ADoExpr__accept_typing(self
, p0
);
4930 /* method typing#AWhileExpr#accept_typing for (self: AWhileExpr, TypeVisitor) */
4931 void typing__AWhileExpr__accept_typing(val
* self
, val
* p0
) {
4932 val
* var_v
/* var v: TypeVisitor */;
4933 val
* var
/* : AExpr */;
4934 val
* var1
/* : nullable MType */;
4935 val
* var2
/* : nullable AExpr */;
4936 short int var3
/* : Bool */;
4938 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_expr
]))(self
) /* n_expr on <self:AWhileExpr>*/;
4939 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4941 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_block
]))(self
) /* n_block on <self:AWhileExpr>*/;
4942 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
4944 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AWhileExpr>*/;
4947 /* method typing#AWhileExpr#accept_typing for (self: Object, TypeVisitor) */
4948 void VIRTUAL_typing__AWhileExpr__accept_typing(val
* self
, val
* p0
) {
4949 typing__AWhileExpr__accept_typing(self
, p0
);
4952 /* method typing#ALoopExpr#accept_typing for (self: ALoopExpr, TypeVisitor) */
4953 void typing__ALoopExpr__accept_typing(val
* self
, val
* p0
) {
4954 val
* var_v
/* var v: TypeVisitor */;
4955 val
* var
/* : nullable AExpr */;
4956 short int var1
/* : Bool */;
4958 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ALoopExpr__n_block
]))(self
) /* n_block on <self:ALoopExpr>*/;
4959 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var
) /* visit_stmt on <var_v:TypeVisitor>*/;
4961 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var1
) /* is_typed= on <self:ALoopExpr>*/;
4964 /* method typing#ALoopExpr#accept_typing for (self: Object, TypeVisitor) */
4965 void VIRTUAL_typing__ALoopExpr__accept_typing(val
* self
, val
* p0
) {
4966 typing__ALoopExpr__accept_typing(self
, p0
);
4969 /* method typing#AForExpr#coltype for (self: AForExpr): nullable MClassType */
4970 val
* typing__AForExpr__coltype(val
* self
) {
4971 val
* var
/* : nullable MClassType */;
4972 val
* var1
/* : nullable MClassType */;
4973 var1
= self
->attrs
[COLOR_typing__AForExpr___64dcoltype
].val
; /* @coltype on <self:AForExpr> */
4978 /* method typing#AForExpr#coltype for (self: Object): nullable MClassType */
4979 val
* VIRTUAL_typing__AForExpr__coltype(val
* self
) {
4980 val
* var
/* : nullable MClassType */;
4981 val
* var1
/* : nullable MClassType */;
4982 var1
= typing__AForExpr__coltype(self
);
4987 /* method typing#AForExpr#coltype= for (self: AForExpr, nullable MClassType) */
4988 void typing__AForExpr__coltype_61d(val
* self
, val
* p0
) {
4989 self
->attrs
[COLOR_typing__AForExpr___64dcoltype
].val
= p0
; /* @coltype on <self:AForExpr> */
4992 /* method typing#AForExpr#coltype= for (self: Object, nullable MClassType) */
4993 void VIRTUAL_typing__AForExpr__coltype_61d(val
* self
, val
* p0
) {
4994 typing__AForExpr__coltype_61d(self
, p0
);
4997 /* method typing#AForExpr#method_iterator for (self: AForExpr): nullable MMethod */
4998 val
* typing__AForExpr__method_iterator(val
* self
) {
4999 val
* var
/* : nullable MMethod */;
5000 val
* var1
/* : nullable MMethod */;
5001 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_iterator
].val
; /* @method_iterator on <self:AForExpr> */
5006 /* method typing#AForExpr#method_iterator for (self: Object): nullable MMethod */
5007 val
* VIRTUAL_typing__AForExpr__method_iterator(val
* self
) {
5008 val
* var
/* : nullable MMethod */;
5009 val
* var1
/* : nullable MMethod */;
5010 var1
= typing__AForExpr__method_iterator(self
);
5015 /* method typing#AForExpr#method_iterator= for (self: AForExpr, nullable MMethod) */
5016 void typing__AForExpr__method_iterator_61d(val
* self
, val
* p0
) {
5017 self
->attrs
[COLOR_typing__AForExpr___64dmethod_iterator
].val
= p0
; /* @method_iterator on <self:AForExpr> */
5020 /* method typing#AForExpr#method_iterator= for (self: Object, nullable MMethod) */
5021 void VIRTUAL_typing__AForExpr__method_iterator_61d(val
* self
, val
* p0
) {
5022 typing__AForExpr__method_iterator_61d(self
, p0
);
5025 /* method typing#AForExpr#method_is_ok for (self: AForExpr): nullable MMethod */
5026 val
* typing__AForExpr__method_is_ok(val
* self
) {
5027 val
* var
/* : nullable MMethod */;
5028 val
* var1
/* : nullable MMethod */;
5029 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_is_ok
].val
; /* @method_is_ok on <self:AForExpr> */
5034 /* method typing#AForExpr#method_is_ok for (self: Object): nullable MMethod */
5035 val
* VIRTUAL_typing__AForExpr__method_is_ok(val
* self
) {
5036 val
* var
/* : nullable MMethod */;
5037 val
* var1
/* : nullable MMethod */;
5038 var1
= typing__AForExpr__method_is_ok(self
);
5043 /* method typing#AForExpr#method_is_ok= for (self: AForExpr, nullable MMethod) */
5044 void typing__AForExpr__method_is_ok_61d(val
* self
, val
* p0
) {
5045 self
->attrs
[COLOR_typing__AForExpr___64dmethod_is_ok
].val
= p0
; /* @method_is_ok on <self:AForExpr> */
5048 /* method typing#AForExpr#method_is_ok= for (self: Object, nullable MMethod) */
5049 void VIRTUAL_typing__AForExpr__method_is_ok_61d(val
* self
, val
* p0
) {
5050 typing__AForExpr__method_is_ok_61d(self
, p0
);
5053 /* method typing#AForExpr#method_item for (self: AForExpr): nullable MMethod */
5054 val
* typing__AForExpr__method_item(val
* self
) {
5055 val
* var
/* : nullable MMethod */;
5056 val
* var1
/* : nullable MMethod */;
5057 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_item
].val
; /* @method_item on <self:AForExpr> */
5062 /* method typing#AForExpr#method_item for (self: Object): nullable MMethod */
5063 val
* VIRTUAL_typing__AForExpr__method_item(val
* self
) {
5064 val
* var
/* : nullable MMethod */;
5065 val
* var1
/* : nullable MMethod */;
5066 var1
= typing__AForExpr__method_item(self
);
5071 /* method typing#AForExpr#method_item= for (self: AForExpr, nullable MMethod) */
5072 void typing__AForExpr__method_item_61d(val
* self
, val
* p0
) {
5073 self
->attrs
[COLOR_typing__AForExpr___64dmethod_item
].val
= p0
; /* @method_item on <self:AForExpr> */
5076 /* method typing#AForExpr#method_item= for (self: Object, nullable MMethod) */
5077 void VIRTUAL_typing__AForExpr__method_item_61d(val
* self
, val
* p0
) {
5078 typing__AForExpr__method_item_61d(self
, p0
);
5081 /* method typing#AForExpr#method_next for (self: AForExpr): nullable MMethod */
5082 val
* typing__AForExpr__method_next(val
* self
) {
5083 val
* var
/* : nullable MMethod */;
5084 val
* var1
/* : nullable MMethod */;
5085 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_next
].val
; /* @method_next on <self:AForExpr> */
5090 /* method typing#AForExpr#method_next for (self: Object): nullable MMethod */
5091 val
* VIRTUAL_typing__AForExpr__method_next(val
* self
) {
5092 val
* var
/* : nullable MMethod */;
5093 val
* var1
/* : nullable MMethod */;
5094 var1
= typing__AForExpr__method_next(self
);
5099 /* method typing#AForExpr#method_next= for (self: AForExpr, nullable MMethod) */
5100 void typing__AForExpr__method_next_61d(val
* self
, val
* p0
) {
5101 self
->attrs
[COLOR_typing__AForExpr___64dmethod_next
].val
= p0
; /* @method_next on <self:AForExpr> */
5104 /* method typing#AForExpr#method_next= for (self: Object, nullable MMethod) */
5105 void VIRTUAL_typing__AForExpr__method_next_61d(val
* self
, val
* p0
) {
5106 typing__AForExpr__method_next_61d(self
, p0
);
5109 /* method typing#AForExpr#method_key for (self: AForExpr): nullable MMethod */
5110 val
* typing__AForExpr__method_key(val
* self
) {
5111 val
* var
/* : nullable MMethod */;
5112 val
* var1
/* : nullable MMethod */;
5113 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_key
].val
; /* @method_key on <self:AForExpr> */
5118 /* method typing#AForExpr#method_key for (self: Object): nullable MMethod */
5119 val
* VIRTUAL_typing__AForExpr__method_key(val
* self
) {
5120 val
* var
/* : nullable MMethod */;
5121 val
* var1
/* : nullable MMethod */;
5122 var1
= typing__AForExpr__method_key(self
);
5127 /* method typing#AForExpr#method_key= for (self: AForExpr, nullable MMethod) */
5128 void typing__AForExpr__method_key_61d(val
* self
, val
* p0
) {
5129 self
->attrs
[COLOR_typing__AForExpr___64dmethod_key
].val
= p0
; /* @method_key on <self:AForExpr> */
5132 /* method typing#AForExpr#method_key= for (self: Object, nullable MMethod) */
5133 void VIRTUAL_typing__AForExpr__method_key_61d(val
* self
, val
* p0
) {
5134 typing__AForExpr__method_key_61d(self
, p0
);
5137 /* method typing#AForExpr#do_type_iterator for (self: AForExpr, TypeVisitor, MType) */
5138 void typing__AForExpr__do_type_iterator(val
* self
, val
* p0
, val
* p1
) {
5139 val
* var_v
/* var v: TypeVisitor */;
5140 val
* var_mtype
/* var mtype: MType */;
5141 static val
* varonce
;
5142 val
* var
/* : String */;
5143 char* var1
/* : NativeString */;
5144 long var2
/* : Int */;
5145 val
* var3
/* : String */;
5146 val
* var4
/* : nullable MClass */;
5147 val
* var_objcla
/* var objcla: nullable MClass */;
5148 val
* var5
/* : null */;
5149 short int var6
/* : Bool */;
5150 val
* var7
/* : MType */;
5151 val
* var_unsafe_type
/* var unsafe_type: MType */;
5152 static val
* varonce8
;
5153 val
* var9
/* : String */;
5154 char* var10
/* : NativeString */;
5155 long var11
/* : Int */;
5156 val
* var12
/* : String */;
5157 val
* var13
/* : nullable MProperty */;
5158 val
* var14
/* : null */;
5159 short int var15
/* : Bool */;
5160 static val
* varonce16
;
5161 val
* var17
/* : String */;
5162 char* var18
/* : NativeString */;
5163 long var19
/* : Int */;
5164 val
* var20
/* : String */;
5165 val
* var21
/* : nullable MProperty */;
5166 val
* var22
/* : null */;
5167 short int var23
/* : Bool */;
5168 static val
* varonce24
;
5169 val
* var25
/* : String */;
5170 char* var26
/* : NativeString */;
5171 long var27
/* : Int */;
5172 val
* var28
/* : String */;
5173 val
* var29
/* : Array[Object] */;
5174 long var30
/* : Int */;
5175 val
* var31
/* : NativeArray[Object] */;
5176 val
* var32
/* : String */;
5177 val
* var33
/* : ModelBuilder */;
5178 static val
* varonce34
;
5179 val
* var35
/* : String */;
5180 char* var36
/* : NativeString */;
5181 long var37
/* : Int */;
5182 val
* var38
/* : String */;
5183 val
* var39
/* : Array[Object] */;
5184 long var40
/* : Int */;
5185 val
* var41
/* : NativeArray[Object] */;
5186 val
* var42
/* : String */;
5187 static val
* varonce43
;
5188 val
* var44
/* : String */;
5189 char* var45
/* : NativeString */;
5190 long var46
/* : Int */;
5191 val
* var47
/* : String */;
5192 short int var48
/* : Bool */;
5193 val
* var49
/* : nullable CallSite */;
5194 val
* var_itdef
/* var itdef: nullable CallSite */;
5195 val
* var50
/* : null */;
5196 short int var51
/* : Bool */;
5197 static val
* varonce52
;
5198 val
* var53
/* : String */;
5199 char* var54
/* : NativeString */;
5200 long var55
/* : Int */;
5201 val
* var56
/* : String */;
5202 val
* var57
/* : Array[Object] */;
5203 long var58
/* : Int */;
5204 val
* var59
/* : NativeArray[Object] */;
5205 val
* var60
/* : String */;
5206 val
* var61
/* : MMethod */;
5207 val
* var62
/* : MSignature */;
5208 val
* var63
/* : nullable MType */;
5209 val
* var_ittype
/* var ittype: nullable MType */;
5210 val
* var64
/* : null */;
5211 short int var65
/* : Bool */;
5212 static val
* varonce66
;
5213 val
* var67
/* : String */;
5214 char* var68
/* : NativeString */;
5215 long var69
/* : Int */;
5216 val
* var70
/* : String */;
5217 static val
* varonce71
;
5218 val
* var72
/* : String */;
5219 char* var73
/* : NativeString */;
5220 long var74
/* : Int */;
5221 val
* var75
/* : String */;
5222 val
* var76
/* : nullable MClass */;
5223 val
* var_colit_cla
/* var colit_cla: nullable MClass */;
5224 static val
* varonce77
;
5225 val
* var78
/* : String */;
5226 char* var79
/* : NativeString */;
5227 long var80
/* : Int */;
5228 val
* var81
/* : String */;
5229 val
* var82
/* : nullable MClass */;
5230 val
* var_mapit_cla
/* var mapit_cla: nullable MClass */;
5231 short int var83
/* : Bool */;
5232 short int var_is_col
/* var is_col: Bool */;
5233 short int var84
/* : Bool */;
5234 short int var_is_map
/* var is_map: Bool */;
5235 short int var85
/* : Bool */;
5236 val
* var86
/* : null */;
5237 short int var87
/* : Bool */;
5238 short int var_
/* var : Bool */;
5239 val
* var88
/* : MClassType */;
5240 val
* var89
/* : MType */;
5241 val
* var90
/* : Array[MType] */;
5242 long var91
/* : Int */;
5243 val
* var92
/* : NativeArray[MType] */;
5244 val
* var93
/* : MClassType */;
5245 short int var94
/* : Bool */;
5246 val
* var95
/* : MModule */;
5247 val
* var96
/* : MClassType */;
5248 val
* var97
/* : MClassType */;
5249 val
* var_coltype
/* var coltype: MClassType */;
5250 val
* var98
/* : nullable Array[Variable] */;
5251 val
* var_variables
/* var variables: nullable Array[Variable] */;
5252 long var99
/* : Int */;
5253 long var100
/* : Int */;
5254 short int var101
/* : Bool */;
5255 short int var103
/* : Bool */;
5256 short int var104
/* : Bool */;
5257 static val
* varonce105
;
5258 val
* var106
/* : String */;
5259 char* var107
/* : NativeString */;
5260 long var108
/* : Int */;
5261 val
* var109
/* : String */;
5262 val
* var110
/* : nullable Object */;
5263 val
* var111
/* : Array[MType] */;
5264 val
* var112
/* : nullable Object */;
5265 short int var113
/* : Bool */;
5266 short int var114
/* : Bool */;
5267 val
* var115
/* : null */;
5268 short int var116
/* : Bool */;
5269 short int var_117
/* var : Bool */;
5270 val
* var118
/* : MClassType */;
5271 val
* var119
/* : MClassType */;
5272 val
* var120
/* : MType */;
5273 val
* var121
/* : Array[MType] */;
5274 long var122
/* : Int */;
5275 val
* var123
/* : NativeArray[MType] */;
5276 val
* var124
/* : MClassType */;
5277 short int var125
/* : Bool */;
5278 val
* var126
/* : MModule */;
5279 val
* var127
/* : MClassType */;
5280 val
* var128
/* : MClassType */;
5281 val
* var_coltype129
/* var coltype: MClassType */;
5282 val
* var130
/* : nullable Array[Variable] */;
5283 val
* var_variables131
/* var variables: nullable Array[Variable] */;
5284 long var132
/* : Int */;
5285 long var133
/* : Int */;
5286 short int var134
/* : Bool */;
5287 short int var136
/* : Bool */;
5288 short int var137
/* : Bool */;
5289 static val
* varonce138
;
5290 val
* var139
/* : String */;
5291 char* var140
/* : NativeString */;
5292 long var141
/* : Int */;
5293 val
* var142
/* : String */;
5294 long var143
/* : Int */;
5295 val
* var144
/* : nullable Object */;
5296 val
* var145
/* : Array[MType] */;
5297 long var146
/* : Int */;
5298 val
* var147
/* : nullable Object */;
5299 long var148
/* : Int */;
5300 val
* var149
/* : nullable Object */;
5301 val
* var150
/* : Array[MType] */;
5302 long var151
/* : Int */;
5303 val
* var152
/* : nullable Object */;
5304 short int var153
/* : Bool */;
5305 short int var154
/* : Bool */;
5306 short int var155
/* : Bool */;
5307 short int var_156
/* var : Bool */;
5308 short int var157
/* : Bool */;
5309 static val
* varonce158
;
5310 val
* var159
/* : String */;
5311 char* var160
/* : NativeString */;
5312 long var161
/* : Int */;
5313 val
* var162
/* : String */;
5314 short int var163
/* : Bool */;
5315 val
* var164
/* : MType */;
5316 short int var165
/* : Bool */;
5319 const char* var_class_name
;
5320 static val
* varonce166
;
5321 val
* var167
/* : String */;
5322 char* var168
/* : NativeString */;
5323 long var169
/* : Int */;
5324 val
* var170
/* : String */;
5325 short int var171
/* : Bool */;
5326 val
* var172
/* : nullable CallSite */;
5327 val
* var_ikdef
/* var ikdef: nullable CallSite */;
5328 val
* var173
/* : null */;
5329 short int var174
/* : Bool */;
5330 static val
* varonce175
;
5331 val
* var176
/* : String */;
5332 char* var177
/* : NativeString */;
5333 long var178
/* : Int */;
5334 val
* var179
/* : String */;
5335 val
* var180
/* : Array[Object] */;
5336 long var181
/* : Int */;
5337 val
* var182
/* : NativeArray[Object] */;
5338 val
* var183
/* : String */;
5339 val
* var184
/* : MMethod */;
5340 static val
* varonce185
;
5341 val
* var186
/* : String */;
5342 char* var187
/* : NativeString */;
5343 long var188
/* : Int */;
5344 val
* var189
/* : String */;
5345 short int var190
/* : Bool */;
5346 val
* var191
/* : nullable CallSite */;
5347 val
* var_itemdef
/* var itemdef: nullable CallSite */;
5348 val
* var192
/* : null */;
5349 short int var193
/* : Bool */;
5350 static val
* varonce194
;
5351 val
* var195
/* : String */;
5352 char* var196
/* : NativeString */;
5353 long var197
/* : Int */;
5354 val
* var198
/* : String */;
5355 val
* var199
/* : Array[Object] */;
5356 long var200
/* : Int */;
5357 val
* var201
/* : NativeArray[Object] */;
5358 val
* var202
/* : String */;
5359 val
* var203
/* : MMethod */;
5360 static val
* varonce204
;
5361 val
* var205
/* : String */;
5362 char* var206
/* : NativeString */;
5363 long var207
/* : Int */;
5364 val
* var208
/* : String */;
5365 short int var209
/* : Bool */;
5366 val
* var210
/* : nullable CallSite */;
5367 val
* var_nextdef
/* var nextdef: nullable CallSite */;
5368 val
* var211
/* : null */;
5369 short int var212
/* : Bool */;
5370 static val
* varonce213
;
5371 val
* var214
/* : String */;
5372 char* var215
/* : NativeString */;
5373 long var216
/* : Int */;
5374 val
* var217
/* : String */;
5375 val
* var218
/* : Array[Object] */;
5376 long var219
/* : Int */;
5377 val
* var220
/* : NativeArray[Object] */;
5378 val
* var221
/* : String */;
5379 val
* var222
/* : MMethod */;
5380 static val
* varonce223
;
5381 val
* var224
/* : String */;
5382 char* var225
/* : NativeString */;
5383 long var226
/* : Int */;
5384 val
* var227
/* : String */;
5385 short int var228
/* : Bool */;
5386 val
* var229
/* : nullable CallSite */;
5387 val
* var_keydef
/* var keydef: nullable CallSite */;
5388 val
* var230
/* : null */;
5389 short int var231
/* : Bool */;
5390 static val
* varonce232
;
5391 val
* var233
/* : String */;
5392 char* var234
/* : NativeString */;
5393 long var235
/* : Int */;
5394 val
* var236
/* : String */;
5395 val
* var237
/* : Array[Object] */;
5396 long var238
/* : Int */;
5397 val
* var239
/* : NativeArray[Object] */;
5398 val
* var240
/* : String */;
5399 val
* var241
/* : MMethod */;
5407 var3
= string__NativeString__to_s_with_length(var1
, var2
);
5411 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
5414 if (var_objcla
== NULL
) {
5415 var6
= 1; /* is null */
5417 var6
= 0; /* arg is null but recv is not */
5423 var7
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
5424 var_unsafe_type
= var7
;
5430 var12
= string__NativeString__to_s_with_length(var10
, var11
);
5434 var13
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mproperty_by_name2
]))(var_v
, self
, var_unsafe_type
, var9
) /* try_get_mproperty_by_name2 on <var_v:TypeVisitor>*/;
5436 if (var13
== NULL
) {
5437 var15
= 1; /* is null */
5439 var15
= 0; /* arg is null but recv is not */
5447 var20
= string__NativeString__to_s_with_length(var18
, var19
);
5451 var21
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mproperty_by_name2
]))(var_v
, self
, var_unsafe_type
, var17
) /* try_get_mproperty_by_name2 on <var_v:TypeVisitor>*/;
5453 if (var21
== NULL
) {
5454 var23
= 1; /* is null */
5456 var23
= 0; /* arg is null but recv is not */
5462 var26
= "Type Error: Expected method \'iterator\' in type ";
5464 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5468 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
5469 { /* var29 = array_instance Array[Object] */
5471 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
5472 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var25
;
5473 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_mtype
;
5474 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
5476 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
5477 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var32
) /* error on <var_v:TypeVisitor>*/;
5479 var33
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
5483 var36
= "NOT YET IMPLEMENTED: Do \'for\' on ";
5485 var38
= string__NativeString__to_s_with_length(var36
, var37
);
5489 var39
= NEW_array__Array(&type_array__Arraykernel__Object
);
5490 { /* var39 = array_instance Array[Object] */
5492 var41
= NEW_array__NativeArray(var40
, &type_array__NativeArraykernel__Object
);
5493 ((struct instance_array__NativeArray
*)var41
)->values
[0] = (val
*) var35
;
5494 ((struct instance_array__NativeArray
*)var41
)->values
[1] = (val
*) var_mtype
;
5495 ((void (*)(val
*, val
*, long))(var39
->class->vft
[COLOR_array__Array__with_native
]))(var39
, var41
, var40
) /* with_native on <var39:Array[Object]>*/;
5497 var42
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_string__Object__to_s
]))(var39
) /* to_s on <var39:Array[Object]>*/;
5498 ((void (*)(val
*, val
*, val
*))(var33
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var33
, self
, var42
) /* error on <var33:ModelBuilder>*/;
5508 var47
= string__NativeString__to_s_with_length(var45
, var46
);
5513 var49
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_mtype
, var44
, var48
) /* get_method on <var_v:TypeVisitor>*/;
5516 if (var_itdef
== NULL
) {
5517 var51
= 1; /* is null */
5519 var51
= 0; /* arg is null but recv is not */
5525 var54
= "Type Error: Expected method \'iterator\' in type ";
5527 var56
= string__NativeString__to_s_with_length(var54
, var55
);
5531 var57
= NEW_array__Array(&type_array__Arraykernel__Object
);
5532 { /* var57 = array_instance Array[Object] */
5534 var59
= NEW_array__NativeArray(var58
, &type_array__NativeArraykernel__Object
);
5535 ((struct instance_array__NativeArray
*)var59
)->values
[0] = (val
*) var53
;
5536 ((struct instance_array__NativeArray
*)var59
)->values
[1] = (val
*) var_mtype
;
5537 ((void (*)(val
*, val
*, long))(var57
->class->vft
[COLOR_array__Array__with_native
]))(var57
, var59
, var58
) /* with_native on <var57:Array[Object]>*/;
5539 var60
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_string__Object__to_s
]))(var57
) /* to_s on <var57:Array[Object]>*/;
5540 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var60
) /* error on <var_v:TypeVisitor>*/;
5544 var61
= ((val
* (*)(val
*))(var_itdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_itdef
) /* mproperty on <var_itdef:nullable CallSite(CallSite)>*/;
5545 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_iterator_61d
]))(self
, var61
) /* method_iterator= on <self:AForExpr>*/;
5546 var62
= ((val
* (*)(val
*))(var_itdef
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_itdef
) /* msignature on <var_itdef:nullable CallSite(CallSite)>*/;
5547 var63
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var62
) /* return_mtype on <var62:MSignature>*/;
5550 if (var_ittype
== NULL
) {
5551 var65
= 1; /* is null */
5553 var65
= 0; /* arg is null but recv is not */
5559 var68
= "Type Error: Expected method \'iterator\' to return an Iterator or MapIterator type";
5561 var70
= string__NativeString__to_s_with_length(var68
, var69
);
5565 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var67
) /* error on <var_v:TypeVisitor>*/;
5574 var75
= string__NativeString__to_s_with_length(var73
, var74
);
5578 var76
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mclass
]))(var_v
, self
, var72
) /* try_get_mclass on <var_v:TypeVisitor>*/;
5579 var_colit_cla
= var76
;
5583 var79
= "MapIterator";
5585 var81
= string__NativeString__to_s_with_length(var79
, var80
);
5589 var82
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mclass
]))(var_v
, self
, var78
) /* try_get_mclass on <var_v:TypeVisitor>*/;
5590 var_mapit_cla
= var82
;
5596 if (var_colit_cla
== NULL
) {
5597 var87
= 0; /* is null */
5599 var87
= 1; /* arg is null and recv is not */
5603 var88
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5604 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MType__as_nullable
]))(var88
) /* as_nullable on <var88:MClassType>*/;
5605 var90
= NEW_array__Array(&type_array__Arraymodel__MType
);
5606 { /* var90 = array_instance Array[MType] */
5608 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArraymodel__MType
);
5609 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var89
;
5610 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[MType]>*/;
5612 var93
= ((val
* (*)(val
*, val
*))(var_colit_cla
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_colit_cla
, var90
) /* get_mtype on <var_colit_cla:nullable MClass(MClass)>*/;
5613 var94
= ((short int (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(var_v
, var_ittype
, var93
) /* is_subtype on <var_v:TypeVisitor>*/;
5619 var95
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
5620 var96
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor
]))(var_v
) /* anchor on <var_v:TypeVisitor>*/;
5621 var97
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_ittype
->class->vft
[COLOR_model__MType__supertype_to
]))(var_ittype
, var95
, var96
, var_colit_cla
) /* supertype_to on <var_ittype:nullable MType(MType)>*/;
5622 var_coltype
= var97
;
5623 var98
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
5624 var_variables
= var98
;
5625 if (var_variables
== NULL
) {
5626 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5627 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 868);
5630 var99
= ((long (*)(val
*))(var_variables
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_variables
) /* length on <var_variables:nullable Array[Variable]>*/;
5633 { /* Inline kernel#Int#!= (var99,var100) */
5634 var103
= var99
== var100
;
5638 RET_LABEL102
:(void)0;
5642 var106
= varonce105
;
5644 var107
= "Type Error: Expected one variable";
5646 var109
= string__NativeString__to_s_with_length(var107
, var108
);
5648 varonce105
= var106
;
5650 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var106
) /* error on <var_v:TypeVisitor>*/;
5652 if (var_variables
== NULL
) {
5653 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5654 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 871);
5657 var110
= ((val
* (*)(val
*))(var_variables
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_variables
) /* first on <var_variables:nullable Array[Variable]>*/;
5659 var111
= ((val
* (*)(val
*))(var_coltype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype
) /* arguments on <var_coltype:MClassType>*/;
5660 var112
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var111
) /* first on <var111:Array[MType]>*/;
5661 ((void (*)(val
*, val
*))(var110
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var110
, var112
) /* declared_type= on <var110:nullable Object(Variable)>*/;
5664 var_is_col
= var113
;
5668 if (var_mapit_cla
== NULL
) {
5669 var116
= 0; /* is null */
5671 var116
= 1; /* arg is null and recv is not */
5675 var118
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5676 var119
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5677 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_model__MType__as_nullable
]))(var119
) /* as_nullable on <var119:MClassType>*/;
5678 var121
= NEW_array__Array(&type_array__Arraymodel__MType
);
5679 { /* var121 = array_instance Array[MType] */
5681 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraymodel__MType
);
5682 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var118
;
5683 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var120
;
5684 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[MType]>*/;
5686 var124
= ((val
* (*)(val
*, val
*))(var_mapit_cla
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mapit_cla
, var121
) /* get_mtype on <var_mapit_cla:nullable MClass(MClass)>*/;
5687 var125
= ((short int (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(var_v
, var_ittype
, var124
) /* is_subtype on <var_v:TypeVisitor>*/;
5693 var126
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
5694 var127
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor
]))(var_v
) /* anchor on <var_v:TypeVisitor>*/;
5695 var128
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_ittype
->class->vft
[COLOR_model__MType__supertype_to
]))(var_ittype
, var126
, var127
, var_mapit_cla
) /* supertype_to on <var_ittype:nullable MType(MType)>*/;
5696 var_coltype129
= var128
;
5697 var130
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
5698 var_variables131
= var130
;
5699 if (var_variables131
== NULL
) {
5700 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5701 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 880);
5704 var132
= ((long (*)(val
*))(var_variables131
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_variables131
) /* length on <var_variables131:nullable Array[Variable]>*/;
5707 { /* Inline kernel#Int#!= (var132,var133) */
5708 var136
= var132
== var133
;
5712 RET_LABEL135
:(void)0;
5716 var139
= varonce138
;
5718 var140
= "Type Error: Expected two variables";
5720 var142
= string__NativeString__to_s_with_length(var140
, var141
);
5722 varonce138
= var139
;
5724 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var139
) /* error on <var_v:TypeVisitor>*/;
5727 if (var_variables131
== NULL
) {
5728 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5729 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 883);
5732 var144
= ((val
* (*)(val
*, long))(var_variables131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_variables131
, var143
) /* [] on <var_variables131:nullable Array[Variable]>*/;
5734 var145
= ((val
* (*)(val
*))(var_coltype129
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype129
) /* arguments on <var_coltype129:MClassType>*/;
5736 var147
= ((val
* (*)(val
*, long))(var145
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var145
, var146
) /* [] on <var145:Array[MType]>*/;
5737 ((void (*)(val
*, val
*))(var144
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var144
, var147
) /* declared_type= on <var144:nullable Object(Variable)>*/;
5739 if (var_variables131
== NULL
) {
5740 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5741 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 884);
5744 var149
= ((val
* (*)(val
*, long))(var_variables131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_variables131
, var148
) /* [] on <var_variables131:nullable Array[Variable]>*/;
5746 var150
= ((val
* (*)(val
*))(var_coltype129
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype129
) /* arguments on <var_coltype129:MClassType>*/;
5748 var152
= ((val
* (*)(val
*, long))(var150
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var150
, var151
) /* [] on <var150:Array[MType]>*/;
5749 ((void (*)(val
*, val
*))(var149
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var149
, var152
) /* declared_type= on <var149:nullable Object(Variable)>*/;
5752 var_is_map
= var153
;
5755 var155
= !var_is_col
;
5758 var157
= !var_is_map
;
5765 var159
= varonce158
;
5767 var160
= "Type Error: Expected method \'iterator\' to return an Iterator of MapIterator type";
5769 var162
= string__NativeString__to_s_with_length(var160
, var161
);
5771 varonce158
= var159
;
5773 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var159
) /* error on <var_v:TypeVisitor>*/;
5777 var163
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5779 var164
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
5783 /* <var_mtype:MType> isa MClassType */
5784 cltype
= type_model__MClassType
.color
;
5785 idtype
= type_model__MClassType
.id
;
5786 if(cltype
>= var_mtype
->type
->table_size
) {
5789 var165
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5792 var_class_name
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
5793 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5794 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 897);
5797 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__coltype_61d
]))(self
, var_mtype
) /* coltype= on <self:AForExpr>*/;
5799 var167
= varonce166
;
5803 var170
= string__NativeString__to_s_with_length(var168
, var169
);
5805 varonce166
= var167
;
5808 var172
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_ittype
, var167
, var171
) /* get_method on <var_v:TypeVisitor>*/;
5811 if (var_ikdef
== NULL
) {
5812 var174
= 1; /* is null */
5814 var174
= 0; /* arg is null but recv is not */
5818 var176
= varonce175
;
5820 var177
= "Type Error: Expected method \'is_ok\' in Iterator type ";
5822 var179
= string__NativeString__to_s_with_length(var177
, var178
);
5824 varonce175
= var176
;
5826 var180
= NEW_array__Array(&type_array__Arraykernel__Object
);
5827 { /* var180 = array_instance Array[Object] */
5829 var182
= NEW_array__NativeArray(var181
, &type_array__NativeArraykernel__Object
);
5830 ((struct instance_array__NativeArray
*)var182
)->values
[0] = (val
*) var176
;
5831 ((struct instance_array__NativeArray
*)var182
)->values
[1] = (val
*) var_ittype
;
5832 ((void (*)(val
*, val
*, long))(var180
->class->vft
[COLOR_array__Array__with_native
]))(var180
, var182
, var181
) /* with_native on <var180:Array[Object]>*/;
5834 var183
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_string__Object__to_s
]))(var180
) /* to_s on <var180:Array[Object]>*/;
5835 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var183
) /* error on <var_v:TypeVisitor>*/;
5839 var184
= ((val
* (*)(val
*))(var_ikdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_ikdef
) /* mproperty on <var_ikdef:nullable CallSite(CallSite)>*/;
5840 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_is_ok_61d
]))(self
, var184
) /* method_is_ok= on <self:AForExpr>*/;
5842 var186
= varonce185
;
5846 var189
= string__NativeString__to_s_with_length(var187
, var188
);
5848 varonce185
= var186
;
5851 var191
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_ittype
, var186
, var190
) /* get_method on <var_v:TypeVisitor>*/;
5852 var_itemdef
= var191
;
5854 if (var_itemdef
== NULL
) {
5855 var193
= 1; /* is null */
5857 var193
= 0; /* arg is null but recv is not */
5861 var195
= varonce194
;
5863 var196
= "Type Error: Expected method \'item\' in Iterator type ";
5865 var198
= string__NativeString__to_s_with_length(var196
, var197
);
5867 varonce194
= var195
;
5869 var199
= NEW_array__Array(&type_array__Arraykernel__Object
);
5870 { /* var199 = array_instance Array[Object] */
5872 var201
= NEW_array__NativeArray(var200
, &type_array__NativeArraykernel__Object
);
5873 ((struct instance_array__NativeArray
*)var201
)->values
[0] = (val
*) var195
;
5874 ((struct instance_array__NativeArray
*)var201
)->values
[1] = (val
*) var_ittype
;
5875 ((void (*)(val
*, val
*, long))(var199
->class->vft
[COLOR_array__Array__with_native
]))(var199
, var201
, var200
) /* with_native on <var199:Array[Object]>*/;
5877 var202
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_string__Object__to_s
]))(var199
) /* to_s on <var199:Array[Object]>*/;
5878 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var202
) /* error on <var_v:TypeVisitor>*/;
5882 var203
= ((val
* (*)(val
*))(var_itemdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_itemdef
) /* mproperty on <var_itemdef:nullable CallSite(CallSite)>*/;
5883 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_item_61d
]))(self
, var203
) /* method_item= on <self:AForExpr>*/;
5885 var205
= varonce204
;
5889 var208
= string__NativeString__to_s_with_length(var206
, var207
);
5891 varonce204
= var205
;
5894 var210
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_ittype
, var205
, var209
) /* get_method on <var_v:TypeVisitor>*/;
5895 var_nextdef
= var210
;
5897 if (var_nextdef
== NULL
) {
5898 var212
= 1; /* is null */
5900 var212
= 0; /* arg is null but recv is not */
5904 var214
= varonce213
;
5906 var215
= "Type Error: Expected method \'next\' in Iterator type ";
5908 var217
= string__NativeString__to_s_with_length(var215
, var216
);
5910 varonce213
= var214
;
5912 var218
= NEW_array__Array(&type_array__Arraykernel__Object
);
5913 { /* var218 = array_instance Array[Object] */
5915 var220
= NEW_array__NativeArray(var219
, &type_array__NativeArraykernel__Object
);
5916 ((struct instance_array__NativeArray
*)var220
)->values
[0] = (val
*) var214
;
5917 ((struct instance_array__NativeArray
*)var220
)->values
[1] = (val
*) var_ittype
;
5918 ((void (*)(val
*, val
*, long))(var218
->class->vft
[COLOR_array__Array__with_native
]))(var218
, var220
, var219
) /* with_native on <var218:Array[Object]>*/;
5920 var221
= ((val
* (*)(val
*))(var218
->class->vft
[COLOR_string__Object__to_s
]))(var218
) /* to_s on <var218:Array[Object]>*/;
5921 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var221
) /* error on <var_v:TypeVisitor>*/;
5925 var222
= ((val
* (*)(val
*))(var_nextdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_nextdef
) /* mproperty on <var_nextdef:nullable CallSite(CallSite)>*/;
5926 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_next_61d
]))(self
, var222
) /* method_next= on <self:AForExpr>*/;
5929 var224
= varonce223
;
5933 var227
= string__NativeString__to_s_with_length(var225
, var226
);
5935 varonce223
= var224
;
5938 var229
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_ittype
, var224
, var228
) /* get_method on <var_v:TypeVisitor>*/;
5939 var_keydef
= var229
;
5941 if (var_keydef
== NULL
) {
5942 var231
= 1; /* is null */
5944 var231
= 0; /* arg is null but recv is not */
5948 var233
= varonce232
;
5950 var234
= "Type Error: Expected method \'key\' in Iterator type ";
5952 var236
= string__NativeString__to_s_with_length(var234
, var235
);
5954 varonce232
= var233
;
5956 var237
= NEW_array__Array(&type_array__Arraykernel__Object
);
5957 { /* var237 = array_instance Array[Object] */
5959 var239
= NEW_array__NativeArray(var238
, &type_array__NativeArraykernel__Object
);
5960 ((struct instance_array__NativeArray
*)var239
)->values
[0] = (val
*) var233
;
5961 ((struct instance_array__NativeArray
*)var239
)->values
[1] = (val
*) var_ittype
;
5962 ((void (*)(val
*, val
*, long))(var237
->class->vft
[COLOR_array__Array__with_native
]))(var237
, var239
, var238
) /* with_native on <var237:Array[Object]>*/;
5964 var240
= ((val
* (*)(val
*))(var237
->class->vft
[COLOR_string__Object__to_s
]))(var237
) /* to_s on <var237:Array[Object]>*/;
5965 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var240
) /* error on <var_v:TypeVisitor>*/;
5969 var241
= ((val
* (*)(val
*))(var_keydef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_keydef
) /* mproperty on <var_keydef:nullable CallSite(CallSite)>*/;
5970 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_key_61d
]))(self
, var241
) /* method_key= on <self:AForExpr>*/;
5975 /* method typing#AForExpr#do_type_iterator for (self: Object, TypeVisitor, MType) */
5976 void VIRTUAL_typing__AForExpr__do_type_iterator(val
* self
, val
* p0
, val
* p1
) {
5977 typing__AForExpr__do_type_iterator(self
, p0
, p1
);
5980 /* method typing#AForExpr#accept_typing for (self: AForExpr, TypeVisitor) */
5981 void typing__AForExpr__accept_typing(val
* self
, val
* p0
) {
5982 val
* var_v
/* var v: TypeVisitor */;
5983 val
* var
/* : AExpr */;
5984 val
* var1
/* : nullable MType */;
5985 val
* var_mtype
/* var mtype: nullable MType */;
5986 val
* var2
/* : null */;
5987 short int var3
/* : Bool */;
5988 val
* var4
/* : nullable AExpr */;
5989 short int var5
/* : Bool */;
5991 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_expr
]))(self
) /* n_expr on <self:AForExpr>*/;
5992 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
5995 if (var_mtype
== NULL
) {
5996 var3
= 1; /* is null */
5998 var3
= 0; /* arg is null but recv is not */
6004 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__do_type_iterator
]))(self
, var_v
, var_mtype
) /* do_type_iterator on <self:AForExpr>*/;
6005 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_block
]))(self
) /* n_block on <self:AForExpr>*/;
6006 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var4
) /* visit_stmt on <var_v:TypeVisitor>*/;
6008 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var5
) /* is_typed= on <self:AForExpr>*/;
6011 /* method typing#AForExpr#accept_typing for (self: Object, TypeVisitor) */
6012 void VIRTUAL_typing__AForExpr__accept_typing(val
* self
, val
* p0
) {
6013 typing__AForExpr__accept_typing(self
, p0
);
6016 /* method typing#AAssertExpr#accept_typing for (self: AAssertExpr, TypeVisitor) */
6017 void typing__AAssertExpr__accept_typing(val
* self
, val
* p0
) {
6018 val
* var_v
/* var v: TypeVisitor */;
6019 val
* var
/* : AExpr */;
6020 val
* var1
/* : nullable MType */;
6021 val
* var2
/* : nullable AExpr */;
6022 short int var3
/* : Bool */;
6024 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_expr
]))(self
) /* n_expr on <self:AAssertExpr>*/;
6025 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6027 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_else
]))(self
) /* n_else on <self:AAssertExpr>*/;
6028 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
6030 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AAssertExpr>*/;
6033 /* method typing#AAssertExpr#accept_typing for (self: Object, TypeVisitor) */
6034 void VIRTUAL_typing__AAssertExpr__accept_typing(val
* self
, val
* p0
) {
6035 typing__AAssertExpr__accept_typing(self
, p0
);
6038 /* method typing#AOrExpr#accept_typing for (self: AOrExpr, TypeVisitor) */
6039 void typing__AOrExpr__accept_typing(val
* self
, val
* p0
) {
6040 val
* var_v
/* var v: TypeVisitor */;
6041 val
* var
/* : AExpr */;
6042 val
* var1
/* : nullable MType */;
6043 val
* var2
/* : AExpr */;
6044 val
* var3
/* : nullable MType */;
6045 val
* var4
/* : nullable MType */;
6047 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr
]))(self
) /* n_expr on <self:AOrExpr>*/;
6048 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6050 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrExpr>*/;
6051 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6053 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6054 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AOrExpr>*/;
6057 /* method typing#AOrExpr#accept_typing for (self: Object, TypeVisitor) */
6058 void VIRTUAL_typing__AOrExpr__accept_typing(val
* self
, val
* p0
) {
6059 typing__AOrExpr__accept_typing(self
, p0
);
6062 /* method typing#AImpliesExpr#accept_typing for (self: AImpliesExpr, TypeVisitor) */
6063 void typing__AImpliesExpr__accept_typing(val
* self
, val
* p0
) {
6064 val
* var_v
/* var v: TypeVisitor */;
6065 val
* var
/* : AExpr */;
6066 val
* var1
/* : nullable MType */;
6067 val
* var2
/* : AExpr */;
6068 val
* var3
/* : nullable MType */;
6069 val
* var4
/* : nullable MType */;
6071 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr
]))(self
) /* n_expr on <self:AImpliesExpr>*/;
6072 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6074 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr2
]))(self
) /* n_expr2 on <self:AImpliesExpr>*/;
6075 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6077 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6078 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AImpliesExpr>*/;
6081 /* method typing#AImpliesExpr#accept_typing for (self: Object, TypeVisitor) */
6082 void VIRTUAL_typing__AImpliesExpr__accept_typing(val
* self
, val
* p0
) {
6083 typing__AImpliesExpr__accept_typing(self
, p0
);
6086 /* method typing#AAndExpr#accept_typing for (self: AAndExpr, TypeVisitor) */
6087 void typing__AAndExpr__accept_typing(val
* self
, val
* p0
) {
6088 val
* var_v
/* var v: TypeVisitor */;
6089 val
* var
/* : AExpr */;
6090 val
* var1
/* : nullable MType */;
6091 val
* var2
/* : AExpr */;
6092 val
* var3
/* : nullable MType */;
6093 val
* var4
/* : nullable MType */;
6095 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr
]))(self
) /* n_expr on <self:AAndExpr>*/;
6096 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6098 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr2
]))(self
) /* n_expr2 on <self:AAndExpr>*/;
6099 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6101 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6102 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AAndExpr>*/;
6105 /* method typing#AAndExpr#accept_typing for (self: Object, TypeVisitor) */
6106 void VIRTUAL_typing__AAndExpr__accept_typing(val
* self
, val
* p0
) {
6107 typing__AAndExpr__accept_typing(self
, p0
);
6110 /* method typing#ANotExpr#accept_typing for (self: ANotExpr, TypeVisitor) */
6111 void typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
6112 val
* var_v
/* var v: TypeVisitor */;
6113 val
* var
/* : AExpr */;
6114 val
* var1
/* : nullable MType */;
6115 val
* var2
/* : nullable MType */;
6117 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANotExpr__n_expr
]))(self
) /* n_expr on <self:ANotExpr>*/;
6118 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6120 var2
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6121 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:ANotExpr>*/;
6124 /* method typing#ANotExpr#accept_typing for (self: Object, TypeVisitor) */
6125 void VIRTUAL_typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
6126 typing__ANotExpr__accept_typing(self
, p0
);
6129 /* method typing#AOrElseExpr#accept_typing for (self: AOrElseExpr, TypeVisitor) */
6130 void typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
6131 val
* var_v
/* var v: TypeVisitor */;
6132 val
* var
/* : AExpr */;
6133 val
* var1
/* : nullable MType */;
6134 val
* var_t1
/* var t1: nullable MType */;
6135 val
* var2
/* : AExpr */;
6136 val
* var3
/* : nullable MType */;
6137 val
* var_t2
/* var t2: nullable MType */;
6138 short int var4
/* : Bool */;
6139 val
* var5
/* : null */;
6140 short int var6
/* : Bool */;
6141 short int var_
/* var : Bool */;
6142 val
* var7
/* : null */;
6143 short int var8
/* : Bool */;
6144 short int var9
/* : Bool */;
6147 val
* var10
/* : MType */;
6148 val
* var11
/* : Array[MType] */;
6149 long var12
/* : Int */;
6150 val
* var13
/* : NativeArray[MType] */;
6151 val
* var14
/* : nullable MType */;
6152 val
* var_t
/* var t: nullable MType */;
6153 val
* var15
/* : null */;
6154 short int var16
/* : Bool */;
6155 val
* var17
/* : MModule */;
6156 val
* var18
/* : MClassType */;
6157 short int var19
/* : Bool */;
6160 val
* var22
/* : MType */;
6162 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrElseExpr__n_expr
]))(self
) /* n_expr on <self:AOrElseExpr>*/;
6163 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
6165 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrElseExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrElseExpr>*/;
6166 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var2
) /* visit_expr on <var_v:TypeVisitor>*/;
6169 if (var_t1
== NULL
) {
6170 var6
= 1; /* is null */
6172 var6
= 0; /* arg is null but recv is not */
6179 if (var_t2
== NULL
) {
6180 var8
= 1; /* is null */
6182 var8
= 0; /* arg is null but recv is not */
6190 /* <var_t1:nullable MType(MType)> isa MNullableType */
6191 cltype
= type_model__MNullableType
.color
;
6192 idtype
= type_model__MNullableType
.id
;
6193 if(cltype
>= var_t1
->type
->table_size
) {
6196 var9
= var_t1
->type
->type_table
[cltype
] == idtype
;
6199 var10
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_t1
) /* mtype on <var_t1:nullable MType(MNullableType)>*/;
6203 var11
= NEW_array__Array(&type_array__Arraymodel__MType
);
6204 { /* var11 = array_instance Array[MType] */
6206 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraymodel__MType
);
6207 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_t1
;
6208 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_t2
;
6209 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[MType]>*/;
6211 var14
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(var_v
, self
, var11
) /* merge_types on <var_v:TypeVisitor>*/;
6214 if (var_t
== NULL
) {
6215 var16
= 1; /* is null */
6217 var16
= 0; /* arg is null but recv is not */
6220 var17
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
6221 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MModule__object_type
]))(var17
) /* object_type on <var17:MModule>*/;
6223 /* <var_t2:nullable MType(MType)> isa MNullableType */
6224 cltype20
= type_model__MNullableType
.color
;
6225 idtype21
= type_model__MNullableType
.id
;
6226 if(cltype20
>= var_t2
->type
->table_size
) {
6229 var19
= var_t2
->type
->type_table
[cltype20
] == idtype21
;
6232 var22
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t
) /* as_nullable on <var_t:nullable MType(MClassType)>*/;
6238 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_t
) /* mtype= on <self:AOrElseExpr>*/;
6241 /* method typing#AOrElseExpr#accept_typing for (self: Object, TypeVisitor) */
6242 void VIRTUAL_typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
6243 typing__AOrElseExpr__accept_typing(self
, p0
);
6246 /* method typing#ATrueExpr#accept_typing for (self: ATrueExpr, TypeVisitor) */
6247 void typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
6248 val
* var_v
/* var v: TypeVisitor */;
6249 val
* var
/* : nullable MType */;
6251 var
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6252 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:ATrueExpr>*/;
6255 /* method typing#ATrueExpr#accept_typing for (self: Object, TypeVisitor) */
6256 void VIRTUAL_typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
6257 typing__ATrueExpr__accept_typing(self
, p0
);
6260 /* method typing#AFalseExpr#accept_typing for (self: AFalseExpr, TypeVisitor) */
6261 void typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
6262 val
* var_v
/* var v: TypeVisitor */;
6263 val
* var
/* : nullable MType */;
6265 var
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6266 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:AFalseExpr>*/;
6269 /* method typing#AFalseExpr#accept_typing for (self: Object, TypeVisitor) */
6270 void VIRTUAL_typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
6271 typing__AFalseExpr__accept_typing(self
, p0
);
6274 /* method typing#AIntExpr#accept_typing for (self: AIntExpr, TypeVisitor) */
6275 void typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
6276 val
* var_v
/* var v: TypeVisitor */;
6277 static val
* varonce
;
6278 val
* var
/* : String */;
6279 char* var1
/* : NativeString */;
6280 long var2
/* : Int */;
6281 val
* var3
/* : String */;
6282 val
* var4
/* : nullable MClass */;
6283 val
* var_mclass
/* var mclass: nullable MClass */;
6284 val
* var5
/* : null */;
6285 short int var6
/* : Bool */;
6286 val
* var7
/* : MClassType */;
6293 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6297 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6300 if (var_mclass
== NULL
) {
6301 var6
= 1; /* is null */
6303 var6
= 0; /* arg is null but recv is not */
6309 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6310 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AIntExpr>*/;
6313 /* method typing#AIntExpr#accept_typing for (self: Object, TypeVisitor) */
6314 void VIRTUAL_typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
6315 typing__AIntExpr__accept_typing(self
, p0
);
6318 /* method typing#AFloatExpr#accept_typing for (self: AFloatExpr, TypeVisitor) */
6319 void typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
6320 val
* var_v
/* var v: TypeVisitor */;
6321 static val
* varonce
;
6322 val
* var
/* : String */;
6323 char* var1
/* : NativeString */;
6324 long var2
/* : Int */;
6325 val
* var3
/* : String */;
6326 val
* var4
/* : nullable MClass */;
6327 val
* var_mclass
/* var mclass: nullable MClass */;
6328 val
* var5
/* : null */;
6329 short int var6
/* : Bool */;
6330 val
* var7
/* : MClassType */;
6337 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6341 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6344 if (var_mclass
== NULL
) {
6345 var6
= 1; /* is null */
6347 var6
= 0; /* arg is null but recv is not */
6353 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6354 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AFloatExpr>*/;
6357 /* method typing#AFloatExpr#accept_typing for (self: Object, TypeVisitor) */
6358 void VIRTUAL_typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
6359 typing__AFloatExpr__accept_typing(self
, p0
);
6362 /* method typing#ACharExpr#accept_typing for (self: ACharExpr, TypeVisitor) */
6363 void typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
6364 val
* var_v
/* var v: TypeVisitor */;
6365 static val
* varonce
;
6366 val
* var
/* : String */;
6367 char* var1
/* : NativeString */;
6368 long var2
/* : Int */;
6369 val
* var3
/* : String */;
6370 val
* var4
/* : nullable MClass */;
6371 val
* var_mclass
/* var mclass: nullable MClass */;
6372 val
* var5
/* : null */;
6373 short int var6
/* : Bool */;
6374 val
* var7
/* : MClassType */;
6381 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6385 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6388 if (var_mclass
== NULL
) {
6389 var6
= 1; /* is null */
6391 var6
= 0; /* arg is null but recv is not */
6397 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6398 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:ACharExpr>*/;
6401 /* method typing#ACharExpr#accept_typing for (self: Object, TypeVisitor) */
6402 void VIRTUAL_typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
6403 typing__ACharExpr__accept_typing(self
, p0
);
6406 /* method typing#AStringFormExpr#accept_typing for (self: AStringFormExpr, TypeVisitor) */
6407 void typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
6408 val
* var_v
/* var v: TypeVisitor */;
6409 static val
* varonce
;
6410 val
* var
/* : String */;
6411 char* var1
/* : NativeString */;
6412 long var2
/* : Int */;
6413 val
* var3
/* : String */;
6414 val
* var4
/* : nullable MClass */;
6415 val
* var_mclass
/* var mclass: nullable MClass */;
6416 val
* var5
/* : null */;
6417 short int var6
/* : Bool */;
6418 val
* var7
/* : MClassType */;
6425 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6429 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6432 if (var_mclass
== NULL
) {
6433 var6
= 1; /* is null */
6435 var6
= 0; /* arg is null but recv is not */
6441 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6442 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AStringFormExpr>*/;
6445 /* method typing#AStringFormExpr#accept_typing for (self: Object, TypeVisitor) */
6446 void VIRTUAL_typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
6447 typing__AStringFormExpr__accept_typing(self
, p0
);
6450 /* method typing#ASuperstringExpr#accept_typing for (self: ASuperstringExpr, TypeVisitor) */
6451 void typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
6452 val
* var_v
/* var v: TypeVisitor */;
6453 static val
* varonce
;
6454 val
* var
/* : String */;
6455 char* var1
/* : NativeString */;
6456 long var2
/* : Int */;
6457 val
* var3
/* : String */;
6458 val
* var4
/* : nullable MClass */;
6459 val
* var_mclass
/* var mclass: nullable MClass */;
6460 val
* var5
/* : null */;
6461 short int var6
/* : Bool */;
6462 val
* var7
/* : MClassType */;
6463 val
* var8
/* : ANodes[AExpr] */;
6464 val
* var9
/* : Iterator[nullable Object] */;
6465 short int var10
/* : Bool */;
6466 val
* var11
/* : nullable Object */;
6467 val
* var_nexpr
/* var nexpr: AExpr */;
6468 val
* var12
/* : nullable MType */;
6469 val
* var_t
/* var t: nullable MType */;
6476 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6480 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6483 if (var_mclass
== NULL
) {
6484 var6
= 1; /* is null */
6486 var6
= 0; /* arg is null but recv is not */
6492 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6493 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:ASuperstringExpr>*/;
6494 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperstringExpr__n_exprs
]))(self
) /* n_exprs on <self:ASuperstringExpr>*/;
6495 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:ANodes[AExpr]>*/;
6497 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
6499 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
6501 var12
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
6503 CONTINUE_label
: (void)0;
6504 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
6506 BREAK_label
: (void)0;
6509 /* method typing#ASuperstringExpr#accept_typing for (self: Object, TypeVisitor) */
6510 void VIRTUAL_typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
6511 typing__ASuperstringExpr__accept_typing(self
, p0
);
6514 /* method typing#AArrayExpr#accept_typing for (self: AArrayExpr, TypeVisitor) */
6515 void typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
6516 val
* var_v
/* var v: TypeVisitor */;
6517 val
* var
/* : Array[nullable MType] */;
6518 val
* var_mtypes
/* var mtypes: Array[nullable MType] */;
6519 val
* var1
/* : AExprs */;
6520 val
* var2
/* : ANodes[AExpr] */;
6521 val
* var3
/* : Iterator[nullable Object] */;
6522 short int var4
/* : Bool */;
6523 val
* var5
/* : nullable Object */;
6524 val
* var_e
/* var e: AExpr */;
6525 val
* var6
/* : nullable MType */;
6526 val
* var_t
/* var t: nullable MType */;
6527 val
* var7
/* : null */;
6528 short int var8
/* : Bool */;
6529 val
* var9
/* : nullable MType */;
6530 val
* var_mtype
/* var mtype: nullable MType */;
6531 val
* var10
/* : null */;
6532 short int var11
/* : Bool */;
6533 static val
* varonce
;
6534 val
* var12
/* : String */;
6535 char* var13
/* : NativeString */;
6536 long var14
/* : Int */;
6537 val
* var15
/* : String */;
6538 static val
* varonce16
;
6539 val
* var17
/* : String */;
6540 char* var18
/* : NativeString */;
6541 long var19
/* : Int */;
6542 val
* var20
/* : String */;
6543 val
* var21
/* : String */;
6544 val
* var22
/* : Array[Object] */;
6545 long var23
/* : Int */;
6546 val
* var24
/* : NativeArray[Object] */;
6547 val
* var25
/* : String */;
6548 static val
* varonce26
;
6549 val
* var27
/* : String */;
6550 char* var28
/* : NativeString */;
6551 long var29
/* : Int */;
6552 val
* var30
/* : String */;
6553 val
* var31
/* : nullable MClass */;
6554 val
* var_mclass
/* var mclass: nullable MClass */;
6555 val
* var32
/* : null */;
6556 short int var33
/* : Bool */;
6557 val
* var34
/* : Array[MType] */;
6558 long var35
/* : Int */;
6559 val
* var36
/* : NativeArray[MType] */;
6560 val
* var37
/* : MClassType */;
6562 var
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
6563 ((void (*)(val
*))(var
->class->vft
[COLOR_array__Array__init
]))(var
) /* init on <var:Array[nullable MType]>*/;
6565 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AArrayExpr__n_exprs
]))(self
) /* n_exprs on <self:AArrayExpr>*/;
6566 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(var1
) /* n_exprs on <var1:AExprs>*/;
6567 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:ANodes[AExpr]>*/;
6569 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
6571 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
6573 var6
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_e
) /* visit_expr on <var_v:TypeVisitor>*/;
6576 if (var_t
== NULL
) {
6577 var8
= 1; /* is null */
6579 var8
= 0; /* arg is null but recv is not */
6585 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mtypes
, var_t
) /* add on <var_mtypes:Array[nullable MType]>*/;
6586 CONTINUE_label
: (void)0;
6587 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
6589 BREAK_label
: (void)0;
6590 var9
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(var_v
, self
, var_mtypes
) /* merge_types on <var_v:TypeVisitor>*/;
6593 if (var_mtype
== NULL
) {
6594 var11
= 1; /* is null */
6596 var11
= 0; /* arg is null but recv is not */
6602 var13
= "Type Error: ambiguous array type ";
6604 var15
= string__NativeString__to_s_with_length(var13
, var14
);
6613 var20
= string__NativeString__to_s_with_length(var18
, var19
);
6617 var21
= ((val
* (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_string__Collection__join
]))(var_mtypes
, var17
) /* join on <var_mtypes:Array[nullable MType]>*/;
6618 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
6619 { /* var22 = array_instance Array[Object] */
6621 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
6622 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var12
;
6623 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var21
;
6624 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
6626 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
6627 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var25
) /* error on <var_v:TypeVisitor>*/;
6636 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6640 var31
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var27
) /* get_mclass on <var_v:TypeVisitor>*/;
6643 if (var_mclass
== NULL
) {
6644 var33
= 1; /* is null */
6646 var33
= 0; /* arg is null but recv is not */
6652 var34
= NEW_array__Array(&type_array__Arraymodel__MType
);
6653 { /* var34 = array_instance Array[MType] */
6655 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraymodel__MType
);
6656 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var_mtype
;
6657 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[MType]>*/;
6659 var37
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var34
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6660 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var37
) /* mtype= on <self:AArrayExpr>*/;
6663 /* method typing#AArrayExpr#accept_typing for (self: Object, TypeVisitor) */
6664 void VIRTUAL_typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
6665 typing__AArrayExpr__accept_typing(self
, p0
);
6668 /* method typing#ARangeExpr#accept_typing for (self: ARangeExpr, TypeVisitor) */
6669 void typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
6670 val
* var_v
/* var v: TypeVisitor */;
6671 static val
* varonce
;
6672 val
* var
/* : String */;
6673 char* var1
/* : NativeString */;
6674 long var2
/* : Int */;
6675 val
* var3
/* : String */;
6676 val
* var4
/* : nullable MClass */;
6677 val
* var_discrete_class
/* var discrete_class: nullable MClass */;
6678 val
* var5
/* : null */;
6679 short int var6
/* : Bool */;
6680 val
* var7
/* : MClassDef */;
6681 val
* var8
/* : MClassType */;
6682 val
* var_discrete_type
/* var discrete_type: MClassType */;
6683 val
* var9
/* : AExpr */;
6684 val
* var10
/* : nullable MType */;
6685 val
* var_t1
/* var t1: nullable MType */;
6686 val
* var11
/* : AExpr */;
6687 val
* var12
/* : nullable MType */;
6688 val
* var_t2
/* var t2: nullable MType */;
6689 short int var13
/* : Bool */;
6690 val
* var14
/* : null */;
6691 short int var15
/* : Bool */;
6692 short int var_
/* var : Bool */;
6693 val
* var16
/* : null */;
6694 short int var17
/* : Bool */;
6695 static val
* varonce18
;
6696 val
* var19
/* : String */;
6697 char* var20
/* : NativeString */;
6698 long var21
/* : Int */;
6699 val
* var22
/* : String */;
6700 val
* var23
/* : nullable MClass */;
6701 val
* var_mclass
/* var mclass: nullable MClass */;
6702 val
* var24
/* : null */;
6703 short int var25
/* : Bool */;
6704 short int var26
/* : Bool */;
6705 val
* var27
/* : Array[MType] */;
6706 long var28
/* : Int */;
6707 val
* var29
/* : NativeArray[MType] */;
6708 val
* var30
/* : MClassType */;
6709 short int var31
/* : Bool */;
6710 val
* var32
/* : Array[MType] */;
6711 long var33
/* : Int */;
6712 val
* var34
/* : NativeArray[MType] */;
6713 val
* var35
/* : MClassType */;
6714 static val
* varonce36
;
6715 val
* var37
/* : String */;
6716 char* var38
/* : NativeString */;
6717 long var39
/* : Int */;
6718 val
* var40
/* : String */;
6719 static val
* varonce41
;
6720 val
* var42
/* : String */;
6721 char* var43
/* : NativeString */;
6722 long var44
/* : Int */;
6723 val
* var45
/* : String */;
6724 val
* var46
/* : Array[Object] */;
6725 long var47
/* : Int */;
6726 val
* var48
/* : NativeArray[Object] */;
6727 val
* var49
/* : String */;
6734 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6738 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6739 var_discrete_class
= var4
;
6741 if (var_discrete_class
== NULL
) {
6742 var6
= 1; /* is null */
6744 var6
= 0; /* arg is null but recv is not */
6750 var7
= ((val
* (*)(val
*))(var_discrete_class
->class->vft
[COLOR_model__MClass__intro
]))(var_discrete_class
) /* intro on <var_discrete_class:nullable MClass(MClass)>*/;
6751 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var7
) /* bound_mtype on <var7:MClassDef>*/;
6752 var_discrete_type
= var8
;
6753 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ARangeExpr__n_expr
]))(self
) /* n_expr on <self:ARangeExpr>*/;
6754 var10
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(var_v
, var9
, var_discrete_type
) /* visit_expr_subtype on <var_v:TypeVisitor>*/;
6756 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ARangeExpr__n_expr2
]))(self
) /* n_expr2 on <self:ARangeExpr>*/;
6757 var12
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(var_v
, var11
, var_discrete_type
) /* visit_expr_subtype on <var_v:TypeVisitor>*/;
6760 if (var_t1
== NULL
) {
6761 var15
= 1; /* is null */
6763 var15
= 0; /* arg is null but recv is not */
6770 if (var_t2
== NULL
) {
6771 var17
= 1; /* is null */
6773 var17
= 0; /* arg is null but recv is not */
6786 var22
= string__NativeString__to_s_with_length(var20
, var21
);
6790 var23
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var19
) /* get_mclass on <var_v:TypeVisitor>*/;
6793 if (var_mclass
== NULL
) {
6794 var25
= 1; /* is null */
6796 var25
= 0; /* arg is null but recv is not */
6802 var26
= ((short int (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(var_v
, var_t1
, var_t2
) /* is_subtype on <var_v:TypeVisitor>*/;
6804 var27
= NEW_array__Array(&type_array__Arraymodel__MType
);
6805 { /* var27 = array_instance Array[MType] */
6807 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraymodel__MType
);
6808 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var_t2
;
6809 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[MType]>*/;
6811 var30
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var27
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6812 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var30
) /* mtype= on <self:ARangeExpr>*/;
6814 var31
= ((short int (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(var_v
, var_t2
, var_t1
) /* is_subtype on <var_v:TypeVisitor>*/;
6816 var32
= NEW_array__Array(&type_array__Arraymodel__MType
);
6817 { /* var32 = array_instance Array[MType] */
6819 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraymodel__MType
);
6820 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var_t1
;
6821 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[MType]>*/;
6823 var35
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var32
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6824 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var35
) /* mtype= on <self:ARangeExpr>*/;
6829 var38
= "Type Error: Cannot create range: ";
6831 var40
= string__NativeString__to_s_with_length(var38
, var39
);
6840 var45
= string__NativeString__to_s_with_length(var43
, var44
);
6844 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
6845 { /* var46 = array_instance Array[Object] */
6847 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
6848 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var37
;
6849 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var_t1
;
6850 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var42
;
6851 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var_t2
;
6852 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
6854 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
6855 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var49
) /* error on <var_v:TypeVisitor>*/;
6860 /* method typing#ARangeExpr#accept_typing for (self: Object, TypeVisitor) */
6861 void VIRTUAL_typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
6862 typing__ARangeExpr__accept_typing(self
, p0
);
6865 /* method typing#ANullExpr#accept_typing for (self: ANullExpr, TypeVisitor) */
6866 void typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
6867 val
* var_v
/* var v: TypeVisitor */;
6868 val
* var
/* : MModule */;
6869 val
* var1
/* : Model */;
6870 val
* var2
/* : MNullType */;
6872 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
6873 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_mmodule__MModule__model
]))(var
) /* model on <var:MModule>*/;
6874 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__Model__null_type
]))(var1
) /* null_type on <var1:Model>*/;
6875 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:ANullExpr>*/;
6878 /* method typing#ANullExpr#accept_typing for (self: Object, TypeVisitor) */
6879 void VIRTUAL_typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
6880 typing__ANullExpr__accept_typing(self
, p0
);
6883 /* method typing#AIsaExpr#cast_type for (self: AIsaExpr): nullable MType */
6884 val
* typing__AIsaExpr__cast_type(val
* self
) {
6885 val
* var
/* : nullable MType */;
6886 val
* var1
/* : nullable MType */;
6887 var1
= self
->attrs
[COLOR_typing__AIsaExpr___64dcast_type
].val
; /* @cast_type on <self:AIsaExpr> */
6892 /* method typing#AIsaExpr#cast_type for (self: Object): nullable MType */
6893 val
* VIRTUAL_typing__AIsaExpr__cast_type(val
* self
) {
6894 val
* var
/* : nullable MType */;
6895 val
* var1
/* : nullable MType */;
6896 var1
= typing__AIsaExpr__cast_type(self
);
6901 /* method typing#AIsaExpr#cast_type= for (self: AIsaExpr, nullable MType) */
6902 void typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
6903 self
->attrs
[COLOR_typing__AIsaExpr___64dcast_type
].val
= p0
; /* @cast_type on <self:AIsaExpr> */
6906 /* method typing#AIsaExpr#cast_type= for (self: Object, nullable MType) */
6907 void VIRTUAL_typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
6908 typing__AIsaExpr__cast_type_61d(self
, p0
);
6911 /* method typing#AIsaExpr#accept_typing for (self: AIsaExpr, TypeVisitor) */
6912 void typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
6913 val
* var_v
/* var v: TypeVisitor */;
6914 val
* var
/* : AExpr */;
6915 val
* var1
/* : AType */;
6916 val
* var2
/* : nullable MType */;
6917 val
* var_mtype
/* var mtype: nullable MType */;
6918 val
* var3
/* : AExpr */;
6919 val
* var4
/* : nullable Variable */;
6920 val
* var_variable
/* var variable: nullable Variable */;
6921 val
* var5
/* : null */;
6922 short int var6
/* : Bool */;
6923 val
* var7
/* : AExpr */;
6924 val
* var8
/* : nullable MType */;
6925 val
* var_orig
/* var orig: nullable MType */;
6926 val
* var9
/* : String */;
6927 val
* var10
/* : null */;
6928 short int var11
/* : Bool */;
6929 val
* var12
/* : String */;
6930 static val
* varonce
;
6931 val
* var13
/* : String */;
6932 char* var14
/* : NativeString */;
6933 long var15
/* : Int */;
6934 val
* var16
/* : String */;
6935 val
* var_from
/* var from: String */;
6936 val
* var17
/* : String */;
6937 val
* var18
/* : null */;
6938 short int var19
/* : Bool */;
6939 val
* var20
/* : String */;
6940 static val
* varonce21
;
6941 val
* var22
/* : String */;
6942 char* var23
/* : NativeString */;
6943 long var24
/* : Int */;
6944 val
* var25
/* : String */;
6945 val
* var_to
/* var to: String */;
6946 val
* var26
/* : nullable FlowContext */;
6947 val
* var27
/* : FlowContext */;
6948 val
* var28
/* : nullable MType */;
6950 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
6951 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_type
]))(self
) /* n_type on <self:AIsaExpr>*/;
6952 var2
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_cast
]))(var_v
, self
, var
, var1
) /* visit_expr_cast on <var_v:TypeVisitor>*/;
6954 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AIsaExpr__cast_type_61d
]))(self
, var_mtype
) /* cast_type= on <self:AIsaExpr>*/;
6955 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
6956 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var3
) /* its_variable on <var3:AExpr>*/;
6957 var_variable
= var4
;
6959 if (var_variable
== NULL
) {
6960 var6
= 0; /* is null */
6962 var6
= 1; /* arg is null and recv is not */
6965 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
6966 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_typing__AExpr__mtype
]))(var7
) /* mtype on <var7:AExpr>*/;
6969 if (var_orig
== NULL
) {
6970 var11
= 0; /* is null */
6972 var11
= 1; /* arg is null and recv is not */
6975 var12
= ((val
* (*)(val
*))(var_orig
->class->vft
[COLOR_string__Object__to_s
]))(var_orig
) /* to_s on <var_orig:nullable MType(MType)>*/;
6983 var16
= string__NativeString__to_s_with_length(var14
, var15
);
6991 if (var_mtype
== NULL
) {
6992 var19
= 0; /* is null */
6994 var19
= 1; /* arg is null and recv is not */
6997 var20
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_string__Object__to_s
]))(var_mtype
) /* to_s on <var_mtype:nullable MType(MType)>*/;
7005 var25
= string__NativeString__to_s_with_length(var23
, var24
);
7012 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AIsaExpr>*/;
7013 if (var26
== NULL
) {
7014 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7015 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1142);
7018 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var26
) /* when_true on <var26:nullable FlowContext>*/;
7020 ((void (*)(val
*, val
*, val
*))(var27
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var27
, var_variable
, var_mtype
) /* set_var on <var27:FlowContext>*/;
7023 var28
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
7024 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var28
) /* mtype= on <self:AIsaExpr>*/;
7027 /* method typing#AIsaExpr#accept_typing for (self: Object, TypeVisitor) */
7028 void VIRTUAL_typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
7029 typing__AIsaExpr__accept_typing(self
, p0
);
7032 /* method typing#AAsCastExpr#accept_typing for (self: AAsCastExpr, TypeVisitor) */
7033 void typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
7034 val
* var_v
/* var v: TypeVisitor */;
7035 val
* var
/* : AExpr */;
7036 val
* var1
/* : AType */;
7037 val
* var2
/* : nullable MType */;
7039 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsCastExpr__n_expr
]))(self
) /* n_expr on <self:AAsCastExpr>*/;
7040 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsCastExpr__n_type
]))(self
) /* n_type on <self:AAsCastExpr>*/;
7041 var2
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_cast
]))(var_v
, self
, var
, var1
) /* visit_expr_cast on <var_v:TypeVisitor>*/;
7042 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:AAsCastExpr>*/;
7045 /* method typing#AAsCastExpr#accept_typing for (self: Object, TypeVisitor) */
7046 void VIRTUAL_typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
7047 typing__AAsCastExpr__accept_typing(self
, p0
);
7050 /* method typing#AAsNotnullExpr#accept_typing for (self: AAsNotnullExpr, TypeVisitor) */
7051 void typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
7052 val
* var_v
/* var v: TypeVisitor */;
7053 val
* var
/* : AExpr */;
7054 val
* var1
/* : nullable MType */;
7055 val
* var_mtype
/* var mtype: nullable MType */;
7056 short int var2
/* : Bool */;
7059 static val
* varonce
;
7060 val
* var3
/* : String */;
7061 char* var4
/* : NativeString */;
7062 long var5
/* : Int */;
7063 val
* var6
/* : String */;
7064 short int var7
/* : Bool */;
7067 val
* var10
/* : MType */;
7069 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsNotnullExpr__n_expr
]))(self
) /* n_expr on <self:AAsNotnullExpr>*/;
7070 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7072 /* <var_mtype:nullable MType> isa MNullType */
7073 cltype
= type_model__MNullType
.color
;
7074 idtype
= type_model__MNullType
.id
;
7075 if(var_mtype
== NULL
) {
7078 if(cltype
>= var_mtype
->type
->table_size
) {
7081 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7088 var4
= "Type error: as(not null) on null";
7090 var6
= string__NativeString__to_s_with_length(var4
, var5
);
7094 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var3
) /* error on <var_v:TypeVisitor>*/;
7098 /* <var_mtype:nullable MType> isa MNullableType */
7099 cltype8
= type_model__MNullableType
.color
;
7100 idtype9
= type_model__MNullableType
.id
;
7101 if(var_mtype
== NULL
) {
7104 if(cltype8
>= var_mtype
->type
->table_size
) {
7107 var7
= var_mtype
->type
->type_table
[cltype8
] == idtype9
;
7111 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:nullable MType(MNullableType)>*/;
7112 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var10
) /* mtype= on <self:AAsNotnullExpr>*/;
7116 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:AAsNotnullExpr>*/;
7119 /* method typing#AAsNotnullExpr#accept_typing for (self: Object, TypeVisitor) */
7120 void VIRTUAL_typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
7121 typing__AAsNotnullExpr__accept_typing(self
, p0
);
7124 /* method typing#AProxyExpr#accept_typing for (self: AProxyExpr, TypeVisitor) */
7125 void typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
7126 val
* var_v
/* var v: TypeVisitor */;
7127 val
* var
/* : AExpr */;
7128 val
* var1
/* : nullable MType */;
7130 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AProxyExpr>*/;
7131 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7132 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var1
) /* mtype= on <self:AProxyExpr>*/;
7135 /* method typing#AProxyExpr#accept_typing for (self: Object, TypeVisitor) */
7136 void VIRTUAL_typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
7137 typing__AProxyExpr__accept_typing(self
, p0
);
7140 /* method typing#ASelfExpr#its_variable for (self: ASelfExpr): nullable Variable */
7141 val
* typing__ASelfExpr__its_variable(val
* self
) {
7142 val
* var
/* : nullable Variable */;
7143 val
* var1
/* : nullable Variable */;
7144 var1
= self
->attrs
[COLOR_typing__ASelfExpr___64dits_variable
].val
; /* @its_variable on <self:ASelfExpr> */
7149 /* method typing#ASelfExpr#its_variable for (self: Object): nullable Variable */
7150 val
* VIRTUAL_typing__ASelfExpr__its_variable(val
* self
) {
7151 val
* var
/* : nullable Variable */;
7152 val
* var1
/* : nullable Variable */;
7153 var1
= typing__ASelfExpr__its_variable(self
);
7158 /* method typing#ASelfExpr#its_variable= for (self: ASelfExpr, nullable Variable) */
7159 void typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
7160 self
->attrs
[COLOR_typing__ASelfExpr___64dits_variable
].val
= p0
; /* @its_variable on <self:ASelfExpr> */
7163 /* method typing#ASelfExpr#its_variable= for (self: Object, nullable Variable) */
7164 void VIRTUAL_typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
7165 typing__ASelfExpr__its_variable_61d(self
, p0
);
7168 /* method typing#ASelfExpr#accept_typing for (self: ASelfExpr, TypeVisitor) */
7169 void typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
7170 val
* var_v
/* var v: TypeVisitor */;
7171 val
* var
/* : Variable */;
7172 val
* var_variable
/* var variable: Variable */;
7173 val
* var1
/* : nullable MType */;
7175 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
7177 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASelfExpr__its_variable_61d
]))(self
, var_variable
) /* its_variable= on <self:ASelfExpr>*/;
7178 var1
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_variable
]))(var_v
, self
, var_variable
) /* get_variable on <var_v:TypeVisitor>*/;
7179 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var1
) /* mtype= on <self:ASelfExpr>*/;
7182 /* method typing#ASelfExpr#accept_typing for (self: Object, TypeVisitor) */
7183 void VIRTUAL_typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
7184 typing__ASelfExpr__accept_typing(self
, p0
);
7187 /* method typing#ASendExpr#mproperty for (self: ASendExpr): nullable MMethod */
7188 val
* typing__ASendExpr__mproperty(val
* self
) {
7189 val
* var
/* : nullable MMethod */;
7190 val
* var1
/* : nullable CallSite */;
7191 val
* var2
/* : MMethod */;
7192 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite
]))(self
) /* callsite on <self:ASendExpr>*/;
7194 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7195 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1194);
7198 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
7205 /* method typing#ASendExpr#mproperty for (self: Object): nullable MMethod */
7206 val
* VIRTUAL_typing__ASendExpr__mproperty(val
* self
) {
7207 val
* var
/* : nullable MMethod */;
7208 val
* var1
/* : nullable MMethod */;
7209 var1
= typing__ASendExpr__mproperty(self
);
7214 /* method typing#ASendExpr#callsite for (self: ASendExpr): nullable CallSite */
7215 val
* typing__ASendExpr__callsite(val
* self
) {
7216 val
* var
/* : nullable CallSite */;
7217 val
* var1
/* : nullable CallSite */;
7218 var1
= self
->attrs
[COLOR_typing__ASendExpr___64dcallsite
].val
; /* @callsite on <self:ASendExpr> */
7223 /* method typing#ASendExpr#callsite for (self: Object): nullable CallSite */
7224 val
* VIRTUAL_typing__ASendExpr__callsite(val
* self
) {
7225 val
* var
/* : nullable CallSite */;
7226 val
* var1
/* : nullable CallSite */;
7227 var1
= typing__ASendExpr__callsite(self
);
7232 /* method typing#ASendExpr#callsite= for (self: ASendExpr, nullable CallSite) */
7233 void typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
7234 self
->attrs
[COLOR_typing__ASendExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ASendExpr> */
7237 /* method typing#ASendExpr#callsite= for (self: Object, nullable CallSite) */
7238 void VIRTUAL_typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
7239 typing__ASendExpr__callsite_61d(self
, p0
);
7242 /* method typing#ASendExpr#accept_typing for (self: ASendExpr, TypeVisitor) */
7243 void typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
7244 val
* var_v
/* var v: TypeVisitor */;
7245 val
* var
/* : AExpr */;
7246 val
* var1
/* : nullable MType */;
7247 val
* var_recvtype
/* var recvtype: nullable MType */;
7248 val
* var2
/* : String */;
7249 val
* var_name
/* var name: String */;
7250 val
* var3
/* : null */;
7251 short int var4
/* : Bool */;
7252 short int var5
/* : Bool */;
7255 static val
* varonce
;
7256 val
* var6
/* : String */;
7257 char* var7
/* : NativeString */;
7258 long var8
/* : Int */;
7259 val
* var9
/* : String */;
7260 static val
* varonce10
;
7261 val
* var11
/* : String */;
7262 char* var12
/* : NativeString */;
7263 long var13
/* : Int */;
7264 val
* var14
/* : String */;
7265 val
* var15
/* : Array[Object] */;
7266 long var16
/* : Int */;
7267 val
* var17
/* : NativeArray[Object] */;
7268 val
* var18
/* : String */;
7269 val
* var19
/* : AExpr */;
7270 short int var20
/* : Bool */;
7273 val
* var23
/* : nullable CallSite */;
7274 val
* var_callsite
/* var callsite: nullable CallSite */;
7275 val
* var24
/* : null */;
7276 short int var25
/* : Bool */;
7277 val
* var26
/* : MSignature */;
7278 val
* var_msignature
/* var msignature: MSignature */;
7279 val
* var27
/* : Array[AExpr] */;
7280 val
* var_args
/* var args: Array[AExpr] */;
7281 short int var28
/* : Bool */;
7282 val
* var29
/* : MMethod */;
7283 short int var30
/* : Bool */;
7284 val
* var31
/* : MPropDef */;
7285 val
* var_vmpropdef
/* var vmpropdef: MPropDef */;
7286 short int var32
/* : Bool */;
7287 short int var33
/* : Bool */;
7290 short int var_
/* var : Bool */;
7291 val
* var36
/* : MProperty */;
7292 short int var37
/* : Bool */;
7293 short int var38
/* : Bool */;
7294 static val
* varonce39
;
7295 val
* var40
/* : String */;
7296 char* var41
/* : NativeString */;
7297 long var42
/* : Int */;
7298 val
* var43
/* : String */;
7299 val
* var44
/* : nullable MType */;
7300 val
* var_ret
/* var ret: nullable MType */;
7301 val
* var45
/* : null */;
7302 short int var46
/* : Bool */;
7303 short int var47
/* : Bool */;
7305 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
7306 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7307 var_recvtype
= var1
;
7308 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendExpr>*/;
7311 if (var_recvtype
== NULL
) {
7312 var4
= 1; /* is null */
7314 var4
= 0; /* arg is null but recv is not */
7320 /* <var_recvtype:nullable MType(MType)> isa MNullType */
7321 cltype
= type_model__MNullType
.color
;
7322 idtype
= type_model__MNullType
.id
;
7323 if(cltype
>= var_recvtype
->type
->table_size
) {
7326 var5
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
7332 var7
= "Error: Method \'";
7334 var9
= string__NativeString__to_s_with_length(var7
, var8
);
7341 var12
= "\' call on \'null\'.";
7343 var14
= string__NativeString__to_s_with_length(var12
, var13
);
7347 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
7348 { /* var15 = array_instance Array[Object] */
7350 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
7351 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var6
;
7352 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_name
;
7353 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var11
;
7354 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
7356 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
7357 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var18
) /* error on <var_v:TypeVisitor>*/;
7361 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
7362 /* <var19:AExpr> isa ASelfExpr */
7363 cltype21
= type_parser_nodes__ASelfExpr
.color
;
7364 idtype22
= type_parser_nodes__ASelfExpr
.id
;
7365 if(cltype21
>= var19
->type
->table_size
) {
7368 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
7370 var23
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_recvtype
, var_name
, var20
) /* get_method on <var_v:TypeVisitor>*/;
7371 var_callsite
= var23
;
7373 if (var_callsite
== NULL
) {
7374 var25
= 1; /* is null */
7376 var25
= 0; /* arg is null but recv is not */
7382 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASendExpr>*/;
7383 var26
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
7384 var_msignature
= var26
;
7385 var27
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendExpr>*/;
7387 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments_61d
]))(self
, var_args
) /* raw_arguments= on <self:ASendExpr>*/;
7388 var28
= ((short int (*)(val
*, val
*, val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__check_signature
]))(var_callsite
, var_v
, var_args
) /* check_signature on <var_callsite:nullable CallSite(CallSite)>*/;
7390 var29
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_callsite
) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
7391 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_model__MMethod__is_init
]))(var29
) /* is_init on <var29:MMethod>*/;
7393 var31
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
7394 var_vmpropdef
= var31
;
7395 /* <var_vmpropdef:MPropDef> isa MMethodDef */
7396 cltype34
= type_model__MMethodDef
.color
;
7397 idtype35
= type_model__MMethodDef
.id
;
7398 if(cltype34
>= var_vmpropdef
->type
->table_size
) {
7401 var33
= var_vmpropdef
->type
->type_table
[cltype34
] == idtype35
;
7405 var36
= ((val
* (*)(val
*))(var_vmpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_vmpropdef
) /* mproperty on <var_vmpropdef:MPropDef(MMethodDef)>*/;
7406 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_model__MMethod__is_init
]))(var36
) /* is_init on <var36:MProperty(MMethod)>*/;
7416 var41
= "Can call a init only in another init";
7418 var43
= string__NativeString__to_s_with_length(var41
, var42
);
7422 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var40
) /* error on <var_v:TypeVisitor>*/;
7427 var44
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
7430 if (var_ret
== NULL
) {
7431 var46
= 0; /* is null */
7433 var46
= 1; /* arg is null and recv is not */
7436 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_ret
) /* mtype= on <self:ASendExpr>*/;
7439 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var47
) /* is_typed= on <self:ASendExpr>*/;
7443 /* method typing#ASendExpr#accept_typing for (self: Object, TypeVisitor) */
7444 void VIRTUAL_typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
7445 typing__ASendExpr__accept_typing(self
, p0
);
7448 /* method typing#ASendExpr#property_name for (self: ASendExpr): String */
7449 val
* typing__ASendExpr__property_name(val
* self
) {
7450 val
* var
/* : String */;
7451 const char* var_class_name
;
7452 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
7453 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "property_name", var_class_name
);
7454 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1235);
7459 /* method typing#ASendExpr#property_name for (self: Object): String */
7460 val
* VIRTUAL_typing__ASendExpr__property_name(val
* self
) {
7461 val
* var
/* : String */;
7462 val
* var1
/* : String */;
7463 var1
= typing__ASendExpr__property_name(self
);
7468 /* method typing#ASendExpr#raw_arguments for (self: ASendExpr): nullable Array[AExpr] */
7469 val
* typing__ASendExpr__raw_arguments(val
* self
) {
7470 val
* var
/* : nullable Array[AExpr] */;
7471 val
* var1
/* : nullable Array[AExpr] */;
7472 var1
= self
->attrs
[COLOR_typing__ASendExpr___64draw_arguments
].val
; /* @raw_arguments on <self:ASendExpr> */
7477 /* method typing#ASendExpr#raw_arguments for (self: Object): nullable Array[AExpr] */
7478 val
* VIRTUAL_typing__ASendExpr__raw_arguments(val
* self
) {
7479 val
* var
/* : nullable Array[AExpr] */;
7480 val
* var1
/* : nullable Array[AExpr] */;
7481 var1
= typing__ASendExpr__raw_arguments(self
);
7486 /* method typing#ASendExpr#raw_arguments= for (self: ASendExpr, nullable Array[AExpr]) */
7487 void typing__ASendExpr__raw_arguments_61d(val
* self
, val
* p0
) {
7488 self
->attrs
[COLOR_typing__ASendExpr___64draw_arguments
].val
= p0
; /* @raw_arguments on <self:ASendExpr> */
7491 /* method typing#ASendExpr#raw_arguments= for (self: Object, nullable Array[AExpr]) */
7492 void VIRTUAL_typing__ASendExpr__raw_arguments_61d(val
* self
, val
* p0
) {
7493 typing__ASendExpr__raw_arguments_61d(self
, p0
);
7496 /* method typing#ASendExpr#compute_raw_arguments for (self: ASendExpr): Array[AExpr] */
7497 val
* typing__ASendExpr__compute_raw_arguments(val
* self
) {
7498 val
* var
/* : Array[AExpr] */;
7499 const char* var_class_name
;
7500 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
7501 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "compute_raw_arguments", var_class_name
);
7502 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1242);
7507 /* method typing#ASendExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
7508 val
* VIRTUAL_typing__ASendExpr__compute_raw_arguments(val
* self
) {
7509 val
* var
/* : Array[AExpr] */;
7510 val
* var1
/* : Array[AExpr] */;
7511 var1
= typing__ASendExpr__compute_raw_arguments(self
);
7516 /* method typing#ABinopExpr#compute_raw_arguments for (self: ABinopExpr): Array[AExpr] */
7517 val
* typing__ABinopExpr__compute_raw_arguments(val
* self
) {
7518 val
* var
/* : Array[AExpr] */;
7519 val
* var1
/* : Array[AExpr] */;
7520 long var2
/* : Int */;
7521 val
* var_
/* var : Array[AExpr] */;
7522 val
* var3
/* : AExpr */;
7523 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
7525 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[AExpr]>*/;
7527 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:ABinopExpr>*/;
7528 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var3
) /* push on <var_:Array[AExpr]>*/;
7534 /* method typing#ABinopExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
7535 val
* VIRTUAL_typing__ABinopExpr__compute_raw_arguments(val
* self
) {
7536 val
* var
/* : Array[AExpr] */;
7537 val
* var1
/* : Array[AExpr] */;
7538 var1
= typing__ABinopExpr__compute_raw_arguments(self
);
7543 /* method typing#AEqExpr#property_name for (self: AEqExpr): String */
7544 val
* typing__AEqExpr__property_name(val
* self
) {
7545 val
* var
/* : String */;
7546 static val
* varonce
;
7547 val
* var1
/* : String */;
7548 char* var2
/* : NativeString */;
7549 long var3
/* : Int */;
7550 val
* var4
/* : String */;
7556 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7565 /* method typing#AEqExpr#property_name for (self: Object): String */
7566 val
* VIRTUAL_typing__AEqExpr__property_name(val
* self
) {
7567 val
* var
/* : String */;
7568 val
* var1
/* : String */;
7569 var1
= typing__AEqExpr__property_name(self
);
7574 /* method typing#AEqExpr#accept_typing for (self: AEqExpr, TypeVisitor) */
7575 void typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
7576 val
* var_v
/* var v: TypeVisitor */;
7577 val
* var
/* : AExpr */;
7578 val
* var1
/* : nullable Variable */;
7579 val
* var_variable
/* var variable: nullable Variable */;
7580 val
* var2
/* : null */;
7581 short int var3
/* : Bool */;
7582 val
* var4
/* : AExpr */;
7583 val
* var5
/* : nullable MType */;
7584 val
* var_mtype
/* var mtype: nullable MType */;
7585 short int var6
/* : Bool */;
7588 short int var7
/* : Bool */;
7589 val
* var8
/* : nullable MType */;
7590 val
* var_vartype
/* var vartype: nullable MType */;
7591 short int var9
/* : Bool */;
7594 short int var12
/* : Bool */;
7595 val
* var13
/* : nullable FlowContext */;
7596 val
* var14
/* : FlowContext */;
7597 val
* var15
/* : nullable FlowContext */;
7598 val
* var16
/* : FlowContext */;
7599 val
* var17
/* : MType */;
7601 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AEqExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:AEqExpr>*/;
7602 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:AEqExpr>*/;
7603 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
7604 var_variable
= var1
;
7606 if (var_variable
== NULL
) {
7607 var3
= 1; /* is null */
7609 var3
= 0; /* arg is null but recv is not */
7615 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:AEqExpr>*/;
7616 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
7618 /* <var_mtype:nullable MType> isa MNullType */
7619 cltype
= type_model__MNullType
.color
;
7620 idtype
= type_model__MNullType
.id
;
7621 if(var_mtype
== NULL
) {
7624 if(cltype
>= var_mtype
->type
->table_size
) {
7627 var6
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7635 var8
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_variable
]))(var_v
, self
, var_variable
) /* get_variable on <var_v:TypeVisitor>*/;
7637 /* <var_vartype:nullable MType> isa MNullableType */
7638 cltype10
= type_model__MNullableType
.color
;
7639 idtype11
= type_model__MNullableType
.id
;
7640 if(var_vartype
== NULL
) {
7643 if(cltype10
>= var_vartype
->type
->table_size
) {
7646 var9
= var_vartype
->type
->type_table
[cltype10
] == idtype11
;
7654 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AEqExpr>*/;
7655 if (var13
== NULL
) {
7656 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7657 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1260);
7660 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var13
) /* when_true on <var13:nullable FlowContext>*/;
7662 ((void (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var14
, var_variable
, var_mtype
) /* set_var on <var14:FlowContext>*/;
7663 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AEqExpr>*/;
7664 if (var15
== NULL
) {
7665 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7666 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1261);
7669 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var15
) /* when_false on <var15:nullable FlowContext>*/;
7671 var17
= ((val
* (*)(val
*))(var_vartype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_vartype
) /* mtype on <var_vartype:nullable MType(MNullableType)>*/;
7672 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var16
, var_variable
, var17
) /* set_var on <var16:FlowContext>*/;
7675 /* method typing#AEqExpr#accept_typing for (self: Object, TypeVisitor) */
7676 void VIRTUAL_typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
7677 typing__AEqExpr__accept_typing(self
, p0
);
7680 /* method typing#ANeExpr#property_name for (self: ANeExpr): String */
7681 val
* typing__ANeExpr__property_name(val
* self
) {
7682 val
* var
/* : String */;
7683 static val
* varonce
;
7684 val
* var1
/* : String */;
7685 char* var2
/* : NativeString */;
7686 long var3
/* : Int */;
7687 val
* var4
/* : String */;
7693 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7702 /* method typing#ANeExpr#property_name for (self: Object): String */
7703 val
* VIRTUAL_typing__ANeExpr__property_name(val
* self
) {
7704 val
* var
/* : String */;
7705 val
* var1
/* : String */;
7706 var1
= typing__ANeExpr__property_name(self
);
7711 /* method typing#ANeExpr#accept_typing for (self: ANeExpr, TypeVisitor) */
7712 void typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
7713 val
* var_v
/* var v: TypeVisitor */;
7714 val
* var
/* : AExpr */;
7715 val
* var1
/* : nullable Variable */;
7716 val
* var_variable
/* var variable: nullable Variable */;
7717 val
* var2
/* : null */;
7718 short int var3
/* : Bool */;
7719 val
* var4
/* : AExpr */;
7720 val
* var5
/* : nullable MType */;
7721 val
* var_mtype
/* var mtype: nullable MType */;
7722 short int var6
/* : Bool */;
7725 short int var7
/* : Bool */;
7726 val
* var8
/* : nullable MType */;
7727 val
* var_vartype
/* var vartype: nullable MType */;
7728 short int var9
/* : Bool */;
7731 short int var12
/* : Bool */;
7732 val
* var13
/* : nullable FlowContext */;
7733 val
* var14
/* : FlowContext */;
7734 val
* var15
/* : nullable FlowContext */;
7735 val
* var16
/* : FlowContext */;
7736 val
* var17
/* : MType */;
7738 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ANeExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:ANeExpr>*/;
7739 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ANeExpr>*/;
7740 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
7741 var_variable
= var1
;
7743 if (var_variable
== NULL
) {
7744 var3
= 1; /* is null */
7746 var3
= 0; /* arg is null but recv is not */
7752 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:ANeExpr>*/;
7753 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
7755 /* <var_mtype:nullable MType> isa MNullType */
7756 cltype
= type_model__MNullType
.color
;
7757 idtype
= type_model__MNullType
.id
;
7758 if(var_mtype
== NULL
) {
7761 if(cltype
>= var_mtype
->type
->table_size
) {
7764 var6
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7772 var8
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_variable
]))(var_v
, self
, var_variable
) /* get_variable on <var_v:TypeVisitor>*/;
7774 /* <var_vartype:nullable MType> isa MNullableType */
7775 cltype10
= type_model__MNullableType
.color
;
7776 idtype11
= type_model__MNullableType
.id
;
7777 if(var_vartype
== NULL
) {
7780 if(cltype10
>= var_vartype
->type
->table_size
) {
7783 var9
= var_vartype
->type
->type_table
[cltype10
] == idtype11
;
7791 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ANeExpr>*/;
7792 if (var13
== NULL
) {
7793 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7794 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1277);
7797 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var13
) /* when_false on <var13:nullable FlowContext>*/;
7799 ((void (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var14
, var_variable
, var_mtype
) /* set_var on <var14:FlowContext>*/;
7800 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ANeExpr>*/;
7801 if (var15
== NULL
) {
7802 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7803 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1278);
7806 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var15
) /* when_true on <var15:nullable FlowContext>*/;
7808 var17
= ((val
* (*)(val
*))(var_vartype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_vartype
) /* mtype on <var_vartype:nullable MType(MNullableType)>*/;
7809 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var16
, var_variable
, var17
) /* set_var on <var16:FlowContext>*/;
7812 /* method typing#ANeExpr#accept_typing for (self: Object, TypeVisitor) */
7813 void VIRTUAL_typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
7814 typing__ANeExpr__accept_typing(self
, p0
);
7817 /* method typing#ALtExpr#property_name for (self: ALtExpr): String */
7818 val
* typing__ALtExpr__property_name(val
* self
) {
7819 val
* var
/* : String */;
7820 static val
* varonce
;
7821 val
* var1
/* : String */;
7822 char* var2
/* : NativeString */;
7823 long var3
/* : Int */;
7824 val
* var4
/* : String */;
7830 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7839 /* method typing#ALtExpr#property_name for (self: Object): String */
7840 val
* VIRTUAL_typing__ALtExpr__property_name(val
* self
) {
7841 val
* var
/* : String */;
7842 val
* var1
/* : String */;
7843 var1
= typing__ALtExpr__property_name(self
);
7848 /* method typing#ALeExpr#property_name for (self: ALeExpr): String */
7849 val
* typing__ALeExpr__property_name(val
* self
) {
7850 val
* var
/* : String */;
7851 static val
* varonce
;
7852 val
* var1
/* : String */;
7853 char* var2
/* : NativeString */;
7854 long var3
/* : Int */;
7855 val
* var4
/* : String */;
7861 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7870 /* method typing#ALeExpr#property_name for (self: Object): String */
7871 val
* VIRTUAL_typing__ALeExpr__property_name(val
* self
) {
7872 val
* var
/* : String */;
7873 val
* var1
/* : String */;
7874 var1
= typing__ALeExpr__property_name(self
);
7879 /* method typing#ALlExpr#property_name for (self: ALlExpr): String */
7880 val
* typing__ALlExpr__property_name(val
* self
) {
7881 val
* var
/* : String */;
7882 static val
* varonce
;
7883 val
* var1
/* : String */;
7884 char* var2
/* : NativeString */;
7885 long var3
/* : Int */;
7886 val
* var4
/* : String */;
7892 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7901 /* method typing#ALlExpr#property_name for (self: Object): String */
7902 val
* VIRTUAL_typing__ALlExpr__property_name(val
* self
) {
7903 val
* var
/* : String */;
7904 val
* var1
/* : String */;
7905 var1
= typing__ALlExpr__property_name(self
);
7910 /* method typing#AGtExpr#property_name for (self: AGtExpr): String */
7911 val
* typing__AGtExpr__property_name(val
* self
) {
7912 val
* var
/* : String */;
7913 static val
* varonce
;
7914 val
* var1
/* : String */;
7915 char* var2
/* : NativeString */;
7916 long var3
/* : Int */;
7917 val
* var4
/* : String */;
7923 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7932 /* method typing#AGtExpr#property_name for (self: Object): String */
7933 val
* VIRTUAL_typing__AGtExpr__property_name(val
* self
) {
7934 val
* var
/* : String */;
7935 val
* var1
/* : String */;
7936 var1
= typing__AGtExpr__property_name(self
);
7941 /* method typing#AGeExpr#property_name for (self: AGeExpr): String */
7942 val
* typing__AGeExpr__property_name(val
* self
) {
7943 val
* var
/* : String */;
7944 static val
* varonce
;
7945 val
* var1
/* : String */;
7946 char* var2
/* : NativeString */;
7947 long var3
/* : Int */;
7948 val
* var4
/* : String */;
7954 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7963 /* method typing#AGeExpr#property_name for (self: Object): String */
7964 val
* VIRTUAL_typing__AGeExpr__property_name(val
* self
) {
7965 val
* var
/* : String */;
7966 val
* var1
/* : String */;
7967 var1
= typing__AGeExpr__property_name(self
);
7972 /* method typing#AGgExpr#property_name for (self: AGgExpr): String */
7973 val
* typing__AGgExpr__property_name(val
* self
) {
7974 val
* var
/* : String */;
7975 static val
* varonce
;
7976 val
* var1
/* : String */;
7977 char* var2
/* : NativeString */;
7978 long var3
/* : Int */;
7979 val
* var4
/* : String */;
7985 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7994 /* method typing#AGgExpr#property_name for (self: Object): String */
7995 val
* VIRTUAL_typing__AGgExpr__property_name(val
* self
) {
7996 val
* var
/* : String */;
7997 val
* var1
/* : String */;
7998 var1
= typing__AGgExpr__property_name(self
);
8003 /* method typing#APlusExpr#property_name for (self: APlusExpr): String */
8004 val
* typing__APlusExpr__property_name(val
* self
) {
8005 val
* var
/* : String */;
8006 static val
* varonce
;
8007 val
* var1
/* : String */;
8008 char* var2
/* : NativeString */;
8009 long var3
/* : Int */;
8010 val
* var4
/* : String */;
8016 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8025 /* method typing#APlusExpr#property_name for (self: Object): String */
8026 val
* VIRTUAL_typing__APlusExpr__property_name(val
* self
) {
8027 val
* var
/* : String */;
8028 val
* var1
/* : String */;
8029 var1
= typing__APlusExpr__property_name(self
);
8034 /* method typing#AMinusExpr#property_name for (self: AMinusExpr): String */
8035 val
* typing__AMinusExpr__property_name(val
* self
) {
8036 val
* var
/* : String */;
8037 static val
* varonce
;
8038 val
* var1
/* : String */;
8039 char* var2
/* : NativeString */;
8040 long var3
/* : Int */;
8041 val
* var4
/* : String */;
8047 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8056 /* method typing#AMinusExpr#property_name for (self: Object): String */
8057 val
* VIRTUAL_typing__AMinusExpr__property_name(val
* self
) {
8058 val
* var
/* : String */;
8059 val
* var1
/* : String */;
8060 var1
= typing__AMinusExpr__property_name(self
);
8065 /* method typing#AStarshipExpr#property_name for (self: AStarshipExpr): String */
8066 val
* typing__AStarshipExpr__property_name(val
* self
) {
8067 val
* var
/* : String */;
8068 static val
* varonce
;
8069 val
* var1
/* : String */;
8070 char* var2
/* : NativeString */;
8071 long var3
/* : Int */;
8072 val
* var4
/* : String */;
8078 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8087 /* method typing#AStarshipExpr#property_name for (self: Object): String */
8088 val
* VIRTUAL_typing__AStarshipExpr__property_name(val
* self
) {
8089 val
* var
/* : String */;
8090 val
* var1
/* : String */;
8091 var1
= typing__AStarshipExpr__property_name(self
);
8096 /* method typing#AStarExpr#property_name for (self: AStarExpr): String */
8097 val
* typing__AStarExpr__property_name(val
* self
) {
8098 val
* var
/* : String */;
8099 static val
* varonce
;
8100 val
* var1
/* : String */;
8101 char* var2
/* : NativeString */;
8102 long var3
/* : Int */;
8103 val
* var4
/* : String */;
8109 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8118 /* method typing#AStarExpr#property_name for (self: Object): String */
8119 val
* VIRTUAL_typing__AStarExpr__property_name(val
* self
) {
8120 val
* var
/* : String */;
8121 val
* var1
/* : String */;
8122 var1
= typing__AStarExpr__property_name(self
);
8127 /* method typing#ASlashExpr#property_name for (self: ASlashExpr): String */
8128 val
* typing__ASlashExpr__property_name(val
* self
) {
8129 val
* var
/* : String */;
8130 static val
* varonce
;
8131 val
* var1
/* : String */;
8132 char* var2
/* : NativeString */;
8133 long var3
/* : Int */;
8134 val
* var4
/* : String */;
8140 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8149 /* method typing#ASlashExpr#property_name for (self: Object): String */
8150 val
* VIRTUAL_typing__ASlashExpr__property_name(val
* self
) {
8151 val
* var
/* : String */;
8152 val
* var1
/* : String */;
8153 var1
= typing__ASlashExpr__property_name(self
);
8158 /* method typing#APercentExpr#property_name for (self: APercentExpr): String */
8159 val
* typing__APercentExpr__property_name(val
* self
) {
8160 val
* var
/* : String */;
8161 static val
* varonce
;
8162 val
* var1
/* : String */;
8163 char* var2
/* : NativeString */;
8164 long var3
/* : Int */;
8165 val
* var4
/* : String */;
8171 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8180 /* method typing#APercentExpr#property_name for (self: Object): String */
8181 val
* VIRTUAL_typing__APercentExpr__property_name(val
* self
) {
8182 val
* var
/* : String */;
8183 val
* var1
/* : String */;
8184 var1
= typing__APercentExpr__property_name(self
);
8189 /* method typing#AUminusExpr#property_name for (self: AUminusExpr): String */
8190 val
* typing__AUminusExpr__property_name(val
* self
) {
8191 val
* var
/* : String */;
8192 static val
* varonce
;
8193 val
* var1
/* : String */;
8194 char* var2
/* : NativeString */;
8195 long var3
/* : Int */;
8196 val
* var4
/* : String */;
8202 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8211 /* method typing#AUminusExpr#property_name for (self: Object): String */
8212 val
* VIRTUAL_typing__AUminusExpr__property_name(val
* self
) {
8213 val
* var
/* : String */;
8214 val
* var1
/* : String */;
8215 var1
= typing__AUminusExpr__property_name(self
);
8220 /* method typing#AUminusExpr#compute_raw_arguments for (self: AUminusExpr): Array[AExpr] */
8221 val
* typing__AUminusExpr__compute_raw_arguments(val
* self
) {
8222 val
* var
/* : Array[AExpr] */;
8223 val
* var1
/* : Array[AExpr] */;
8224 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
8225 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[AExpr]>*/;
8231 /* method typing#AUminusExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8232 val
* VIRTUAL_typing__AUminusExpr__compute_raw_arguments(val
* self
) {
8233 val
* var
/* : Array[AExpr] */;
8234 val
* var1
/* : Array[AExpr] */;
8235 var1
= typing__AUminusExpr__compute_raw_arguments(self
);
8240 /* method typing#ACallExpr#property_name for (self: ACallExpr): String */
8241 val
* typing__ACallExpr__property_name(val
* self
) {
8242 val
* var
/* : String */;
8243 val
* var1
/* : TId */;
8244 val
* var2
/* : String */;
8245 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallExpr>*/;
8246 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8252 /* method typing#ACallExpr#property_name for (self: Object): String */
8253 val
* VIRTUAL_typing__ACallExpr__property_name(val
* self
) {
8254 val
* var
/* : String */;
8255 val
* var1
/* : String */;
8256 var1
= typing__ACallExpr__property_name(self
);
8261 /* method typing#ACallExpr#compute_raw_arguments for (self: ACallExpr): Array[AExpr] */
8262 val
* typing__ACallExpr__compute_raw_arguments(val
* self
) {
8263 val
* var
/* : Array[AExpr] */;
8264 val
* var1
/* : AExprs */;
8265 val
* var2
/* : Array[AExpr] */;
8266 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallExpr>*/;
8267 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8273 /* method typing#ACallExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8274 val
* VIRTUAL_typing__ACallExpr__compute_raw_arguments(val
* self
) {
8275 val
* var
/* : Array[AExpr] */;
8276 val
* var1
/* : Array[AExpr] */;
8277 var1
= typing__ACallExpr__compute_raw_arguments(self
);
8282 /* method typing#ACallAssignExpr#property_name for (self: ACallAssignExpr): String */
8283 val
* typing__ACallAssignExpr__property_name(val
* self
) {
8284 val
* var
/* : String */;
8285 val
* var1
/* : TId */;
8286 val
* var2
/* : String */;
8287 static val
* varonce
;
8288 val
* var3
/* : String */;
8289 char* var4
/* : NativeString */;
8290 long var5
/* : Int */;
8291 val
* var6
/* : String */;
8292 val
* var7
/* : String */;
8293 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallAssignExpr>*/;
8294 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8300 var6
= string__NativeString__to_s_with_length(var4
, var5
);
8304 var7
= ((val
* (*)(val
*, val
*))(var2
->class->vft
[COLOR_string__String___43d
]))(var2
, var3
) /* + on <var2:String>*/;
8310 /* method typing#ACallAssignExpr#property_name for (self: Object): String */
8311 val
* VIRTUAL_typing__ACallAssignExpr__property_name(val
* self
) {
8312 val
* var
/* : String */;
8313 val
* var1
/* : String */;
8314 var1
= typing__ACallAssignExpr__property_name(self
);
8319 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: ACallAssignExpr): Array[AExpr] */
8320 val
* typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
8321 val
* var
/* : Array[AExpr] */;
8322 val
* var1
/* : AExprs */;
8323 val
* var2
/* : Array[AExpr] */;
8324 val
* var_res
/* var res: Array[AExpr] */;
8325 val
* var3
/* : AExpr */;
8326 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallAssignExpr>*/;
8327 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8329 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:ACallAssignExpr>*/;
8330 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var3
) /* add on <var_res:Array[AExpr]>*/;
8336 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8337 val
* VIRTUAL_typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
8338 val
* var
/* : Array[AExpr] */;
8339 val
* var1
/* : Array[AExpr] */;
8340 var1
= typing__ACallAssignExpr__compute_raw_arguments(self
);
8345 /* method typing#ABraExpr#property_name for (self: ABraExpr): String */
8346 val
* typing__ABraExpr__property_name(val
* self
) {
8347 val
* var
/* : String */;
8348 static val
* varonce
;
8349 val
* var1
/* : String */;
8350 char* var2
/* : NativeString */;
8351 long var3
/* : Int */;
8352 val
* var4
/* : String */;
8358 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8367 /* method typing#ABraExpr#property_name for (self: Object): String */
8368 val
* VIRTUAL_typing__ABraExpr__property_name(val
* self
) {
8369 val
* var
/* : String */;
8370 val
* var1
/* : String */;
8371 var1
= typing__ABraExpr__property_name(self
);
8376 /* method typing#ABraExpr#compute_raw_arguments for (self: ABraExpr): Array[AExpr] */
8377 val
* typing__ABraExpr__compute_raw_arguments(val
* self
) {
8378 val
* var
/* : Array[AExpr] */;
8379 val
* var1
/* : AExprs */;
8380 val
* var2
/* : Array[AExpr] */;
8381 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraExpr>*/;
8382 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8388 /* method typing#ABraExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8389 val
* VIRTUAL_typing__ABraExpr__compute_raw_arguments(val
* self
) {
8390 val
* var
/* : Array[AExpr] */;
8391 val
* var1
/* : Array[AExpr] */;
8392 var1
= typing__ABraExpr__compute_raw_arguments(self
);
8397 /* method typing#ABraAssignExpr#property_name for (self: ABraAssignExpr): String */
8398 val
* typing__ABraAssignExpr__property_name(val
* self
) {
8399 val
* var
/* : String */;
8400 static val
* varonce
;
8401 val
* var1
/* : String */;
8402 char* var2
/* : NativeString */;
8403 long var3
/* : Int */;
8404 val
* var4
/* : String */;
8410 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8419 /* method typing#ABraAssignExpr#property_name for (self: Object): String */
8420 val
* VIRTUAL_typing__ABraAssignExpr__property_name(val
* self
) {
8421 val
* var
/* : String */;
8422 val
* var1
/* : String */;
8423 var1
= typing__ABraAssignExpr__property_name(self
);
8428 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: ABraAssignExpr): Array[AExpr] */
8429 val
* typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
8430 val
* var
/* : Array[AExpr] */;
8431 val
* var1
/* : AExprs */;
8432 val
* var2
/* : Array[AExpr] */;
8433 val
* var_res
/* var res: Array[AExpr] */;
8434 val
* var3
/* : AExpr */;
8435 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraAssignExpr>*/;
8436 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8438 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:ABraAssignExpr>*/;
8439 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var3
) /* add on <var_res:Array[AExpr]>*/;
8445 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8446 val
* VIRTUAL_typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
8447 val
* var
/* : Array[AExpr] */;
8448 val
* var1
/* : Array[AExpr] */;
8449 var1
= typing__ABraAssignExpr__compute_raw_arguments(self
);
8454 /* method typing#ASendReassignFormExpr#write_mproperty for (self: ASendReassignFormExpr): nullable MMethod */
8455 val
* typing__ASendReassignFormExpr__write_mproperty(val
* self
) {
8456 val
* var
/* : nullable MMethod */;
8457 val
* var1
/* : nullable CallSite */;
8458 val
* var2
/* : MMethod */;
8459 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_callsite
]))(self
) /* write_callsite on <self:ASendReassignFormExpr>*/;
8461 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
8462 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1357);
8465 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
8472 /* method typing#ASendReassignFormExpr#write_mproperty for (self: Object): nullable MMethod */
8473 val
* VIRTUAL_typing__ASendReassignFormExpr__write_mproperty(val
* self
) {
8474 val
* var
/* : nullable MMethod */;
8475 val
* var1
/* : nullable MMethod */;
8476 var1
= typing__ASendReassignFormExpr__write_mproperty(self
);
8481 /* method typing#ASendReassignFormExpr#write_callsite for (self: ASendReassignFormExpr): nullable CallSite */
8482 val
* typing__ASendReassignFormExpr__write_callsite(val
* self
) {
8483 val
* var
/* : nullable CallSite */;
8484 val
* var1
/* : nullable CallSite */;
8485 var1
= self
->attrs
[COLOR_typing__ASendReassignFormExpr___64dwrite_callsite
].val
; /* @write_callsite on <self:ASendReassignFormExpr> */
8490 /* method typing#ASendReassignFormExpr#write_callsite for (self: Object): nullable CallSite */
8491 val
* VIRTUAL_typing__ASendReassignFormExpr__write_callsite(val
* self
) {
8492 val
* var
/* : nullable CallSite */;
8493 val
* var1
/* : nullable CallSite */;
8494 var1
= typing__ASendReassignFormExpr__write_callsite(self
);
8499 /* method typing#ASendReassignFormExpr#write_callsite= for (self: ASendReassignFormExpr, nullable CallSite) */
8500 void typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
8501 self
->attrs
[COLOR_typing__ASendReassignFormExpr___64dwrite_callsite
].val
= p0
; /* @write_callsite on <self:ASendReassignFormExpr> */
8504 /* method typing#ASendReassignFormExpr#write_callsite= for (self: Object, nullable CallSite) */
8505 void VIRTUAL_typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
8506 typing__ASendReassignFormExpr__write_callsite_61d(self
, p0
);
8509 /* method typing#ASendReassignFormExpr#accept_typing for (self: ASendReassignFormExpr, TypeVisitor) */
8510 void typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
8511 val
* var_v
/* var v: TypeVisitor */;
8512 val
* var
/* : AExpr */;
8513 val
* var1
/* : nullable MType */;
8514 val
* var_recvtype
/* var recvtype: nullable MType */;
8515 val
* var2
/* : String */;
8516 val
* var_name
/* var name: String */;
8517 val
* var3
/* : null */;
8518 short int var4
/* : Bool */;
8519 short int var5
/* : Bool */;
8522 static val
* varonce
;
8523 val
* var6
/* : String */;
8524 char* var7
/* : NativeString */;
8525 long var8
/* : Int */;
8526 val
* var9
/* : String */;
8527 static val
* varonce10
;
8528 val
* var11
/* : String */;
8529 char* var12
/* : NativeString */;
8530 long var13
/* : Int */;
8531 val
* var14
/* : String */;
8532 val
* var15
/* : Array[Object] */;
8533 long var16
/* : Int */;
8534 val
* var17
/* : NativeArray[Object] */;
8535 val
* var18
/* : String */;
8536 val
* var19
/* : AExpr */;
8537 short int var20
/* : Bool */;
8540 short int var_for_self
/* var for_self: Bool */;
8541 val
* var23
/* : nullable CallSite */;
8542 val
* var_callsite
/* var callsite: nullable CallSite */;
8543 val
* var24
/* : null */;
8544 short int var25
/* : Bool */;
8545 val
* var26
/* : Array[AExpr] */;
8546 val
* var_args
/* var args: Array[AExpr] */;
8547 short int var27
/* : Bool */;
8548 val
* var28
/* : MSignature */;
8549 val
* var29
/* : nullable MType */;
8550 val
* var_readtype
/* var readtype: nullable MType */;
8551 val
* var30
/* : null */;
8552 short int var31
/* : Bool */;
8553 static val
* varonce32
;
8554 val
* var33
/* : String */;
8555 char* var34
/* : NativeString */;
8556 long var35
/* : Int */;
8557 val
* var36
/* : String */;
8558 static val
* varonce37
;
8559 val
* var38
/* : String */;
8560 char* var39
/* : NativeString */;
8561 long var40
/* : Int */;
8562 val
* var41
/* : String */;
8563 val
* var42
/* : Array[Object] */;
8564 long var43
/* : Int */;
8565 val
* var44
/* : NativeArray[Object] */;
8566 val
* var45
/* : String */;
8567 static val
* varonce46
;
8568 val
* var47
/* : String */;
8569 char* var48
/* : NativeString */;
8570 long var49
/* : Int */;
8571 val
* var50
/* : String */;
8572 val
* var51
/* : String */;
8573 val
* var52
/* : AExpr */;
8574 short int var53
/* : Bool */;
8577 val
* var56
/* : nullable CallSite */;
8578 val
* var_wcallsite
/* var wcallsite: nullable CallSite */;
8579 val
* var57
/* : null */;
8580 short int var58
/* : Bool */;
8581 val
* var59
/* : MSignature */;
8582 val
* var60
/* : Array[MParameter] */;
8583 val
* var61
/* : nullable Object */;
8584 val
* var62
/* : MType */;
8585 val
* var63
/* : nullable MType */;
8586 val
* var_wtype
/* var wtype: nullable MType */;
8587 val
* var64
/* : null */;
8588 short int var65
/* : Bool */;
8589 val
* var66
/* : Array[nullable Object] */;
8590 val
* var67
/* : AExpr */;
8591 short int var68
/* : Bool */;
8592 short int var69
/* : Bool */;
8594 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8595 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
8596 var_recvtype
= var1
;
8597 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendReassignFormExpr>*/;
8600 if (var_recvtype
== NULL
) {
8601 var4
= 1; /* is null */
8603 var4
= 0; /* arg is null but recv is not */
8609 /* <var_recvtype:nullable MType(MType)> isa MNullType */
8610 cltype
= type_model__MNullType
.color
;
8611 idtype
= type_model__MNullType
.id
;
8612 if(cltype
>= var_recvtype
->type
->table_size
) {
8615 var5
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
8621 var7
= "Error: Method \'";
8623 var9
= string__NativeString__to_s_with_length(var7
, var8
);
8630 var12
= "\' call on \'null\'.";
8632 var14
= string__NativeString__to_s_with_length(var12
, var13
);
8636 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
8637 { /* var15 = array_instance Array[Object] */
8639 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
8640 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var6
;
8641 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_name
;
8642 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var11
;
8643 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
8645 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
8646 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var18
) /* error on <var_v:TypeVisitor>*/;
8650 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8651 /* <var19:AExpr> isa ASelfExpr */
8652 cltype21
= type_parser_nodes__ASelfExpr
.color
;
8653 idtype22
= type_parser_nodes__ASelfExpr
.id
;
8654 if(cltype21
>= var19
->type
->table_size
) {
8657 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
8659 var_for_self
= var20
;
8660 var23
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_recvtype
, var_name
, var_for_self
) /* get_method on <var_v:TypeVisitor>*/;
8661 var_callsite
= var23
;
8663 if (var_callsite
== NULL
) {
8664 var25
= 1; /* is null */
8666 var25
= 0; /* arg is null but recv is not */
8672 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASendReassignFormExpr>*/;
8673 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendReassignFormExpr>*/;
8675 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments_61d
]))(self
, var_args
) /* raw_arguments= on <self:ASendReassignFormExpr>*/;
8676 var27
= ((short int (*)(val
*, val
*, val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__check_signature
]))(var_callsite
, var_v
, var_args
) /* check_signature on <var_callsite:nullable CallSite(CallSite)>*/;
8678 var28
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
8679 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var28
) /* return_mtype on <var28:MSignature>*/;
8680 var_readtype
= var29
;
8682 if (var_readtype
== NULL
) {
8683 var31
= 1; /* is null */
8685 var31
= 0; /* arg is null but recv is not */
8693 var36
= string__NativeString__to_s_with_length(var34
, var35
);
8700 var39
= " is not a function";
8702 var41
= string__NativeString__to_s_with_length(var39
, var40
);
8706 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
8707 { /* var42 = array_instance Array[Object] */
8709 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
8710 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
8711 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_name
;
8712 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
8713 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
8715 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
8716 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var45
) /* error on <var_v:TypeVisitor>*/;
8725 var50
= string__NativeString__to_s_with_length(var48
, var49
);
8729 var51
= ((val
* (*)(val
*, val
*))(var_name
->class->vft
[COLOR_string__String___43d
]))(var_name
, var47
) /* + on <var_name:String>*/;
8730 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8731 /* <var52:AExpr> isa ASelfExpr */
8732 cltype54
= type_parser_nodes__ASelfExpr
.color
;
8733 idtype55
= type_parser_nodes__ASelfExpr
.id
;
8734 if(cltype54
>= var52
->type
->table_size
) {
8737 var53
= var52
->type
->type_table
[cltype54
] == idtype55
;
8739 var56
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_recvtype
, var51
, var53
) /* get_method on <var_v:TypeVisitor>*/;
8740 var_wcallsite
= var56
;
8742 if (var_wcallsite
== NULL
) {
8743 var58
= 1; /* is null */
8745 var58
= 0; /* arg is null but recv is not */
8751 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_callsite_61d
]))(self
, var_wcallsite
) /* write_callsite= on <self:ASendReassignFormExpr>*/;
8752 var59
= ((val
* (*)(val
*))(var_wcallsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_wcallsite
) /* msignature on <var_wcallsite:nullable CallSite(CallSite)>*/;
8753 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_model__MSignature__mparameters
]))(var59
) /* mparameters on <var59:MSignature>*/;
8754 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var60
) /* last on <var60:Array[MParameter]>*/;
8755 var62
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_model__MParameter__mtype
]))(var61
) /* mtype on <var61:nullable Object(MParameter)>*/;
8756 var63
= ((val
* (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__resolve_reassignment
]))(self
, var_v
, var_readtype
, var62
) /* resolve_reassignment on <self:ASendReassignFormExpr>*/;
8759 if (var_wtype
== NULL
) {
8760 var65
= 1; /* is null */
8762 var65
= 0; /* arg is null but recv is not */
8768 var66
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[AExpr]>*/;
8770 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:ASendReassignFormExpr>*/;
8771 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var67
) /* add on <var_args:Array[AExpr]>*/;
8772 var68
= ((short int (*)(val
*, val
*, val
*))(var_wcallsite
->class->vft
[COLOR_typing__CallSite__check_signature
]))(var_wcallsite
, var_v
, var_args
) /* check_signature on <var_wcallsite:nullable CallSite(CallSite)>*/;
8775 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var69
) /* is_typed= on <self:ASendReassignFormExpr>*/;
8778 /* method typing#ASendReassignFormExpr#accept_typing for (self: Object, TypeVisitor) */
8779 void VIRTUAL_typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
8780 typing__ASendReassignFormExpr__accept_typing(self
, p0
);
8783 /* method typing#ACallReassignExpr#property_name for (self: ACallReassignExpr): String */
8784 val
* typing__ACallReassignExpr__property_name(val
* self
) {
8785 val
* var
/* : String */;
8786 val
* var1
/* : TId */;
8787 val
* var2
/* : String */;
8788 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallReassignExpr>*/;
8789 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8795 /* method typing#ACallReassignExpr#property_name for (self: Object): String */
8796 val
* VIRTUAL_typing__ACallReassignExpr__property_name(val
* self
) {
8797 val
* var
/* : String */;
8798 val
* var1
/* : String */;
8799 var1
= typing__ACallReassignExpr__property_name(self
);
8804 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: ACallReassignExpr): Array[AExpr] */
8805 val
* typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
8806 val
* var
/* : Array[AExpr] */;
8807 val
* var1
/* : AExprs */;
8808 val
* var2
/* : Array[AExpr] */;
8809 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallReassignExpr>*/;
8810 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8816 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8817 val
* VIRTUAL_typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
8818 val
* var
/* : Array[AExpr] */;
8819 val
* var1
/* : Array[AExpr] */;
8820 var1
= typing__ACallReassignExpr__compute_raw_arguments(self
);
8825 /* method typing#ABraReassignExpr#property_name for (self: ABraReassignExpr): String */
8826 val
* typing__ABraReassignExpr__property_name(val
* self
) {
8827 val
* var
/* : String */;
8828 static val
* varonce
;
8829 val
* var1
/* : String */;
8830 char* var2
/* : NativeString */;
8831 long var3
/* : Int */;
8832 val
* var4
/* : String */;
8838 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8847 /* method typing#ABraReassignExpr#property_name for (self: Object): String */
8848 val
* VIRTUAL_typing__ABraReassignExpr__property_name(val
* self
) {
8849 val
* var
/* : String */;
8850 val
* var1
/* : String */;
8851 var1
= typing__ABraReassignExpr__property_name(self
);
8856 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: ABraReassignExpr): Array[AExpr] */
8857 val
* typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
8858 val
* var
/* : Array[AExpr] */;
8859 val
* var1
/* : AExprs */;
8860 val
* var2
/* : Array[AExpr] */;
8861 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraReassignExpr>*/;
8862 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8868 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8869 val
* VIRTUAL_typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
8870 val
* var
/* : Array[AExpr] */;
8871 val
* var1
/* : Array[AExpr] */;
8872 var1
= typing__ABraReassignExpr__compute_raw_arguments(self
);
8877 /* method typing#AInitExpr#property_name for (self: AInitExpr): String */
8878 val
* typing__AInitExpr__property_name(val
* self
) {
8879 val
* var
/* : String */;
8880 static val
* varonce
;
8881 val
* var1
/* : String */;
8882 char* var2
/* : NativeString */;
8883 long var3
/* : Int */;
8884 val
* var4
/* : String */;
8890 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8899 /* method typing#AInitExpr#property_name for (self: Object): String */
8900 val
* VIRTUAL_typing__AInitExpr__property_name(val
* self
) {
8901 val
* var
/* : String */;
8902 val
* var1
/* : String */;
8903 var1
= typing__AInitExpr__property_name(self
);
8908 /* method typing#AInitExpr#compute_raw_arguments for (self: AInitExpr): Array[AExpr] */
8909 val
* typing__AInitExpr__compute_raw_arguments(val
* self
) {
8910 val
* var
/* : Array[AExpr] */;
8911 val
* var1
/* : AExprs */;
8912 val
* var2
/* : Array[AExpr] */;
8913 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AInitExpr__n_args
]))(self
) /* n_args on <self:AInitExpr>*/;
8914 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8920 /* method typing#AInitExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8921 val
* VIRTUAL_typing__AInitExpr__compute_raw_arguments(val
* self
) {
8922 val
* var
/* : Array[AExpr] */;
8923 val
* var1
/* : Array[AExpr] */;
8924 var1
= typing__AInitExpr__compute_raw_arguments(self
);
8929 /* method typing#AExprs#to_a for (self: AExprs): Array[AExpr] */
8930 val
* typing__AExprs__to_a(val
* self
) {
8931 val
* var
/* : Array[AExpr] */;
8932 val
* var1
/* : ANodes[AExpr] */;
8933 val
* var2
/* : Array[nullable Object] */;
8934 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(self
) /* n_exprs on <self:AExprs>*/;
8935 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_array__Collection__to_a
]))(var1
) /* to_a on <var1:ANodes[AExpr]>*/;
8941 /* method typing#AExprs#to_a for (self: Object): Array[AExpr] */
8942 val
* VIRTUAL_typing__AExprs__to_a(val
* self
) {
8943 val
* var
/* : Array[AExpr] */;
8944 val
* var1
/* : Array[AExpr] */;
8945 var1
= typing__AExprs__to_a(self
);
8950 /* method typing#ASuperExpr#mproperty for (self: ASuperExpr): nullable MMethod */
8951 val
* typing__ASuperExpr__mproperty(val
* self
) {
8952 val
* var
/* : nullable MMethod */;
8953 val
* var1
/* : nullable MMethod */;
8954 var1
= self
->attrs
[COLOR_typing__ASuperExpr___64dmproperty
].val
; /* @mproperty on <self:ASuperExpr> */
8959 /* method typing#ASuperExpr#mproperty for (self: Object): nullable MMethod */
8960 val
* VIRTUAL_typing__ASuperExpr__mproperty(val
* self
) {
8961 val
* var
/* : nullable MMethod */;
8962 val
* var1
/* : nullable MMethod */;
8963 var1
= typing__ASuperExpr__mproperty(self
);
8968 /* method typing#ASuperExpr#mproperty= for (self: ASuperExpr, nullable MMethod) */
8969 void typing__ASuperExpr__mproperty_61d(val
* self
, val
* p0
) {
8970 self
->attrs
[COLOR_typing__ASuperExpr___64dmproperty
].val
= p0
; /* @mproperty on <self:ASuperExpr> */
8973 /* method typing#ASuperExpr#mproperty= for (self: Object, nullable MMethod) */
8974 void VIRTUAL_typing__ASuperExpr__mproperty_61d(val
* self
, val
* p0
) {
8975 typing__ASuperExpr__mproperty_61d(self
, p0
);
8978 /* method typing#ASuperExpr#accept_typing for (self: ASuperExpr, TypeVisitor) */
8979 void typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
8980 val
* var_v
/* var v: TypeVisitor */;
8981 val
* var
/* : AClassdef */;
8982 val
* var1
/* : nullable MClassDef */;
8983 val
* var2
/* : MClassType */;
8984 val
* var_recvtype
/* var recvtype: MClassType */;
8985 val
* var3
/* : MPropDef */;
8986 val
* var4
/* : MProperty */;
8987 val
* var_mproperty
/* var mproperty: MProperty */;
8988 short int var5
/* : Bool */;
8991 short int var6
/* : Bool */;
8992 static val
* varonce
;
8993 val
* var7
/* : String */;
8994 char* var8
/* : NativeString */;
8995 long var9
/* : Int */;
8996 val
* var10
/* : String */;
8997 val
* var11
/* : MModule */;
8998 val
* var12
/* : Array[MPropDef] */;
8999 val
* var_superprops
/* var superprops: Array[MPropDef] */;
9000 long var13
/* : Int */;
9001 long var14
/* : Int */;
9002 short int var15
/* : Bool */;
9003 short int var17
/* : Bool */;
9004 short int var18
/* : Bool */;
9005 short int var19
/* : Bool */;
9006 short int var_
/* var : Bool */;
9007 val
* var20
/* : MPropDef */;
9008 short int var21
/* : Bool */;
9009 static val
* varonce22
;
9010 val
* var23
/* : String */;
9011 char* var24
/* : NativeString */;
9012 long var25
/* : Int */;
9013 val
* var26
/* : String */;
9014 static val
* varonce27
;
9015 val
* var28
/* : String */;
9016 char* var29
/* : NativeString */;
9017 long var30
/* : Int */;
9018 val
* var31
/* : String */;
9019 val
* var32
/* : Array[Object] */;
9020 long var33
/* : Int */;
9021 val
* var34
/* : NativeArray[Object] */;
9022 val
* var35
/* : String */;
9023 val
* var36
/* : nullable Object */;
9024 val
* var_superprop
/* var superprop: MPropDef */;
9025 short int var37
/* : Bool */;
9028 short int var40
/* : Bool */;
9029 val
* var41
/* : MSignature */;
9030 val
* var_msignature
/* var msignature: MSignature */;
9031 val
* var42
/* : AExprs */;
9032 val
* var43
/* : Array[AExpr] */;
9033 val
* var_args
/* var args: Array[AExpr] */;
9034 long var44
/* : Int */;
9035 long var45
/* : Int */;
9036 short int var46
/* : Bool */;
9037 short int var48
/* : Bool */;
9040 const char* var_class_name
;
9041 short int var51
/* : Bool */;
9042 val
* var52
/* : String */;
9043 short int var53
/* : Bool */;
9044 val
* var54
/* : nullable MType */;
9045 short int var55
/* : Bool */;
9046 val
* var56
/* : MPropDef */;
9047 short int var57
/* : Bool */;
9049 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9050 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var
) /* mclassdef on <var:AClassdef>*/;
9052 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9053 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1433);
9056 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:nullable MClassDef>*/;
9058 var_recvtype
= var2
;
9059 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9060 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var3
) /* mproperty on <var3:MPropDef>*/;
9061 var_mproperty
= var4
;
9062 /* <var_mproperty:MProperty> isa MMethod */
9063 cltype
= type_model__MMethod
.color
;
9064 idtype
= type_model__MMethod
.id
;
9065 if(cltype
>= var_mproperty
->type
->table_size
) {
9068 var5
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
9075 var8
= "Error: super only usable in a method";
9077 var10
= string__NativeString__to_s_with_length(var8
, var9
);
9081 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var7
) /* error on <var_v:TypeVisitor>*/;
9085 var11
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9086 var12
= ((val
* (*)(val
*, val
*, val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__lookup_super_definitions
]))(var_mproperty
, var11
, var_recvtype
) /* lookup_super_definitions on <var_mproperty:MProperty(MMethod)>*/;
9087 var_superprops
= var12
;
9088 var13
= ((long (*)(val
*))(var_superprops
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_superprops
) /* length on <var_superprops:Array[MPropDef]>*/;
9090 { /* Inline kernel#Int#== (var13,var14) */
9091 var17
= var13
== var14
;
9094 RET_LABEL16
:(void)0;
9097 var19
= ((short int (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MMethod__is_init
]))(var_mproperty
) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
9100 var20
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9101 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_model__MPropDef__is_intro
]))(var20
) /* is_intro on <var20:MPropDef>*/;
9107 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__process_superinit
]))(self
, var_v
) /* process_superinit on <self:ASuperExpr>*/;
9114 var24
= "Error: No super method to call for ";
9116 var26
= string__NativeString__to_s_with_length(var24
, var25
);
9125 var31
= string__NativeString__to_s_with_length(var29
, var30
);
9129 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
9130 { /* var32 = array_instance Array[Object] */
9132 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
9133 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
9134 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_mproperty
;
9135 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
9136 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
9138 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
9139 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var35
) /* error on <var_v:TypeVisitor>*/;
9143 var36
= ((val
* (*)(val
*))(var_superprops
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_superprops
) /* first on <var_superprops:Array[MPropDef]>*/;
9144 var_superprop
= var36
;
9145 /* <var_superprop:MPropDef> isa MMethodDef */
9146 cltype38
= type_model__MMethodDef
.color
;
9147 idtype39
= type_model__MMethodDef
.id
;
9148 if(cltype38
>= var_superprop
->type
->table_size
) {
9151 var37
= var_superprop
->type
->type_table
[cltype38
] == idtype39
;
9154 fprintf(stderr
, "Runtime error: %s", "Assert failed");
9155 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1450);
9159 var41
= ((val
* (*)(val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_signature_for
]))(var_v
, var_superprop
, var_recvtype
, var40
) /* resolve_signature_for on <var_v:TypeVisitor>*/;
9160 var_msignature
= var41
;
9161 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
9162 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_typing__AExprs__to_a
]))(var42
) /* to_a on <var42:AExprs>*/;
9164 var44
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
9166 { /* Inline kernel#Int#> (var44,var45) */
9167 /* Covariant cast for argument 0 (i) <var45:Int> isa OTHER */
9168 /* <var45:Int> isa OTHER */
9169 var48
= 1; /* easy <var45:Int> isa OTHER*/
9171 var_class_name
= type_kernel__Int
.name
;
9172 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
9173 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
9176 var51
= var44
> var45
;
9179 RET_LABEL47
:(void)0;
9182 var52
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty(MMethod)>*/;
9183 var53
= ((short int (*)(val
*, val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__check_signature
]))(var_v
, self
, var_args
, var52
, var_msignature
) /* check_signature on <var_v:TypeVisitor>*/;
9187 var54
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
9188 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var54
) /* mtype= on <self:ASuperExpr>*/;
9190 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var55
) /* is_typed= on <self:ASuperExpr>*/;
9191 var56
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9193 ((void (*)(val
*, short int))(var56
->class->vft
[COLOR_typing__MPropDef__has_supercall_61d
]))(var56
, var57
) /* has_supercall= on <var56:MPropDef>*/;
9196 /* method typing#ASuperExpr#accept_typing for (self: Object, TypeVisitor) */
9197 void VIRTUAL_typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
9198 typing__ASuperExpr__accept_typing(self
, p0
);
9201 /* method typing#ASuperExpr#process_superinit for (self: ASuperExpr, TypeVisitor) */
9202 void typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
9203 val
* var_v
/* var v: TypeVisitor */;
9204 val
* var
/* : AClassdef */;
9205 val
* var1
/* : nullable MClassDef */;
9206 val
* var2
/* : MClassType */;
9207 val
* var_recvtype
/* var recvtype: MClassType */;
9208 val
* var3
/* : MPropDef */;
9209 val
* var4
/* : MProperty */;
9210 val
* var_mproperty
/* var mproperty: MProperty */;
9211 val
* var5
/* : null */;
9212 val
* var_superprop
/* var superprop: nullable MMethodDef */;
9213 val
* var6
/* : AClassdef */;
9214 val
* var7
/* : nullable MClassDef */;
9215 val
* var8
/* : Array[MClassType] */;
9216 val
* var9
/* : Iterator[nullable Object] */;
9217 short int var10
/* : Bool */;
9218 val
* var11
/* : nullable Object */;
9219 val
* var_msupertype
/* var msupertype: MClassType */;
9220 val
* var12
/* : MModule */;
9221 val
* var13
/* : MType */;
9222 val
* var14
/* : ModelBuilder */;
9223 val
* var15
/* : ToolContext */;
9224 long var16
/* : Int */;
9225 long var_errcount
/* var errcount: Int */;
9226 val
* var17
/* : String */;
9227 val
* var18
/* : nullable MProperty */;
9228 short int var19
/* : Bool */;
9231 const char* var_class_name
;
9232 val
* var_candidate
/* var candidate: nullable MMethod */;
9233 val
* var20
/* : null */;
9234 short int var21
/* : Bool */;
9235 val
* var22
/* : ModelBuilder */;
9236 val
* var23
/* : ToolContext */;
9237 long var24
/* : Int */;
9238 short int var25
/* : Bool */;
9239 short int var27
/* : Bool */;
9242 const char* var_class_name30
;
9243 short int var31
/* : Bool */;
9244 short int var32
/* : Bool */;
9245 val
* var33
/* : null */;
9246 short int var34
/* : Bool */;
9247 short int var_
/* var : Bool */;
9248 val
* var35
/* : MProperty */;
9249 short int var36
/* : Bool */;
9250 static val
* varonce
;
9251 val
* var37
/* : String */;
9252 char* var38
/* : NativeString */;
9253 long var39
/* : Int */;
9254 val
* var40
/* : String */;
9255 static val
* varonce41
;
9256 val
* var42
/* : String */;
9257 char* var43
/* : NativeString */;
9258 long var44
/* : Int */;
9259 val
* var45
/* : String */;
9260 val
* var46
/* : String */;
9261 static val
* varonce47
;
9262 val
* var48
/* : String */;
9263 char* var49
/* : NativeString */;
9264 long var50
/* : Int */;
9265 val
* var51
/* : String */;
9266 val
* var52
/* : MProperty */;
9267 val
* var53
/* : String */;
9268 val
* var54
/* : Array[Object] */;
9269 long var55
/* : Int */;
9270 val
* var56
/* : NativeArray[Object] */;
9271 val
* var57
/* : String */;
9272 val
* var58
/* : MModule */;
9273 val
* var59
/* : Array[MPropDef] */;
9274 val
* var_candidatedefs
/* var candidatedefs: Array[MMethodDef] */;
9275 val
* var60
/* : null */;
9276 short int var61
/* : Bool */;
9277 val
* var62
/* : nullable Object */;
9278 short int var63
/* : Bool */;
9279 long var64
/* : Int */;
9280 long var65
/* : Int */;
9281 short int var66
/* : Bool */;
9282 short int var68
/* : Bool */;
9285 const char* var_class_name71
;
9286 short int var72
/* : Bool */;
9287 static val
* varonce73
;
9288 val
* var74
/* : String */;
9289 char* var75
/* : NativeString */;
9290 long var76
/* : Int */;
9291 val
* var77
/* : String */;
9292 static val
* varonce78
;
9293 val
* var79
/* : String */;
9294 char* var80
/* : NativeString */;
9295 long var81
/* : Int */;
9296 val
* var82
/* : String */;
9297 static val
* varonce83
;
9298 val
* var84
/* : String */;
9299 char* var85
/* : NativeString */;
9300 long var86
/* : Int */;
9301 val
* var87
/* : String */;
9302 static val
* varonce88
;
9303 val
* var89
/* : String */;
9304 char* var90
/* : NativeString */;
9305 long var91
/* : Int */;
9306 val
* var92
/* : String */;
9307 val
* var93
/* : String */;
9308 val
* var94
/* : Array[Object] */;
9309 long var95
/* : Int */;
9310 val
* var96
/* : NativeArray[Object] */;
9311 val
* var97
/* : String */;
9312 val
* var98
/* : nullable Object */;
9313 val
* var99
/* : null */;
9314 short int var100
/* : Bool */;
9315 static val
* varonce101
;
9316 val
* var102
/* : String */;
9317 char* var103
/* : NativeString */;
9318 long var104
/* : Int */;
9319 val
* var105
/* : String */;
9320 static val
* varonce106
;
9321 val
* var107
/* : String */;
9322 char* var108
/* : NativeString */;
9323 long var109
/* : Int */;
9324 val
* var110
/* : String */;
9325 val
* var111
/* : Array[Object] */;
9326 long var112
/* : Int */;
9327 val
* var113
/* : NativeArray[Object] */;
9328 val
* var114
/* : String */;
9329 val
* var115
/* : MProperty */;
9330 val
* var116
/* : AExprs */;
9331 val
* var117
/* : Array[AExpr] */;
9332 val
* var_args
/* var args: Array[AExpr] */;
9333 short int var118
/* : Bool */;
9334 val
* var119
/* : MSignature */;
9335 val
* var_msignature
/* var msignature: MSignature */;
9336 long var120
/* : Int */;
9337 long var121
/* : Int */;
9338 short int var122
/* : Bool */;
9339 short int var124
/* : Bool */;
9342 const char* var_class_name127
;
9343 short int var128
/* : Bool */;
9344 val
* var129
/* : String */;
9345 short int var130
/* : Bool */;
9346 short int var131
/* : Bool */;
9348 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9349 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var
) /* mclassdef on <var:AClassdef>*/;
9351 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9352 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1464);
9355 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:nullable MClassDef>*/;
9357 var_recvtype
= var2
;
9358 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9359 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var3
) /* mproperty on <var3:MPropDef>*/;
9360 var_mproperty
= var4
;
9362 var_superprop
= var5
;
9363 var6
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9364 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var6
) /* mclassdef on <var6:AClassdef>*/;
9366 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9367 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1467);
9370 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var7
) /* supertypes on <var7:nullable MClassDef>*/;
9372 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Array[MClassType]>*/;
9374 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
9376 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
9377 var_msupertype
= var11
;
9378 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9379 var13
= ((val
* (*)(val
*, val
*, val
*))(var_msupertype
->class->vft
[COLOR_model__MType__anchor_to
]))(var_msupertype
, var12
, var_recvtype
) /* anchor_to on <var_msupertype:MClassType>*/;
9380 var_msupertype
= var13
;
9381 var14
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
9382 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var14
) /* toolcontext on <var14:ModelBuilder>*/;
9383 var16
= ((long (*)(val
*))(var15
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var15
) /* error_count on <var15:ToolContext>*/;
9384 var_errcount
= var16
;
9385 var17
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty>*/;
9386 var18
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mproperty_by_name2
]))(var_v
, self
, var_msupertype
, var17
) /* try_get_mproperty_by_name2 on <var_v:TypeVisitor>*/;
9387 /* <var18:nullable MProperty> isa nullable MMethod */
9388 cltype
= type_nullable_model__MMethod
.color
;
9389 idtype
= type_nullable_model__MMethod
.id
;
9393 if(cltype
>= var18
->type
->table_size
) {
9396 var19
= var18
->type
->type_table
[cltype
] == idtype
;
9400 var_class_name
= var18
== NULL ?
"null" : var18
->type
->name
;
9401 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name
);
9402 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1470);
9405 var_candidate
= var18
;
9407 if (var_candidate
== NULL
) {
9408 var21
= 1; /* is null */
9410 var21
= 0; /* arg is null but recv is not */
9413 var22
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
9414 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var22
) /* toolcontext on <var22:ModelBuilder>*/;
9415 var24
= ((long (*)(val
*))(var23
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var23
) /* error_count on <var23:ToolContext>*/;
9416 { /* Inline kernel#Int#> (var24,var_errcount) */
9417 /* Covariant cast for argument 0 (i) <var_errcount:Int> isa OTHER */
9418 /* <var_errcount:Int> isa OTHER */
9419 var27
= 1; /* easy <var_errcount:Int> isa OTHER*/
9421 var_class_name30
= type_kernel__Int
.name
;
9422 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
9423 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
9426 var31
= var24
> var_errcount
;
9429 RET_LABEL26
:(void)0;
9435 goto CONTINUE_label
;
9439 if (var_superprop
== NULL
) {
9440 var34
= 0; /* is null */
9442 var34
= 1; /* arg is null and recv is not */
9446 var35
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9447 var36
= ((short int (*)(val
*, val
*))(var35
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var35
, var_candidate
) /* != on <var35:MProperty(MMethod)>*/;
9456 var38
= "Error: conflicting super constructor to call for ";
9458 var40
= string__NativeString__to_s_with_length(var38
, var39
);
9467 var45
= string__NativeString__to_s_with_length(var43
, var44
);
9471 var46
= ((val
* (*)(val
*))(var_candidate
->class->vft
[COLOR_model__MProperty__full_name
]))(var_candidate
) /* full_name on <var_candidate:nullable MMethod(MMethod)>*/;
9477 var51
= string__NativeString__to_s_with_length(var49
, var50
);
9481 var52
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9482 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model__MProperty__full_name
]))(var52
) /* full_name on <var52:MProperty(MMethod)>*/;
9483 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
9484 { /* var54 = array_instance Array[Object] */
9486 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
9487 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var37
;
9488 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var_mproperty
;
9489 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var42
;
9490 ((struct instance_array__NativeArray
*)var56
)->values
[3] = (val
*) var46
;
9491 ((struct instance_array__NativeArray
*)var56
)->values
[4] = (val
*) var48
;
9492 ((struct instance_array__NativeArray
*)var56
)->values
[5] = (val
*) var53
;
9493 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
9495 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
9496 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var57
) /* error on <var_v:TypeVisitor>*/;
9500 var58
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9501 var59
= ((val
* (*)(val
*, val
*, val
*))(var_candidate
->class->vft
[COLOR_model__MProperty__lookup_definitions
]))(var_candidate
, var58
, var_recvtype
) /* lookup_definitions on <var_candidate:nullable MMethod(MMethod)>*/;
9502 var_candidatedefs
= var59
;
9504 if (var_superprop
== NULL
) {
9505 var61
= 0; /* is null */
9507 var61
= 1; /* arg is null and recv is not */
9510 var62
= ((val
* (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_candidatedefs
) /* first on <var_candidatedefs:Array[MMethodDef]>*/;
9511 var63
= ((short int (*)(val
*, val
*))(var_superprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_superprop
, var62
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9513 goto CONTINUE_label
;
9516 ((void (*)(val
*, val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidatedefs
, var_superprop
) /* add on <var_candidatedefs:Array[MMethodDef]>*/;
9519 var64
= ((long (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidatedefs
) /* length on <var_candidatedefs:Array[MMethodDef]>*/;
9521 { /* Inline kernel#Int#> (var64,var65) */
9522 /* Covariant cast for argument 0 (i) <var65:Int> isa OTHER */
9523 /* <var65:Int> isa OTHER */
9524 var68
= 1; /* easy <var65:Int> isa OTHER*/
9526 var_class_name71
= type_kernel__Int
.name
;
9527 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71
);
9528 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
9531 var72
= var64
> var65
;
9534 RET_LABEL67
:(void)0;
9540 var75
= "Error: confliting property definitions for property ";
9542 var77
= string__NativeString__to_s_with_length(var75
, var76
);
9551 var82
= string__NativeString__to_s_with_length(var80
, var81
);
9560 var87
= string__NativeString__to_s_with_length(var85
, var86
);
9569 var92
= string__NativeString__to_s_with_length(var90
, var91
);
9573 var93
= ((val
* (*)(val
*, val
*))(var_candidatedefs
->class->vft
[COLOR_string__Collection__join
]))(var_candidatedefs
, var89
) /* join on <var_candidatedefs:Array[MMethodDef]>*/;
9574 var94
= NEW_array__Array(&type_array__Arraykernel__Object
);
9575 { /* var94 = array_instance Array[Object] */
9577 var96
= NEW_array__NativeArray(var95
, &type_array__NativeArraykernel__Object
);
9578 ((struct instance_array__NativeArray
*)var96
)->values
[0] = (val
*) var74
;
9579 ((struct instance_array__NativeArray
*)var96
)->values
[1] = (val
*) var_mproperty
;
9580 ((struct instance_array__NativeArray
*)var96
)->values
[2] = (val
*) var79
;
9581 ((struct instance_array__NativeArray
*)var96
)->values
[3] = (val
*) var_recvtype
;
9582 ((struct instance_array__NativeArray
*)var96
)->values
[4] = (val
*) var84
;
9583 ((struct instance_array__NativeArray
*)var96
)->values
[5] = (val
*) var93
;
9584 ((void (*)(val
*, val
*, long))(var94
->class->vft
[COLOR_array__Array__with_native
]))(var94
, var96
, var95
) /* with_native on <var94:Array[Object]>*/;
9586 var97
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_string__Object__to_s
]))(var94
) /* to_s on <var94:Array[Object]>*/;
9587 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var97
) /* error on <var_v:TypeVisitor>*/;
9591 var98
= ((val
* (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_candidatedefs
) /* first on <var_candidatedefs:Array[MMethodDef]>*/;
9592 var_superprop
= var98
;
9593 CONTINUE_label
: (void)0;
9594 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
9596 BREAK_label
: (void)0;
9598 if (var_superprop
== NULL
) {
9599 var100
= 1; /* is null */
9601 var100
= 0; /* arg is null but recv is not */
9605 var102
= varonce101
;
9607 var103
= "Error: No super method to call for ";
9609 var105
= string__NativeString__to_s_with_length(var103
, var104
);
9611 varonce101
= var102
;
9614 var107
= varonce106
;
9618 var110
= string__NativeString__to_s_with_length(var108
, var109
);
9620 varonce106
= var107
;
9622 var111
= NEW_array__Array(&type_array__Arraykernel__Object
);
9623 { /* var111 = array_instance Array[Object] */
9625 var113
= NEW_array__NativeArray(var112
, &type_array__NativeArraykernel__Object
);
9626 ((struct instance_array__NativeArray
*)var113
)->values
[0] = (val
*) var102
;
9627 ((struct instance_array__NativeArray
*)var113
)->values
[1] = (val
*) var_mproperty
;
9628 ((struct instance_array__NativeArray
*)var113
)->values
[2] = (val
*) var107
;
9629 ((void (*)(val
*, val
*, long))(var111
->class->vft
[COLOR_array__Array__with_native
]))(var111
, var113
, var112
) /* with_native on <var111:Array[Object]>*/;
9631 var114
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_string__Object__to_s
]))(var111
) /* to_s on <var111:Array[Object]>*/;
9632 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var114
) /* error on <var_v:TypeVisitor>*/;
9636 var115
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9637 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__mproperty_61d
]))(self
, var115
) /* mproperty= on <self:ASuperExpr>*/;
9638 var116
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
9639 var117
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_typing__AExprs__to_a
]))(var116
) /* to_a on <var116:AExprs>*/;
9642 var119
= ((val
* (*)(val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_signature_for
]))(var_v
, var_superprop
, var_recvtype
, var118
) /* resolve_signature_for on <var_v:TypeVisitor>*/;
9643 var_msignature
= var119
;
9644 var120
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
9646 { /* Inline kernel#Int#> (var120,var121) */
9647 /* Covariant cast for argument 0 (i) <var121:Int> isa OTHER */
9648 /* <var121:Int> isa OTHER */
9649 var124
= 1; /* easy <var121:Int> isa OTHER*/
9651 var_class_name127
= type_kernel__Int
.name
;
9652 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name127
);
9653 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
9656 var128
= var120
> var121
;
9659 RET_LABEL123
:(void)0;
9662 var129
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty>*/;
9663 var130
= ((short int (*)(val
*, val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__check_signature
]))(var_v
, self
, var_args
, var129
, var_msignature
) /* check_signature on <var_v:TypeVisitor>*/;
9668 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var131
) /* is_typed= on <self:ASuperExpr>*/;
9671 /* method typing#ASuperExpr#process_superinit for (self: Object, TypeVisitor) */
9672 void VIRTUAL_typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
9673 typing__ASuperExpr__process_superinit(self
, p0
);
9676 /* method typing#ANewExpr#mproperty for (self: ANewExpr): nullable MMethod */
9677 val
* typing__ANewExpr__mproperty(val
* self
) {
9678 val
* var
/* : nullable MMethod */;
9679 val
* var1
/* : nullable CallSite */;
9680 val
* var2
/* : MMethod */;
9681 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ANewExpr__callsite
]))(self
) /* callsite on <self:ANewExpr>*/;
9683 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9684 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1512);
9687 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
9694 /* method typing#ANewExpr#mproperty for (self: Object): nullable MMethod */
9695 val
* VIRTUAL_typing__ANewExpr__mproperty(val
* self
) {
9696 val
* var
/* : nullable MMethod */;
9697 val
* var1
/* : nullable MMethod */;
9698 var1
= typing__ANewExpr__mproperty(self
);
9703 /* method typing#ANewExpr#callsite for (self: ANewExpr): nullable CallSite */
9704 val
* typing__ANewExpr__callsite(val
* self
) {
9705 val
* var
/* : nullable CallSite */;
9706 val
* var1
/* : nullable CallSite */;
9707 var1
= self
->attrs
[COLOR_typing__ANewExpr___64dcallsite
].val
; /* @callsite on <self:ANewExpr> */
9712 /* method typing#ANewExpr#callsite for (self: Object): nullable CallSite */
9713 val
* VIRTUAL_typing__ANewExpr__callsite(val
* self
) {
9714 val
* var
/* : nullable CallSite */;
9715 val
* var1
/* : nullable CallSite */;
9716 var1
= typing__ANewExpr__callsite(self
);
9721 /* method typing#ANewExpr#callsite= for (self: ANewExpr, nullable CallSite) */
9722 void typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
9723 self
->attrs
[COLOR_typing__ANewExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ANewExpr> */
9726 /* method typing#ANewExpr#callsite= for (self: Object, nullable CallSite) */
9727 void VIRTUAL_typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
9728 typing__ANewExpr__callsite_61d(self
, p0
);