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 CHECK_NEW_scope__Variable(var2
);
254 var_selfvariable
= var2
;
255 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__selfvariable_61d
]))(self
, var_selfvariable
) /* selfvariable= on <self:TypeVisitor>*/;
256 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:MClass>*/;
257 ((void (*)(val
*, val
*))(var_selfvariable
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var_selfvariable
, var7
) /* declared_type= on <var_selfvariable:Variable>*/;
260 /* method typing#TypeVisitor#init for (self: Object, ModelBuilder, AClassdef, MPropDef) */
261 void VIRTUAL_typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
262 typing__TypeVisitor__init(self
, p0
, p1
, p2
);
265 /* method typing#TypeVisitor#mmodule for (self: TypeVisitor): MModule */
266 val
* typing__TypeVisitor__mmodule(val
* self
) {
267 val
* var
/* : MModule */;
268 val
* var1
/* : AClassdef */;
269 val
* var2
/* : nullable MClassDef */;
270 val
* var3
/* : MModule */;
271 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
272 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
274 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
275 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 60);
278 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
285 /* method typing#TypeVisitor#mmodule for (self: Object): MModule */
286 val
* VIRTUAL_typing__TypeVisitor__mmodule(val
* self
) {
287 val
* var
/* : MModule */;
288 val
* var1
/* : MModule */;
289 var1
= typing__TypeVisitor__mmodule(self
);
294 /* method typing#TypeVisitor#anchor for (self: TypeVisitor): MClassType */
295 val
* typing__TypeVisitor__anchor(val
* self
) {
296 val
* var
/* : MClassType */;
297 val
* var1
/* : AClassdef */;
298 val
* var2
/* : nullable MClassDef */;
299 val
* var3
/* : MClassType */;
300 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
301 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
303 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
304 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 62);
307 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var2
) /* bound_mtype on <var2:nullable MClassDef>*/;
314 /* method typing#TypeVisitor#anchor for (self: Object): MClassType */
315 val
* VIRTUAL_typing__TypeVisitor__anchor(val
* self
) {
316 val
* var
/* : MClassType */;
317 val
* var1
/* : MClassType */;
318 var1
= typing__TypeVisitor__anchor(self
);
323 /* method typing#TypeVisitor#anchor_to for (self: TypeVisitor, MType): MType */
324 val
* typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
325 val
* var
/* : MType */;
326 val
* var_mtype
/* var mtype: MType */;
327 val
* var1
/* : AClassdef */;
328 val
* var2
/* : nullable MClassDef */;
329 val
* var3
/* : MModule */;
330 val
* var_mmodule
/* var mmodule: MModule */;
331 val
* var4
/* : AClassdef */;
332 val
* var5
/* : nullable MClassDef */;
333 val
* var6
/* : MClassType */;
334 val
* var_anchor
/* var anchor: MClassType */;
335 val
* var7
/* : MType */;
337 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
338 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
340 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
341 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 66);
344 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
347 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
348 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
350 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
351 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 67);
354 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
357 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>*/;
363 /* method typing#TypeVisitor#anchor_to for (self: Object, MType): MType */
364 val
* VIRTUAL_typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
365 val
* var
/* : MType */;
366 val
* var1
/* : MType */;
367 var1
= typing__TypeVisitor__anchor_to(self
, p0
);
372 /* method typing#TypeVisitor#is_subtype for (self: TypeVisitor, MType, MType): Bool */
373 short int typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
374 short int var
/* : Bool */;
375 val
* var_sub
/* var sub: MType */;
376 val
* var_sup
/* var sup: MType */;
377 val
* var1
/* : AClassdef */;
378 val
* var2
/* : nullable MClassDef */;
379 val
* var3
/* : MModule */;
380 val
* var_mmodule
/* var mmodule: MModule */;
381 val
* var4
/* : AClassdef */;
382 val
* var5
/* : nullable MClassDef */;
383 val
* var6
/* : MClassType */;
384 val
* var_anchor
/* var anchor: MClassType */;
385 short int var7
/* : Bool */;
388 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
389 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
391 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
392 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 73);
395 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
398 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
399 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
401 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
402 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 74);
405 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
408 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>*/;
414 /* method typing#TypeVisitor#is_subtype for (self: Object, MType, MType): Bool */
415 short int VIRTUAL_typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
416 short int var
/* : Bool */;
417 short int var1
/* : Bool */;
418 var1
= typing__TypeVisitor__is_subtype(self
, p0
, p1
);
423 /* method typing#TypeVisitor#resolve_for for (self: TypeVisitor, MType, MType, Bool): MType */
424 val
* typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
425 val
* var
/* : MType */;
426 val
* var_mtype
/* var mtype: MType */;
427 val
* var_subtype
/* var subtype: MType */;
428 short int var_for_self
/* var for_self: Bool */;
429 val
* var1
/* : AClassdef */;
430 val
* var2
/* : nullable MClassDef */;
431 val
* var3
/* : MModule */;
432 val
* var_mmodule
/* var mmodule: MModule */;
433 val
* var4
/* : AClassdef */;
434 val
* var5
/* : nullable MClassDef */;
435 val
* var6
/* : MClassType */;
436 val
* var_anchor
/* var anchor: MClassType */;
437 short int var7
/* : Bool */;
438 val
* var8
/* : MType */;
439 val
* var_res
/* var res: MType */;
443 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
444 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
446 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
447 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 80);
450 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
453 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
454 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
456 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
457 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 81);
460 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
463 var7
= !var_for_self
;
464 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>*/;
471 /* method typing#TypeVisitor#resolve_for for (self: Object, MType, MType, Bool): MType */
472 val
* VIRTUAL_typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
473 val
* var
/* : MType */;
474 val
* var1
/* : MType */;
475 var1
= typing__TypeVisitor__resolve_for(self
, p0
, p1
, p2
);
480 /* method typing#TypeVisitor#resolve_signature_for for (self: TypeVisitor, MMethodDef, MType, Bool): MSignature */
481 val
* typing__TypeVisitor__resolve_signature_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
482 val
* var
/* : MSignature */;
483 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
484 val
* var_recv
/* var recv: MType */;
485 short int var_for_self
/* var for_self: Bool */;
486 val
* var1
/* : nullable MSignature */;
487 val
* var2
/* : MType */;
488 short int var3
/* : Bool */;
491 const char* var_class_name
;
495 var1
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
497 fprintf(stderr
, "Runtime error: %s", "Cast failed");
498 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 94);
501 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>*/;
502 /* <var2:MType> isa MSignature */
503 cltype
= type_model__MSignature
.color
;
504 idtype
= type_model__MSignature
.id
;
505 if(cltype
>= var2
->type
->table_size
) {
508 var3
= var2
->type
->type_table
[cltype
] == idtype
;
511 var_class_name
= var2
== NULL ?
"null" : var2
->type
->name
;
512 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
513 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 94);
521 /* method typing#TypeVisitor#resolve_signature_for for (self: Object, MMethodDef, MType, Bool): MSignature */
522 val
* VIRTUAL_typing__TypeVisitor__resolve_signature_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
523 val
* var
/* : MSignature */;
524 val
* var1
/* : MSignature */;
525 var1
= typing__TypeVisitor__resolve_signature_for(self
, p0
, p1
, p2
);
530 /* method typing#TypeVisitor#check_subtype for (self: TypeVisitor, ANode, MType, MType): nullable MType */
531 val
* typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
532 val
* var
/* : nullable MType */;
533 val
* var_node
/* var node: ANode */;
534 val
* var_sub
/* var sub: MType */;
535 val
* var_sup
/* var sup: MType */;
536 short int var1
/* : Bool */;
537 val
* var2
/* : MType */;
538 short int var3
/* : Bool */;
539 val
* var4
/* : ModelBuilder */;
541 val
* var5
/* : String */;
542 char* var6
/* : NativeString */;
543 long var7
/* : Int */;
544 val
* var8
/* : String */;
545 static val
* varonce9
;
546 val
* var10
/* : String */;
547 char* var11
/* : NativeString */;
548 long var12
/* : Int */;
549 val
* var13
/* : String */;
550 val
* var14
/* : Array[Object] */;
551 long var15
/* : Int */;
552 val
* var16
/* : NativeArray[Object] */;
553 val
* var17
/* : String */;
554 val
* var18
/* : null */;
558 var1
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var_sup
) /* is_subtype on <self:TypeVisitor>*/;
564 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(self
, var_sup
) /* anchor_to on <self:TypeVisitor>*/;
565 var3
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var2
) /* is_subtype on <self:TypeVisitor>*/;
571 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
575 var6
= "Type error: expected ";
577 var8
= string__NativeString__to_s_with_length(var6
, var7
);
586 var13
= string__NativeString__to_s_with_length(var11
, var12
);
590 var14
= NEW_array__Array(&type_array__Arraykernel__Object
);
591 { /* var14 = array_instance Array[Object] */
593 var16
= NEW_array__NativeArray(var15
, &type_array__NativeArraykernel__Object
);
594 ((struct instance_array__NativeArray
*)var16
)->values
[0] = (val
*) var5
;
595 ((struct instance_array__NativeArray
*)var16
)->values
[1] = (val
*) var_sup
;
596 ((struct instance_array__NativeArray
*)var16
)->values
[2] = (val
*) var10
;
597 ((struct instance_array__NativeArray
*)var16
)->values
[3] = (val
*) var_sub
;
598 ((void (*)(val
*, val
*, long))(var14
->class->vft
[COLOR_array__Array__with_native
]))(var14
, var16
, var15
) /* with_native on <var14:Array[Object]>*/;
599 CHECK_NEW_array__Array(var14
);
601 var17
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_string__Object__to_s
]))(var14
) /* to_s on <var14:Array[Object]>*/;
602 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var4
, var_node
, var17
) /* error on <var4:ModelBuilder>*/;
609 /* method typing#TypeVisitor#check_subtype for (self: Object, ANode, MType, MType): nullable MType */
610 val
* VIRTUAL_typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
611 val
* var
/* : nullable MType */;
612 val
* var1
/* : nullable MType */;
613 var1
= typing__TypeVisitor__check_subtype(self
, p0
, p1
, p2
);
618 /* method typing#TypeVisitor#visit_stmt for (self: TypeVisitor, nullable AExpr) */
619 void typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
620 val
* var_nexpr
/* var nexpr: nullable AExpr */;
621 val
* var
/* : null */;
622 short int var1
/* : Bool */;
625 if (var_nexpr
== NULL
) {
626 var1
= 1; /* is null */
628 var1
= 0; /* arg is null but recv is not */
634 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:nullable AExpr(AExpr)>*/;
637 /* method typing#TypeVisitor#visit_stmt for (self: Object, nullable AExpr) */
638 void VIRTUAL_typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
639 typing__TypeVisitor__visit_stmt(self
, p0
);
642 /* method typing#TypeVisitor#visit_expr for (self: TypeVisitor, AExpr): nullable MType */
643 val
* typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
644 val
* var
/* : nullable MType */;
645 val
* var_nexpr
/* var nexpr: AExpr */;
646 val
* var1
/* : nullable MType */;
647 val
* var_mtype
/* var mtype: nullable MType */;
648 val
* var2
/* : null */;
649 short int var3
/* : Bool */;
650 short int var4
/* : Bool */;
651 short int var5
/* : Bool */;
652 val
* var6
/* : ModelBuilder */;
653 val
* var7
/* : ToolContext */;
654 long var8
/* : Int */;
655 long var9
/* : Int */;
656 short int var10
/* : Bool */;
657 short int var12
/* : Bool */;
660 const char* var_class_name
;
661 short int var13
/* : Bool */;
662 short int var14
/* : Bool */;
663 val
* var15
/* : ModelBuilder */;
664 val
* var16
/* : ToolContext */;
665 long var17
/* : Int */;
666 long var18
/* : Int */;
667 short int var19
/* : Bool */;
668 short int var21
/* : Bool */;
671 const char* var_class_name24
;
672 short int var25
/* : Bool */;
674 val
* var26
/* : String */;
675 char* var27
/* : NativeString */;
676 long var28
/* : Int */;
677 val
* var29
/* : String */;
678 val
* var30
/* : null */;
679 static val
* varonce31
;
680 val
* var32
/* : String */;
681 char* var33
/* : NativeString */;
682 long var34
/* : Int */;
683 val
* var35
/* : String */;
684 val
* var36
/* : null */;
686 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:AExpr>*/;
687 var1
= ((val
* (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__mtype
]))(var_nexpr
) /* mtype on <var_nexpr:AExpr>*/;
690 if (var_mtype
== NULL
) {
691 var3
= 0; /* is null */
693 var3
= 1; /* arg is null and recv is not */
700 var4
= ((short int (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__is_typed
]))(var_nexpr
) /* is_typed on <var_nexpr:AExpr>*/;
703 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
704 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var6
) /* toolcontext on <var6:ModelBuilder>*/;
705 var8
= ((long (*)(val
*))(var7
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var7
) /* error_count on <var7:ToolContext>*/;
707 { /* Inline kernel#Int#> (var8,var9) */
708 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
709 /* <var9:Int> isa OTHER */
710 var12
= 1; /* easy <var9:Int> isa OTHER*/
712 var_class_name
= type_kernel__Int
.name
;
713 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
714 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
724 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
725 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var15
) /* toolcontext on <var15:ModelBuilder>*/;
726 var17
= ((long (*)(val
*))(var16
->class->vft
[COLOR_toolcontext__ToolContext__verbose_level
]))(var16
) /* verbose_level on <var16:ToolContext>*/;
728 { /* Inline kernel#Int#> (var17,var18) */
729 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
730 /* <var18:Int> isa OTHER */
731 var21
= 1; /* easy <var18:Int> isa OTHER*/
733 var_class_name24
= type_kernel__Int
.name
;
734 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24
);
735 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
738 var25
= var17
> var18
;
747 var27
= "No return type but no error.";
749 var29
= string__NativeString__to_s_with_length(var27
, var28
);
753 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(var_nexpr
, var26
) /* debug on <var_nexpr:AExpr>*/;
766 var33
= "Type error: expected expression.";
768 var35
= string__NativeString__to_s_with_length(var33
, var34
);
772 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_nexpr
, var32
) /* error on <self:TypeVisitor>*/;
779 /* method typing#TypeVisitor#visit_expr for (self: Object, AExpr): nullable MType */
780 val
* VIRTUAL_typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
781 val
* var
/* : nullable MType */;
782 val
* var1
/* : nullable MType */;
783 var1
= typing__TypeVisitor__visit_expr(self
, p0
);
788 /* method typing#TypeVisitor#visit_expr_subtype for (self: TypeVisitor, AExpr, nullable MType): nullable MType */
789 val
* typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
790 val
* var
/* : nullable MType */;
791 val
* var_nexpr
/* var nexpr: AExpr */;
792 val
* var_sup
/* var sup: nullable MType */;
793 val
* var1
/* : nullable MType */;
794 val
* var_sub
/* var sub: nullable MType */;
795 val
* var2
/* : null */;
796 short int var3
/* : Bool */;
797 val
* var4
/* : null */;
798 val
* var5
/* : null */;
799 short int var6
/* : Bool */;
800 val
* var7
/* : null */;
801 val
* var8
/* : nullable MType */;
802 val
* var_res
/* var res: nullable MType */;
803 short int var9
/* : Bool */;
806 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(self
, var_nexpr
) /* visit_expr on <self:TypeVisitor>*/;
809 if (var_sub
== NULL
) {
810 var3
= 1; /* is null */
812 var3
= 0; /* arg is null but recv is not */
821 if (var_sup
== NULL
) {
822 var6
= 1; /* is null */
824 var6
= 0; /* arg is null but recv is not */
832 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>*/;
834 if (var_res
== NULL
) {
835 var9
= 1; /* <var_sub:nullable MType(MType)> cannot be null */
837 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_res
, var_sub
) /* != on <var_res:nullable MType>*/;
840 ((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>*/;
848 /* method typing#TypeVisitor#visit_expr_subtype for (self: Object, AExpr, nullable MType): nullable MType */
849 val
* VIRTUAL_typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
850 val
* var
/* : nullable MType */;
851 val
* var1
/* : nullable MType */;
852 var1
= typing__TypeVisitor__visit_expr_subtype(self
, p0
, p1
);
857 /* method typing#TypeVisitor#visit_expr_bool for (self: TypeVisitor, AExpr): nullable MType */
858 val
* typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
859 val
* var
/* : nullable MType */;
860 val
* var_nexpr
/* var nexpr: AExpr */;
861 val
* var1
/* : nullable MType */;
862 val
* var2
/* : nullable MType */;
864 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(self
, var_nexpr
) /* type_bool on <self:TypeVisitor>*/;
865 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var_nexpr
, var1
) /* visit_expr_subtype on <self:TypeVisitor>*/;
871 /* method typing#TypeVisitor#visit_expr_bool for (self: Object, AExpr): nullable MType */
872 val
* VIRTUAL_typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
873 val
* var
/* : nullable MType */;
874 val
* var1
/* : nullable MType */;
875 var1
= typing__TypeVisitor__visit_expr_bool(self
, p0
);
880 /* method typing#TypeVisitor#visit_expr_cast for (self: TypeVisitor, ANode, AExpr, AType): nullable MType */
881 val
* typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
882 val
* var
/* : nullable MType */;
883 val
* var_node
/* var node: ANode */;
884 val
* var_nexpr
/* var nexpr: AExpr */;
885 val
* var_ntype
/* var ntype: AType */;
886 val
* var1
/* : nullable MType */;
887 val
* var_sub
/* var sub: nullable MType */;
888 val
* var2
/* : null */;
889 short int var3
/* : Bool */;
890 val
* var4
/* : null */;
891 val
* var5
/* : nullable MType */;
892 val
* var_sup
/* var sup: nullable MType */;
893 val
* var6
/* : null */;
894 short int var7
/* : Bool */;
895 val
* var8
/* : null */;
896 val
* var9
/* : AClassdef */;
897 val
* var10
/* : nullable MClassDef */;
898 val
* var11
/* : MModule */;
899 val
* var_mmodule
/* var mmodule: MModule */;
900 val
* var12
/* : AClassdef */;
901 val
* var13
/* : nullable MClassDef */;
902 val
* var14
/* : MClassType */;
903 val
* var_anchor
/* var anchor: MClassType */;
904 short int var15
/* : Bool */;
905 val
* var16
/* : ModelBuilder */;
907 val
* var17
/* : String */;
908 char* var18
/* : NativeString */;
909 long var19
/* : Int */;
910 val
* var20
/* : String */;
911 static val
* varonce21
;
912 val
* var22
/* : String */;
913 char* var23
/* : NativeString */;
914 long var24
/* : Int */;
915 val
* var25
/* : String */;
916 val
* var26
/* : Array[Object] */;
917 long var27
/* : Int */;
918 val
* var28
/* : NativeArray[Object] */;
919 val
* var29
/* : String */;
920 short int var30
/* : Bool */;
921 short int var31
/* : Bool */;
922 short int var_
/* var : Bool */;
923 short int var32
/* : Bool */;
924 short int var33
/* : Bool */;
925 val
* var34
/* : ModelBuilder */;
926 static val
* varonce35
;
927 val
* var36
/* : String */;
928 char* var37
/* : NativeString */;
929 long var38
/* : Int */;
930 val
* var39
/* : String */;
931 static val
* varonce40
;
932 val
* var41
/* : String */;
933 char* var42
/* : NativeString */;
934 long var43
/* : Int */;
935 val
* var44
/* : String */;
936 static val
* varonce45
;
937 val
* var46
/* : String */;
938 char* var47
/* : NativeString */;
939 long var48
/* : Int */;
940 val
* var49
/* : String */;
941 val
* var50
/* : Array[Object] */;
942 long var51
/* : Int */;
943 val
* var52
/* : NativeArray[Object] */;
944 val
* var53
/* : String */;
948 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(self
, var_nexpr
) /* visit_expr on <self:TypeVisitor>*/;
951 if (var_sub
== NULL
) {
952 var3
= 1; /* is null */
954 var3
= 0; /* arg is null but recv is not */
962 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(self
, var_ntype
) /* resolve_mtype on <self:TypeVisitor>*/;
965 if (var_sup
== NULL
) {
966 var7
= 1; /* is null */
968 var7
= 0; /* arg is null but recv is not */
976 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
977 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var9
) /* mclassdef on <var9:AClassdef>*/;
979 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
980 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 184);
983 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var10
) /* mmodule on <var10:nullable MClassDef>*/;
986 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
987 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var12
) /* mclassdef on <var12:AClassdef>*/;
989 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
990 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 185);
993 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var13
) /* bound_mtype on <var13:nullable MClassDef>*/;
996 var15
= ((short int (*)(val
*, val
*))(var_sup
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sup
, var_sub
) /* == on <var_sup:nullable MType(MType)>*/;
998 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1002 var18
= "Warning: Expression is already a ";
1004 var20
= string__NativeString__to_s_with_length(var18
, var19
);
1013 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1017 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
1018 { /* var26 = array_instance Array[Object] */
1020 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
1021 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
1022 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_sup
;
1023 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var22
;
1024 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
1025 CHECK_NEW_array__Array(var26
);
1027 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
1028 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var16
, var_node
, var29
) /* warning on <var16:ModelBuilder>*/;
1030 var31
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var_sup
) /* is_subtype on <self:TypeVisitor>*/;
1033 var32
= ((short int (*)(val
*))(var_sup
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sup
) /* need_anchor on <var_sup:nullable MType(MType)>*/;
1040 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1044 var37
= "Warning: Expression is already a ";
1046 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1053 var42
= " since it is a ";
1055 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1064 var49
= string__NativeString__to_s_with_length(var47
, var48
);
1068 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
1069 { /* var50 = array_instance Array[Object] */
1071 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
1072 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var36
;
1073 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var_sup
;
1074 ((struct instance_array__NativeArray
*)var52
)->values
[2] = (val
*) var41
;
1075 ((struct instance_array__NativeArray
*)var52
)->values
[3] = (val
*) var_sub
;
1076 ((struct instance_array__NativeArray
*)var52
)->values
[4] = (val
*) var46
;
1077 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
1078 CHECK_NEW_array__Array(var50
);
1080 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
1081 ((void (*)(val
*, val
*, val
*))(var34
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var34
, var_node
, var53
) /* warning on <var34:ModelBuilder>*/;
1090 /* method typing#TypeVisitor#visit_expr_cast for (self: Object, ANode, AExpr, AType): nullable MType */
1091 val
* VIRTUAL_typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1092 val
* var
/* : nullable MType */;
1093 val
* var1
/* : nullable MType */;
1094 var1
= typing__TypeVisitor__visit_expr_cast(self
, p0
, p1
, p2
);
1099 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: TypeVisitor, ANode, MType, String): nullable MProperty */
1100 val
* typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1101 val
* var
/* : nullable MProperty */;
1102 val
* var_anode
/* var anode: ANode */;
1103 val
* var_mtype
/* var mtype: MType */;
1104 val
* var_name
/* var name: String */;
1105 val
* var1
/* : ModelBuilder */;
1106 val
* var2
/* : AClassdef */;
1107 val
* var3
/* : nullable MClassDef */;
1108 val
* var4
/* : MModule */;
1109 val
* var5
/* : nullable MProperty */;
1113 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1114 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1115 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var2
) /* mclassdef on <var2:AClassdef>*/;
1117 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1118 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 196);
1121 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var3
) /* mmodule on <var3:nullable MClassDef>*/;
1123 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>*/;
1129 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: Object, ANode, MType, String): nullable MProperty */
1130 val
* VIRTUAL_typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1131 val
* var
/* : nullable MProperty */;
1132 val
* var1
/* : nullable MProperty */;
1133 var1
= typing__TypeVisitor__try_get_mproperty_by_name2(self
, p0
, p1
, p2
);
1138 /* method typing#TypeVisitor#resolve_mtype for (self: TypeVisitor, AType): nullable MType */
1139 val
* typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
1140 val
* var
/* : nullable MType */;
1141 val
* var_node
/* var node: AType */;
1142 val
* var1
/* : ModelBuilder */;
1143 val
* var2
/* : AClassdef */;
1144 val
* var3
/* : nullable MType */;
1146 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1147 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1148 var3
= ((val
* (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype
]))(var1
, var2
, var_node
) /* resolve_mtype on <var1:ModelBuilder>*/;
1154 /* method typing#TypeVisitor#resolve_mtype for (self: Object, AType): nullable MType */
1155 val
* VIRTUAL_typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
1156 val
* var
/* : nullable MType */;
1157 val
* var1
/* : nullable MType */;
1158 var1
= typing__TypeVisitor__resolve_mtype(self
, p0
);
1163 /* method typing#TypeVisitor#try_get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1164 val
* typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1165 val
* var
/* : nullable MClass */;
1166 val
* var_node
/* var node: ANode */;
1167 val
* var_name
/* var name: String */;
1168 val
* var1
/* : AClassdef */;
1169 val
* var2
/* : nullable MClassDef */;
1170 val
* var3
/* : MModule */;
1171 val
* var_mmodule
/* var mmodule: MModule */;
1172 val
* var4
/* : ModelBuilder */;
1173 val
* var5
/* : nullable MClass */;
1174 val
* var_mclass
/* var mclass: nullable MClass */;
1177 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1178 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
1180 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1181 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 206);
1184 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
1187 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1188 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>*/;
1195 /* method typing#TypeVisitor#try_get_mclass for (self: Object, ANode, String): nullable MClass */
1196 val
* VIRTUAL_typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1197 val
* var
/* : nullable MClass */;
1198 val
* var1
/* : nullable MClass */;
1199 var1
= typing__TypeVisitor__try_get_mclass(self
, p0
, p1
);
1204 /* method typing#TypeVisitor#get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1205 val
* typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
1206 val
* var
/* : nullable MClass */;
1207 val
* var_node
/* var node: ANode */;
1208 val
* var_name
/* var name: String */;
1209 val
* var1
/* : AClassdef */;
1210 val
* var2
/* : nullable MClassDef */;
1211 val
* var3
/* : MModule */;
1212 val
* var_mmodule
/* var mmodule: MModule */;
1213 val
* var4
/* : ModelBuilder */;
1214 val
* var5
/* : nullable MClass */;
1215 val
* var_mclass
/* var mclass: nullable MClass */;
1216 val
* var6
/* : null */;
1217 short int var7
/* : Bool */;
1218 val
* var8
/* : ModelBuilder */;
1219 static val
* varonce
;
1220 val
* var9
/* : String */;
1221 char* var10
/* : NativeString */;
1222 long var11
/* : Int */;
1223 val
* var12
/* : String */;
1224 static val
* varonce13
;
1225 val
* var14
/* : String */;
1226 char* var15
/* : NativeString */;
1227 long var16
/* : Int */;
1228 val
* var17
/* : String */;
1229 val
* var18
/* : Array[Object] */;
1230 long var19
/* : Int */;
1231 val
* var20
/* : NativeArray[Object] */;
1232 val
* var21
/* : String */;
1235 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1236 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
1238 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1239 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 213);
1242 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
1245 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1246 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>*/;
1249 if (var_mclass
== NULL
) {
1250 var7
= 1; /* is null */
1252 var7
= 0; /* arg is null but recv is not */
1255 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1259 var10
= "Type Error: missing primitive class `";
1261 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1270 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1274 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
1275 { /* var18 = array_instance Array[Object] */
1277 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
1278 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var9
;
1279 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var_name
;
1280 ((struct instance_array__NativeArray
*)var20
)->values
[2] = (val
*) var14
;
1281 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
1282 CHECK_NEW_array__Array(var18
);
1284 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
1285 ((void (*)(val
*, val
*, val
*))(var8
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var8
, var_node
, var21
) /* error on <var8:ModelBuilder>*/;
1293 /* method typing#TypeVisitor#get_mclass for (self: Object, ANode, String): nullable MClass */
1294 val
* VIRTUAL_typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
1295 val
* var
/* : nullable MClass */;
1296 val
* var1
/* : nullable MClass */;
1297 var1
= typing__TypeVisitor__get_mclass(self
, p0
, p1
);
1302 /* method typing#TypeVisitor#type_bool for (self: TypeVisitor, ANode): nullable MType */
1303 val
* typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
1304 val
* var
/* : nullable MType */;
1305 val
* var_node
/* var node: ANode */;
1306 static val
* varonce
;
1307 val
* var1
/* : String */;
1308 char* var2
/* : NativeString */;
1309 long var3
/* : Int */;
1310 val
* var4
/* : String */;
1311 val
* var5
/* : nullable MClass */;
1312 val
* var_mclass
/* var mclass: nullable MClass */;
1313 val
* var6
/* : null */;
1314 short int var7
/* : Bool */;
1315 val
* var8
/* : null */;
1316 val
* var9
/* : MClassType */;
1323 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1327 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(self
, var_node
, var1
) /* get_mclass on <self:TypeVisitor>*/;
1330 if (var_mclass
== NULL
) {
1331 var7
= 1; /* is null */
1333 var7
= 0; /* arg is null but recv is not */
1341 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
1347 /* method typing#TypeVisitor#type_bool for (self: Object, ANode): nullable MType */
1348 val
* VIRTUAL_typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
1349 val
* var
/* : nullable MType */;
1350 val
* var1
/* : nullable MType */;
1351 var1
= typing__TypeVisitor__type_bool(self
, p0
);
1356 /* method typing#TypeVisitor#get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
1357 val
* typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
1358 val
* var
/* : nullable CallSite */;
1359 val
* var_node
/* var node: ANode */;
1360 val
* var_recvtype
/* var recvtype: MType */;
1361 val
* var_name
/* var name: String */;
1362 short int var_recv_is_self
/* var recv_is_self: Bool */;
1363 val
* var1
/* : MType */;
1364 val
* var_unsafe_type
/* var unsafe_type: MType */;
1365 short int var2
/* : Bool */;
1368 static val
* varonce
;
1369 val
* var3
/* : String */;
1370 char* var4
/* : NativeString */;
1371 long var5
/* : Int */;
1372 val
* var6
/* : String */;
1373 static val
* varonce7
;
1374 val
* var8
/* : String */;
1375 char* var9
/* : NativeString */;
1376 long var10
/* : Int */;
1377 val
* var11
/* : String */;
1378 val
* var12
/* : Array[Object] */;
1379 long var13
/* : Int */;
1380 val
* var14
/* : NativeArray[Object] */;
1381 val
* var15
/* : String */;
1382 val
* var16
/* : null */;
1383 val
* var17
/* : nullable MProperty */;
1384 val
* var_mproperty
/* var mproperty: nullable MProperty */;
1385 val
* var18
/* : null */;
1386 short int var19
/* : Bool */;
1387 val
* var20
/* : ModelBuilder */;
1388 static val
* varonce21
;
1389 val
* var22
/* : String */;
1390 char* var23
/* : NativeString */;
1391 long var24
/* : Int */;
1392 val
* var25
/* : String */;
1393 static val
* varonce26
;
1394 val
* var27
/* : String */;
1395 char* var28
/* : NativeString */;
1396 long var29
/* : Int */;
1397 val
* var30
/* : String */;
1398 static val
* varonce31
;
1399 val
* var32
/* : String */;
1400 char* var33
/* : NativeString */;
1401 long var34
/* : Int */;
1402 val
* var35
/* : String */;
1403 val
* var36
/* : Array[Object] */;
1404 long var37
/* : Int */;
1405 val
* var38
/* : NativeArray[Object] */;
1406 val
* var39
/* : String */;
1407 val
* var40
/* : ModelBuilder */;
1408 static val
* varonce41
;
1409 val
* var42
/* : String */;
1410 char* var43
/* : NativeString */;
1411 long var44
/* : Int */;
1412 val
* var45
/* : String */;
1413 static val
* varonce46
;
1414 val
* var47
/* : String */;
1415 char* var48
/* : NativeString */;
1416 long var49
/* : Int */;
1417 val
* var50
/* : String */;
1418 static val
* varonce51
;
1419 val
* var52
/* : String */;
1420 char* var53
/* : NativeString */;
1421 long var54
/* : Int */;
1422 val
* var55
/* : String */;
1423 val
* var56
/* : Array[Object] */;
1424 long var57
/* : Int */;
1425 val
* var58
/* : NativeArray[Object] */;
1426 val
* var59
/* : String */;
1427 val
* var60
/* : null */;
1428 short int var61
/* : Bool */;
1431 short int var64
/* : Bool */;
1432 short int var65
/* : Bool */;
1433 val
* var66
/* : MVisibility */;
1434 val
* var67
/* : MVisibility */;
1435 short int var68
/* : Bool */;
1436 short int var_
/* var : Bool */;
1437 short int var69
/* : Bool */;
1438 short int var_70
/* var : Bool */;
1439 val
* var71
/* : MModule */;
1440 val
* var72
/* : MClassDef */;
1441 val
* var73
/* : MModule */;
1442 val
* var74
/* : MVisibility */;
1443 val
* var75
/* : MVisibility */;
1444 short int var76
/* : Bool */;
1445 val
* var77
/* : ModelBuilder */;
1446 static val
* varonce78
;
1447 val
* var79
/* : String */;
1448 char* var80
/* : NativeString */;
1449 long var81
/* : Int */;
1450 val
* var82
/* : String */;
1451 static val
* varonce83
;
1452 val
* var84
/* : String */;
1453 char* var85
/* : NativeString */;
1454 long var86
/* : Int */;
1455 val
* var87
/* : String */;
1456 val
* var88
/* : MClassDef */;
1457 val
* var89
/* : MModule */;
1458 val
* var90
/* : MModule */;
1459 val
* var91
/* : MVisibility */;
1460 val
* var92
/* : Array[Object] */;
1461 long var93
/* : Int */;
1462 val
* var94
/* : NativeArray[Object] */;
1463 val
* var95
/* : String */;
1464 val
* var96
/* : null */;
1465 val
* var97
/* : MModule */;
1466 val
* var98
/* : Array[MPropDef] */;
1467 val
* var_propdefs
/* var propdefs: Array[MMethodDef] */;
1468 long var99
/* : Int */;
1469 long var100
/* : Int */;
1470 short int var101
/* : Bool */;
1471 short int var103
/* : Bool */;
1472 val
* var104
/* : ModelBuilder */;
1473 static val
* varonce105
;
1474 val
* var106
/* : String */;
1475 char* var107
/* : NativeString */;
1476 long var108
/* : Int */;
1477 val
* var109
/* : String */;
1478 static val
* varonce110
;
1479 val
* var111
/* : String */;
1480 char* var112
/* : NativeString */;
1481 long var113
/* : Int */;
1482 val
* var114
/* : String */;
1483 val
* var115
/* : Array[Object] */;
1484 long var116
/* : Int */;
1485 val
* var117
/* : NativeArray[Object] */;
1486 val
* var118
/* : String */;
1487 val
* var119
/* : null */;
1488 long var120
/* : Int */;
1489 long var121
/* : Int */;
1490 short int var122
/* : Bool */;
1491 short int var124
/* : Bool */;
1492 val
* var125
/* : nullable Object */;
1493 val
* var_mpropdef
/* var mpropdef: nullable Object */;
1494 val
* var126
/* : ModelBuilder */;
1495 static val
* varonce127
;
1496 val
* var128
/* : String */;
1497 char* var129
/* : NativeString */;
1498 long var130
/* : Int */;
1499 val
* var131
/* : String */;
1500 static val
* varonce132
;
1501 val
* var133
/* : String */;
1502 char* var134
/* : NativeString */;
1503 long var135
/* : Int */;
1504 val
* var136
/* : String */;
1505 static val
* varonce137
;
1506 val
* var138
/* : String */;
1507 char* var139
/* : NativeString */;
1508 long var140
/* : Int */;
1509 val
* var141
/* : String */;
1510 static val
* varonce142
;
1511 val
* var143
/* : String */;
1512 char* var144
/* : NativeString */;
1513 long var145
/* : Int */;
1514 val
* var146
/* : String */;
1515 val
* var147
/* : String */;
1516 val
* var148
/* : Array[Object] */;
1517 long var149
/* : Int */;
1518 val
* var150
/* : NativeArray[Object] */;
1519 val
* var151
/* : String */;
1520 val
* var152
/* : MPropDef */;
1521 val
* var153
/* : MSignature */;
1522 val
* var_msignature
/* var msignature: MSignature */;
1523 short int var154
/* : Bool */;
1524 short int var_erasure_cast
/* var erasure_cast: Bool */;
1525 val
* var155
/* : nullable MSignature */;
1526 val
* var156
/* : nullable MType */;
1527 val
* var_rettype
/* var rettype: nullable MType */;
1528 short int var157
/* : Bool */;
1529 short int var158
/* : Bool */;
1530 short int var_159
/* var : Bool */;
1531 val
* var160
/* : null */;
1532 short int var161
/* : Bool */;
1533 short int var162
/* : Bool */;
1536 val
* var165
/* : MType */;
1537 short int var166
/* : Bool */;
1540 val
* var169
/* : nullable MType */;
1541 val
* var_erased_rettype
/* var erased_rettype: nullable MType */;
1542 val
* var170
/* : null */;
1543 short int var171
/* : Bool */;
1544 short int var172
/* : Bool */;
1545 val
* var173
/* : CallSite */;
1546 val
* var_callsite
/* var callsite: CallSite */;
1550 var_recv_is_self
= p3
;
1551 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(self
, var_recvtype
) /* anchor_to on <self:TypeVisitor>*/;
1552 var_unsafe_type
= var1
;
1553 /* <var_recvtype:MType> isa MNullType */
1554 cltype
= type_model__MNullType
.color
;
1555 idtype
= type_model__MNullType
.id
;
1556 if(cltype
>= var_recvtype
->type
->table_size
) {
1559 var2
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
1565 var4
= "Error: Method \'";
1567 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1574 var9
= "\' call on \'null\'.";
1576 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1580 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
1581 { /* var12 = array_instance Array[Object] */
1583 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
1584 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var3
;
1585 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var_name
;
1586 ((struct instance_array__NativeArray
*)var14
)->values
[2] = (val
*) var8
;
1587 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
1588 CHECK_NEW_array__Array(var12
);
1590 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
1591 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_node
, var15
) /* error on <self:TypeVisitor>*/;
1597 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>*/;
1598 var_mproperty
= var17
;
1600 if (var_mproperty
== NULL
) {
1601 var19
= 1; /* is null */
1603 var19
= 0; /* arg is null but recv is not */
1606 if (var_recv_is_self
){
1607 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1611 var23
= "Error: Method or variable \'";
1613 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1620 var28
= "\' unknown in ";
1622 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1631 var35
= string__NativeString__to_s_with_length(var33
, var34
);
1635 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
1636 { /* var36 = array_instance Array[Object] */
1638 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
1639 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var22
;
1640 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var_name
;
1641 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var27
;
1642 ((struct instance_array__NativeArray
*)var38
)->values
[3] = (val
*) var_recvtype
;
1643 ((struct instance_array__NativeArray
*)var38
)->values
[4] = (val
*) var32
;
1644 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
1645 CHECK_NEW_array__Array(var36
);
1647 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
1648 ((void (*)(val
*, val
*, val
*))(var20
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var20
, var_node
, var39
) /* error on <var20:ModelBuilder>*/;
1650 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1654 var43
= "Error: Method \'";
1656 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1663 var48
= "\' doesn\'t exists in ";
1665 var50
= string__NativeString__to_s_with_length(var48
, var49
);
1674 var55
= string__NativeString__to_s_with_length(var53
, var54
);
1678 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
1679 { /* var56 = array_instance Array[Object] */
1681 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
1682 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var42
;
1683 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_name
;
1684 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
1685 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var_recvtype
;
1686 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
1687 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
1688 CHECK_NEW_array__Array(var56
);
1690 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
1691 ((void (*)(val
*, val
*, val
*))(var40
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var40
, var_node
, var59
) /* error on <var40:ModelBuilder>*/;
1698 /* <var_mproperty:nullable MProperty(MProperty)> isa MMethod */
1699 cltype62
= type_model__MMethod
.color
;
1700 idtype63
= type_model__MMethod
.id
;
1701 if(cltype62
>= var_mproperty
->type
->table_size
) {
1704 var61
= var_mproperty
->type
->type_table
[cltype62
] == idtype63
;
1707 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1708 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 249);
1711 var66
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__visibility
]))(var_mproperty
) /* visibility on <var_mproperty:nullable MProperty(MMethod)>*/;
1712 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__protected_visibility
]))(self
) /* protected_visibility on <self:TypeVisitor>*/;
1713 var68
= ((short int (*)(val
*, val
*))(var66
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var66
, var67
) /* == on <var66:MVisibility>*/;
1716 var69
= !var_recv_is_self
;
1723 var71
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1724 var72
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)>*/;
1725 var73
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var72
) /* mmodule on <var72:MClassDef>*/;
1726 var74
= ((val
* (*)(val
*, val
*))(var71
->class->vft
[COLOR_model_base__MModule__visibility_for
]))(var71
, var73
) /* visibility_for on <var71:MModule>*/;
1727 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__intrude_visibility
]))(self
) /* intrude_visibility on <self:TypeVisitor>*/;
1728 var76
= ((short int (*)(val
*, val
*))(var74
->class->vft
[COLOR_kernel__Comparable___60d
]))(var74
, var75
) /* < on <var74:MVisibility>*/;
1734 var77
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1738 var80
= "Error: Method \'";
1740 var82
= string__NativeString__to_s_with_length(var80
, var81
);
1747 var85
= "\' is protected and can only acceded by self. ";
1749 var87
= string__NativeString__to_s_with_length(var85
, var86
);
1753 var88
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)>*/;
1754 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var88
) /* mmodule on <var88:MClassDef>*/;
1755 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1756 var91
= ((val
* (*)(val
*, val
*))(var89
->class->vft
[COLOR_model_base__MModule__visibility_for
]))(var89
, var90
) /* visibility_for on <var89:MModule>*/;
1757 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
1758 { /* var92 = array_instance Array[Object] */
1760 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
1761 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var79
;
1762 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var_name
;
1763 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var84
;
1764 ((struct instance_array__NativeArray
*)var94
)->values
[3] = (val
*) var91
;
1765 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
1766 CHECK_NEW_array__Array(var92
);
1768 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
1769 ((void (*)(val
*, val
*, val
*))(var77
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var77
, var_node
, var95
) /* error on <var77:ModelBuilder>*/;
1775 var97
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1776 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)>*/;
1777 var_propdefs
= var98
;
1778 var99
= ((long (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_propdefs
) /* length on <var_propdefs:Array[MMethodDef]>*/;
1780 { /* Inline kernel#Int#== (var99,var100) */
1781 var103
= var99
== var100
;
1784 RET_LABEL102
:(void)0;
1787 var104
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1789 var106
= varonce105
;
1791 var107
= "Type error: no definition found for property ";
1793 var109
= string__NativeString__to_s_with_length(var107
, var108
);
1795 varonce105
= var106
;
1798 var111
= varonce110
;
1802 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1804 varonce110
= var111
;
1806 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
1807 { /* var115 = array_instance Array[Object] */
1809 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
1810 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var106
;
1811 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var_name
;
1812 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var111
;
1813 ((struct instance_array__NativeArray
*)var117
)->values
[3] = (val
*) var_unsafe_type
;
1814 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
1815 CHECK_NEW_array__Array(var115
);
1817 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
1818 ((void (*)(val
*, val
*, val
*))(var104
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var104
, var_node
, var118
) /* error on <var104:ModelBuilder>*/;
1823 var120
= ((long (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_propdefs
) /* length on <var_propdefs:Array[MMethodDef]>*/;
1825 { /* Inline kernel#Int#== (var120,var121) */
1826 var124
= var120
== var121
;
1829 RET_LABEL123
:(void)0;
1832 var125
= ((val
* (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_propdefs
) /* first on <var_propdefs:Array[MMethodDef]>*/;
1833 var_mpropdef
= var125
;
1835 var126
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1837 var128
= varonce127
;
1839 var129
= "Warning: confliting property definitions for property ";
1841 var131
= string__NativeString__to_s_with_length(var129
, var130
);
1843 varonce127
= var128
;
1846 var133
= varonce132
;
1850 var136
= string__NativeString__to_s_with_length(var134
, var135
);
1852 varonce132
= var133
;
1855 var138
= varonce137
;
1859 var141
= string__NativeString__to_s_with_length(var139
, var140
);
1861 varonce137
= var138
;
1864 var143
= varonce142
;
1868 var146
= string__NativeString__to_s_with_length(var144
, var145
);
1870 varonce142
= var143
;
1872 var147
= ((val
* (*)(val
*, val
*))(var_propdefs
->class->vft
[COLOR_string__Collection__join
]))(var_propdefs
, var143
) /* join on <var_propdefs:Array[MMethodDef]>*/;
1873 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
1874 { /* var148 = array_instance Array[Object] */
1876 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
1877 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var128
;
1878 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var_name
;
1879 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var133
;
1880 ((struct instance_array__NativeArray
*)var150
)->values
[3] = (val
*) var_unsafe_type
;
1881 ((struct instance_array__NativeArray
*)var150
)->values
[4] = (val
*) var138
;
1882 ((struct instance_array__NativeArray
*)var150
)->values
[5] = (val
*) var147
;
1883 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
1884 CHECK_NEW_array__Array(var148
);
1886 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
1887 ((void (*)(val
*, val
*, val
*))(var126
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var126
, var_node
, var151
) /* warning on <var126:ModelBuilder>*/;
1888 var152
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro
]))(var_mproperty
) /* intro on <var_mproperty:nullable MProperty(MMethod)>*/;
1889 var_mpropdef
= var152
;
1892 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>*/;
1893 var_msignature
= var153
;
1895 var_erasure_cast
= var154
;
1896 var155
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:nullable Object(MMethodDef)>*/;
1897 if (var155
== NULL
) {
1898 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1899 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 271);
1902 var156
= ((val
* (*)(val
*))(var155
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var155
) /* return_mtype on <var155:nullable MSignature>*/;
1904 var_rettype
= var156
;
1905 var158
= !var_recv_is_self
;
1909 if (var_rettype
== NULL
) {
1910 var161
= 0; /* is null */
1912 var161
= 1; /* arg is null and recv is not */
1919 /* <var_rettype:nullable MType(MType)> isa MNullableType */
1920 cltype163
= type_model__MNullableType
.color
;
1921 idtype164
= type_model__MNullableType
.id
;
1922 if(cltype163
>= var_rettype
->type
->table_size
) {
1925 var162
= var_rettype
->type
->type_table
[cltype163
] == idtype164
;
1928 var165
= ((val
* (*)(val
*))(var_rettype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_rettype
) /* mtype on <var_rettype:nullable MType(MNullableType)>*/;
1929 var_rettype
= var165
;
1932 /* <var_rettype:nullable MType(MType)> isa MParameterType */
1933 cltype167
= type_model__MParameterType
.color
;
1934 idtype168
= type_model__MParameterType
.id
;
1935 if(cltype167
>= var_rettype
->type
->table_size
) {
1938 var166
= var_rettype
->type
->type_table
[cltype167
] == idtype168
;
1941 var169
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
1942 var_erased_rettype
= var169
;
1944 if (var_erased_rettype
== NULL
) {
1945 var171
= 0; /* is null */
1947 var171
= 1; /* arg is null and recv is not */
1950 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1951 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 276);
1955 var_erasure_cast
= var172
;
1960 var173
= NEW_typing__CallSite(&type_typing__CallSite
);
1961 ((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>*/;
1962 CHECK_NEW_typing__CallSite(var173
);
1963 var_callsite
= var173
;
1969 /* method typing#TypeVisitor#get_method for (self: Object, ANode, MType, String, Bool): nullable CallSite */
1970 val
* VIRTUAL_typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
1971 val
* var
/* : nullable CallSite */;
1972 val
* var1
/* : nullable CallSite */;
1973 var1
= typing__TypeVisitor__get_method(self
, p0
, p1
, p2
, p3
);
1978 /* method typing#TypeVisitor#check_signature for (self: TypeVisitor, ANode, Array[AExpr], String, MSignature): Bool */
1979 short int typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
1980 short int var
/* : Bool */;
1981 val
* var_node
/* var node: ANode */;
1982 val
* var_args
/* var args: Array[AExpr] */;
1983 val
* var_name
/* var name: String */;
1984 val
* var_msignature
/* var msignature: MSignature */;
1985 long var1
/* : Int */;
1986 long var_vararg_rank
/* var vararg_rank: Int */;
1987 long var2
/* : Int */;
1988 short int var3
/* : Bool */;
1989 short int var5
/* : Bool */;
1992 const char* var_class_name
;
1993 short int var6
/* : Bool */;
1994 long var7
/* : Int */;
1995 long var8
/* : Int */;
1996 short int var9
/* : Bool */;
1997 short int var11
/* : Bool */;
2000 const char* var_class_name14
;
2001 short int var15
/* : Bool */;
2002 val
* var16
/* : ModelBuilder */;
2003 static val
* varonce
;
2004 val
* var17
/* : String */;
2005 char* var18
/* : NativeString */;
2006 long var19
/* : Int */;
2007 val
* var20
/* : String */;
2008 static val
* varonce21
;
2009 val
* var22
/* : String */;
2010 char* var23
/* : NativeString */;
2011 long var24
/* : Int */;
2012 val
* var25
/* : String */;
2013 val
* var26
/* : Array[Object] */;
2014 long var27
/* : Int */;
2015 val
* var28
/* : NativeArray[Object] */;
2016 val
* var29
/* : String */;
2017 short int var30
/* : Bool */;
2018 long var31
/* : Int */;
2019 long var32
/* : Int */;
2020 short int var33
/* : Bool */;
2021 short int var35
/* : Bool */;
2022 short int var36
/* : Bool */;
2023 val
* var37
/* : ModelBuilder */;
2024 static val
* varonce38
;
2025 val
* var39
/* : String */;
2026 char* var40
/* : NativeString */;
2027 long var41
/* : Int */;
2028 val
* var42
/* : String */;
2029 long var43
/* : Int */;
2030 static val
* varonce44
;
2031 val
* var45
/* : String */;
2032 char* var46
/* : NativeString */;
2033 long var47
/* : Int */;
2034 val
* var48
/* : String */;
2035 long var49
/* : Int */;
2036 static val
* varonce50
;
2037 val
* var51
/* : String */;
2038 char* var52
/* : NativeString */;
2039 long var53
/* : Int */;
2040 val
* var54
/* : String */;
2041 val
* var55
/* : Array[Object] */;
2042 long var56
/* : Int */;
2043 val
* var57
/* : NativeArray[Object] */;
2044 val
* var58
/* : Object */;
2045 val
* var59
/* : Object */;
2046 val
* var60
/* : String */;
2047 short int var61
/* : Bool */;
2048 long var62
/* : Int */;
2049 long var63
/* : Int */;
2050 long var64
/* : Int */;
2051 long var66
/* : Int */;
2052 long var_vararg_decl
/* var vararg_decl: Int */;
2053 val
* var67
/* : Range[Int] */;
2054 long var68
/* : Int */;
2055 long var69
/* : Int */;
2056 val
* var70
/* : Discrete */;
2057 val
* var71
/* : Discrete */;
2058 val
* var72
/* : Iterator[nullable Object] */;
2059 short int var73
/* : Bool */;
2060 val
* var74
/* : nullable Object */;
2061 long var_i
/* var i: Int */;
2062 long var75
/* : Int */;
2063 long var_j
/* var j: Int */;
2064 short int var76
/* : Bool */;
2065 short int var78
/* : Bool */;
2066 short int var79
/* : Bool */;
2067 short int var81
/* : Bool */;
2070 const char* var_class_name84
;
2071 short int var85
/* : Bool */;
2072 long var86
/* : Int */;
2073 long var88
/* : Int */;
2074 val
* var89
/* : Array[MParameter] */;
2075 val
* var90
/* : nullable Object */;
2076 val
* var91
/* : MType */;
2077 val
* var_paramtype
/* var paramtype: MType */;
2078 val
* var92
/* : nullable Object */;
2079 val
* var93
/* : nullable MType */;
2080 long var94
/* : Int */;
2081 short int var95
/* : Bool */;
2082 short int var97
/* : Bool */;
2085 const char* var_class_name100
;
2086 short int var101
/* : Bool */;
2087 val
* var102
/* : Array[AExpr] */;
2088 val
* var_varargs
/* var varargs: Array[AExpr] */;
2089 val
* var103
/* : Array[MParameter] */;
2090 val
* var104
/* : nullable Object */;
2091 val
* var105
/* : MType */;
2092 val
* var_paramtype106
/* var paramtype: MType */;
2093 val
* var107
/* : Range[Int] */;
2094 long var108
/* : Int */;
2095 long var110
/* : Int */;
2096 val
* var111
/* : Discrete */;
2097 val
* var112
/* : Discrete */;
2098 val
* var113
/* : Iterator[nullable Object] */;
2099 short int var114
/* : Bool */;
2100 val
* var115
/* : nullable Object */;
2101 long var_j116
/* var j: Int */;
2102 long var117
/* : Int */;
2103 val
* var118
/* : nullable Object */;
2104 val
* var119
/* : nullable Object */;
2105 val
* var120
/* : nullable MType */;
2106 short int var122
/* : Bool */;
2110 var_msignature
= p3
;
2111 var1
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
2112 var_vararg_rank
= var1
;
2114 { /* Inline kernel#Int#>= (var_vararg_rank,var2) */
2115 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2116 /* <var2:Int> isa OTHER */
2117 var5
= 1; /* easy <var2:Int> isa OTHER*/
2119 var_class_name
= type_kernel__Int
.name
;
2120 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2121 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
2124 var6
= var_vararg_rank
>= var2
;
2130 var7
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2131 var8
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2132 { /* Inline kernel#Int#< (var7,var8) */
2133 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
2134 /* <var8:Int> isa OTHER */
2135 var11
= 1; /* easy <var8:Int> isa OTHER*/
2137 var_class_name14
= type_kernel__Int
.name
;
2138 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14
);
2139 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
2142 var15
= var7
< var8
;
2145 RET_LABEL10
:(void)0;
2148 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2152 var18
= "Error: arity mismatch; prototype is \'";
2154 var20
= string__NativeString__to_s_with_length(var18
, var19
);
2163 var25
= string__NativeString__to_s_with_length(var23
, var24
);
2167 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
2168 { /* var26 = array_instance Array[Object] */
2170 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
2171 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
2172 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_name
;
2173 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var_msignature
;
2174 ((struct instance_array__NativeArray
*)var28
)->values
[3] = (val
*) var22
;
2175 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
2176 CHECK_NEW_array__Array(var26
);
2178 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
2179 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var16
, var_node
, var29
) /* error on <var16:ModelBuilder>*/;
2186 var31
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2187 var32
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2188 { /* Inline kernel#Int#!= (var31,var32) */
2189 var35
= var31
== var32
;
2193 RET_LABEL34
:(void)0;
2196 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2200 var40
= "Error: Incorrect number of parameters. Got ";
2202 var42
= string__NativeString__to_s_with_length(var40
, var41
);
2206 var43
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2210 var46
= ", expected ";
2212 var48
= string__NativeString__to_s_with_length(var46
, var47
);
2216 var49
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2220 var52
= ". Signature is ";
2222 var54
= string__NativeString__to_s_with_length(var52
, var53
);
2226 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
2227 { /* var55 = array_instance Array[Object] */
2229 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
2230 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var39
;
2231 var58
= BOX_kernel__Int(var43
); /* autobox from Int to Object */
2232 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var58
;
2233 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var45
;
2234 var59
= BOX_kernel__Int(var49
); /* autobox from Int to Object */
2235 ((struct instance_array__NativeArray
*)var57
)->values
[3] = (val
*) var59
;
2236 ((struct instance_array__NativeArray
*)var57
)->values
[4] = (val
*) var51
;
2237 ((struct instance_array__NativeArray
*)var57
)->values
[5] = (val
*) var_msignature
;
2238 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
2239 CHECK_NEW_array__Array(var55
);
2241 var60
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
2242 ((void (*)(val
*, val
*, val
*))(var37
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var37
, var_node
, var60
) /* error on <var37:ModelBuilder>*/;
2249 var62
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2250 var63
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2251 { /* Inline kernel#Int#- (var62,var63) */
2252 var66
= var62
- var63
;
2255 RET_LABEL65
:(void)0;
2257 var_vararg_decl
= var64
;
2258 var67
= NEW_range__Range(&type_range__Rangekernel__Int
);
2260 var69
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2261 var70
= BOX_kernel__Int(var68
); /* autobox from Int to Discrete */
2262 var71
= BOX_kernel__Int(var69
); /* autobox from Int to Discrete */
2263 ((void (*)(val
*, val
*, val
*))(var67
->class->vft
[COLOR_range__Range__without_last
]))(var67
, var70
, var71
) /* without_last on <var67:Range[Int]>*/;
2264 CHECK_NEW_range__Range(var67
);
2265 var72
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var67
) /* iterator on <var67:Range[Int]>*/;
2267 var73
= ((short int (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var72
) /* is_ok on <var72:Iterator[nullable Object]>*/;
2269 var74
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var72
) /* item on <var72:Iterator[nullable Object]>*/;
2270 var75
= ((struct instance_kernel__Int
*)var74
)->value
; /* autounbox from nullable Object to Int */;
2273 { /* Inline kernel#Int#== (var_i,var_vararg_rank) */
2274 var78
= var_i
== var_vararg_rank
;
2277 RET_LABEL77
:(void)0;
2280 goto CONTINUE_label
;
2283 { /* Inline kernel#Int#> (var_i,var_vararg_rank) */
2284 /* Covariant cast for argument 0 (i) <var_vararg_rank:Int> isa OTHER */
2285 /* <var_vararg_rank:Int> isa OTHER */
2286 var81
= 1; /* easy <var_vararg_rank:Int> isa OTHER*/
2288 var_class_name84
= type_kernel__Int
.name
;
2289 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84
);
2290 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
2293 var85
= var_i
> var_vararg_rank
;
2296 RET_LABEL80
:(void)0;
2299 { /* Inline kernel#Int#+ (var_i,var_vararg_decl) */
2300 var88
= var_i
+ var_vararg_decl
;
2303 RET_LABEL87
:(void)0;
2308 var89
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2309 var90
= ((val
* (*)(val
*, long))(var89
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var89
, var_i
) /* [] on <var89:Array[MParameter]>*/;
2310 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_model__MParameter__mtype
]))(var90
) /* mtype on <var90:nullable Object(MParameter)>*/;
2311 var_paramtype
= var91
;
2312 var92
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j
) /* [] on <var_args:Array[AExpr]>*/;
2313 var93
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var92
, var_paramtype
) /* visit_expr_subtype on <self:TypeVisitor>*/;
2315 CONTINUE_label
: (void)0;
2316 ((void (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var72
) /* next on <var72:Iterator[nullable Object]>*/;
2318 BREAK_label
: (void)0;
2320 { /* Inline kernel#Int#>= (var_vararg_rank,var94) */
2321 /* Covariant cast for argument 0 (i) <var94:Int> isa OTHER */
2322 /* <var94:Int> isa OTHER */
2323 var97
= 1; /* easy <var94:Int> isa OTHER*/
2325 var_class_name100
= type_kernel__Int
.name
;
2326 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name100
);
2327 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 262);
2330 var101
= var_vararg_rank
>= var94
;
2333 RET_LABEL96
:(void)0;
2336 var102
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
2337 ((void (*)(val
*))(var102
->class->vft
[COLOR_array__Array__init
]))(var102
) /* init on <var102:Array[AExpr]>*/;
2338 CHECK_NEW_array__Array(var102
);
2339 var_varargs
= var102
;
2340 var103
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2341 var104
= ((val
* (*)(val
*, long))(var103
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var103
, var_vararg_rank
) /* [] on <var103:Array[MParameter]>*/;
2342 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_model__MParameter__mtype
]))(var104
) /* mtype on <var104:nullable Object(MParameter)>*/;
2343 var_paramtype106
= var105
;
2344 var107
= NEW_range__Range(&type_range__Rangekernel__Int
);
2345 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_decl) */
2346 var110
= var_vararg_rank
+ var_vararg_decl
;
2349 RET_LABEL109
:(void)0;
2351 var111
= BOX_kernel__Int(var_vararg_rank
); /* autobox from Int to Discrete */
2352 var112
= BOX_kernel__Int(var108
); /* autobox from Int to Discrete */
2353 ((void (*)(val
*, val
*, val
*))(var107
->class->vft
[COLOR_range__Range__init
]))(var107
, var111
, var112
) /* init on <var107:Range[Int]>*/;
2354 CHECK_NEW_range__Range(var107
);
2355 var113
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var107
) /* iterator on <var107:Range[Int]>*/;
2357 var114
= ((short int (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var113
) /* is_ok on <var113:Iterator[nullable Object]>*/;
2359 var115
= ((val
* (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var113
) /* item on <var113:Iterator[nullable Object]>*/;
2360 var117
= ((struct instance_kernel__Int
*)var115
)->value
; /* autounbox from nullable Object to Int */;
2362 var118
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j116
) /* [] on <var_args:Array[AExpr]>*/;
2363 ((void (*)(val
*, val
*))(var_varargs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_varargs
, var118
) /* add on <var_varargs:Array[AExpr]>*/;
2364 var119
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j116
) /* [] on <var_args:Array[AExpr]>*/;
2365 var120
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var119
, var_paramtype106
) /* visit_expr_subtype on <self:TypeVisitor>*/;
2367 CONTINUE_label121
: (void)0;
2368 ((void (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var113
) /* next on <var113:Iterator[nullable Object]>*/;
2370 BREAK_label121
: (void)0;
2379 /* method typing#TypeVisitor#check_signature for (self: Object, ANode, Array[AExpr], String, MSignature): Bool */
2380 short int VIRTUAL_typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2381 short int var
/* : Bool */;
2382 short int var1
/* : Bool */;
2383 var1
= typing__TypeVisitor__check_signature(self
, p0
, p1
, p2
, p3
);
2388 /* method typing#TypeVisitor#error for (self: TypeVisitor, ANode, String) */
2389 void typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
2390 val
* var_node
/* var node: ANode */;
2391 val
* var_message
/* var message: String */;
2392 val
* var
/* : ModelBuilder */;
2393 val
* var1
/* : ToolContext */;
2394 val
* var2
/* : Location */;
2397 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2398 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
2399 var2
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_node
) /* hot_location on <var_node:ANode>*/;
2400 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var1
, var2
, var_message
) /* error on <var1:ToolContext>*/;
2403 /* method typing#TypeVisitor#error for (self: Object, ANode, String) */
2404 void VIRTUAL_typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
2405 typing__TypeVisitor__error(self
, p0
, p1
);
2408 /* method typing#TypeVisitor#get_variable for (self: TypeVisitor, AExpr, Variable): nullable MType */
2409 val
* typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
2410 val
* var
/* : nullable MType */;
2411 val
* var_node
/* var node: AExpr */;
2412 val
* var_variable
/* var variable: Variable */;
2413 val
* var1
/* : nullable FlowContext */;
2414 val
* var_flow
/* var flow: nullable FlowContext */;
2415 val
* var2
/* : null */;
2416 short int var3
/* : Bool */;
2417 static val
* varonce
;
2418 val
* var4
/* : String */;
2419 char* var5
/* : NativeString */;
2420 long var6
/* : Int */;
2421 val
* var7
/* : String */;
2422 val
* var8
/* : null */;
2423 val
* var9
/* : HashMap[Variable, nullable MType] */;
2424 short int var10
/* : Bool */;
2425 val
* var11
/* : HashMap[Variable, nullable MType] */;
2426 val
* var12
/* : nullable Object */;
2427 val
* var13
/* : nullable Array[nullable MType] */;
2428 val
* var_mtypes
/* var mtypes: nullable Array[nullable MType] */;
2429 short int var14
/* : Bool */;
2430 val
* var15
/* : null */;
2431 short int var16
/* : Bool */;
2432 short int var_
/* var : Bool */;
2433 long var17
/* : Int */;
2434 long var18
/* : Int */;
2435 short int var19
/* : Bool */;
2436 short int var21
/* : Bool */;
2437 val
* var22
/* : nullable MType */;
2438 long var23
/* : Int */;
2439 long var24
/* : Int */;
2440 short int var25
/* : Bool */;
2441 short int var27
/* : Bool */;
2442 val
* var28
/* : nullable Object */;
2443 val
* var29
/* : nullable MType */;
2444 val
* var_res
/* var res: nullable MType */;
2445 val
* var30
/* : null */;
2446 short int var31
/* : Bool */;
2447 val
* var32
/* : nullable MType */;
2450 var1
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
2453 if (var_flow
== NULL
) {
2454 var3
= 1; /* is null */
2456 var3
= 0; /* arg is null but recv is not */
2462 var5
= "No context!";
2464 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2468 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_node
, var4
) /* error on <self:TypeVisitor>*/;
2474 var9
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__vars
]))(var_flow
) /* vars on <var_flow:nullable FlowContext(FlowContext)>*/;
2475 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]>*/;
2477 var11
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__vars
]))(var_flow
) /* vars on <var_flow:nullable FlowContext(FlowContext)>*/;
2478 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_variable
) /* [] on <var11:HashMap[Variable, nullable MType]>*/;
2482 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)>*/;
2485 if (var_mtypes
== NULL
) {
2486 var16
= 1; /* is null */
2488 var16
= 0; /* arg is null but recv is not */
2494 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])>*/;
2496 { /* Inline kernel#Int#== (var17,var18) */
2497 var21
= var17
== var18
;
2500 RET_LABEL20
:(void)0;
2505 var22
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
2509 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])>*/;
2511 { /* Inline kernel#Int#== (var23,var24) */
2512 var27
= var23
== var24
;
2515 RET_LABEL26
:(void)0;
2518 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])>*/;
2522 var29
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(self
, var_node
, var_mtypes
) /* merge_types on <self:TypeVisitor>*/;
2525 if (var_res
== NULL
) {
2526 var31
= 1; /* is null */
2528 var31
= 0; /* arg is null but recv is not */
2531 var32
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
2543 /* method typing#TypeVisitor#get_variable for (self: Object, AExpr, Variable): nullable MType */
2544 val
* VIRTUAL_typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
2545 val
* var
/* : nullable MType */;
2546 val
* var1
/* : nullable MType */;
2547 var1
= typing__TypeVisitor__get_variable(self
, p0
, p1
);
2552 /* method typing#TypeVisitor#set_variable for (self: TypeVisitor, AExpr, Variable, nullable MType) */
2553 void typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2554 val
* var_node
/* var node: AExpr */;
2555 val
* var_variable
/* var variable: Variable */;
2556 val
* var_mtype
/* var mtype: nullable MType */;
2557 val
* var
/* : nullable FlowContext */;
2558 val
* var_flow
/* var flow: nullable FlowContext */;
2559 val
* var1
/* : null */;
2560 short int var2
/* : Bool */;
2564 var
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
2567 if (var_flow
== NULL
) {
2568 var2
= 0; /* is null */
2570 var2
= 1; /* arg is null and recv is not */
2573 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2574 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 360);
2577 ((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)>*/;
2580 /* method typing#TypeVisitor#set_variable for (self: Object, AExpr, Variable, nullable MType) */
2581 void VIRTUAL_typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2582 typing__TypeVisitor__set_variable(self
, p0
, p1
, p2
);
2585 /* method typing#TypeVisitor#merge_types for (self: TypeVisitor, ANode, Array[nullable MType]): nullable MType */
2586 val
* typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
2587 val
* var
/* : nullable MType */;
2588 val
* var_node
/* var node: ANode */;
2589 val
* var_col
/* var col: Array[nullable MType] */;
2590 long var1
/* : Int */;
2591 long var2
/* : Int */;
2592 short int var3
/* : Bool */;
2593 short int var5
/* : Bool */;
2594 val
* var6
/* : nullable Object */;
2595 val
* var7
/* : Array[nullable MType] */;
2596 val
* var_res
/* var res: Array[nullable MType] */;
2597 val
* var8
/* : Iterator[nullable Object] */;
2598 short int var9
/* : Bool */;
2599 val
* var10
/* : nullable Object */;
2600 val
* var_t1
/* var t1: nullable MType */;
2601 val
* var11
/* : null */;
2602 short int var12
/* : Bool */;
2603 short int var13
/* : Bool */;
2604 short int var_found
/* var found: Bool */;
2605 val
* var14
/* : Iterator[nullable Object] */;
2606 short int var15
/* : Bool */;
2607 val
* var16
/* : nullable Object */;
2608 val
* var_t2
/* var t2: nullable MType */;
2609 val
* var17
/* : null */;
2610 short int var18
/* : Bool */;
2611 short int var20
/* : Bool */;
2612 short int var21
/* : Bool */;
2615 short int var_
/* var : Bool */;
2616 short int var22
/* : Bool */;
2619 val
* var25
/* : MType */;
2620 short int var26
/* : Bool */;
2621 short int var27
/* : Bool */;
2622 short int var28
/* : Bool */;
2623 val
* var29
/* : null */;
2626 var1
= ((long (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_col
) /* length on <var_col:Array[nullable MType]>*/;
2628 { /* Inline kernel#Int#== (var1,var2) */
2629 var5
= var1
== var2
;
2635 var6
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_col
) /* first on <var_col:Array[nullable MType]>*/;
2640 var7
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
2641 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[nullable MType]>*/;
2642 CHECK_NEW_array__Array(var7
);
2644 var8
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_col
) /* iterator on <var_col:Array[nullable MType]>*/;
2646 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
2648 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
2651 if (var_t1
== NULL
) {
2652 var12
= 1; /* is null */
2654 var12
= 0; /* arg is null but recv is not */
2657 goto CONTINUE_label
;
2662 var14
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_col
) /* iterator on <var_col:Array[nullable MType]>*/;
2664 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var14
) /* is_ok on <var14:Iterator[nullable Object]>*/;
2666 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var14
) /* item on <var14:Iterator[nullable Object]>*/;
2669 if (var_t2
== NULL
) {
2670 var18
= 1; /* is null */
2672 var18
= 0; /* arg is null but recv is not */
2675 goto CONTINUE_label19
;
2678 /* <var_t2:nullable MType(MType)> isa MNullableType */
2679 cltype
= type_model__MNullableType
.color
;
2680 idtype
= type_model__MNullableType
.id
;
2681 if(cltype
>= var_t2
->type
->table_size
) {
2684 var21
= var_t2
->type
->type_table
[cltype
] == idtype
;
2690 /* <var_t2:nullable MType(MType)> isa MNullType */
2691 cltype23
= type_model__MNullType
.color
;
2692 idtype24
= type_model__MNullType
.id
;
2693 if(cltype23
>= var_t2
->type
->table_size
) {
2696 var22
= var_t2
->type
->type_table
[cltype23
] == idtype24
;
2701 var25
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t1
) /* as_nullable on <var_t1:nullable MType(MType)>*/;
2705 var26
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_t2
, var_t1
) /* is_subtype on <self:TypeVisitor>*/;
2712 CONTINUE_label19
: (void)0;
2713 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var14
) /* next on <var14:Iterator[nullable Object]>*/;
2715 BREAK_label19
: (void)0;
2721 CONTINUE_label
: (void)0;
2722 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
2724 BREAK_label
: (void)0;
2731 /* method typing#TypeVisitor#merge_types for (self: Object, ANode, Array[nullable MType]): nullable MType */
2732 val
* VIRTUAL_typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
2733 val
* var
/* : nullable MType */;
2734 val
* var1
/* : nullable MType */;
2735 var1
= typing__TypeVisitor__merge_types(self
, p0
, p1
);
2740 /* method typing#CallSite#node for (self: CallSite): ANode */
2741 val
* typing__CallSite__node(val
* self
) {
2742 val
* var
/* : ANode */;
2743 val
* var1
/* : ANode */;
2744 var1
= self
->attrs
[COLOR_typing__CallSite___64dnode
].val
; /* @node on <self:CallSite> */
2746 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @node");
2747 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 391);
2754 /* method typing#CallSite#node for (self: Object): ANode */
2755 val
* VIRTUAL_typing__CallSite__node(val
* self
) {
2756 val
* var
/* : ANode */;
2757 val
* var1
/* : ANode */;
2758 var1
= typing__CallSite__node(self
);
2763 /* method typing#CallSite#node= for (self: CallSite, ANode) */
2764 void typing__CallSite__node_61d(val
* self
, val
* p0
) {
2765 self
->attrs
[COLOR_typing__CallSite___64dnode
].val
= p0
; /* @node on <self:CallSite> */
2768 /* method typing#CallSite#node= for (self: Object, ANode) */
2769 void VIRTUAL_typing__CallSite__node_61d(val
* self
, val
* p0
) {
2770 typing__CallSite__node_61d(self
, p0
);
2773 /* method typing#CallSite#recv for (self: CallSite): MType */
2774 val
* typing__CallSite__recv(val
* self
) {
2775 val
* var
/* : MType */;
2776 val
* var1
/* : MType */;
2777 var1
= self
->attrs
[COLOR_typing__CallSite___64drecv
].val
; /* @recv on <self:CallSite> */
2779 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @recv");
2780 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 394);
2787 /* method typing#CallSite#recv for (self: Object): MType */
2788 val
* VIRTUAL_typing__CallSite__recv(val
* self
) {
2789 val
* var
/* : MType */;
2790 val
* var1
/* : MType */;
2791 var1
= typing__CallSite__recv(self
);
2796 /* method typing#CallSite#recv= for (self: CallSite, MType) */
2797 void typing__CallSite__recv_61d(val
* self
, val
* p0
) {
2798 self
->attrs
[COLOR_typing__CallSite___64drecv
].val
= p0
; /* @recv on <self:CallSite> */
2801 /* method typing#CallSite#recv= for (self: Object, MType) */
2802 void VIRTUAL_typing__CallSite__recv_61d(val
* self
, val
* p0
) {
2803 typing__CallSite__recv_61d(self
, p0
);
2806 /* method typing#CallSite#recv_is_self for (self: CallSite): Bool */
2807 short int typing__CallSite__recv_is_self(val
* self
) {
2808 short int var
/* : Bool */;
2809 short int var1
/* : Bool */;
2810 var1
= self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
; /* @recv_is_self on <self:CallSite> */
2815 /* method typing#CallSite#recv_is_self for (self: Object): Bool */
2816 short int VIRTUAL_typing__CallSite__recv_is_self(val
* self
) {
2817 short int var
/* : Bool */;
2818 short int var1
/* : Bool */;
2819 var1
= typing__CallSite__recv_is_self(self
);
2824 /* method typing#CallSite#recv_is_self= for (self: CallSite, Bool) */
2825 void typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
2826 self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
= p0
; /* @recv_is_self on <self:CallSite> */
2829 /* method typing#CallSite#recv_is_self= for (self: Object, Bool) */
2830 void VIRTUAL_typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
2831 typing__CallSite__recv_is_self_61d(self
, p0
);
2834 /* method typing#CallSite#mproperty for (self: CallSite): MMethod */
2835 val
* typing__CallSite__mproperty(val
* self
) {
2836 val
* var
/* : MMethod */;
2837 val
* var1
/* : MMethod */;
2838 var1
= self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
; /* @mproperty on <self:CallSite> */
2840 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperty");
2841 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 402);
2848 /* method typing#CallSite#mproperty for (self: Object): MMethod */
2849 val
* VIRTUAL_typing__CallSite__mproperty(val
* self
) {
2850 val
* var
/* : MMethod */;
2851 val
* var1
/* : MMethod */;
2852 var1
= typing__CallSite__mproperty(self
);
2857 /* method typing#CallSite#mproperty= for (self: CallSite, MMethod) */
2858 void typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
2859 self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
= p0
; /* @mproperty on <self:CallSite> */
2862 /* method typing#CallSite#mproperty= for (self: Object, MMethod) */
2863 void VIRTUAL_typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
2864 typing__CallSite__mproperty_61d(self
, p0
);
2867 /* method typing#CallSite#mpropdef for (self: CallSite): MMethodDef */
2868 val
* typing__CallSite__mpropdef(val
* self
) {
2869 val
* var
/* : MMethodDef */;
2870 val
* var1
/* : MMethodDef */;
2871 var1
= self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
; /* @mpropdef on <self:CallSite> */
2873 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdef");
2874 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 405);
2881 /* method typing#CallSite#mpropdef for (self: Object): MMethodDef */
2882 val
* VIRTUAL_typing__CallSite__mpropdef(val
* self
) {
2883 val
* var
/* : MMethodDef */;
2884 val
* var1
/* : MMethodDef */;
2885 var1
= typing__CallSite__mpropdef(self
);
2890 /* method typing#CallSite#mpropdef= for (self: CallSite, MMethodDef) */
2891 void typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
2892 self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
= p0
; /* @mpropdef on <self:CallSite> */
2895 /* method typing#CallSite#mpropdef= for (self: Object, MMethodDef) */
2896 void VIRTUAL_typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
2897 typing__CallSite__mpropdef_61d(self
, p0
);
2900 /* method typing#CallSite#msignature for (self: CallSite): MSignature */
2901 val
* typing__CallSite__msignature(val
* self
) {
2902 val
* var
/* : MSignature */;
2903 val
* var1
/* : MSignature */;
2904 var1
= self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
; /* @msignature on <self:CallSite> */
2906 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @msignature");
2907 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 409);
2914 /* method typing#CallSite#msignature for (self: Object): MSignature */
2915 val
* VIRTUAL_typing__CallSite__msignature(val
* self
) {
2916 val
* var
/* : MSignature */;
2917 val
* var1
/* : MSignature */;
2918 var1
= typing__CallSite__msignature(self
);
2923 /* method typing#CallSite#msignature= for (self: CallSite, MSignature) */
2924 void typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
2925 self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
= p0
; /* @msignature on <self:CallSite> */
2928 /* method typing#CallSite#msignature= for (self: Object, MSignature) */
2929 void VIRTUAL_typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
2930 typing__CallSite__msignature_61d(self
, p0
);
2933 /* method typing#CallSite#erasure_cast for (self: CallSite): Bool */
2934 short int typing__CallSite__erasure_cast(val
* self
) {
2935 short int var
/* : Bool */;
2936 short int var1
/* : Bool */;
2937 var1
= self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
; /* @erasure_cast on <self:CallSite> */
2942 /* method typing#CallSite#erasure_cast for (self: Object): Bool */
2943 short int VIRTUAL_typing__CallSite__erasure_cast(val
* self
) {
2944 short int var
/* : Bool */;
2945 short int var1
/* : Bool */;
2946 var1
= typing__CallSite__erasure_cast(self
);
2951 /* method typing#CallSite#erasure_cast= for (self: CallSite, Bool) */
2952 void typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
2953 self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
= p0
; /* @erasure_cast on <self:CallSite> */
2956 /* method typing#CallSite#erasure_cast= for (self: Object, Bool) */
2957 void VIRTUAL_typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
2958 typing__CallSite__erasure_cast_61d(self
, p0
);
2961 /* method typing#CallSite#check_signature for (self: CallSite, TypeVisitor, Array[AExpr]): Bool */
2962 short int typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
2963 short int var
/* : Bool */;
2964 val
* var_v
/* var v: TypeVisitor */;
2965 val
* var_args
/* var args: Array[AExpr] */;
2966 val
* var1
/* : ANode */;
2967 val
* var2
/* : MMethod */;
2968 val
* var3
/* : String */;
2969 val
* var4
/* : MSignature */;
2970 short int var5
/* : Bool */;
2973 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__node
]))(self
) /* node on <self:CallSite>*/;
2974 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__mproperty
]))(self
) /* mproperty on <self:CallSite>*/;
2975 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MProperty__name
]))(var2
) /* name on <var2:MMethod>*/;
2976 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__msignature
]))(self
) /* msignature on <self:CallSite>*/;
2977 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>*/;
2983 /* method typing#CallSite#check_signature for (self: Object, TypeVisitor, Array[AExpr]): Bool */
2984 short int VIRTUAL_typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
2985 short int var
/* : Bool */;
2986 short int var1
/* : Bool */;
2987 var1
= typing__CallSite__check_signature(self
, p0
, p1
);
2992 /* method typing#CallSite#init for (self: CallSite, ANode, MType, Bool, MMethod, MMethodDef, MSignature, Bool) */
2993 void typing__CallSite__init(val
* self
, val
* p0
, val
* p1
, short int p2
, val
* p3
, val
* p4
, val
* p5
, short int p6
) {
2994 self
->attrs
[COLOR_typing__CallSite___64dnode
].val
= p0
; /* @node on <self:CallSite> */
2995 self
->attrs
[COLOR_typing__CallSite___64drecv
].val
= p1
; /* @recv on <self:CallSite> */
2996 self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
= p2
; /* @recv_is_self on <self:CallSite> */
2997 self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
= p3
; /* @mproperty on <self:CallSite> */
2998 self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
= p4
; /* @mpropdef on <self:CallSite> */
2999 self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
= p5
; /* @msignature on <self:CallSite> */
3000 self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
= p6
; /* @erasure_cast on <self:CallSite> */
3003 /* method typing#CallSite#init for (self: Object, ANode, MType, Bool, MMethod, MMethodDef, MSignature, Bool) */
3004 void VIRTUAL_typing__CallSite__init(val
* self
, val
* p0
, val
* p1
, short int p2
, val
* p3
, val
* p4
, val
* p5
, short int p6
) {
3005 typing__CallSite__init(self
, p0
, p1
, p2
, p3
, p4
, p5
, p6
);
3008 /* method typing#Variable#declared_type for (self: Variable): nullable MType */
3009 val
* typing__Variable__declared_type(val
* self
) {
3010 val
* var
/* : nullable MType */;
3011 val
* var1
/* : nullable MType */;
3012 var1
= self
->attrs
[COLOR_typing__Variable___64ddeclared_type
].val
; /* @declared_type on <self:Variable> */
3017 /* method typing#Variable#declared_type for (self: Object): nullable MType */
3018 val
* VIRTUAL_typing__Variable__declared_type(val
* self
) {
3019 val
* var
/* : nullable MType */;
3020 val
* var1
/* : nullable MType */;
3021 var1
= typing__Variable__declared_type(self
);
3026 /* method typing#Variable#declared_type= for (self: Variable, nullable MType) */
3027 void typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
3028 self
->attrs
[COLOR_typing__Variable___64ddeclared_type
].val
= p0
; /* @declared_type on <self:Variable> */
3031 /* method typing#Variable#declared_type= for (self: Object, nullable MType) */
3032 void VIRTUAL_typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
3033 typing__Variable__declared_type_61d(self
, p0
);
3036 /* method typing#FlowContext#vars for (self: FlowContext): HashMap[Variable, nullable MType] */
3037 val
* typing__FlowContext__vars(val
* self
) {
3038 val
* var
/* : HashMap[Variable, nullable MType] */;
3039 val
* var1
/* : HashMap[Variable, nullable MType] */;
3040 var1
= self
->attrs
[COLOR_typing__FlowContext___64dvars
].val
; /* @vars on <self:FlowContext> */
3042 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @vars");
3043 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 427);
3050 /* method typing#FlowContext#vars for (self: Object): HashMap[Variable, nullable MType] */
3051 val
* VIRTUAL_typing__FlowContext__vars(val
* self
) {
3052 val
* var
/* : HashMap[Variable, nullable MType] */;
3053 val
* var1
/* : HashMap[Variable, nullable MType] */;
3054 var1
= typing__FlowContext__vars(self
);
3059 /* method typing#FlowContext#vars= for (self: FlowContext, HashMap[Variable, nullable MType]) */
3060 void typing__FlowContext__vars_61d(val
* self
, val
* p0
) {
3061 self
->attrs
[COLOR_typing__FlowContext___64dvars
].val
= p0
; /* @vars on <self:FlowContext> */
3064 /* method typing#FlowContext#vars= for (self: Object, HashMap[Variable, nullable MType]) */
3065 void VIRTUAL_typing__FlowContext__vars_61d(val
* self
, val
* p0
) {
3066 typing__FlowContext__vars_61d(self
, p0
);
3069 /* method typing#FlowContext#cache for (self: FlowContext): HashMap[Variable, nullable Array[nullable MType]] */
3070 val
* typing__FlowContext__cache(val
* self
) {
3071 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3072 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3073 var1
= self
->attrs
[COLOR_typing__FlowContext___64dcache
].val
; /* @cache on <self:FlowContext> */
3075 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @cache");
3076 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 429);
3083 /* method typing#FlowContext#cache for (self: Object): HashMap[Variable, nullable Array[nullable MType]] */
3084 val
* VIRTUAL_typing__FlowContext__cache(val
* self
) {
3085 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3086 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3087 var1
= typing__FlowContext__cache(self
);
3092 /* method typing#FlowContext#cache= for (self: FlowContext, HashMap[Variable, nullable Array[nullable MType]]) */
3093 void typing__FlowContext__cache_61d(val
* self
, val
* p0
) {
3094 self
->attrs
[COLOR_typing__FlowContext___64dcache
].val
= p0
; /* @cache on <self:FlowContext> */
3097 /* method typing#FlowContext#cache= for (self: Object, HashMap[Variable, nullable Array[nullable MType]]) */
3098 void VIRTUAL_typing__FlowContext__cache_61d(val
* self
, val
* p0
) {
3099 typing__FlowContext__cache_61d(self
, p0
);
3102 /* method typing#FlowContext#set_var for (self: FlowContext, Variable, nullable MType) */
3103 void typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
3104 val
* var_variable
/* var variable: Variable */;
3105 val
* var_mtype
/* var mtype: nullable MType */;
3106 val
* var
/* : HashMap[Variable, nullable MType] */;
3107 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3108 val
* var2
/* : Collection[Object] */;
3111 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3112 ((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]>*/;
3113 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3114 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var1
) /* keys on <var1:HashMap[Variable, nullable Array[nullable MType]]>*/;
3115 ((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]])>*/;
3118 /* method typing#FlowContext#set_var for (self: Object, Variable, nullable MType) */
3119 void VIRTUAL_typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
3120 typing__FlowContext__set_var(self
, p0
, p1
);
3123 /* method typing#FlowContext#collect_types for (self: FlowContext, Variable): nullable Array[nullable MType] */
3124 val
* typing__FlowContext__collect_types(val
* self
, val
* p0
) {
3125 val
* var
/* : nullable Array[nullable MType] */;
3126 val
* var_variable
/* var variable: Variable */;
3127 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3128 short int var2
/* : Bool */;
3129 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3130 val
* var4
/* : nullable Object */;
3131 val
* var5
/* : null */;
3132 val
* var_res
/* var res: nullable Array[nullable MType] */;
3133 val
* var6
/* : HashMap[Variable, nullable MType] */;
3134 short int var7
/* : Bool */;
3135 val
* var8
/* : HashMap[Variable, nullable MType] */;
3136 val
* var9
/* : nullable Object */;
3137 val
* var_mtype
/* var mtype: nullable MType */;
3138 val
* var10
/* : Array[nullable MType] */;
3139 long var11
/* : Int */;
3140 val
* var_
/* var : Array[nullable MType] */;
3141 val
* var12
/* : Array[FlowContext] */;
3142 short int var13
/* : Bool */;
3143 val
* var14
/* : Array[nullable MType] */;
3144 long var15
/* : Int */;
3145 val
* var_16
/* var : Array[nullable MType] */;
3146 val
* var17
/* : nullable MType */;
3147 val
* var18
/* : Array[FlowContext] */;
3148 val
* var19
/* : Iterator[nullable Object] */;
3149 short int var20
/* : Bool */;
3150 val
* var21
/* : nullable Object */;
3151 val
* var_flow
/* var flow: FlowContext */;
3152 short int var22
/* : Bool */;
3153 val
* var23
/* : nullable Array[nullable MType] */;
3154 val
* var_r2
/* var r2: nullable Array[nullable MType] */;
3155 val
* var24
/* : null */;
3156 short int var25
/* : Bool */;
3157 val
* var26
/* : null */;
3158 short int var27
/* : Bool */;
3159 val
* var28
/* : Array[nullable Object] */;
3160 val
* var29
/* : Iterator[nullable Object] */;
3161 short int var30
/* : Bool */;
3162 val
* var31
/* : nullable Object */;
3163 val
* var_t
/* var t: nullable MType */;
3164 short int var32
/* : Bool */;
3165 short int var33
/* : Bool */;
3166 val
* var35
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3168 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3169 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]]>*/;
3171 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3172 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_variable
) /* [] on <var3:HashMap[Variable, nullable Array[nullable MType]]>*/;
3179 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3180 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]>*/;
3182 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3183 var9
= ((val
* (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var8
, var_variable
) /* [] on <var8:HashMap[Variable, nullable MType]>*/;
3185 var10
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3187 ((void (*)(val
*, long))(var10
->class->vft
[COLOR_array__Array__with_capacity
]))(var10
, var11
) /* with_capacity on <var10:Array[nullable MType]>*/;
3188 CHECK_NEW_array__Array(var10
);
3190 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_mtype
) /* push on <var_:Array[nullable MType]>*/;
3193 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
3194 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var12
) /* is_empty on <var12:Array[FlowContext]>*/;
3196 var14
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3198 ((void (*)(val
*, long))(var14
->class->vft
[COLOR_array__Array__with_capacity
]))(var14
, var15
) /* with_capacity on <var14:Array[nullable MType]>*/;
3199 CHECK_NEW_array__Array(var14
);
3201 var17
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
3202 ((void (*)(val
*, val
*))(var_16
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_16
, var17
) /* push on <var_16:Array[nullable MType]>*/;
3205 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
3206 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:Array[FlowContext]>*/;
3208 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[nullable Object]>*/;
3210 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[nullable Object]>*/;
3212 var22
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
3214 goto CONTINUE_label
;
3217 var23
= ((val
* (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__collect_types
]))(var_flow
, var_variable
) /* collect_types on <var_flow:FlowContext>*/;
3220 if (var_r2
== NULL
) {
3221 var25
= 1; /* is null */
3223 var25
= 0; /* arg is null but recv is not */
3226 goto CONTINUE_label
;
3230 if (var_res
== NULL
) {
3231 var27
= 1; /* is null */
3233 var27
= 0; /* arg is null but recv is not */
3236 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])>*/;
3239 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])>*/;
3241 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[nullable Object]>*/;
3243 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[nullable Object]>*/;
3245 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])>*/;
3248 ((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])>*/;
3251 CONTINUE_label34
: (void)0;
3252 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[nullable Object]>*/;
3254 BREAK_label34
: (void)0;
3256 CONTINUE_label
: (void)0;
3257 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[nullable Object]>*/;
3259 BREAK_label
: (void)0;
3262 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3263 ((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]]>*/;
3269 /* method typing#FlowContext#collect_types for (self: Object, Variable): nullable Array[nullable MType] */
3270 val
* VIRTUAL_typing__FlowContext__collect_types(val
* self
, val
* p0
) {
3271 val
* var
/* : nullable Array[nullable MType] */;
3272 val
* var1
/* : nullable Array[nullable MType] */;
3273 var1
= typing__FlowContext__collect_types(self
, p0
);
3278 /* method typing#APropdef#do_typing for (self: APropdef, ModelBuilder) */
3279 void typing__APropdef__do_typing(val
* self
, val
* p0
) {
3280 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3281 var_modelbuilder
= p0
;
3284 /* method typing#APropdef#do_typing for (self: Object, ModelBuilder) */
3285 void VIRTUAL_typing__APropdef__do_typing(val
* self
, val
* p0
) {
3286 typing__APropdef__do_typing(self
, p0
);
3289 /* method typing#APropdef#selfvariable for (self: APropdef): nullable Variable */
3290 val
* typing__APropdef__selfvariable(val
* self
) {
3291 val
* var
/* : nullable Variable */;
3292 val
* var1
/* : nullable Variable */;
3293 var1
= self
->attrs
[COLOR_typing__APropdef___64dselfvariable
].val
; /* @selfvariable on <self:APropdef> */
3298 /* method typing#APropdef#selfvariable for (self: Object): nullable Variable */
3299 val
* VIRTUAL_typing__APropdef__selfvariable(val
* self
) {
3300 val
* var
/* : nullable Variable */;
3301 val
* var1
/* : nullable Variable */;
3302 var1
= typing__APropdef__selfvariable(self
);
3307 /* method typing#APropdef#selfvariable= for (self: APropdef, nullable Variable) */
3308 void typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
3309 self
->attrs
[COLOR_typing__APropdef___64dselfvariable
].val
= p0
; /* @selfvariable on <self:APropdef> */
3312 /* method typing#APropdef#selfvariable= for (self: Object, nullable Variable) */
3313 void VIRTUAL_typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
3314 typing__APropdef__selfvariable_61d(self
, p0
);
3317 /* method typing#AConcreteMethPropdef#do_typing for (self: AConcreteMethPropdef, ModelBuilder) */
3318 void typing__AConcreteMethPropdef__do_typing(val
* self
, val
* p0
) {
3319 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3320 val
* var
/* : nullable ANode */;
3321 short int var1
/* : Bool */;
3324 const char* var_class_name
;
3325 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3326 val
* var2
/* : nullable MPropDef */;
3327 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
3328 val
* var3
/* : TypeVisitor */;
3329 val
* var_v
/* var v: TypeVisitor */;
3330 val
* var4
/* : Variable */;
3331 val
* var5
/* : nullable AExpr */;
3332 val
* var_nblock
/* var nblock: nullable AExpr */;
3333 val
* var6
/* : null */;
3334 short int var7
/* : Bool */;
3335 val
* var8
/* : nullable MPropDef */;
3336 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
3337 val
* var9
/* : Range[Int] */;
3338 long var10
/* : Int */;
3339 val
* var11
/* : nullable MSignature */;
3340 long var12
/* : Int */;
3341 val
* var13
/* : Discrete */;
3342 val
* var14
/* : Discrete */;
3343 val
* var15
/* : Iterator[nullable Object] */;
3344 short int var16
/* : Bool */;
3345 val
* var17
/* : nullable Object */;
3346 long var_i
/* var i: Int */;
3347 long var18
/* : Int */;
3348 val
* var19
/* : nullable MSignature */;
3349 val
* var20
/* : Array[MParameter] */;
3350 val
* var21
/* : nullable Object */;
3351 val
* var22
/* : MType */;
3352 val
* var_mtype
/* var mtype: MType */;
3353 val
* var23
/* : nullable MSignature */;
3354 long var24
/* : Int */;
3355 short int var25
/* : Bool */;
3356 short int var27
/* : Bool */;
3357 val
* var28
/* : nullable ASignature */;
3358 val
* var29
/* : ANodes[AParam] */;
3359 val
* var30
/* : nullable Object */;
3360 static val
* varonce
;
3361 val
* var31
/* : String */;
3362 char* var32
/* : NativeString */;
3363 long var33
/* : Int */;
3364 val
* var34
/* : String */;
3365 val
* var35
/* : nullable MClass */;
3366 val
* var_arrayclass
/* var arrayclass: nullable MClass */;
3367 val
* var36
/* : null */;
3368 short int var37
/* : Bool */;
3369 val
* var38
/* : Array[MType] */;
3370 long var39
/* : Int */;
3371 val
* var40
/* : NativeArray[MType] */;
3372 val
* var41
/* : MClassType */;
3373 val
* var42
/* : nullable ASignature */;
3374 val
* var43
/* : ANodes[AParam] */;
3375 val
* var44
/* : nullable Object */;
3376 val
* var45
/* : nullable Variable */;
3377 val
* var_variable
/* var variable: nullable Variable */;
3378 val
* var46
/* : null */;
3379 short int var47
/* : Bool */;
3380 short int var48
/* : Bool */;
3381 val
* var49
/* : nullable FlowContext */;
3382 short int var50
/* : Bool */;
3383 short int var51
/* : Bool */;
3384 short int var_
/* var : Bool */;
3385 val
* var52
/* : nullable MSignature */;
3386 val
* var53
/* : nullable MType */;
3387 val
* var54
/* : null */;
3388 short int var55
/* : Bool */;
3389 static val
* varonce56
;
3390 val
* var57
/* : String */;
3391 char* var58
/* : NativeString */;
3392 long var59
/* : Int */;
3393 val
* var60
/* : String */;
3394 var_modelbuilder
= p0
;
3395 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:AConcreteMethPropdef>*/;
3396 /* <var:nullable ANode> isa AClassdef */
3397 cltype
= type_parser_nodes__AClassdef
.color
;
3398 idtype
= type_parser_nodes__AClassdef
.id
;
3402 if(cltype
>= var
->type
->table_size
) {
3405 var1
= var
->type
->type_table
[cltype
] == idtype
;
3409 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
3410 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name
);
3411 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 484);
3414 var_nclassdef
= var
;
3415 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AConcreteMethPropdef>*/;
3417 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3418 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 485);
3421 var_mpropdef
= var2
;
3422 var3
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
3423 ((void (*)(val
*, val
*, val
*, val
*))(var3
->class->vft
[COLOR_typing__TypeVisitor__init
]))(var3
, var_modelbuilder
, var_nclassdef
, var_mpropdef
) /* init on <var3:TypeVisitor>*/;
3424 CHECK_NEW_typing__TypeVisitor(var3
);
3426 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
3427 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__APropdef__selfvariable_61d
]))(self
, var4
) /* selfvariable= on <self:AConcreteMethPropdef>*/;
3428 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AConcreteMethPropdef__n_block
]))(self
) /* n_block on <self:AConcreteMethPropdef>*/;
3431 if (var_nblock
== NULL
) {
3432 var7
= 1; /* is null */
3434 var7
= 0; /* arg is null but recv is not */
3440 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AConcreteMethPropdef>*/;
3442 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3443 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 492);
3446 var_mmethoddef
= var8
;
3447 var9
= NEW_range__Range(&type_range__Rangekernel__Int
);
3449 var11
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3450 if (var11
== NULL
) {
3451 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3452 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 493);
3455 var12
= ((long (*)(val
*))(var11
->class->vft
[COLOR_model__MSignature__arity
]))(var11
) /* arity on <var11:nullable MSignature>*/;
3457 var13
= BOX_kernel__Int(var10
); /* autobox from Int to Discrete */
3458 var14
= BOX_kernel__Int(var12
); /* autobox from Int to Discrete */
3459 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_range__Range__without_last
]))(var9
, var13
, var14
) /* without_last on <var9:Range[Int]>*/;
3460 CHECK_NEW_range__Range(var9
);
3461 var15
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Range[Int]>*/;
3463 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
3465 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
3466 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
3468 var19
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3469 if (var19
== NULL
) {
3470 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3471 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 494);
3474 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_model__MSignature__mparameters
]))(var19
) /* mparameters on <var19:nullable MSignature>*/;
3476 var21
= ((val
* (*)(val
*, long))(var20
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var20
, var_i
) /* [] on <var20:Array[MParameter]>*/;
3477 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_model__MParameter__mtype
]))(var21
) /* mtype on <var21:nullable Object(MParameter)>*/;
3479 var23
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3480 if (var23
== NULL
) {
3481 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3482 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 495);
3485 var24
= ((long (*)(val
*))(var23
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var23
) /* vararg_rank on <var23:nullable MSignature>*/;
3487 { /* Inline kernel#Int#== (var24,var_i) */
3488 var27
= var24
== var_i
;
3491 RET_LABEL26
:(void)0;
3494 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3495 if (var28
== NULL
) {
3496 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3497 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 496);
3500 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_parser_nodes__ASignature__n_params
]))(var28
) /* n_params on <var28:nullable ASignature>*/;
3502 var30
= ((val
* (*)(val
*, long))(var29
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var29
, var_i
) /* [] on <var29:ANodes[AParam]>*/;
3508 var34
= string__NativeString__to_s_with_length(var32
, var33
);
3512 var35
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, var30
, var31
) /* get_mclass on <var_v:TypeVisitor>*/;
3513 var_arrayclass
= var35
;
3515 if (var_arrayclass
== NULL
) {
3516 var37
= 1; /* is null */
3518 var37
= 0; /* arg is null but recv is not */
3524 var38
= NEW_array__Array(&type_array__Arraymodel__MType
);
3525 { /* var38 = array_instance Array[MType] */
3527 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraymodel__MType
);
3528 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_mtype
;
3529 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[MType]>*/;
3530 CHECK_NEW_array__Array(var38
);
3532 var41
= ((val
* (*)(val
*, val
*))(var_arrayclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_arrayclass
, var38
) /* get_mtype on <var_arrayclass:nullable MClass(MClass)>*/;
3536 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3537 if (var42
== NULL
) {
3538 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3539 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 500);
3542 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_parser_nodes__ASignature__n_params
]))(var42
) /* n_params on <var42:nullable ASignature>*/;
3544 var44
= ((val
* (*)(val
*, long))(var43
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var43
, var_i
) /* [] on <var43:ANodes[AParam]>*/;
3545 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_scope__AParam__variable
]))(var44
) /* variable on <var44:nullable Object(AParam)>*/;
3546 var_variable
= var45
;
3548 if (var_variable
== NULL
) {
3549 var47
= 0; /* is null */
3551 var47
= 1; /* arg is null and recv is not */
3554 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3555 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 501);
3558 ((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)>*/;
3559 CONTINUE_label
: (void)0;
3560 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
3562 BREAK_label
: (void)0;
3563 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var_nblock
) /* visit_stmt on <var_v:TypeVisitor>*/;
3564 var49
= ((val
* (*)(val
*))(var_nblock
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_nblock
) /* after_flow_context on <var_nblock:nullable AExpr(AExpr)>*/;
3565 if (var49
== NULL
) {
3566 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3567 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 506);
3570 var50
= ((short int (*)(val
*))(var49
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var49
) /* is_unreachable on <var49:nullable FlowContext>*/;
3575 var52
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3576 if (var52
== NULL
) {
3577 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3578 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 506);
3581 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var52
) /* return_mtype on <var52:nullable MSignature>*/;
3584 if (var53
== NULL
) {
3585 var55
= 0; /* is null */
3587 var55
= 1; /* arg is null and recv is not */
3597 var58
= "Control error: Reached end of function (a \'return\' with a value was expected).";
3599 var60
= string__NativeString__to_s_with_length(var58
, var59
);
3603 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var57
) /* error on <var_v:TypeVisitor>*/;
3608 /* method typing#AConcreteMethPropdef#do_typing for (self: Object, ModelBuilder) */
3609 void VIRTUAL_typing__AConcreteMethPropdef__do_typing(val
* self
, val
* p0
) {
3610 typing__AConcreteMethPropdef__do_typing(self
, p0
);
3613 /* method typing#AAttrPropdef#do_typing for (self: AAttrPropdef, ModelBuilder) */
3614 void typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
3615 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3616 val
* var
/* : nullable ANode */;
3617 short int var1
/* : Bool */;
3620 const char* var_class_name
;
3621 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3622 val
* var2
/* : TypeVisitor */;
3623 val
* var3
/* : nullable MPropDef */;
3624 val
* var_v
/* var v: TypeVisitor */;
3625 val
* var4
/* : Variable */;
3626 val
* var5
/* : nullable AExpr */;
3627 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3628 val
* var6
/* : null */;
3629 short int var7
/* : Bool */;
3630 val
* var8
/* : nullable MPropDef */;
3631 val
* var9
/* : nullable MType */;
3632 val
* var_mtype
/* var mtype: nullable MType */;
3633 val
* var10
/* : nullable MType */;
3634 var_modelbuilder
= p0
;
3635 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:AAttrPropdef>*/;
3636 /* <var:nullable ANode> isa AClassdef */
3637 cltype
= type_parser_nodes__AClassdef
.color
;
3638 idtype
= type_parser_nodes__AClassdef
.id
;
3642 if(cltype
>= var
->type
->table_size
) {
3645 var1
= var
->type
->type_table
[cltype
] == idtype
;
3649 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
3650 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name
);
3651 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 516);
3654 var_nclassdef
= var
;
3655 var2
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
3656 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AAttrPropdef>*/;
3658 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3659 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 517);
3662 ((void (*)(val
*, val
*, val
*, val
*))(var2
->class->vft
[COLOR_typing__TypeVisitor__init
]))(var2
, var_modelbuilder
, var_nclassdef
, var3
) /* init on <var2:TypeVisitor>*/;
3663 CHECK_NEW_typing__TypeVisitor(var2
);
3665 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
3666 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__APropdef__selfvariable_61d
]))(self
, var4
) /* selfvariable= on <self:AAttrPropdef>*/;
3667 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_expr
]))(self
) /* n_expr on <self:AAttrPropdef>*/;
3670 if (var_nexpr
== NULL
) {
3671 var7
= 0; /* is null */
3673 var7
= 1; /* arg is null and recv is not */
3676 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AAttrPropdef>*/;
3678 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
3679 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 522);
3682 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var8
) /* static_mtype on <var8:nullable MPropDef(nullable MAttributeDef)>*/;
3685 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>*/;
3691 /* method typing#AAttrPropdef#do_typing for (self: Object, ModelBuilder) */
3692 void VIRTUAL_typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
3693 typing__AAttrPropdef__do_typing(self
, p0
);
3696 /* method typing#AExpr#mtype for (self: AExpr): nullable MType */
3697 val
* typing__AExpr__mtype(val
* self
) {
3698 val
* var
/* : nullable MType */;
3699 val
* var1
/* : nullable MType */;
3700 var1
= self
->attrs
[COLOR_typing__AExpr___64dmtype
].val
; /* @mtype on <self:AExpr> */
3705 /* method typing#AExpr#mtype for (self: Object): nullable MType */
3706 val
* VIRTUAL_typing__AExpr__mtype(val
* self
) {
3707 val
* var
/* : nullable MType */;
3708 val
* var1
/* : nullable MType */;
3709 var1
= typing__AExpr__mtype(self
);
3714 /* method typing#AExpr#mtype= for (self: AExpr, nullable MType) */
3715 void typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
3716 self
->attrs
[COLOR_typing__AExpr___64dmtype
].val
= p0
; /* @mtype on <self:AExpr> */
3719 /* method typing#AExpr#mtype= for (self: Object, nullable MType) */
3720 void VIRTUAL_typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
3721 typing__AExpr__mtype_61d(self
, p0
);
3724 /* method typing#AExpr#is_typed for (self: AExpr): Bool */
3725 short int typing__AExpr__is_typed(val
* self
) {
3726 short int var
/* : Bool */;
3727 short int var1
/* : Bool */;
3728 var1
= self
->attrs
[COLOR_typing__AExpr___64dis_typed
].s
; /* @is_typed on <self:AExpr> */
3733 /* method typing#AExpr#is_typed for (self: Object): Bool */
3734 short int VIRTUAL_typing__AExpr__is_typed(val
* self
) {
3735 short int var
/* : Bool */;
3736 short int var1
/* : Bool */;
3737 var1
= typing__AExpr__is_typed(self
);
3742 /* method typing#AExpr#is_typed= for (self: AExpr, Bool) */
3743 void typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
3744 self
->attrs
[COLOR_typing__AExpr___64dis_typed
].s
= p0
; /* @is_typed on <self:AExpr> */
3747 /* method typing#AExpr#is_typed= for (self: Object, Bool) */
3748 void VIRTUAL_typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
3749 typing__AExpr__is_typed_61d(self
, p0
);
3752 /* method typing#AExpr#implicit_cast_to for (self: AExpr): nullable MType */
3753 val
* typing__AExpr__implicit_cast_to(val
* self
) {
3754 val
* var
/* : nullable MType */;
3755 val
* var1
/* : nullable MType */;
3756 var1
= self
->attrs
[COLOR_typing__AExpr___64dimplicit_cast_to
].val
; /* @implicit_cast_to on <self:AExpr> */
3761 /* method typing#AExpr#implicit_cast_to for (self: Object): nullable MType */
3762 val
* VIRTUAL_typing__AExpr__implicit_cast_to(val
* self
) {
3763 val
* var
/* : nullable MType */;
3764 val
* var1
/* : nullable MType */;
3765 var1
= typing__AExpr__implicit_cast_to(self
);
3770 /* method typing#AExpr#implicit_cast_to= for (self: AExpr, nullable MType) */
3771 void typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
3772 self
->attrs
[COLOR_typing__AExpr___64dimplicit_cast_to
].val
= p0
; /* @implicit_cast_to on <self:AExpr> */
3775 /* method typing#AExpr#implicit_cast_to= for (self: Object, nullable MType) */
3776 void VIRTUAL_typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
3777 typing__AExpr__implicit_cast_to_61d(self
, p0
);
3780 /* method typing#AExpr#its_variable for (self: AExpr): nullable Variable */
3781 val
* typing__AExpr__its_variable(val
* self
) {
3782 val
* var
/* : nullable Variable */;
3783 val
* var1
/* : null */;
3790 /* method typing#AExpr#its_variable for (self: Object): nullable Variable */
3791 val
* VIRTUAL_typing__AExpr__its_variable(val
* self
) {
3792 val
* var
/* : nullable Variable */;
3793 val
* var1
/* : nullable Variable */;
3794 var1
= typing__AExpr__its_variable(self
);
3799 /* method typing#AExpr#accept_typing for (self: AExpr, TypeVisitor) */
3800 void typing__AExpr__accept_typing(val
* self
, val
* p0
) {
3801 val
* var_v
/* var v: TypeVisitor */;
3802 static val
* varonce
;
3803 val
* var
/* : String */;
3804 char* var1
/* : NativeString */;
3805 long var2
/* : Int */;
3806 val
* var3
/* : String */;
3807 val
* var4
/* : String */;
3808 val
* var5
/* : Array[Object] */;
3809 long var6
/* : Int */;
3810 val
* var7
/* : NativeArray[Object] */;
3811 val
* var8
/* : String */;
3816 var1
= "no implemented accept_typing for ";
3818 var3
= string__NativeString__to_s_with_length(var1
, var2
);
3822 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__Object__class_name
]))(self
) /* class_name on <self:AExpr>*/;
3823 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
3824 { /* var5 = array_instance Array[Object] */
3826 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
3827 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
3828 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var4
;
3829 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
3830 CHECK_NEW_array__Array(var5
);
3832 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
3833 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var8
) /* error on <var_v:TypeVisitor>*/;
3836 /* method typing#AExpr#accept_typing for (self: Object, TypeVisitor) */
3837 void VIRTUAL_typing__AExpr__accept_typing(val
* self
, val
* p0
) {
3838 typing__AExpr__accept_typing(self
, p0
);
3841 /* method typing#ABlockExpr#accept_typing for (self: ABlockExpr, TypeVisitor) */
3842 void typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
3843 val
* var_v
/* var v: TypeVisitor */;
3844 val
* var
/* : ANodes[AExpr] */;
3845 val
* var1
/* : Iterator[nullable Object] */;
3846 short int var2
/* : Bool */;
3847 val
* var3
/* : nullable Object */;
3848 val
* var_e
/* var e: AExpr */;
3849 short int var4
/* : Bool */;
3851 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3852 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var
) /* iterator on <var:ANodes[AExpr]>*/;
3854 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
3856 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
3858 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var_e
) /* visit_stmt on <var_v:TypeVisitor>*/;
3859 CONTINUE_label
: (void)0;
3860 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
3862 BREAK_label
: (void)0;
3864 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:ABlockExpr>*/;
3867 /* method typing#ABlockExpr#accept_typing for (self: Object, TypeVisitor) */
3868 void VIRTUAL_typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
3869 typing__ABlockExpr__accept_typing(self
, p0
);
3872 /* method typing#ABlockExpr#mtype for (self: ABlockExpr): nullable MType */
3873 val
* typing__ABlockExpr__mtype(val
* self
) {
3874 val
* var
/* : nullable MType */;
3875 val
* var1
/* : ANodes[AExpr] */;
3876 short int var2
/* : Bool */;
3877 val
* var3
/* : null */;
3878 val
* var4
/* : ANodes[AExpr] */;
3879 val
* var5
/* : nullable Object */;
3880 val
* var6
/* : nullable MType */;
3881 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3882 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var1
) /* is_empty on <var1:ANodes[AExpr]>*/;
3889 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3890 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var4
) /* last on <var4:ANodes[AExpr]>*/;
3891 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_typing__AExpr__mtype
]))(var5
) /* mtype on <var5:nullable Object(AExpr)>*/;
3897 /* method typing#ABlockExpr#mtype for (self: Object): nullable MType */
3898 val
* VIRTUAL_typing__ABlockExpr__mtype(val
* self
) {
3899 val
* var
/* : nullable MType */;
3900 val
* var1
/* : nullable MType */;
3901 var1
= typing__ABlockExpr__mtype(self
);
3906 /* method typing#AVardeclExpr#accept_typing for (self: AVardeclExpr, TypeVisitor) */
3907 void typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
3908 val
* var_v
/* var v: TypeVisitor */;
3909 val
* var
/* : nullable Variable */;
3910 val
* var_variable
/* var variable: nullable Variable */;
3911 val
* var1
/* : null */;
3912 short int var2
/* : Bool */;
3913 val
* var3
/* : nullable AType */;
3914 val
* var_ntype
/* var ntype: nullable AType */;
3915 val
* var4
/* : null */;
3916 short int var5
/* : Bool */;
3917 val
* var6
/* : null */;
3918 val
* var_mtype
/* var mtype: nullable MType */;
3919 val
* var7
/* : nullable MType */;
3920 val
* var8
/* : null */;
3921 short int var9
/* : Bool */;
3922 val
* var10
/* : nullable AExpr */;
3923 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3924 val
* var11
/* : null */;
3925 short int var12
/* : Bool */;
3926 val
* var13
/* : null */;
3927 short int var14
/* : Bool */;
3928 val
* var15
/* : nullable MType */;
3929 val
* var16
/* : nullable MType */;
3930 val
* var17
/* : null */;
3931 short int var18
/* : Bool */;
3932 val
* var_decltype
/* var decltype: nullable MType */;
3933 short int var19
/* : Bool */;
3934 val
* var20
/* : null */;
3935 short int var21
/* : Bool */;
3936 short int var_
/* var : Bool */;
3937 short int var22
/* : Bool */;
3940 static val
* varonce
;
3941 val
* var23
/* : String */;
3942 char* var24
/* : NativeString */;
3943 long var25
/* : Int */;
3944 val
* var26
/* : String */;
3945 val
* var27
/* : nullable MClass */;
3946 val
* var28
/* : MClassType */;
3947 val
* var29
/* : MType */;
3948 val
* var30
/* : null */;
3949 short int var31
/* : Bool */;
3950 short int var32
/* : Bool */;
3952 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVardeclExpr__variable
]))(self
) /* variable on <self:AVardeclExpr>*/;
3955 if (var_variable
== NULL
) {
3956 var2
= 1; /* is null */
3958 var2
= 0; /* arg is null but recv is not */
3964 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AVardeclExpr__n_type
]))(self
) /* n_type on <self:AVardeclExpr>*/;
3967 if (var_ntype
== NULL
) {
3968 var5
= 1; /* is null */
3970 var5
= 0; /* arg is null but recv is not */
3976 var7
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var_ntype
) /* resolve_mtype on <var_v:TypeVisitor>*/;
3979 if (var_mtype
== NULL
) {
3980 var9
= 1; /* is null */
3982 var9
= 0; /* arg is null but recv is not */
3989 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AVardeclExpr__n_expr
]))(self
) /* n_expr on <self:AVardeclExpr>*/;
3992 if (var_nexpr
== NULL
) {
3993 var12
= 0; /* is null */
3995 var12
= 1; /* arg is null and recv is not */
3999 if (var_mtype
== NULL
) {
4000 var14
= 0; /* is null */
4002 var14
= 1; /* arg is null and recv is not */
4005 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>*/;
4008 var16
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4011 if (var_mtype
== NULL
) {
4012 var18
= 1; /* is null */
4014 var18
= 0; /* arg is null but recv is not */
4023 var_decltype
= var_mtype
;
4025 if (var_mtype
== NULL
) {
4026 var21
= 1; /* is null */
4028 var21
= 0; /* arg is null but recv is not */
4034 /* <var_mtype:nullable MType(MType)> isa MNullType */
4035 cltype
= type_model__MNullType
.color
;
4036 idtype
= type_model__MNullType
.id
;
4037 if(cltype
>= var_mtype
->type
->table_size
) {
4040 var22
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4050 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4054 var27
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var23
) /* get_mclass on <var_v:TypeVisitor>*/;
4055 if (var27
== NULL
) {
4056 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4057 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 597);
4060 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_model__MClass__mclass_type
]))(var27
) /* mclass_type on <var27:nullable MClass>*/;
4062 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MType__as_nullable
]))(var28
) /* as_nullable on <var28:MClassType>*/;
4063 var_decltype
= var29
;
4065 if (var_mtype
== NULL
) {
4066 var31
= 1; /* is null */
4068 var31
= 0; /* arg is null but recv is not */
4071 var_mtype
= var_decltype
;
4076 ((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)>*/;
4077 ((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>*/;
4079 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var32
) /* is_typed= on <self:AVardeclExpr>*/;
4082 /* method typing#AVardeclExpr#accept_typing for (self: Object, TypeVisitor) */
4083 void VIRTUAL_typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
4084 typing__AVardeclExpr__accept_typing(self
, p0
);
4087 /* method typing#AVarExpr#its_variable for (self: AVarExpr): nullable Variable */
4088 val
* typing__AVarExpr__its_variable(val
* self
) {
4089 val
* var
/* : nullable Variable */;
4090 val
* var1
/* : nullable Variable */;
4091 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarExpr>*/;
4097 /* method typing#AVarExpr#its_variable for (self: Object): nullable Variable */
4098 val
* VIRTUAL_typing__AVarExpr__its_variable(val
* self
) {
4099 val
* var
/* : nullable Variable */;
4100 val
* var1
/* : nullable Variable */;
4101 var1
= typing__AVarExpr__its_variable(self
);
4106 /* method typing#AVarExpr#accept_typing for (self: AVarExpr, TypeVisitor) */
4107 void typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
4108 val
* var_v
/* var v: TypeVisitor */;
4109 val
* var
/* : nullable Variable */;
4110 val
* var_variable
/* var variable: nullable Variable */;
4111 val
* var1
/* : null */;
4112 short int var2
/* : Bool */;
4113 val
* var3
/* : nullable MType */;
4114 val
* var_mtype
/* var mtype: nullable MType */;
4115 val
* var4
/* : null */;
4116 short int var5
/* : Bool */;
4118 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarExpr>*/;
4121 if (var_variable
== NULL
) {
4122 var2
= 1; /* is null */
4124 var2
= 0; /* arg is null but recv is not */
4130 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>*/;
4133 if (var_mtype
== NULL
) {
4134 var5
= 0; /* is null */
4136 var5
= 1; /* arg is null and recv is not */
4141 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:AVarExpr>*/;
4144 /* method typing#AVarExpr#accept_typing for (self: Object, TypeVisitor) */
4145 void VIRTUAL_typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
4146 typing__AVarExpr__accept_typing(self
, p0
);
4149 /* method typing#AVarAssignExpr#accept_typing for (self: AVarAssignExpr, TypeVisitor) */
4150 void typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
4151 val
* var_v
/* var v: TypeVisitor */;
4152 val
* var
/* : nullable Variable */;
4153 val
* var_variable
/* var variable: nullable Variable */;
4154 val
* var1
/* : null */;
4155 short int var2
/* : Bool */;
4156 val
* var3
/* : AExpr */;
4157 val
* var4
/* : nullable MType */;
4158 val
* var5
/* : nullable MType */;
4159 val
* var_mtype
/* var mtype: nullable MType */;
4160 short int var6
/* : Bool */;
4162 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarAssignExpr>*/;
4165 if (var_variable
== NULL
) {
4166 var2
= 0; /* is null */
4168 var2
= 1; /* arg is null and recv is not */
4171 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4172 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 632);
4175 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:AVarAssignExpr>*/;
4176 var4
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
4177 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>*/;
4179 ((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>*/;
4181 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var6
) /* is_typed= on <self:AVarAssignExpr>*/;
4184 /* method typing#AVarAssignExpr#accept_typing for (self: Object, TypeVisitor) */
4185 void VIRTUAL_typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
4186 typing__AVarAssignExpr__accept_typing(self
, p0
);
4189 /* method typing#AReassignFormExpr#reassign_property for (self: AReassignFormExpr): nullable MMethodDef */
4190 val
* typing__AReassignFormExpr__reassign_property(val
* self
) {
4191 val
* var
/* : nullable MMethodDef */;
4192 val
* var1
/* : nullable CallSite */;
4193 val
* var2
/* : MMethodDef */;
4194 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite
]))(self
) /* reassign_callsite on <self:AReassignFormExpr>*/;
4196 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4197 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 644);
4200 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mpropdef
]))(var1
) /* mpropdef on <var1:nullable CallSite>*/;
4207 /* method typing#AReassignFormExpr#reassign_property for (self: Object): nullable MMethodDef */
4208 val
* VIRTUAL_typing__AReassignFormExpr__reassign_property(val
* self
) {
4209 val
* var
/* : nullable MMethodDef */;
4210 val
* var1
/* : nullable MMethodDef */;
4211 var1
= typing__AReassignFormExpr__reassign_property(self
);
4216 /* method typing#AReassignFormExpr#reassign_callsite for (self: AReassignFormExpr): nullable CallSite */
4217 val
* typing__AReassignFormExpr__reassign_callsite(val
* self
) {
4218 val
* var
/* : nullable CallSite */;
4219 val
* var1
/* : nullable CallSite */;
4220 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___64dreassign_callsite
].val
; /* @reassign_callsite on <self:AReassignFormExpr> */
4225 /* method typing#AReassignFormExpr#reassign_callsite for (self: Object): nullable CallSite */
4226 val
* VIRTUAL_typing__AReassignFormExpr__reassign_callsite(val
* self
) {
4227 val
* var
/* : nullable CallSite */;
4228 val
* var1
/* : nullable CallSite */;
4229 var1
= typing__AReassignFormExpr__reassign_callsite(self
);
4234 /* method typing#AReassignFormExpr#reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */
4235 void typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
4236 self
->attrs
[COLOR_typing__AReassignFormExpr___64dreassign_callsite
].val
= p0
; /* @reassign_callsite on <self:AReassignFormExpr> */
4239 /* method typing#AReassignFormExpr#reassign_callsite= for (self: Object, nullable CallSite) */
4240 void VIRTUAL_typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
4241 typing__AReassignFormExpr__reassign_callsite_61d(self
, p0
);
4244 /* method typing#AReassignFormExpr#read_type for (self: AReassignFormExpr): nullable MType */
4245 val
* typing__AReassignFormExpr__read_type(val
* self
) {
4246 val
* var
/* : nullable MType */;
4247 val
* var1
/* : nullable MType */;
4248 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___64dread_type
].val
; /* @read_type on <self:AReassignFormExpr> */
4253 /* method typing#AReassignFormExpr#read_type for (self: Object): nullable MType */
4254 val
* VIRTUAL_typing__AReassignFormExpr__read_type(val
* self
) {
4255 val
* var
/* : nullable MType */;
4256 val
* var1
/* : nullable MType */;
4257 var1
= typing__AReassignFormExpr__read_type(self
);
4262 /* method typing#AReassignFormExpr#read_type= for (self: AReassignFormExpr, nullable MType) */
4263 void typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
4264 self
->attrs
[COLOR_typing__AReassignFormExpr___64dread_type
].val
= p0
; /* @read_type on <self:AReassignFormExpr> */
4267 /* method typing#AReassignFormExpr#read_type= for (self: Object, nullable MType) */
4268 void VIRTUAL_typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
4269 typing__AReassignFormExpr__read_type_61d(self
, p0
);
4272 /* method typing#AReassignFormExpr#resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */
4273 val
* typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4274 val
* var
/* : nullable MType */;
4275 val
* var_v
/* var v: TypeVisitor */;
4276 val
* var_readtype
/* var readtype: MType */;
4277 val
* var_writetype
/* var writetype: MType */;
4278 val
* var1
/* : AAssignOp */;
4279 short int var2
/* : Bool */;
4282 static val
* varonce
;
4283 val
* var3
/* : String */;
4284 char* var4
/* : NativeString */;
4285 long var5
/* : Int */;
4286 val
* var6
/* : String */;
4287 val
* var_reassign_name
/* var reassign_name: String */;
4288 val
* var7
/* : AAssignOp */;
4289 short int var8
/* : Bool */;
4292 static val
* varonce11
;
4293 val
* var12
/* : String */;
4294 char* var13
/* : NativeString */;
4295 long var14
/* : Int */;
4296 val
* var15
/* : String */;
4297 short int var16
/* : Bool */;
4300 static val
* varonce19
;
4301 val
* var20
/* : String */;
4302 char* var21
/* : NativeString */;
4303 long var22
/* : Int */;
4304 val
* var23
/* : String */;
4305 static val
* varonce24
;
4306 val
* var25
/* : String */;
4307 char* var26
/* : NativeString */;
4308 long var27
/* : Int */;
4309 val
* var28
/* : String */;
4310 val
* var29
/* : Array[Object] */;
4311 long var30
/* : Int */;
4312 val
* var31
/* : NativeArray[Object] */;
4313 val
* var32
/* : String */;
4314 val
* var33
/* : null */;
4315 short int var34
/* : Bool */;
4316 val
* var35
/* : nullable CallSite */;
4317 val
* var_callsite
/* var callsite: nullable CallSite */;
4318 val
* var36
/* : null */;
4319 short int var37
/* : Bool */;
4320 val
* var38
/* : null */;
4321 val
* var39
/* : MSignature */;
4322 val
* var_msignature
/* var msignature: MSignature */;
4323 val
* var40
/* : nullable MType */;
4324 val
* var_rettype
/* var rettype: nullable MType */;
4325 short int var41
/* : Bool */;
4326 long var42
/* : Int */;
4327 long var43
/* : Int */;
4328 short int var44
/* : Bool */;
4329 short int var46
/* : Bool */;
4330 short int var_
/* var : Bool */;
4331 val
* var47
/* : null */;
4332 short int var48
/* : Bool */;
4333 val
* var49
/* : AExpr */;
4334 val
* var50
/* : Array[MParameter] */;
4335 val
* var51
/* : nullable Object */;
4336 val
* var52
/* : MType */;
4337 val
* var53
/* : nullable MType */;
4338 val
* var_value_type
/* var value_type: nullable MType */;
4339 val
* var54
/* : null */;
4340 short int var55
/* : Bool */;
4341 val
* var56
/* : null */;
4342 val
* var57
/* : nullable MType */;
4346 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_assign_op
]))(self
) /* n_assign_op on <self:AReassignFormExpr>*/;
4347 /* <var1:AAssignOp> isa APlusAssignOp */
4348 cltype
= type_parser_nodes__APlusAssignOp
.color
;
4349 idtype
= type_parser_nodes__APlusAssignOp
.id
;
4350 if(cltype
>= var1
->type
->table_size
) {
4353 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4361 var6
= string__NativeString__to_s_with_length(var4
, var5
);
4365 var_reassign_name
= var3
;
4367 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_assign_op
]))(self
) /* n_assign_op on <self:AReassignFormExpr>*/;
4368 /* <var7:AAssignOp> isa AMinusAssignOp */
4369 cltype9
= type_parser_nodes__AMinusAssignOp
.color
;
4370 idtype10
= type_parser_nodes__AMinusAssignOp
.id
;
4371 if(cltype9
>= var7
->type
->table_size
) {
4374 var8
= var7
->type
->type_table
[cltype9
] == idtype10
;
4382 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4386 var_reassign_name
= var12
;
4388 fprintf(stderr
, "Runtime error: %s", "Aborted");
4389 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 664);
4393 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type_61d
]))(self
, var_readtype
) /* read_type= on <self:AReassignFormExpr>*/;
4394 /* <var_readtype:MType> isa MNullType */
4395 cltype17
= type_model__MNullType
.color
;
4396 idtype18
= type_model__MNullType
.id
;
4397 if(cltype17
>= var_readtype
->type
->table_size
) {
4400 var16
= var_readtype
->type
->type_table
[cltype17
] == idtype18
;
4406 var21
= "Error: Method \'";
4408 var23
= string__NativeString__to_s_with_length(var21
, var22
);
4415 var26
= "\' call on \'null\'.";
4417 var28
= string__NativeString__to_s_with_length(var26
, var27
);
4421 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
4422 { /* var29 = array_instance Array[Object] */
4424 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
4425 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var20
;
4426 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_reassign_name
;
4427 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
4428 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
4429 CHECK_NEW_array__Array(var29
);
4431 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
4432 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var32
) /* error on <var_v:TypeVisitor>*/;
4439 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>*/;
4440 var_callsite
= var35
;
4442 if (var_callsite
== NULL
) {
4443 var37
= 1; /* is null */
4445 var37
= 0; /* arg is null but recv is not */
4453 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite_61d
]))(self
, var_callsite
) /* reassign_callsite= on <self:AReassignFormExpr>*/;
4454 var39
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
4455 var_msignature
= var39
;
4456 var40
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
4457 var_rettype
= var40
;
4458 var42
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
4460 { /* Inline kernel#Int#== (var42,var43) */
4461 var46
= var42
== var43
;
4464 RET_LABEL45
:(void)0;
4469 if (var_rettype
== NULL
) {
4470 var48
= 0; /* is null */
4472 var48
= 1; /* arg is null and recv is not */
4479 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4480 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 680);
4483 var49
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:AReassignFormExpr>*/;
4484 var50
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
4485 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var50
) /* first on <var50:Array[MParameter]>*/;
4486 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_model__MParameter__mtype
]))(var51
) /* mtype on <var51:nullable Object(MParameter)>*/;
4487 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>*/;
4488 var_value_type
= var53
;
4490 if (var_value_type
== NULL
) {
4491 var55
= 1; /* is null */
4493 var55
= 0; /* arg is null but recv is not */
4501 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>*/;
4508 /* method typing#AReassignFormExpr#resolve_reassignment for (self: Object, TypeVisitor, MType, MType): nullable MType */
4509 val
* VIRTUAL_typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4510 val
* var
/* : nullable MType */;
4511 val
* var1
/* : nullable MType */;
4512 var1
= typing__AReassignFormExpr__resolve_reassignment(self
, p0
, p1
, p2
);
4517 /* method typing#AVarReassignExpr#accept_typing for (self: AVarReassignExpr, TypeVisitor) */
4518 void typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
4519 val
* var_v
/* var v: TypeVisitor */;
4520 val
* var
/* : nullable Variable */;
4521 val
* var_variable
/* var variable: nullable Variable */;
4522 val
* var1
/* : null */;
4523 short int var2
/* : Bool */;
4524 val
* var3
/* : nullable MType */;
4525 val
* var_readtype
/* var readtype: nullable MType */;
4526 val
* var4
/* : null */;
4527 short int var5
/* : Bool */;
4528 val
* var6
/* : nullable MType */;
4529 val
* var_writetype
/* var writetype: nullable MType */;
4530 val
* var7
/* : null */;
4531 short int var8
/* : Bool */;
4532 val
* var9
/* : nullable MType */;
4533 val
* var_rettype
/* var rettype: nullable MType */;
4534 short int var10
/* : Bool */;
4536 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarReassignExpr>*/;
4539 if (var_variable
== NULL
) {
4540 var2
= 0; /* is null */
4542 var2
= 1; /* arg is null and recv is not */
4545 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4546 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 694);
4549 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>*/;
4550 var_readtype
= var3
;
4552 if (var_readtype
== NULL
) {
4553 var5
= 1; /* is null */
4555 var5
= 0; /* arg is null but recv is not */
4561 var6
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
4562 var_writetype
= var6
;
4564 if (var_writetype
== NULL
) {
4565 var8
= 1; /* is null */
4567 var8
= 0; /* arg is null but recv is not */
4573 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>*/;
4575 ((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>*/;
4577 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var10
) /* is_typed= on <self:AVarReassignExpr>*/;
4580 /* method typing#AVarReassignExpr#accept_typing for (self: Object, TypeVisitor) */
4581 void VIRTUAL_typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
4582 typing__AVarReassignExpr__accept_typing(self
, p0
);
4585 /* method typing#AContinueExpr#accept_typing for (self: AContinueExpr, TypeVisitor) */
4586 void typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
4587 val
* var_v
/* var v: TypeVisitor */;
4588 val
* var
/* : nullable AExpr */;
4589 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4590 val
* var1
/* : null */;
4591 short int var2
/* : Bool */;
4592 val
* var3
/* : nullable MType */;
4593 val
* var_mtype
/* var mtype: nullable MType */;
4594 short int var4
/* : Bool */;
4596 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AContinueExpr__n_expr
]))(self
) /* n_expr on <self:AContinueExpr>*/;
4599 if (var_nexpr
== NULL
) {
4600 var2
= 0; /* is null */
4602 var2
= 1; /* arg is null and recv is not */
4605 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4610 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AContinueExpr>*/;
4613 /* method typing#AContinueExpr#accept_typing for (self: Object, TypeVisitor) */
4614 void VIRTUAL_typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
4615 typing__AContinueExpr__accept_typing(self
, p0
);
4618 /* method typing#ABreakExpr#accept_typing for (self: ABreakExpr, TypeVisitor) */
4619 void typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
4620 val
* var_v
/* var v: TypeVisitor */;
4621 val
* var
/* : nullable AExpr */;
4622 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4623 val
* var1
/* : null */;
4624 short int var2
/* : Bool */;
4625 val
* var3
/* : nullable MType */;
4626 val
* var_mtype
/* var mtype: nullable MType */;
4627 short int var4
/* : Bool */;
4629 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABreakExpr__n_expr
]))(self
) /* n_expr on <self:ABreakExpr>*/;
4632 if (var_nexpr
== NULL
) {
4633 var2
= 0; /* is null */
4635 var2
= 1; /* arg is null and recv is not */
4638 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4643 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:ABreakExpr>*/;
4646 /* method typing#ABreakExpr#accept_typing for (self: Object, TypeVisitor) */
4647 void VIRTUAL_typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
4648 typing__ABreakExpr__accept_typing(self
, p0
);
4651 /* method typing#AReturnExpr#accept_typing for (self: AReturnExpr, TypeVisitor) */
4652 void typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
4653 val
* var_v
/* var v: TypeVisitor */;
4654 val
* var
/* : nullable AExpr */;
4655 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4656 val
* var1
/* : MPropDef */;
4657 short int var2
/* : Bool */;
4660 const char* var_class_name
;
4661 val
* var3
/* : nullable MSignature */;
4662 val
* var4
/* : nullable MType */;
4663 val
* var_ret_type
/* var ret_type: nullable MType */;
4664 val
* var5
/* : null */;
4665 short int var6
/* : Bool */;
4666 val
* var7
/* : null */;
4667 short int var8
/* : Bool */;
4668 val
* var9
/* : nullable MType */;
4669 val
* var_mtype
/* var mtype: nullable MType */;
4670 val
* var10
/* : nullable MType */;
4671 val
* var_mtype11
/* var mtype: nullable MType */;
4672 static val
* varonce
;
4673 val
* var12
/* : String */;
4674 char* var13
/* : NativeString */;
4675 long var14
/* : Int */;
4676 val
* var15
/* : String */;
4677 val
* var16
/* : null */;
4678 short int var17
/* : Bool */;
4679 static val
* varonce18
;
4680 val
* var19
/* : String */;
4681 char* var20
/* : NativeString */;
4682 long var21
/* : Int */;
4683 val
* var22
/* : String */;
4684 short int var23
/* : Bool */;
4686 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReturnExpr__n_expr
]))(self
) /* n_expr on <self:AReturnExpr>*/;
4688 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
4689 /* <var1:MPropDef> isa MMethodDef */
4690 cltype
= type_model__MMethodDef
.color
;
4691 idtype
= type_model__MMethodDef
.id
;
4692 if(cltype
>= var1
->type
->table_size
) {
4695 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4698 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
4699 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name
);
4700 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 737);
4703 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var1
) /* msignature on <var1:MPropDef(MMethodDef)>*/;
4705 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
4706 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 737);
4709 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var3
) /* return_mtype on <var3:nullable MSignature>*/;
4711 var_ret_type
= var4
;
4713 if (var_nexpr
== NULL
) {
4714 var6
= 0; /* is null */
4716 var6
= 1; /* arg is null and recv is not */
4720 if (var_ret_type
== NULL
) {
4721 var8
= 0; /* is null */
4723 var8
= 1; /* arg is null and recv is not */
4726 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>*/;
4729 var10
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4730 var_mtype11
= var10
;
4734 var13
= "Error: Return with value in a procedure.";
4736 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4740 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var12
) /* error on <var_v:TypeVisitor>*/;
4744 if (var_ret_type
== NULL
) {
4745 var17
= 0; /* is null */
4747 var17
= 1; /* arg is null and recv is not */
4753 var20
= "Error: Return without value in a function.";
4755 var22
= string__NativeString__to_s_with_length(var20
, var21
);
4759 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var19
) /* error on <var_v:TypeVisitor>*/;
4764 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var23
) /* is_typed= on <self:AReturnExpr>*/;
4767 /* method typing#AReturnExpr#accept_typing for (self: Object, TypeVisitor) */
4768 void VIRTUAL_typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
4769 typing__AReturnExpr__accept_typing(self
, p0
);
4772 /* method typing#AAbortExpr#accept_typing for (self: AAbortExpr, TypeVisitor) */
4773 void typing__AAbortExpr__accept_typing(val
* self
, val
* p0
) {
4774 val
* var_v
/* var v: TypeVisitor */;
4775 short int var
/* : Bool */;
4778 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var
) /* is_typed= on <self:AAbortExpr>*/;
4781 /* method typing#AAbortExpr#accept_typing for (self: Object, TypeVisitor) */
4782 void VIRTUAL_typing__AAbortExpr__accept_typing(val
* self
, val
* p0
) {
4783 typing__AAbortExpr__accept_typing(self
, p0
);
4786 /* method typing#AIfExpr#accept_typing for (self: AIfExpr, TypeVisitor) */
4787 void typing__AIfExpr__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
/* : nullable AExpr */;
4792 val
* var3
/* : nullable AExpr */;
4793 short int var4
/* : Bool */;
4795 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_expr
]))(self
) /* n_expr on <self:AIfExpr>*/;
4796 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4798 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_then
]))(self
) /* n_then on <self:AIfExpr>*/;
4799 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
4800 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_else
]))(self
) /* n_else on <self:AIfExpr>*/;
4801 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var3
) /* visit_stmt on <var_v:TypeVisitor>*/;
4803 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AIfExpr>*/;
4806 /* method typing#AIfExpr#accept_typing for (self: Object, TypeVisitor) */
4807 void VIRTUAL_typing__AIfExpr__accept_typing(val
* self
, val
* p0
) {
4808 typing__AIfExpr__accept_typing(self
, p0
);
4811 /* method typing#AIfexprExpr#accept_typing for (self: AIfexprExpr, TypeVisitor) */
4812 void typing__AIfexprExpr__accept_typing(val
* self
, val
* p0
) {
4813 val
* var_v
/* var v: TypeVisitor */;
4814 val
* var
/* : AExpr */;
4815 val
* var1
/* : nullable MType */;
4816 val
* var2
/* : AExpr */;
4817 val
* var3
/* : nullable MType */;
4818 val
* var_t1
/* var t1: nullable MType */;
4819 val
* var4
/* : AExpr */;
4820 val
* var5
/* : nullable MType */;
4821 val
* var_t2
/* var t2: nullable MType */;
4822 short int var6
/* : Bool */;
4823 val
* var7
/* : null */;
4824 short int var8
/* : Bool */;
4825 short int var_
/* var : Bool */;
4826 val
* var9
/* : null */;
4827 short int var10
/* : Bool */;
4828 val
* var11
/* : Array[MType] */;
4829 long var12
/* : Int */;
4830 val
* var13
/* : NativeArray[MType] */;
4831 val
* var14
/* : nullable MType */;
4832 val
* var_t
/* var t: nullable MType */;
4833 val
* var15
/* : null */;
4834 short int var16
/* : Bool */;
4835 static val
* varonce
;
4836 val
* var17
/* : String */;
4837 char* var18
/* : NativeString */;
4838 long var19
/* : Int */;
4839 val
* var20
/* : String */;
4840 static val
* varonce21
;
4841 val
* var22
/* : String */;
4842 char* var23
/* : NativeString */;
4843 long var24
/* : Int */;
4844 val
* var25
/* : String */;
4845 val
* var26
/* : Array[Object] */;
4846 long var27
/* : Int */;
4847 val
* var28
/* : NativeArray[Object] */;
4848 val
* var29
/* : String */;
4850 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_expr
]))(self
) /* n_expr on <self:AIfexprExpr>*/;
4851 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4853 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_then
]))(self
) /* n_then on <self:AIfexprExpr>*/;
4854 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var2
) /* visit_expr on <var_v:TypeVisitor>*/;
4856 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_else
]))(self
) /* n_else on <self:AIfexprExpr>*/;
4857 var5
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var4
) /* visit_expr on <var_v:TypeVisitor>*/;
4860 if (var_t1
== NULL
) {
4861 var8
= 1; /* is null */
4863 var8
= 0; /* arg is null but recv is not */
4870 if (var_t2
== NULL
) {
4871 var10
= 1; /* is null */
4873 var10
= 0; /* arg is null but recv is not */
4881 var11
= NEW_array__Array(&type_array__Arraymodel__MType
);
4882 { /* var11 = array_instance Array[MType] */
4884 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraymodel__MType
);
4885 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_t1
;
4886 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_t2
;
4887 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[MType]>*/;
4888 CHECK_NEW_array__Array(var11
);
4890 var14
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(var_v
, self
, var11
) /* merge_types on <var_v:TypeVisitor>*/;
4893 if (var_t
== NULL
) {
4894 var16
= 1; /* is null */
4896 var16
= 0; /* arg is null but recv is not */
4902 var18
= "Type Error: ambiguous type ";
4904 var20
= string__NativeString__to_s_with_length(var18
, var19
);
4913 var25
= string__NativeString__to_s_with_length(var23
, var24
);
4917 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
4918 { /* var26 = array_instance Array[Object] */
4920 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
4921 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
4922 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_t1
;
4923 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var22
;
4924 ((struct instance_array__NativeArray
*)var28
)->values
[3] = (val
*) var_t2
;
4925 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
4926 CHECK_NEW_array__Array(var26
);
4928 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
4929 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var29
) /* error on <var_v:TypeVisitor>*/;
4932 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_t
) /* mtype= on <self:AIfexprExpr>*/;
4935 /* method typing#AIfexprExpr#accept_typing for (self: Object, TypeVisitor) */
4936 void VIRTUAL_typing__AIfexprExpr__accept_typing(val
* self
, val
* p0
) {
4937 typing__AIfexprExpr__accept_typing(self
, p0
);
4940 /* method typing#ADoExpr#accept_typing for (self: ADoExpr, TypeVisitor) */
4941 void typing__ADoExpr__accept_typing(val
* self
, val
* p0
) {
4942 val
* var_v
/* var v: TypeVisitor */;
4943 val
* var
/* : nullable AExpr */;
4944 short int var1
/* : Bool */;
4946 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ADoExpr__n_block
]))(self
) /* n_block on <self:ADoExpr>*/;
4947 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var
) /* visit_stmt on <var_v:TypeVisitor>*/;
4949 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var1
) /* is_typed= on <self:ADoExpr>*/;
4952 /* method typing#ADoExpr#accept_typing for (self: Object, TypeVisitor) */
4953 void VIRTUAL_typing__ADoExpr__accept_typing(val
* self
, val
* p0
) {
4954 typing__ADoExpr__accept_typing(self
, p0
);
4957 /* method typing#AWhileExpr#accept_typing for (self: AWhileExpr, TypeVisitor) */
4958 void typing__AWhileExpr__accept_typing(val
* self
, val
* p0
) {
4959 val
* var_v
/* var v: TypeVisitor */;
4960 val
* var
/* : AExpr */;
4961 val
* var1
/* : nullable MType */;
4962 val
* var2
/* : nullable AExpr */;
4963 short int var3
/* : Bool */;
4965 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_expr
]))(self
) /* n_expr on <self:AWhileExpr>*/;
4966 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4968 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_block
]))(self
) /* n_block on <self:AWhileExpr>*/;
4969 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
4971 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AWhileExpr>*/;
4974 /* method typing#AWhileExpr#accept_typing for (self: Object, TypeVisitor) */
4975 void VIRTUAL_typing__AWhileExpr__accept_typing(val
* self
, val
* p0
) {
4976 typing__AWhileExpr__accept_typing(self
, p0
);
4979 /* method typing#ALoopExpr#accept_typing for (self: ALoopExpr, TypeVisitor) */
4980 void typing__ALoopExpr__accept_typing(val
* self
, val
* p0
) {
4981 val
* var_v
/* var v: TypeVisitor */;
4982 val
* var
/* : nullable AExpr */;
4983 short int var1
/* : Bool */;
4985 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ALoopExpr__n_block
]))(self
) /* n_block on <self:ALoopExpr>*/;
4986 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var
) /* visit_stmt on <var_v:TypeVisitor>*/;
4988 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var1
) /* is_typed= on <self:ALoopExpr>*/;
4991 /* method typing#ALoopExpr#accept_typing for (self: Object, TypeVisitor) */
4992 void VIRTUAL_typing__ALoopExpr__accept_typing(val
* self
, val
* p0
) {
4993 typing__ALoopExpr__accept_typing(self
, p0
);
4996 /* method typing#AForExpr#coltype for (self: AForExpr): nullable MClassType */
4997 val
* typing__AForExpr__coltype(val
* self
) {
4998 val
* var
/* : nullable MClassType */;
4999 val
* var1
/* : nullable MClassType */;
5000 var1
= self
->attrs
[COLOR_typing__AForExpr___64dcoltype
].val
; /* @coltype on <self:AForExpr> */
5005 /* method typing#AForExpr#coltype for (self: Object): nullable MClassType */
5006 val
* VIRTUAL_typing__AForExpr__coltype(val
* self
) {
5007 val
* var
/* : nullable MClassType */;
5008 val
* var1
/* : nullable MClassType */;
5009 var1
= typing__AForExpr__coltype(self
);
5014 /* method typing#AForExpr#coltype= for (self: AForExpr, nullable MClassType) */
5015 void typing__AForExpr__coltype_61d(val
* self
, val
* p0
) {
5016 self
->attrs
[COLOR_typing__AForExpr___64dcoltype
].val
= p0
; /* @coltype on <self:AForExpr> */
5019 /* method typing#AForExpr#coltype= for (self: Object, nullable MClassType) */
5020 void VIRTUAL_typing__AForExpr__coltype_61d(val
* self
, val
* p0
) {
5021 typing__AForExpr__coltype_61d(self
, p0
);
5024 /* method typing#AForExpr#method_iterator for (self: AForExpr): nullable MMethod */
5025 val
* typing__AForExpr__method_iterator(val
* self
) {
5026 val
* var
/* : nullable MMethod */;
5027 val
* var1
/* : nullable MMethod */;
5028 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_iterator
].val
; /* @method_iterator on <self:AForExpr> */
5033 /* method typing#AForExpr#method_iterator for (self: Object): nullable MMethod */
5034 val
* VIRTUAL_typing__AForExpr__method_iterator(val
* self
) {
5035 val
* var
/* : nullable MMethod */;
5036 val
* var1
/* : nullable MMethod */;
5037 var1
= typing__AForExpr__method_iterator(self
);
5042 /* method typing#AForExpr#method_iterator= for (self: AForExpr, nullable MMethod) */
5043 void typing__AForExpr__method_iterator_61d(val
* self
, val
* p0
) {
5044 self
->attrs
[COLOR_typing__AForExpr___64dmethod_iterator
].val
= p0
; /* @method_iterator on <self:AForExpr> */
5047 /* method typing#AForExpr#method_iterator= for (self: Object, nullable MMethod) */
5048 void VIRTUAL_typing__AForExpr__method_iterator_61d(val
* self
, val
* p0
) {
5049 typing__AForExpr__method_iterator_61d(self
, p0
);
5052 /* method typing#AForExpr#method_is_ok for (self: AForExpr): nullable MMethod */
5053 val
* typing__AForExpr__method_is_ok(val
* self
) {
5054 val
* var
/* : nullable MMethod */;
5055 val
* var1
/* : nullable MMethod */;
5056 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_is_ok
].val
; /* @method_is_ok on <self:AForExpr> */
5061 /* method typing#AForExpr#method_is_ok for (self: Object): nullable MMethod */
5062 val
* VIRTUAL_typing__AForExpr__method_is_ok(val
* self
) {
5063 val
* var
/* : nullable MMethod */;
5064 val
* var1
/* : nullable MMethod */;
5065 var1
= typing__AForExpr__method_is_ok(self
);
5070 /* method typing#AForExpr#method_is_ok= for (self: AForExpr, nullable MMethod) */
5071 void typing__AForExpr__method_is_ok_61d(val
* self
, val
* p0
) {
5072 self
->attrs
[COLOR_typing__AForExpr___64dmethod_is_ok
].val
= p0
; /* @method_is_ok on <self:AForExpr> */
5075 /* method typing#AForExpr#method_is_ok= for (self: Object, nullable MMethod) */
5076 void VIRTUAL_typing__AForExpr__method_is_ok_61d(val
* self
, val
* p0
) {
5077 typing__AForExpr__method_is_ok_61d(self
, p0
);
5080 /* method typing#AForExpr#method_item for (self: AForExpr): nullable MMethod */
5081 val
* typing__AForExpr__method_item(val
* self
) {
5082 val
* var
/* : nullable MMethod */;
5083 val
* var1
/* : nullable MMethod */;
5084 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_item
].val
; /* @method_item on <self:AForExpr> */
5089 /* method typing#AForExpr#method_item for (self: Object): nullable MMethod */
5090 val
* VIRTUAL_typing__AForExpr__method_item(val
* self
) {
5091 val
* var
/* : nullable MMethod */;
5092 val
* var1
/* : nullable MMethod */;
5093 var1
= typing__AForExpr__method_item(self
);
5098 /* method typing#AForExpr#method_item= for (self: AForExpr, nullable MMethod) */
5099 void typing__AForExpr__method_item_61d(val
* self
, val
* p0
) {
5100 self
->attrs
[COLOR_typing__AForExpr___64dmethod_item
].val
= p0
; /* @method_item on <self:AForExpr> */
5103 /* method typing#AForExpr#method_item= for (self: Object, nullable MMethod) */
5104 void VIRTUAL_typing__AForExpr__method_item_61d(val
* self
, val
* p0
) {
5105 typing__AForExpr__method_item_61d(self
, p0
);
5108 /* method typing#AForExpr#method_next for (self: AForExpr): nullable MMethod */
5109 val
* typing__AForExpr__method_next(val
* self
) {
5110 val
* var
/* : nullable MMethod */;
5111 val
* var1
/* : nullable MMethod */;
5112 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_next
].val
; /* @method_next on <self:AForExpr> */
5117 /* method typing#AForExpr#method_next for (self: Object): nullable MMethod */
5118 val
* VIRTUAL_typing__AForExpr__method_next(val
* self
) {
5119 val
* var
/* : nullable MMethod */;
5120 val
* var1
/* : nullable MMethod */;
5121 var1
= typing__AForExpr__method_next(self
);
5126 /* method typing#AForExpr#method_next= for (self: AForExpr, nullable MMethod) */
5127 void typing__AForExpr__method_next_61d(val
* self
, val
* p0
) {
5128 self
->attrs
[COLOR_typing__AForExpr___64dmethod_next
].val
= p0
; /* @method_next on <self:AForExpr> */
5131 /* method typing#AForExpr#method_next= for (self: Object, nullable MMethod) */
5132 void VIRTUAL_typing__AForExpr__method_next_61d(val
* self
, val
* p0
) {
5133 typing__AForExpr__method_next_61d(self
, p0
);
5136 /* method typing#AForExpr#method_key for (self: AForExpr): nullable MMethod */
5137 val
* typing__AForExpr__method_key(val
* self
) {
5138 val
* var
/* : nullable MMethod */;
5139 val
* var1
/* : nullable MMethod */;
5140 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_key
].val
; /* @method_key on <self:AForExpr> */
5145 /* method typing#AForExpr#method_key for (self: Object): nullable MMethod */
5146 val
* VIRTUAL_typing__AForExpr__method_key(val
* self
) {
5147 val
* var
/* : nullable MMethod */;
5148 val
* var1
/* : nullable MMethod */;
5149 var1
= typing__AForExpr__method_key(self
);
5154 /* method typing#AForExpr#method_key= for (self: AForExpr, nullable MMethod) */
5155 void typing__AForExpr__method_key_61d(val
* self
, val
* p0
) {
5156 self
->attrs
[COLOR_typing__AForExpr___64dmethod_key
].val
= p0
; /* @method_key on <self:AForExpr> */
5159 /* method typing#AForExpr#method_key= for (self: Object, nullable MMethod) */
5160 void VIRTUAL_typing__AForExpr__method_key_61d(val
* self
, val
* p0
) {
5161 typing__AForExpr__method_key_61d(self
, p0
);
5164 /* method typing#AForExpr#do_type_iterator for (self: AForExpr, TypeVisitor, MType) */
5165 void typing__AForExpr__do_type_iterator(val
* self
, val
* p0
, val
* p1
) {
5166 val
* var_v
/* var v: TypeVisitor */;
5167 val
* var_mtype
/* var mtype: MType */;
5168 static val
* varonce
;
5169 val
* var
/* : String */;
5170 char* var1
/* : NativeString */;
5171 long var2
/* : Int */;
5172 val
* var3
/* : String */;
5173 val
* var4
/* : nullable MClass */;
5174 val
* var_objcla
/* var objcla: nullable MClass */;
5175 val
* var5
/* : null */;
5176 short int var6
/* : Bool */;
5177 val
* var7
/* : MType */;
5178 val
* var_unsafe_type
/* var unsafe_type: MType */;
5179 static val
* varonce8
;
5180 val
* var9
/* : String */;
5181 char* var10
/* : NativeString */;
5182 long var11
/* : Int */;
5183 val
* var12
/* : String */;
5184 val
* var13
/* : nullable MProperty */;
5185 val
* var14
/* : null */;
5186 short int var15
/* : Bool */;
5187 static val
* varonce16
;
5188 val
* var17
/* : String */;
5189 char* var18
/* : NativeString */;
5190 long var19
/* : Int */;
5191 val
* var20
/* : String */;
5192 val
* var21
/* : nullable MProperty */;
5193 val
* var22
/* : null */;
5194 short int var23
/* : Bool */;
5195 static val
* varonce24
;
5196 val
* var25
/* : String */;
5197 char* var26
/* : NativeString */;
5198 long var27
/* : Int */;
5199 val
* var28
/* : String */;
5200 val
* var29
/* : Array[Object] */;
5201 long var30
/* : Int */;
5202 val
* var31
/* : NativeArray[Object] */;
5203 val
* var32
/* : String */;
5204 val
* var33
/* : ModelBuilder */;
5205 static val
* varonce34
;
5206 val
* var35
/* : String */;
5207 char* var36
/* : NativeString */;
5208 long var37
/* : Int */;
5209 val
* var38
/* : String */;
5210 val
* var39
/* : Array[Object] */;
5211 long var40
/* : Int */;
5212 val
* var41
/* : NativeArray[Object] */;
5213 val
* var42
/* : String */;
5214 static val
* varonce43
;
5215 val
* var44
/* : String */;
5216 char* var45
/* : NativeString */;
5217 long var46
/* : Int */;
5218 val
* var47
/* : String */;
5219 short int var48
/* : Bool */;
5220 val
* var49
/* : nullable CallSite */;
5221 val
* var_itdef
/* var itdef: nullable CallSite */;
5222 val
* var50
/* : null */;
5223 short int var51
/* : Bool */;
5224 static val
* varonce52
;
5225 val
* var53
/* : String */;
5226 char* var54
/* : NativeString */;
5227 long var55
/* : Int */;
5228 val
* var56
/* : String */;
5229 val
* var57
/* : Array[Object] */;
5230 long var58
/* : Int */;
5231 val
* var59
/* : NativeArray[Object] */;
5232 val
* var60
/* : String */;
5233 val
* var61
/* : MMethod */;
5234 val
* var62
/* : MSignature */;
5235 val
* var63
/* : nullable MType */;
5236 val
* var_ittype
/* var ittype: nullable MType */;
5237 val
* var64
/* : null */;
5238 short int var65
/* : Bool */;
5239 static val
* varonce66
;
5240 val
* var67
/* : String */;
5241 char* var68
/* : NativeString */;
5242 long var69
/* : Int */;
5243 val
* var70
/* : String */;
5244 static val
* varonce71
;
5245 val
* var72
/* : String */;
5246 char* var73
/* : NativeString */;
5247 long var74
/* : Int */;
5248 val
* var75
/* : String */;
5249 val
* var76
/* : nullable MClass */;
5250 val
* var_colit_cla
/* var colit_cla: nullable MClass */;
5251 static val
* varonce77
;
5252 val
* var78
/* : String */;
5253 char* var79
/* : NativeString */;
5254 long var80
/* : Int */;
5255 val
* var81
/* : String */;
5256 val
* var82
/* : nullable MClass */;
5257 val
* var_mapit_cla
/* var mapit_cla: nullable MClass */;
5258 short int var83
/* : Bool */;
5259 short int var_is_col
/* var is_col: Bool */;
5260 short int var84
/* : Bool */;
5261 short int var_is_map
/* var is_map: Bool */;
5262 short int var85
/* : Bool */;
5263 val
* var86
/* : null */;
5264 short int var87
/* : Bool */;
5265 short int var_
/* var : Bool */;
5266 val
* var88
/* : MClassType */;
5267 val
* var89
/* : MType */;
5268 val
* var90
/* : Array[MType] */;
5269 long var91
/* : Int */;
5270 val
* var92
/* : NativeArray[MType] */;
5271 val
* var93
/* : MClassType */;
5272 short int var94
/* : Bool */;
5273 val
* var95
/* : MModule */;
5274 val
* var96
/* : MClassType */;
5275 val
* var97
/* : MClassType */;
5276 val
* var_coltype
/* var coltype: MClassType */;
5277 val
* var98
/* : nullable Array[Variable] */;
5278 val
* var_variables
/* var variables: nullable Array[Variable] */;
5279 long var99
/* : Int */;
5280 long var100
/* : Int */;
5281 short int var101
/* : Bool */;
5282 short int var103
/* : Bool */;
5283 short int var104
/* : Bool */;
5284 static val
* varonce105
;
5285 val
* var106
/* : String */;
5286 char* var107
/* : NativeString */;
5287 long var108
/* : Int */;
5288 val
* var109
/* : String */;
5289 val
* var110
/* : nullable Object */;
5290 val
* var111
/* : Array[MType] */;
5291 val
* var112
/* : nullable Object */;
5292 short int var113
/* : Bool */;
5293 short int var114
/* : Bool */;
5294 val
* var115
/* : null */;
5295 short int var116
/* : Bool */;
5296 short int var_117
/* var : Bool */;
5297 val
* var118
/* : MClassType */;
5298 val
* var119
/* : MClassType */;
5299 val
* var120
/* : MType */;
5300 val
* var121
/* : Array[MType] */;
5301 long var122
/* : Int */;
5302 val
* var123
/* : NativeArray[MType] */;
5303 val
* var124
/* : MClassType */;
5304 short int var125
/* : Bool */;
5305 val
* var126
/* : MModule */;
5306 val
* var127
/* : MClassType */;
5307 val
* var128
/* : MClassType */;
5308 val
* var_coltype129
/* var coltype: MClassType */;
5309 val
* var130
/* : nullable Array[Variable] */;
5310 val
* var_variables131
/* var variables: nullable Array[Variable] */;
5311 long var132
/* : Int */;
5312 long var133
/* : Int */;
5313 short int var134
/* : Bool */;
5314 short int var136
/* : Bool */;
5315 short int var137
/* : Bool */;
5316 static val
* varonce138
;
5317 val
* var139
/* : String */;
5318 char* var140
/* : NativeString */;
5319 long var141
/* : Int */;
5320 val
* var142
/* : String */;
5321 long var143
/* : Int */;
5322 val
* var144
/* : nullable Object */;
5323 val
* var145
/* : Array[MType] */;
5324 long var146
/* : Int */;
5325 val
* var147
/* : nullable Object */;
5326 long var148
/* : Int */;
5327 val
* var149
/* : nullable Object */;
5328 val
* var150
/* : Array[MType] */;
5329 long var151
/* : Int */;
5330 val
* var152
/* : nullable Object */;
5331 short int var153
/* : Bool */;
5332 short int var154
/* : Bool */;
5333 short int var155
/* : Bool */;
5334 short int var_156
/* var : Bool */;
5335 short int var157
/* : Bool */;
5336 static val
* varonce158
;
5337 val
* var159
/* : String */;
5338 char* var160
/* : NativeString */;
5339 long var161
/* : Int */;
5340 val
* var162
/* : String */;
5341 short int var163
/* : Bool */;
5342 val
* var164
/* : MType */;
5343 short int var165
/* : Bool */;
5346 const char* var_class_name
;
5347 static val
* varonce166
;
5348 val
* var167
/* : String */;
5349 char* var168
/* : NativeString */;
5350 long var169
/* : Int */;
5351 val
* var170
/* : String */;
5352 short int var171
/* : Bool */;
5353 val
* var172
/* : nullable CallSite */;
5354 val
* var_ikdef
/* var ikdef: nullable CallSite */;
5355 val
* var173
/* : null */;
5356 short int var174
/* : Bool */;
5357 static val
* varonce175
;
5358 val
* var176
/* : String */;
5359 char* var177
/* : NativeString */;
5360 long var178
/* : Int */;
5361 val
* var179
/* : String */;
5362 val
* var180
/* : Array[Object] */;
5363 long var181
/* : Int */;
5364 val
* var182
/* : NativeArray[Object] */;
5365 val
* var183
/* : String */;
5366 val
* var184
/* : MMethod */;
5367 static val
* varonce185
;
5368 val
* var186
/* : String */;
5369 char* var187
/* : NativeString */;
5370 long var188
/* : Int */;
5371 val
* var189
/* : String */;
5372 short int var190
/* : Bool */;
5373 val
* var191
/* : nullable CallSite */;
5374 val
* var_itemdef
/* var itemdef: nullable CallSite */;
5375 val
* var192
/* : null */;
5376 short int var193
/* : Bool */;
5377 static val
* varonce194
;
5378 val
* var195
/* : String */;
5379 char* var196
/* : NativeString */;
5380 long var197
/* : Int */;
5381 val
* var198
/* : String */;
5382 val
* var199
/* : Array[Object] */;
5383 long var200
/* : Int */;
5384 val
* var201
/* : NativeArray[Object] */;
5385 val
* var202
/* : String */;
5386 val
* var203
/* : MMethod */;
5387 static val
* varonce204
;
5388 val
* var205
/* : String */;
5389 char* var206
/* : NativeString */;
5390 long var207
/* : Int */;
5391 val
* var208
/* : String */;
5392 short int var209
/* : Bool */;
5393 val
* var210
/* : nullable CallSite */;
5394 val
* var_nextdef
/* var nextdef: nullable CallSite */;
5395 val
* var211
/* : null */;
5396 short int var212
/* : Bool */;
5397 static val
* varonce213
;
5398 val
* var214
/* : String */;
5399 char* var215
/* : NativeString */;
5400 long var216
/* : Int */;
5401 val
* var217
/* : String */;
5402 val
* var218
/* : Array[Object] */;
5403 long var219
/* : Int */;
5404 val
* var220
/* : NativeArray[Object] */;
5405 val
* var221
/* : String */;
5406 val
* var222
/* : MMethod */;
5407 static val
* varonce223
;
5408 val
* var224
/* : String */;
5409 char* var225
/* : NativeString */;
5410 long var226
/* : Int */;
5411 val
* var227
/* : String */;
5412 short int var228
/* : Bool */;
5413 val
* var229
/* : nullable CallSite */;
5414 val
* var_keydef
/* var keydef: nullable CallSite */;
5415 val
* var230
/* : null */;
5416 short int var231
/* : Bool */;
5417 static val
* varonce232
;
5418 val
* var233
/* : String */;
5419 char* var234
/* : NativeString */;
5420 long var235
/* : Int */;
5421 val
* var236
/* : String */;
5422 val
* var237
/* : Array[Object] */;
5423 long var238
/* : Int */;
5424 val
* var239
/* : NativeArray[Object] */;
5425 val
* var240
/* : String */;
5426 val
* var241
/* : MMethod */;
5434 var3
= string__NativeString__to_s_with_length(var1
, var2
);
5438 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
5441 if (var_objcla
== NULL
) {
5442 var6
= 1; /* is null */
5444 var6
= 0; /* arg is null but recv is not */
5450 var7
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
5451 var_unsafe_type
= var7
;
5457 var12
= string__NativeString__to_s_with_length(var10
, var11
);
5461 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>*/;
5463 if (var13
== NULL
) {
5464 var15
= 1; /* is null */
5466 var15
= 0; /* arg is null but recv is not */
5474 var20
= string__NativeString__to_s_with_length(var18
, var19
);
5478 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>*/;
5480 if (var21
== NULL
) {
5481 var23
= 1; /* is null */
5483 var23
= 0; /* arg is null but recv is not */
5489 var26
= "Type Error: Expected method \'iterator\' in type ";
5491 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5495 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
5496 { /* var29 = array_instance Array[Object] */
5498 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
5499 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var25
;
5500 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_mtype
;
5501 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
5502 CHECK_NEW_array__Array(var29
);
5504 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
5505 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var32
) /* error on <var_v:TypeVisitor>*/;
5507 var33
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
5511 var36
= "NOT YET IMPLEMENTED: Do \'for\' on ";
5513 var38
= string__NativeString__to_s_with_length(var36
, var37
);
5517 var39
= NEW_array__Array(&type_array__Arraykernel__Object
);
5518 { /* var39 = array_instance Array[Object] */
5520 var41
= NEW_array__NativeArray(var40
, &type_array__NativeArraykernel__Object
);
5521 ((struct instance_array__NativeArray
*)var41
)->values
[0] = (val
*) var35
;
5522 ((struct instance_array__NativeArray
*)var41
)->values
[1] = (val
*) var_mtype
;
5523 ((void (*)(val
*, val
*, long))(var39
->class->vft
[COLOR_array__Array__with_native
]))(var39
, var41
, var40
) /* with_native on <var39:Array[Object]>*/;
5524 CHECK_NEW_array__Array(var39
);
5526 var42
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_string__Object__to_s
]))(var39
) /* to_s on <var39:Array[Object]>*/;
5527 ((void (*)(val
*, val
*, val
*))(var33
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var33
, self
, var42
) /* error on <var33:ModelBuilder>*/;
5537 var47
= string__NativeString__to_s_with_length(var45
, var46
);
5542 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>*/;
5545 if (var_itdef
== NULL
) {
5546 var51
= 1; /* is null */
5548 var51
= 0; /* arg is null but recv is not */
5554 var54
= "Type Error: Expected method \'iterator\' in type ";
5556 var56
= string__NativeString__to_s_with_length(var54
, var55
);
5560 var57
= NEW_array__Array(&type_array__Arraykernel__Object
);
5561 { /* var57 = array_instance Array[Object] */
5563 var59
= NEW_array__NativeArray(var58
, &type_array__NativeArraykernel__Object
);
5564 ((struct instance_array__NativeArray
*)var59
)->values
[0] = (val
*) var53
;
5565 ((struct instance_array__NativeArray
*)var59
)->values
[1] = (val
*) var_mtype
;
5566 ((void (*)(val
*, val
*, long))(var57
->class->vft
[COLOR_array__Array__with_native
]))(var57
, var59
, var58
) /* with_native on <var57:Array[Object]>*/;
5567 CHECK_NEW_array__Array(var57
);
5569 var60
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_string__Object__to_s
]))(var57
) /* to_s on <var57:Array[Object]>*/;
5570 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var60
) /* error on <var_v:TypeVisitor>*/;
5574 var61
= ((val
* (*)(val
*))(var_itdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_itdef
) /* mproperty on <var_itdef:nullable CallSite(CallSite)>*/;
5575 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_iterator_61d
]))(self
, var61
) /* method_iterator= on <self:AForExpr>*/;
5576 var62
= ((val
* (*)(val
*))(var_itdef
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_itdef
) /* msignature on <var_itdef:nullable CallSite(CallSite)>*/;
5577 var63
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var62
) /* return_mtype on <var62:MSignature>*/;
5580 if (var_ittype
== NULL
) {
5581 var65
= 1; /* is null */
5583 var65
= 0; /* arg is null but recv is not */
5589 var68
= "Type Error: Expected method \'iterator\' to return an Iterator or MapIterator type";
5591 var70
= string__NativeString__to_s_with_length(var68
, var69
);
5595 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var67
) /* error on <var_v:TypeVisitor>*/;
5604 var75
= string__NativeString__to_s_with_length(var73
, var74
);
5608 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>*/;
5609 var_colit_cla
= var76
;
5613 var79
= "MapIterator";
5615 var81
= string__NativeString__to_s_with_length(var79
, var80
);
5619 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>*/;
5620 var_mapit_cla
= var82
;
5626 if (var_colit_cla
== NULL
) {
5627 var87
= 0; /* is null */
5629 var87
= 1; /* arg is null and recv is not */
5633 var88
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5634 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MType__as_nullable
]))(var88
) /* as_nullable on <var88:MClassType>*/;
5635 var90
= NEW_array__Array(&type_array__Arraymodel__MType
);
5636 { /* var90 = array_instance Array[MType] */
5638 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArraymodel__MType
);
5639 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var89
;
5640 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[MType]>*/;
5641 CHECK_NEW_array__Array(var90
);
5643 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)>*/;
5644 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>*/;
5650 var95
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
5651 var96
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor
]))(var_v
) /* anchor on <var_v:TypeVisitor>*/;
5652 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)>*/;
5653 var_coltype
= var97
;
5654 var98
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
5655 var_variables
= var98
;
5656 if (var_variables
== NULL
) {
5657 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5658 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 866);
5661 var99
= ((long (*)(val
*))(var_variables
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_variables
) /* length on <var_variables:nullable Array[Variable]>*/;
5664 { /* Inline kernel#Int#!= (var99,var100) */
5665 var103
= var99
== var100
;
5669 RET_LABEL102
:(void)0;
5673 var106
= varonce105
;
5675 var107
= "Type Error: Expected one variable";
5677 var109
= string__NativeString__to_s_with_length(var107
, var108
);
5679 varonce105
= var106
;
5681 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var106
) /* error on <var_v:TypeVisitor>*/;
5683 if (var_variables
== NULL
) {
5684 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5685 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 869);
5688 var110
= ((val
* (*)(val
*))(var_variables
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_variables
) /* first on <var_variables:nullable Array[Variable]>*/;
5690 var111
= ((val
* (*)(val
*))(var_coltype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype
) /* arguments on <var_coltype:MClassType>*/;
5691 var112
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var111
) /* first on <var111:Array[MType]>*/;
5692 ((void (*)(val
*, val
*))(var110
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var110
, var112
) /* declared_type= on <var110:nullable Object(Variable)>*/;
5695 var_is_col
= var113
;
5699 if (var_mapit_cla
== NULL
) {
5700 var116
= 0; /* is null */
5702 var116
= 1; /* arg is null and recv is not */
5706 var118
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5707 var119
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5708 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_model__MType__as_nullable
]))(var119
) /* as_nullable on <var119:MClassType>*/;
5709 var121
= NEW_array__Array(&type_array__Arraymodel__MType
);
5710 { /* var121 = array_instance Array[MType] */
5712 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraymodel__MType
);
5713 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var118
;
5714 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var120
;
5715 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[MType]>*/;
5716 CHECK_NEW_array__Array(var121
);
5718 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)>*/;
5719 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>*/;
5725 var126
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
5726 var127
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor
]))(var_v
) /* anchor on <var_v:TypeVisitor>*/;
5727 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)>*/;
5728 var_coltype129
= var128
;
5729 var130
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
5730 var_variables131
= var130
;
5731 if (var_variables131
== NULL
) {
5732 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5733 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 878);
5736 var132
= ((long (*)(val
*))(var_variables131
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_variables131
) /* length on <var_variables131:nullable Array[Variable]>*/;
5739 { /* Inline kernel#Int#!= (var132,var133) */
5740 var136
= var132
== var133
;
5744 RET_LABEL135
:(void)0;
5748 var139
= varonce138
;
5750 var140
= "Type Error: Expected two variables";
5752 var142
= string__NativeString__to_s_with_length(var140
, var141
);
5754 varonce138
= var139
;
5756 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var139
) /* error on <var_v:TypeVisitor>*/;
5759 if (var_variables131
== NULL
) {
5760 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5761 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 881);
5764 var144
= ((val
* (*)(val
*, long))(var_variables131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_variables131
, var143
) /* [] on <var_variables131:nullable Array[Variable]>*/;
5766 var145
= ((val
* (*)(val
*))(var_coltype129
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype129
) /* arguments on <var_coltype129:MClassType>*/;
5768 var147
= ((val
* (*)(val
*, long))(var145
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var145
, var146
) /* [] on <var145:Array[MType]>*/;
5769 ((void (*)(val
*, val
*))(var144
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var144
, var147
) /* declared_type= on <var144:nullable Object(Variable)>*/;
5771 if (var_variables131
== NULL
) {
5772 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5773 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 882);
5776 var149
= ((val
* (*)(val
*, long))(var_variables131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_variables131
, var148
) /* [] on <var_variables131:nullable Array[Variable]>*/;
5778 var150
= ((val
* (*)(val
*))(var_coltype129
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype129
) /* arguments on <var_coltype129:MClassType>*/;
5780 var152
= ((val
* (*)(val
*, long))(var150
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var150
, var151
) /* [] on <var150:Array[MType]>*/;
5781 ((void (*)(val
*, val
*))(var149
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var149
, var152
) /* declared_type= on <var149:nullable Object(Variable)>*/;
5784 var_is_map
= var153
;
5787 var155
= !var_is_col
;
5790 var157
= !var_is_map
;
5797 var159
= varonce158
;
5799 var160
= "Type Error: Expected method \'iterator\' to return an Iterator of MapIterator type";
5801 var162
= string__NativeString__to_s_with_length(var160
, var161
);
5803 varonce158
= var159
;
5805 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var159
) /* error on <var_v:TypeVisitor>*/;
5809 var163
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5811 var164
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
5815 /* <var_mtype:MType> isa MClassType */
5816 cltype
= type_model__MClassType
.color
;
5817 idtype
= type_model__MClassType
.id
;
5818 if(cltype
>= var_mtype
->type
->table_size
) {
5821 var165
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5824 var_class_name
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
5825 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5826 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 895);
5829 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__coltype_61d
]))(self
, var_mtype
) /* coltype= on <self:AForExpr>*/;
5831 var167
= varonce166
;
5835 var170
= string__NativeString__to_s_with_length(var168
, var169
);
5837 varonce166
= var167
;
5840 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>*/;
5843 if (var_ikdef
== NULL
) {
5844 var174
= 1; /* is null */
5846 var174
= 0; /* arg is null but recv is not */
5850 var176
= varonce175
;
5852 var177
= "Type Error: Expected method \'is_ok\' in Iterator type ";
5854 var179
= string__NativeString__to_s_with_length(var177
, var178
);
5856 varonce175
= var176
;
5858 var180
= NEW_array__Array(&type_array__Arraykernel__Object
);
5859 { /* var180 = array_instance Array[Object] */
5861 var182
= NEW_array__NativeArray(var181
, &type_array__NativeArraykernel__Object
);
5862 ((struct instance_array__NativeArray
*)var182
)->values
[0] = (val
*) var176
;
5863 ((struct instance_array__NativeArray
*)var182
)->values
[1] = (val
*) var_ittype
;
5864 ((void (*)(val
*, val
*, long))(var180
->class->vft
[COLOR_array__Array__with_native
]))(var180
, var182
, var181
) /* with_native on <var180:Array[Object]>*/;
5865 CHECK_NEW_array__Array(var180
);
5867 var183
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_string__Object__to_s
]))(var180
) /* to_s on <var180:Array[Object]>*/;
5868 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var183
) /* error on <var_v:TypeVisitor>*/;
5872 var184
= ((val
* (*)(val
*))(var_ikdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_ikdef
) /* mproperty on <var_ikdef:nullable CallSite(CallSite)>*/;
5873 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_is_ok_61d
]))(self
, var184
) /* method_is_ok= on <self:AForExpr>*/;
5875 var186
= varonce185
;
5879 var189
= string__NativeString__to_s_with_length(var187
, var188
);
5881 varonce185
= var186
;
5884 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>*/;
5885 var_itemdef
= var191
;
5887 if (var_itemdef
== NULL
) {
5888 var193
= 1; /* is null */
5890 var193
= 0; /* arg is null but recv is not */
5894 var195
= varonce194
;
5896 var196
= "Type Error: Expected method \'item\' in Iterator type ";
5898 var198
= string__NativeString__to_s_with_length(var196
, var197
);
5900 varonce194
= var195
;
5902 var199
= NEW_array__Array(&type_array__Arraykernel__Object
);
5903 { /* var199 = array_instance Array[Object] */
5905 var201
= NEW_array__NativeArray(var200
, &type_array__NativeArraykernel__Object
);
5906 ((struct instance_array__NativeArray
*)var201
)->values
[0] = (val
*) var195
;
5907 ((struct instance_array__NativeArray
*)var201
)->values
[1] = (val
*) var_ittype
;
5908 ((void (*)(val
*, val
*, long))(var199
->class->vft
[COLOR_array__Array__with_native
]))(var199
, var201
, var200
) /* with_native on <var199:Array[Object]>*/;
5909 CHECK_NEW_array__Array(var199
);
5911 var202
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_string__Object__to_s
]))(var199
) /* to_s on <var199:Array[Object]>*/;
5912 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var202
) /* error on <var_v:TypeVisitor>*/;
5916 var203
= ((val
* (*)(val
*))(var_itemdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_itemdef
) /* mproperty on <var_itemdef:nullable CallSite(CallSite)>*/;
5917 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_item_61d
]))(self
, var203
) /* method_item= on <self:AForExpr>*/;
5919 var205
= varonce204
;
5923 var208
= string__NativeString__to_s_with_length(var206
, var207
);
5925 varonce204
= var205
;
5928 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>*/;
5929 var_nextdef
= var210
;
5931 if (var_nextdef
== NULL
) {
5932 var212
= 1; /* is null */
5934 var212
= 0; /* arg is null but recv is not */
5938 var214
= varonce213
;
5940 var215
= "Type Error: Expected method \'next\' in Iterator type ";
5942 var217
= string__NativeString__to_s_with_length(var215
, var216
);
5944 varonce213
= var214
;
5946 var218
= NEW_array__Array(&type_array__Arraykernel__Object
);
5947 { /* var218 = array_instance Array[Object] */
5949 var220
= NEW_array__NativeArray(var219
, &type_array__NativeArraykernel__Object
);
5950 ((struct instance_array__NativeArray
*)var220
)->values
[0] = (val
*) var214
;
5951 ((struct instance_array__NativeArray
*)var220
)->values
[1] = (val
*) var_ittype
;
5952 ((void (*)(val
*, val
*, long))(var218
->class->vft
[COLOR_array__Array__with_native
]))(var218
, var220
, var219
) /* with_native on <var218:Array[Object]>*/;
5953 CHECK_NEW_array__Array(var218
);
5955 var221
= ((val
* (*)(val
*))(var218
->class->vft
[COLOR_string__Object__to_s
]))(var218
) /* to_s on <var218:Array[Object]>*/;
5956 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var221
) /* error on <var_v:TypeVisitor>*/;
5960 var222
= ((val
* (*)(val
*))(var_nextdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_nextdef
) /* mproperty on <var_nextdef:nullable CallSite(CallSite)>*/;
5961 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_next_61d
]))(self
, var222
) /* method_next= on <self:AForExpr>*/;
5964 var224
= varonce223
;
5968 var227
= string__NativeString__to_s_with_length(var225
, var226
);
5970 varonce223
= var224
;
5973 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>*/;
5974 var_keydef
= var229
;
5976 if (var_keydef
== NULL
) {
5977 var231
= 1; /* is null */
5979 var231
= 0; /* arg is null but recv is not */
5983 var233
= varonce232
;
5985 var234
= "Type Error: Expected method \'key\' in Iterator type ";
5987 var236
= string__NativeString__to_s_with_length(var234
, var235
);
5989 varonce232
= var233
;
5991 var237
= NEW_array__Array(&type_array__Arraykernel__Object
);
5992 { /* var237 = array_instance Array[Object] */
5994 var239
= NEW_array__NativeArray(var238
, &type_array__NativeArraykernel__Object
);
5995 ((struct instance_array__NativeArray
*)var239
)->values
[0] = (val
*) var233
;
5996 ((struct instance_array__NativeArray
*)var239
)->values
[1] = (val
*) var_ittype
;
5997 ((void (*)(val
*, val
*, long))(var237
->class->vft
[COLOR_array__Array__with_native
]))(var237
, var239
, var238
) /* with_native on <var237:Array[Object]>*/;
5998 CHECK_NEW_array__Array(var237
);
6000 var240
= ((val
* (*)(val
*))(var237
->class->vft
[COLOR_string__Object__to_s
]))(var237
) /* to_s on <var237:Array[Object]>*/;
6001 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var240
) /* error on <var_v:TypeVisitor>*/;
6005 var241
= ((val
* (*)(val
*))(var_keydef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_keydef
) /* mproperty on <var_keydef:nullable CallSite(CallSite)>*/;
6006 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_key_61d
]))(self
, var241
) /* method_key= on <self:AForExpr>*/;
6011 /* method typing#AForExpr#do_type_iterator for (self: Object, TypeVisitor, MType) */
6012 void VIRTUAL_typing__AForExpr__do_type_iterator(val
* self
, val
* p0
, val
* p1
) {
6013 typing__AForExpr__do_type_iterator(self
, p0
, p1
);
6016 /* method typing#AForExpr#accept_typing for (self: AForExpr, TypeVisitor) */
6017 void typing__AForExpr__accept_typing(val
* self
, val
* p0
) {
6018 val
* var_v
/* var v: TypeVisitor */;
6019 val
* var
/* : AExpr */;
6020 val
* var1
/* : nullable MType */;
6021 val
* var_mtype
/* var mtype: nullable MType */;
6022 val
* var2
/* : null */;
6023 short int var3
/* : Bool */;
6024 val
* var4
/* : nullable AExpr */;
6025 short int var5
/* : Bool */;
6027 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_expr
]))(self
) /* n_expr on <self:AForExpr>*/;
6028 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
6031 if (var_mtype
== NULL
) {
6032 var3
= 1; /* is null */
6034 var3
= 0; /* arg is null but recv is not */
6040 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__do_type_iterator
]))(self
, var_v
, var_mtype
) /* do_type_iterator on <self:AForExpr>*/;
6041 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_block
]))(self
) /* n_block on <self:AForExpr>*/;
6042 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var4
) /* visit_stmt on <var_v:TypeVisitor>*/;
6044 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var5
) /* is_typed= on <self:AForExpr>*/;
6047 /* method typing#AForExpr#accept_typing for (self: Object, TypeVisitor) */
6048 void VIRTUAL_typing__AForExpr__accept_typing(val
* self
, val
* p0
) {
6049 typing__AForExpr__accept_typing(self
, p0
);
6052 /* method typing#AAssertExpr#accept_typing for (self: AAssertExpr, TypeVisitor) */
6053 void typing__AAssertExpr__accept_typing(val
* self
, val
* p0
) {
6054 val
* var_v
/* var v: TypeVisitor */;
6055 val
* var
/* : AExpr */;
6056 val
* var1
/* : nullable MType */;
6057 val
* var2
/* : nullable AExpr */;
6058 short int var3
/* : Bool */;
6060 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_expr
]))(self
) /* n_expr on <self:AAssertExpr>*/;
6061 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6063 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_else
]))(self
) /* n_else on <self:AAssertExpr>*/;
6064 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
6066 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AAssertExpr>*/;
6069 /* method typing#AAssertExpr#accept_typing for (self: Object, TypeVisitor) */
6070 void VIRTUAL_typing__AAssertExpr__accept_typing(val
* self
, val
* p0
) {
6071 typing__AAssertExpr__accept_typing(self
, p0
);
6074 /* method typing#AOrExpr#accept_typing for (self: AOrExpr, TypeVisitor) */
6075 void typing__AOrExpr__accept_typing(val
* self
, val
* p0
) {
6076 val
* var_v
/* var v: TypeVisitor */;
6077 val
* var
/* : AExpr */;
6078 val
* var1
/* : nullable MType */;
6079 val
* var2
/* : AExpr */;
6080 val
* var3
/* : nullable MType */;
6081 val
* var4
/* : nullable MType */;
6083 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr
]))(self
) /* n_expr on <self:AOrExpr>*/;
6084 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6086 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrExpr>*/;
6087 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6089 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6090 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AOrExpr>*/;
6093 /* method typing#AOrExpr#accept_typing for (self: Object, TypeVisitor) */
6094 void VIRTUAL_typing__AOrExpr__accept_typing(val
* self
, val
* p0
) {
6095 typing__AOrExpr__accept_typing(self
, p0
);
6098 /* method typing#AImpliesExpr#accept_typing for (self: AImpliesExpr, TypeVisitor) */
6099 void typing__AImpliesExpr__accept_typing(val
* self
, val
* p0
) {
6100 val
* var_v
/* var v: TypeVisitor */;
6101 val
* var
/* : AExpr */;
6102 val
* var1
/* : nullable MType */;
6103 val
* var2
/* : AExpr */;
6104 val
* var3
/* : nullable MType */;
6105 val
* var4
/* : nullable MType */;
6107 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr
]))(self
) /* n_expr on <self:AImpliesExpr>*/;
6108 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6110 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr2
]))(self
) /* n_expr2 on <self:AImpliesExpr>*/;
6111 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6113 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6114 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AImpliesExpr>*/;
6117 /* method typing#AImpliesExpr#accept_typing for (self: Object, TypeVisitor) */
6118 void VIRTUAL_typing__AImpliesExpr__accept_typing(val
* self
, val
* p0
) {
6119 typing__AImpliesExpr__accept_typing(self
, p0
);
6122 /* method typing#AAndExpr#accept_typing for (self: AAndExpr, TypeVisitor) */
6123 void typing__AAndExpr__accept_typing(val
* self
, val
* p0
) {
6124 val
* var_v
/* var v: TypeVisitor */;
6125 val
* var
/* : AExpr */;
6126 val
* var1
/* : nullable MType */;
6127 val
* var2
/* : AExpr */;
6128 val
* var3
/* : nullable MType */;
6129 val
* var4
/* : nullable MType */;
6131 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr
]))(self
) /* n_expr on <self:AAndExpr>*/;
6132 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6134 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr2
]))(self
) /* n_expr2 on <self:AAndExpr>*/;
6135 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6137 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6138 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AAndExpr>*/;
6141 /* method typing#AAndExpr#accept_typing for (self: Object, TypeVisitor) */
6142 void VIRTUAL_typing__AAndExpr__accept_typing(val
* self
, val
* p0
) {
6143 typing__AAndExpr__accept_typing(self
, p0
);
6146 /* method typing#ANotExpr#accept_typing for (self: ANotExpr, TypeVisitor) */
6147 void typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
6148 val
* var_v
/* var v: TypeVisitor */;
6149 val
* var
/* : AExpr */;
6150 val
* var1
/* : nullable MType */;
6151 val
* var2
/* : nullable MType */;
6153 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANotExpr__n_expr
]))(self
) /* n_expr on <self:ANotExpr>*/;
6154 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6156 var2
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6157 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:ANotExpr>*/;
6160 /* method typing#ANotExpr#accept_typing for (self: Object, TypeVisitor) */
6161 void VIRTUAL_typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
6162 typing__ANotExpr__accept_typing(self
, p0
);
6165 /* method typing#AOrElseExpr#accept_typing for (self: AOrElseExpr, TypeVisitor) */
6166 void typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
6167 val
* var_v
/* var v: TypeVisitor */;
6168 val
* var
/* : AExpr */;
6169 val
* var1
/* : nullable MType */;
6170 val
* var_t1
/* var t1: nullable MType */;
6171 val
* var2
/* : AExpr */;
6172 val
* var3
/* : nullable MType */;
6173 val
* var_t2
/* var t2: nullable MType */;
6174 short int var4
/* : Bool */;
6175 val
* var5
/* : null */;
6176 short int var6
/* : Bool */;
6177 short int var_
/* var : Bool */;
6178 val
* var7
/* : null */;
6179 short int var8
/* : Bool */;
6180 short int var9
/* : Bool */;
6183 val
* var10
/* : MType */;
6184 val
* var11
/* : Array[MType] */;
6185 long var12
/* : Int */;
6186 val
* var13
/* : NativeArray[MType] */;
6187 val
* var14
/* : nullable MType */;
6188 val
* var_t
/* var t: nullable MType */;
6189 val
* var15
/* : null */;
6190 short int var16
/* : Bool */;
6191 val
* var17
/* : MModule */;
6192 val
* var18
/* : MClassType */;
6193 short int var19
/* : Bool */;
6196 val
* var22
/* : MType */;
6198 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrElseExpr__n_expr
]))(self
) /* n_expr on <self:AOrElseExpr>*/;
6199 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
6201 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrElseExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrElseExpr>*/;
6202 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var2
) /* visit_expr on <var_v:TypeVisitor>*/;
6205 if (var_t1
== NULL
) {
6206 var6
= 1; /* is null */
6208 var6
= 0; /* arg is null but recv is not */
6215 if (var_t2
== NULL
) {
6216 var8
= 1; /* is null */
6218 var8
= 0; /* arg is null but recv is not */
6226 /* <var_t1:nullable MType(MType)> isa MNullableType */
6227 cltype
= type_model__MNullableType
.color
;
6228 idtype
= type_model__MNullableType
.id
;
6229 if(cltype
>= var_t1
->type
->table_size
) {
6232 var9
= var_t1
->type
->type_table
[cltype
] == idtype
;
6235 var10
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_t1
) /* mtype on <var_t1:nullable MType(MNullableType)>*/;
6239 var11
= NEW_array__Array(&type_array__Arraymodel__MType
);
6240 { /* var11 = array_instance Array[MType] */
6242 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraymodel__MType
);
6243 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_t1
;
6244 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_t2
;
6245 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[MType]>*/;
6246 CHECK_NEW_array__Array(var11
);
6248 var14
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(var_v
, self
, var11
) /* merge_types on <var_v:TypeVisitor>*/;
6251 if (var_t
== NULL
) {
6252 var16
= 1; /* is null */
6254 var16
= 0; /* arg is null but recv is not */
6257 var17
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
6258 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MModule__object_type
]))(var17
) /* object_type on <var17:MModule>*/;
6260 /* <var_t2:nullable MType(MType)> isa MNullableType */
6261 cltype20
= type_model__MNullableType
.color
;
6262 idtype21
= type_model__MNullableType
.id
;
6263 if(cltype20
>= var_t2
->type
->table_size
) {
6266 var19
= var_t2
->type
->type_table
[cltype20
] == idtype21
;
6269 var22
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t
) /* as_nullable on <var_t:nullable MType(MClassType)>*/;
6275 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_t
) /* mtype= on <self:AOrElseExpr>*/;
6278 /* method typing#AOrElseExpr#accept_typing for (self: Object, TypeVisitor) */
6279 void VIRTUAL_typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
6280 typing__AOrElseExpr__accept_typing(self
, p0
);
6283 /* method typing#ATrueExpr#accept_typing for (self: ATrueExpr, TypeVisitor) */
6284 void typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
6285 val
* var_v
/* var v: TypeVisitor */;
6286 val
* var
/* : nullable MType */;
6288 var
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6289 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:ATrueExpr>*/;
6292 /* method typing#ATrueExpr#accept_typing for (self: Object, TypeVisitor) */
6293 void VIRTUAL_typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
6294 typing__ATrueExpr__accept_typing(self
, p0
);
6297 /* method typing#AFalseExpr#accept_typing for (self: AFalseExpr, TypeVisitor) */
6298 void typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
6299 val
* var_v
/* var v: TypeVisitor */;
6300 val
* var
/* : nullable MType */;
6302 var
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6303 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:AFalseExpr>*/;
6306 /* method typing#AFalseExpr#accept_typing for (self: Object, TypeVisitor) */
6307 void VIRTUAL_typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
6308 typing__AFalseExpr__accept_typing(self
, p0
);
6311 /* method typing#AIntExpr#accept_typing for (self: AIntExpr, TypeVisitor) */
6312 void typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
6313 val
* var_v
/* var v: TypeVisitor */;
6314 static val
* varonce
;
6315 val
* var
/* : String */;
6316 char* var1
/* : NativeString */;
6317 long var2
/* : Int */;
6318 val
* var3
/* : String */;
6319 val
* var4
/* : nullable MClass */;
6320 val
* var_mclass
/* var mclass: nullable MClass */;
6321 val
* var5
/* : null */;
6322 short int var6
/* : Bool */;
6323 val
* var7
/* : MClassType */;
6330 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6334 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6337 if (var_mclass
== NULL
) {
6338 var6
= 1; /* is null */
6340 var6
= 0; /* arg is null but recv is not */
6346 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6347 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AIntExpr>*/;
6350 /* method typing#AIntExpr#accept_typing for (self: Object, TypeVisitor) */
6351 void VIRTUAL_typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
6352 typing__AIntExpr__accept_typing(self
, p0
);
6355 /* method typing#AFloatExpr#accept_typing for (self: AFloatExpr, TypeVisitor) */
6356 void typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
6357 val
* var_v
/* var v: TypeVisitor */;
6358 static val
* varonce
;
6359 val
* var
/* : String */;
6360 char* var1
/* : NativeString */;
6361 long var2
/* : Int */;
6362 val
* var3
/* : String */;
6363 val
* var4
/* : nullable MClass */;
6364 val
* var_mclass
/* var mclass: nullable MClass */;
6365 val
* var5
/* : null */;
6366 short int var6
/* : Bool */;
6367 val
* var7
/* : MClassType */;
6374 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6378 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6381 if (var_mclass
== NULL
) {
6382 var6
= 1; /* is null */
6384 var6
= 0; /* arg is null but recv is not */
6390 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6391 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AFloatExpr>*/;
6394 /* method typing#AFloatExpr#accept_typing for (self: Object, TypeVisitor) */
6395 void VIRTUAL_typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
6396 typing__AFloatExpr__accept_typing(self
, p0
);
6399 /* method typing#ACharExpr#accept_typing for (self: ACharExpr, TypeVisitor) */
6400 void typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
6401 val
* var_v
/* var v: TypeVisitor */;
6402 static val
* varonce
;
6403 val
* var
/* : String */;
6404 char* var1
/* : NativeString */;
6405 long var2
/* : Int */;
6406 val
* var3
/* : String */;
6407 val
* var4
/* : nullable MClass */;
6408 val
* var_mclass
/* var mclass: nullable MClass */;
6409 val
* var5
/* : null */;
6410 short int var6
/* : Bool */;
6411 val
* var7
/* : MClassType */;
6418 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6422 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6425 if (var_mclass
== NULL
) {
6426 var6
= 1; /* is null */
6428 var6
= 0; /* arg is null but recv is not */
6434 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6435 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:ACharExpr>*/;
6438 /* method typing#ACharExpr#accept_typing for (self: Object, TypeVisitor) */
6439 void VIRTUAL_typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
6440 typing__ACharExpr__accept_typing(self
, p0
);
6443 /* method typing#AStringFormExpr#accept_typing for (self: AStringFormExpr, TypeVisitor) */
6444 void typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
6445 val
* var_v
/* var v: TypeVisitor */;
6446 static val
* varonce
;
6447 val
* var
/* : String */;
6448 char* var1
/* : NativeString */;
6449 long var2
/* : Int */;
6450 val
* var3
/* : String */;
6451 val
* var4
/* : nullable MClass */;
6452 val
* var_mclass
/* var mclass: nullable MClass */;
6453 val
* var5
/* : null */;
6454 short int var6
/* : Bool */;
6455 val
* var7
/* : MClassType */;
6462 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6466 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6469 if (var_mclass
== NULL
) {
6470 var6
= 1; /* is null */
6472 var6
= 0; /* arg is null but recv is not */
6478 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6479 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AStringFormExpr>*/;
6482 /* method typing#AStringFormExpr#accept_typing for (self: Object, TypeVisitor) */
6483 void VIRTUAL_typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
6484 typing__AStringFormExpr__accept_typing(self
, p0
);
6487 /* method typing#ASuperstringExpr#accept_typing for (self: ASuperstringExpr, TypeVisitor) */
6488 void typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
6489 val
* var_v
/* var v: TypeVisitor */;
6490 static val
* varonce
;
6491 val
* var
/* : String */;
6492 char* var1
/* : NativeString */;
6493 long var2
/* : Int */;
6494 val
* var3
/* : String */;
6495 val
* var4
/* : nullable MClass */;
6496 val
* var_mclass
/* var mclass: nullable MClass */;
6497 val
* var5
/* : null */;
6498 short int var6
/* : Bool */;
6499 val
* var7
/* : MClassType */;
6500 val
* var8
/* : ANodes[AExpr] */;
6501 val
* var9
/* : Iterator[nullable Object] */;
6502 short int var10
/* : Bool */;
6503 val
* var11
/* : nullable Object */;
6504 val
* var_nexpr
/* var nexpr: AExpr */;
6505 val
* var12
/* : nullable MType */;
6506 val
* var_t
/* var t: nullable MType */;
6513 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6517 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6520 if (var_mclass
== NULL
) {
6521 var6
= 1; /* is null */
6523 var6
= 0; /* arg is null but recv is not */
6529 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6530 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:ASuperstringExpr>*/;
6531 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperstringExpr__n_exprs
]))(self
) /* n_exprs on <self:ASuperstringExpr>*/;
6532 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:ANodes[AExpr]>*/;
6534 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
6536 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
6538 var12
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
6540 CONTINUE_label
: (void)0;
6541 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
6543 BREAK_label
: (void)0;
6546 /* method typing#ASuperstringExpr#accept_typing for (self: Object, TypeVisitor) */
6547 void VIRTUAL_typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
6548 typing__ASuperstringExpr__accept_typing(self
, p0
);
6551 /* method typing#AArrayExpr#accept_typing for (self: AArrayExpr, TypeVisitor) */
6552 void typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
6553 val
* var_v
/* var v: TypeVisitor */;
6554 val
* var
/* : Array[nullable MType] */;
6555 val
* var_mtypes
/* var mtypes: Array[nullable MType] */;
6556 val
* var1
/* : AExprs */;
6557 val
* var2
/* : ANodes[AExpr] */;
6558 val
* var3
/* : Iterator[nullable Object] */;
6559 short int var4
/* : Bool */;
6560 val
* var5
/* : nullable Object */;
6561 val
* var_e
/* var e: AExpr */;
6562 val
* var6
/* : nullable MType */;
6563 val
* var_t
/* var t: nullable MType */;
6564 val
* var7
/* : null */;
6565 short int var8
/* : Bool */;
6566 val
* var9
/* : nullable MType */;
6567 val
* var_mtype
/* var mtype: nullable MType */;
6568 val
* var10
/* : null */;
6569 short int var11
/* : Bool */;
6570 static val
* varonce
;
6571 val
* var12
/* : String */;
6572 char* var13
/* : NativeString */;
6573 long var14
/* : Int */;
6574 val
* var15
/* : String */;
6575 static val
* varonce16
;
6576 val
* var17
/* : String */;
6577 char* var18
/* : NativeString */;
6578 long var19
/* : Int */;
6579 val
* var20
/* : String */;
6580 val
* var21
/* : String */;
6581 val
* var22
/* : Array[Object] */;
6582 long var23
/* : Int */;
6583 val
* var24
/* : NativeArray[Object] */;
6584 val
* var25
/* : String */;
6585 static val
* varonce26
;
6586 val
* var27
/* : String */;
6587 char* var28
/* : NativeString */;
6588 long var29
/* : Int */;
6589 val
* var30
/* : String */;
6590 val
* var31
/* : nullable MClass */;
6591 val
* var_mclass
/* var mclass: nullable MClass */;
6592 val
* var32
/* : null */;
6593 short int var33
/* : Bool */;
6594 val
* var34
/* : Array[MType] */;
6595 long var35
/* : Int */;
6596 val
* var36
/* : NativeArray[MType] */;
6597 val
* var37
/* : MClassType */;
6599 var
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
6600 ((void (*)(val
*))(var
->class->vft
[COLOR_array__Array__init
]))(var
) /* init on <var:Array[nullable MType]>*/;
6601 CHECK_NEW_array__Array(var
);
6603 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AArrayExpr__n_exprs
]))(self
) /* n_exprs on <self:AArrayExpr>*/;
6604 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(var1
) /* n_exprs on <var1:AExprs>*/;
6605 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:ANodes[AExpr]>*/;
6607 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
6609 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
6611 var6
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_e
) /* visit_expr on <var_v:TypeVisitor>*/;
6614 if (var_t
== NULL
) {
6615 var8
= 1; /* is null */
6617 var8
= 0; /* arg is null but recv is not */
6623 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mtypes
, var_t
) /* add on <var_mtypes:Array[nullable MType]>*/;
6624 CONTINUE_label
: (void)0;
6625 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
6627 BREAK_label
: (void)0;
6628 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>*/;
6631 if (var_mtype
== NULL
) {
6632 var11
= 1; /* is null */
6634 var11
= 0; /* arg is null but recv is not */
6640 var13
= "Type Error: ambiguous array type ";
6642 var15
= string__NativeString__to_s_with_length(var13
, var14
);
6651 var20
= string__NativeString__to_s_with_length(var18
, var19
);
6655 var21
= ((val
* (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_string__Collection__join
]))(var_mtypes
, var17
) /* join on <var_mtypes:Array[nullable MType]>*/;
6656 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
6657 { /* var22 = array_instance Array[Object] */
6659 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
6660 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var12
;
6661 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var21
;
6662 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
6663 CHECK_NEW_array__Array(var22
);
6665 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
6666 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var25
) /* error on <var_v:TypeVisitor>*/;
6675 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6679 var31
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var27
) /* get_mclass on <var_v:TypeVisitor>*/;
6682 if (var_mclass
== NULL
) {
6683 var33
= 1; /* is null */
6685 var33
= 0; /* arg is null but recv is not */
6691 var34
= NEW_array__Array(&type_array__Arraymodel__MType
);
6692 { /* var34 = array_instance Array[MType] */
6694 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraymodel__MType
);
6695 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var_mtype
;
6696 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[MType]>*/;
6697 CHECK_NEW_array__Array(var34
);
6699 var37
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var34
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6700 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var37
) /* mtype= on <self:AArrayExpr>*/;
6703 /* method typing#AArrayExpr#accept_typing for (self: Object, TypeVisitor) */
6704 void VIRTUAL_typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
6705 typing__AArrayExpr__accept_typing(self
, p0
);
6708 /* method typing#ARangeExpr#accept_typing for (self: ARangeExpr, TypeVisitor) */
6709 void typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
6710 val
* var_v
/* var v: TypeVisitor */;
6711 static val
* varonce
;
6712 val
* var
/* : String */;
6713 char* var1
/* : NativeString */;
6714 long var2
/* : Int */;
6715 val
* var3
/* : String */;
6716 val
* var4
/* : nullable MClass */;
6717 val
* var_discrete_class
/* var discrete_class: nullable MClass */;
6718 val
* var5
/* : null */;
6719 short int var6
/* : Bool */;
6720 val
* var7
/* : MClassDef */;
6721 val
* var8
/* : MClassType */;
6722 val
* var_discrete_type
/* var discrete_type: MClassType */;
6723 val
* var9
/* : AExpr */;
6724 val
* var10
/* : nullable MType */;
6725 val
* var_t1
/* var t1: nullable MType */;
6726 val
* var11
/* : AExpr */;
6727 val
* var12
/* : nullable MType */;
6728 val
* var_t2
/* var t2: nullable MType */;
6729 short int var13
/* : Bool */;
6730 val
* var14
/* : null */;
6731 short int var15
/* : Bool */;
6732 short int var_
/* var : Bool */;
6733 val
* var16
/* : null */;
6734 short int var17
/* : Bool */;
6735 static val
* varonce18
;
6736 val
* var19
/* : String */;
6737 char* var20
/* : NativeString */;
6738 long var21
/* : Int */;
6739 val
* var22
/* : String */;
6740 val
* var23
/* : nullable MClass */;
6741 val
* var_mclass
/* var mclass: nullable MClass */;
6742 val
* var24
/* : null */;
6743 short int var25
/* : Bool */;
6744 short int var26
/* : Bool */;
6745 val
* var27
/* : Array[MType] */;
6746 long var28
/* : Int */;
6747 val
* var29
/* : NativeArray[MType] */;
6748 val
* var30
/* : MClassType */;
6749 short int var31
/* : Bool */;
6750 val
* var32
/* : Array[MType] */;
6751 long var33
/* : Int */;
6752 val
* var34
/* : NativeArray[MType] */;
6753 val
* var35
/* : MClassType */;
6754 static val
* varonce36
;
6755 val
* var37
/* : String */;
6756 char* var38
/* : NativeString */;
6757 long var39
/* : Int */;
6758 val
* var40
/* : String */;
6759 static val
* varonce41
;
6760 val
* var42
/* : String */;
6761 char* var43
/* : NativeString */;
6762 long var44
/* : Int */;
6763 val
* var45
/* : String */;
6764 val
* var46
/* : Array[Object] */;
6765 long var47
/* : Int */;
6766 val
* var48
/* : NativeArray[Object] */;
6767 val
* var49
/* : String */;
6774 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6778 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6779 var_discrete_class
= var4
;
6781 if (var_discrete_class
== NULL
) {
6782 var6
= 1; /* is null */
6784 var6
= 0; /* arg is null but recv is not */
6790 var7
= ((val
* (*)(val
*))(var_discrete_class
->class->vft
[COLOR_model__MClass__intro
]))(var_discrete_class
) /* intro on <var_discrete_class:nullable MClass(MClass)>*/;
6791 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var7
) /* bound_mtype on <var7:MClassDef>*/;
6792 var_discrete_type
= var8
;
6793 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ARangeExpr__n_expr
]))(self
) /* n_expr on <self:ARangeExpr>*/;
6794 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>*/;
6796 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ARangeExpr__n_expr2
]))(self
) /* n_expr2 on <self:ARangeExpr>*/;
6797 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>*/;
6800 if (var_t1
== NULL
) {
6801 var15
= 1; /* is null */
6803 var15
= 0; /* arg is null but recv is not */
6810 if (var_t2
== NULL
) {
6811 var17
= 1; /* is null */
6813 var17
= 0; /* arg is null but recv is not */
6826 var22
= string__NativeString__to_s_with_length(var20
, var21
);
6830 var23
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var19
) /* get_mclass on <var_v:TypeVisitor>*/;
6833 if (var_mclass
== NULL
) {
6834 var25
= 1; /* is null */
6836 var25
= 0; /* arg is null but recv is not */
6842 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>*/;
6844 var27
= NEW_array__Array(&type_array__Arraymodel__MType
);
6845 { /* var27 = array_instance Array[MType] */
6847 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraymodel__MType
);
6848 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var_t2
;
6849 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[MType]>*/;
6850 CHECK_NEW_array__Array(var27
);
6852 var30
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var27
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6853 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var30
) /* mtype= on <self:ARangeExpr>*/;
6855 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>*/;
6857 var32
= NEW_array__Array(&type_array__Arraymodel__MType
);
6858 { /* var32 = array_instance Array[MType] */
6860 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraymodel__MType
);
6861 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var_t1
;
6862 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[MType]>*/;
6863 CHECK_NEW_array__Array(var32
);
6865 var35
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var32
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6866 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var35
) /* mtype= on <self:ARangeExpr>*/;
6871 var38
= "Type Error: Cannot create range: ";
6873 var40
= string__NativeString__to_s_with_length(var38
, var39
);
6882 var45
= string__NativeString__to_s_with_length(var43
, var44
);
6886 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
6887 { /* var46 = array_instance Array[Object] */
6889 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
6890 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var37
;
6891 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var_t1
;
6892 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var42
;
6893 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var_t2
;
6894 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
6895 CHECK_NEW_array__Array(var46
);
6897 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
6898 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var49
) /* error on <var_v:TypeVisitor>*/;
6903 /* method typing#ARangeExpr#accept_typing for (self: Object, TypeVisitor) */
6904 void VIRTUAL_typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
6905 typing__ARangeExpr__accept_typing(self
, p0
);
6908 /* method typing#ANullExpr#accept_typing for (self: ANullExpr, TypeVisitor) */
6909 void typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
6910 val
* var_v
/* var v: TypeVisitor */;
6911 val
* var
/* : MModule */;
6912 val
* var1
/* : Model */;
6913 val
* var2
/* : MNullType */;
6915 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
6916 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model_base__MModule__model
]))(var
) /* model on <var:MModule>*/;
6917 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__Model__null_type
]))(var1
) /* null_type on <var1:Model>*/;
6918 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:ANullExpr>*/;
6921 /* method typing#ANullExpr#accept_typing for (self: Object, TypeVisitor) */
6922 void VIRTUAL_typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
6923 typing__ANullExpr__accept_typing(self
, p0
);
6926 /* method typing#AIsaExpr#cast_type for (self: AIsaExpr): nullable MType */
6927 val
* typing__AIsaExpr__cast_type(val
* self
) {
6928 val
* var
/* : nullable MType */;
6929 val
* var1
/* : nullable MType */;
6930 var1
= self
->attrs
[COLOR_typing__AIsaExpr___64dcast_type
].val
; /* @cast_type on <self:AIsaExpr> */
6935 /* method typing#AIsaExpr#cast_type for (self: Object): nullable MType */
6936 val
* VIRTUAL_typing__AIsaExpr__cast_type(val
* self
) {
6937 val
* var
/* : nullable MType */;
6938 val
* var1
/* : nullable MType */;
6939 var1
= typing__AIsaExpr__cast_type(self
);
6944 /* method typing#AIsaExpr#cast_type= for (self: AIsaExpr, nullable MType) */
6945 void typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
6946 self
->attrs
[COLOR_typing__AIsaExpr___64dcast_type
].val
= p0
; /* @cast_type on <self:AIsaExpr> */
6949 /* method typing#AIsaExpr#cast_type= for (self: Object, nullable MType) */
6950 void VIRTUAL_typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
6951 typing__AIsaExpr__cast_type_61d(self
, p0
);
6954 /* method typing#AIsaExpr#accept_typing for (self: AIsaExpr, TypeVisitor) */
6955 void typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
6956 val
* var_v
/* var v: TypeVisitor */;
6957 val
* var
/* : AExpr */;
6958 val
* var1
/* : AType */;
6959 val
* var2
/* : nullable MType */;
6960 val
* var_mtype
/* var mtype: nullable MType */;
6961 val
* var3
/* : AExpr */;
6962 val
* var4
/* : nullable Variable */;
6963 val
* var_variable
/* var variable: nullable Variable */;
6964 val
* var5
/* : null */;
6965 short int var6
/* : Bool */;
6966 val
* var7
/* : AExpr */;
6967 val
* var8
/* : nullable MType */;
6968 val
* var_orig
/* var orig: nullable MType */;
6969 val
* var9
/* : String */;
6970 val
* var10
/* : null */;
6971 short int var11
/* : Bool */;
6972 val
* var12
/* : String */;
6973 static val
* varonce
;
6974 val
* var13
/* : String */;
6975 char* var14
/* : NativeString */;
6976 long var15
/* : Int */;
6977 val
* var16
/* : String */;
6978 val
* var_from
/* var from: String */;
6979 val
* var17
/* : String */;
6980 val
* var18
/* : null */;
6981 short int var19
/* : Bool */;
6982 val
* var20
/* : String */;
6983 static val
* varonce21
;
6984 val
* var22
/* : String */;
6985 char* var23
/* : NativeString */;
6986 long var24
/* : Int */;
6987 val
* var25
/* : String */;
6988 val
* var_to
/* var to: String */;
6989 val
* var26
/* : nullable FlowContext */;
6990 val
* var27
/* : FlowContext */;
6991 val
* var28
/* : nullable MType */;
6993 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
6994 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_type
]))(self
) /* n_type on <self:AIsaExpr>*/;
6995 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>*/;
6997 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AIsaExpr__cast_type_61d
]))(self
, var_mtype
) /* cast_type= on <self:AIsaExpr>*/;
6998 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
6999 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var3
) /* its_variable on <var3:AExpr>*/;
7000 var_variable
= var4
;
7002 if (var_variable
== NULL
) {
7003 var6
= 0; /* is null */
7005 var6
= 1; /* arg is null and recv is not */
7008 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
7009 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_typing__AExpr__mtype
]))(var7
) /* mtype on <var7:AExpr>*/;
7012 if (var_orig
== NULL
) {
7013 var11
= 0; /* is null */
7015 var11
= 1; /* arg is null and recv is not */
7018 var12
= ((val
* (*)(val
*))(var_orig
->class->vft
[COLOR_string__Object__to_s
]))(var_orig
) /* to_s on <var_orig:nullable MType(MType)>*/;
7026 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7034 if (var_mtype
== NULL
) {
7035 var19
= 0; /* is null */
7037 var19
= 1; /* arg is null and recv is not */
7040 var20
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_string__Object__to_s
]))(var_mtype
) /* to_s on <var_mtype:nullable MType(MType)>*/;
7048 var25
= string__NativeString__to_s_with_length(var23
, var24
);
7055 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AIsaExpr>*/;
7056 if (var26
== NULL
) {
7057 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7058 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1140);
7061 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var26
) /* when_true on <var26:nullable FlowContext>*/;
7063 ((void (*)(val
*, val
*, val
*))(var27
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var27
, var_variable
, var_mtype
) /* set_var on <var27:FlowContext>*/;
7066 var28
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
7067 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var28
) /* mtype= on <self:AIsaExpr>*/;
7070 /* method typing#AIsaExpr#accept_typing for (self: Object, TypeVisitor) */
7071 void VIRTUAL_typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
7072 typing__AIsaExpr__accept_typing(self
, p0
);
7075 /* method typing#AAsCastExpr#accept_typing for (self: AAsCastExpr, TypeVisitor) */
7076 void typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
7077 val
* var_v
/* var v: TypeVisitor */;
7078 val
* var
/* : AExpr */;
7079 val
* var1
/* : AType */;
7080 val
* var2
/* : nullable MType */;
7082 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsCastExpr__n_expr
]))(self
) /* n_expr on <self:AAsCastExpr>*/;
7083 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsCastExpr__n_type
]))(self
) /* n_type on <self:AAsCastExpr>*/;
7084 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>*/;
7085 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:AAsCastExpr>*/;
7088 /* method typing#AAsCastExpr#accept_typing for (self: Object, TypeVisitor) */
7089 void VIRTUAL_typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
7090 typing__AAsCastExpr__accept_typing(self
, p0
);
7093 /* method typing#AAsNotnullExpr#accept_typing for (self: AAsNotnullExpr, TypeVisitor) */
7094 void typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
7095 val
* var_v
/* var v: TypeVisitor */;
7096 val
* var
/* : AExpr */;
7097 val
* var1
/* : nullable MType */;
7098 val
* var_mtype
/* var mtype: nullable MType */;
7099 short int var2
/* : Bool */;
7102 static val
* varonce
;
7103 val
* var3
/* : String */;
7104 char* var4
/* : NativeString */;
7105 long var5
/* : Int */;
7106 val
* var6
/* : String */;
7107 short int var7
/* : Bool */;
7110 val
* var10
/* : MType */;
7112 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsNotnullExpr__n_expr
]))(self
) /* n_expr on <self:AAsNotnullExpr>*/;
7113 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7115 /* <var_mtype:nullable MType> isa MNullType */
7116 cltype
= type_model__MNullType
.color
;
7117 idtype
= type_model__MNullType
.id
;
7118 if(var_mtype
== NULL
) {
7121 if(cltype
>= var_mtype
->type
->table_size
) {
7124 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7131 var4
= "Type error: as(not null) on null";
7133 var6
= string__NativeString__to_s_with_length(var4
, var5
);
7137 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var3
) /* error on <var_v:TypeVisitor>*/;
7141 /* <var_mtype:nullable MType> isa MNullableType */
7142 cltype8
= type_model__MNullableType
.color
;
7143 idtype9
= type_model__MNullableType
.id
;
7144 if(var_mtype
== NULL
) {
7147 if(cltype8
>= var_mtype
->type
->table_size
) {
7150 var7
= var_mtype
->type
->type_table
[cltype8
] == idtype9
;
7154 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:nullable MType(MNullableType)>*/;
7155 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var10
) /* mtype= on <self:AAsNotnullExpr>*/;
7159 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:AAsNotnullExpr>*/;
7162 /* method typing#AAsNotnullExpr#accept_typing for (self: Object, TypeVisitor) */
7163 void VIRTUAL_typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
7164 typing__AAsNotnullExpr__accept_typing(self
, p0
);
7167 /* method typing#AProxyExpr#accept_typing for (self: AProxyExpr, TypeVisitor) */
7168 void typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
7169 val
* var_v
/* var v: TypeVisitor */;
7170 val
* var
/* : AExpr */;
7171 val
* var1
/* : nullable MType */;
7173 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AProxyExpr>*/;
7174 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7175 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var1
) /* mtype= on <self:AProxyExpr>*/;
7178 /* method typing#AProxyExpr#accept_typing for (self: Object, TypeVisitor) */
7179 void VIRTUAL_typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
7180 typing__AProxyExpr__accept_typing(self
, p0
);
7183 /* method typing#ASelfExpr#its_variable for (self: ASelfExpr): nullable Variable */
7184 val
* typing__ASelfExpr__its_variable(val
* self
) {
7185 val
* var
/* : nullable Variable */;
7186 val
* var1
/* : nullable Variable */;
7187 var1
= self
->attrs
[COLOR_typing__ASelfExpr___64dits_variable
].val
; /* @its_variable on <self:ASelfExpr> */
7192 /* method typing#ASelfExpr#its_variable for (self: Object): nullable Variable */
7193 val
* VIRTUAL_typing__ASelfExpr__its_variable(val
* self
) {
7194 val
* var
/* : nullable Variable */;
7195 val
* var1
/* : nullable Variable */;
7196 var1
= typing__ASelfExpr__its_variable(self
);
7201 /* method typing#ASelfExpr#its_variable= for (self: ASelfExpr, nullable Variable) */
7202 void typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
7203 self
->attrs
[COLOR_typing__ASelfExpr___64dits_variable
].val
= p0
; /* @its_variable on <self:ASelfExpr> */
7206 /* method typing#ASelfExpr#its_variable= for (self: Object, nullable Variable) */
7207 void VIRTUAL_typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
7208 typing__ASelfExpr__its_variable_61d(self
, p0
);
7211 /* method typing#ASelfExpr#accept_typing for (self: ASelfExpr, TypeVisitor) */
7212 void typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
7213 val
* var_v
/* var v: TypeVisitor */;
7214 val
* var
/* : Variable */;
7215 val
* var_variable
/* var variable: Variable */;
7216 val
* var1
/* : nullable MType */;
7218 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
7220 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASelfExpr__its_variable_61d
]))(self
, var_variable
) /* its_variable= on <self:ASelfExpr>*/;
7221 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>*/;
7222 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var1
) /* mtype= on <self:ASelfExpr>*/;
7225 /* method typing#ASelfExpr#accept_typing for (self: Object, TypeVisitor) */
7226 void VIRTUAL_typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
7227 typing__ASelfExpr__accept_typing(self
, p0
);
7230 /* method typing#ASendExpr#mproperty for (self: ASendExpr): nullable MMethod */
7231 val
* typing__ASendExpr__mproperty(val
* self
) {
7232 val
* var
/* : nullable MMethod */;
7233 val
* var1
/* : nullable CallSite */;
7234 val
* var2
/* : MMethod */;
7235 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite
]))(self
) /* callsite on <self:ASendExpr>*/;
7237 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7238 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1192);
7241 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
7248 /* method typing#ASendExpr#mproperty for (self: Object): nullable MMethod */
7249 val
* VIRTUAL_typing__ASendExpr__mproperty(val
* self
) {
7250 val
* var
/* : nullable MMethod */;
7251 val
* var1
/* : nullable MMethod */;
7252 var1
= typing__ASendExpr__mproperty(self
);
7257 /* method typing#ASendExpr#callsite for (self: ASendExpr): nullable CallSite */
7258 val
* typing__ASendExpr__callsite(val
* self
) {
7259 val
* var
/* : nullable CallSite */;
7260 val
* var1
/* : nullable CallSite */;
7261 var1
= self
->attrs
[COLOR_typing__ASendExpr___64dcallsite
].val
; /* @callsite on <self:ASendExpr> */
7266 /* method typing#ASendExpr#callsite for (self: Object): nullable CallSite */
7267 val
* VIRTUAL_typing__ASendExpr__callsite(val
* self
) {
7268 val
* var
/* : nullable CallSite */;
7269 val
* var1
/* : nullable CallSite */;
7270 var1
= typing__ASendExpr__callsite(self
);
7275 /* method typing#ASendExpr#callsite= for (self: ASendExpr, nullable CallSite) */
7276 void typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
7277 self
->attrs
[COLOR_typing__ASendExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ASendExpr> */
7280 /* method typing#ASendExpr#callsite= for (self: Object, nullable CallSite) */
7281 void VIRTUAL_typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
7282 typing__ASendExpr__callsite_61d(self
, p0
);
7285 /* method typing#ASendExpr#accept_typing for (self: ASendExpr, TypeVisitor) */
7286 void typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
7287 val
* var_v
/* var v: TypeVisitor */;
7288 val
* var
/* : AExpr */;
7289 val
* var1
/* : nullable MType */;
7290 val
* var_recvtype
/* var recvtype: nullable MType */;
7291 val
* var2
/* : String */;
7292 val
* var_name
/* var name: String */;
7293 val
* var3
/* : null */;
7294 short int var4
/* : Bool */;
7295 short int var5
/* : Bool */;
7298 static val
* varonce
;
7299 val
* var6
/* : String */;
7300 char* var7
/* : NativeString */;
7301 long var8
/* : Int */;
7302 val
* var9
/* : String */;
7303 static val
* varonce10
;
7304 val
* var11
/* : String */;
7305 char* var12
/* : NativeString */;
7306 long var13
/* : Int */;
7307 val
* var14
/* : String */;
7308 val
* var15
/* : Array[Object] */;
7309 long var16
/* : Int */;
7310 val
* var17
/* : NativeArray[Object] */;
7311 val
* var18
/* : String */;
7312 val
* var19
/* : AExpr */;
7313 short int var20
/* : Bool */;
7316 val
* var23
/* : nullable CallSite */;
7317 val
* var_callsite
/* var callsite: nullable CallSite */;
7318 val
* var24
/* : null */;
7319 short int var25
/* : Bool */;
7320 val
* var26
/* : MSignature */;
7321 val
* var_msignature
/* var msignature: MSignature */;
7322 val
* var27
/* : Array[AExpr] */;
7323 val
* var_args
/* var args: Array[AExpr] */;
7324 short int var28
/* : Bool */;
7325 val
* var29
/* : MMethod */;
7326 short int var30
/* : Bool */;
7327 val
* var31
/* : MPropDef */;
7328 val
* var_vmpropdef
/* var vmpropdef: MPropDef */;
7329 short int var32
/* : Bool */;
7330 short int var33
/* : Bool */;
7333 short int var_
/* var : Bool */;
7334 val
* var36
/* : MProperty */;
7335 short int var37
/* : Bool */;
7336 short int var38
/* : Bool */;
7337 static val
* varonce39
;
7338 val
* var40
/* : String */;
7339 char* var41
/* : NativeString */;
7340 long var42
/* : Int */;
7341 val
* var43
/* : String */;
7342 val
* var44
/* : nullable MType */;
7343 val
* var_ret
/* var ret: nullable MType */;
7344 val
* var45
/* : null */;
7345 short int var46
/* : Bool */;
7346 short int var47
/* : Bool */;
7348 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
7349 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7350 var_recvtype
= var1
;
7351 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendExpr>*/;
7354 if (var_recvtype
== NULL
) {
7355 var4
= 1; /* is null */
7357 var4
= 0; /* arg is null but recv is not */
7363 /* <var_recvtype:nullable MType(MType)> isa MNullType */
7364 cltype
= type_model__MNullType
.color
;
7365 idtype
= type_model__MNullType
.id
;
7366 if(cltype
>= var_recvtype
->type
->table_size
) {
7369 var5
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
7375 var7
= "Error: Method \'";
7377 var9
= string__NativeString__to_s_with_length(var7
, var8
);
7384 var12
= "\' call on \'null\'.";
7386 var14
= string__NativeString__to_s_with_length(var12
, var13
);
7390 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
7391 { /* var15 = array_instance Array[Object] */
7393 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
7394 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var6
;
7395 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_name
;
7396 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var11
;
7397 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
7398 CHECK_NEW_array__Array(var15
);
7400 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
7401 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var18
) /* error on <var_v:TypeVisitor>*/;
7405 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
7406 /* <var19:AExpr> isa ASelfExpr */
7407 cltype21
= type_parser_nodes__ASelfExpr
.color
;
7408 idtype22
= type_parser_nodes__ASelfExpr
.id
;
7409 if(cltype21
>= var19
->type
->table_size
) {
7412 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
7414 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>*/;
7415 var_callsite
= var23
;
7417 if (var_callsite
== NULL
) {
7418 var25
= 1; /* is null */
7420 var25
= 0; /* arg is null but recv is not */
7426 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASendExpr>*/;
7427 var26
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
7428 var_msignature
= var26
;
7429 var27
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendExpr>*/;
7431 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments_61d
]))(self
, var_args
) /* raw_arguments= on <self:ASendExpr>*/;
7432 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)>*/;
7434 var29
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_callsite
) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
7435 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_model__MMethod__is_init
]))(var29
) /* is_init on <var29:MMethod>*/;
7437 var31
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
7438 var_vmpropdef
= var31
;
7439 /* <var_vmpropdef:MPropDef> isa MMethodDef */
7440 cltype34
= type_model__MMethodDef
.color
;
7441 idtype35
= type_model__MMethodDef
.id
;
7442 if(cltype34
>= var_vmpropdef
->type
->table_size
) {
7445 var33
= var_vmpropdef
->type
->type_table
[cltype34
] == idtype35
;
7449 var36
= ((val
* (*)(val
*))(var_vmpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_vmpropdef
) /* mproperty on <var_vmpropdef:MPropDef(MMethodDef)>*/;
7450 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_model__MMethod__is_init
]))(var36
) /* is_init on <var36:MProperty(MMethod)>*/;
7460 var41
= "Can call a init only in another init";
7462 var43
= string__NativeString__to_s_with_length(var41
, var42
);
7466 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var40
) /* error on <var_v:TypeVisitor>*/;
7471 var44
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
7474 if (var_ret
== NULL
) {
7475 var46
= 0; /* is null */
7477 var46
= 1; /* arg is null and recv is not */
7480 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_ret
) /* mtype= on <self:ASendExpr>*/;
7483 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var47
) /* is_typed= on <self:ASendExpr>*/;
7487 /* method typing#ASendExpr#accept_typing for (self: Object, TypeVisitor) */
7488 void VIRTUAL_typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
7489 typing__ASendExpr__accept_typing(self
, p0
);
7492 /* method typing#ASendExpr#property_name for (self: ASendExpr): String */
7493 val
* typing__ASendExpr__property_name(val
* self
) {
7494 val
* var
/* : String */;
7495 const char* var_class_name
;
7496 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
7497 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "property_name", var_class_name
);
7498 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1233);
7503 /* method typing#ASendExpr#property_name for (self: Object): String */
7504 val
* VIRTUAL_typing__ASendExpr__property_name(val
* self
) {
7505 val
* var
/* : String */;
7506 val
* var1
/* : String */;
7507 var1
= typing__ASendExpr__property_name(self
);
7512 /* method typing#ASendExpr#raw_arguments for (self: ASendExpr): nullable Array[AExpr] */
7513 val
* typing__ASendExpr__raw_arguments(val
* self
) {
7514 val
* var
/* : nullable Array[AExpr] */;
7515 val
* var1
/* : nullable Array[AExpr] */;
7516 var1
= self
->attrs
[COLOR_typing__ASendExpr___64draw_arguments
].val
; /* @raw_arguments on <self:ASendExpr> */
7521 /* method typing#ASendExpr#raw_arguments for (self: Object): nullable Array[AExpr] */
7522 val
* VIRTUAL_typing__ASendExpr__raw_arguments(val
* self
) {
7523 val
* var
/* : nullable Array[AExpr] */;
7524 val
* var1
/* : nullable Array[AExpr] */;
7525 var1
= typing__ASendExpr__raw_arguments(self
);
7530 /* method typing#ASendExpr#raw_arguments= for (self: ASendExpr, nullable Array[AExpr]) */
7531 void typing__ASendExpr__raw_arguments_61d(val
* self
, val
* p0
) {
7532 self
->attrs
[COLOR_typing__ASendExpr___64draw_arguments
].val
= p0
; /* @raw_arguments on <self:ASendExpr> */
7535 /* method typing#ASendExpr#raw_arguments= for (self: Object, nullable Array[AExpr]) */
7536 void VIRTUAL_typing__ASendExpr__raw_arguments_61d(val
* self
, val
* p0
) {
7537 typing__ASendExpr__raw_arguments_61d(self
, p0
);
7540 /* method typing#ASendExpr#compute_raw_arguments for (self: ASendExpr): Array[AExpr] */
7541 val
* typing__ASendExpr__compute_raw_arguments(val
* self
) {
7542 val
* var
/* : Array[AExpr] */;
7543 const char* var_class_name
;
7544 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
7545 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "compute_raw_arguments", var_class_name
);
7546 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1240);
7551 /* method typing#ASendExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
7552 val
* VIRTUAL_typing__ASendExpr__compute_raw_arguments(val
* self
) {
7553 val
* var
/* : Array[AExpr] */;
7554 val
* var1
/* : Array[AExpr] */;
7555 var1
= typing__ASendExpr__compute_raw_arguments(self
);
7560 /* method typing#ABinopExpr#compute_raw_arguments for (self: ABinopExpr): Array[AExpr] */
7561 val
* typing__ABinopExpr__compute_raw_arguments(val
* self
) {
7562 val
* var
/* : Array[AExpr] */;
7563 val
* var1
/* : Array[AExpr] */;
7564 long var2
/* : Int */;
7565 val
* var_
/* var : Array[AExpr] */;
7566 val
* var3
/* : AExpr */;
7567 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
7569 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[AExpr]>*/;
7570 CHECK_NEW_array__Array(var1
);
7572 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:ABinopExpr>*/;
7573 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var3
) /* push on <var_:Array[AExpr]>*/;
7579 /* method typing#ABinopExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
7580 val
* VIRTUAL_typing__ABinopExpr__compute_raw_arguments(val
* self
) {
7581 val
* var
/* : Array[AExpr] */;
7582 val
* var1
/* : Array[AExpr] */;
7583 var1
= typing__ABinopExpr__compute_raw_arguments(self
);
7588 /* method typing#AEqExpr#property_name for (self: AEqExpr): String */
7589 val
* typing__AEqExpr__property_name(val
* self
) {
7590 val
* var
/* : String */;
7591 static val
* varonce
;
7592 val
* var1
/* : String */;
7593 char* var2
/* : NativeString */;
7594 long var3
/* : Int */;
7595 val
* var4
/* : String */;
7601 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7610 /* method typing#AEqExpr#property_name for (self: Object): String */
7611 val
* VIRTUAL_typing__AEqExpr__property_name(val
* self
) {
7612 val
* var
/* : String */;
7613 val
* var1
/* : String */;
7614 var1
= typing__AEqExpr__property_name(self
);
7619 /* method typing#AEqExpr#accept_typing for (self: AEqExpr, TypeVisitor) */
7620 void typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
7621 val
* var_v
/* var v: TypeVisitor */;
7622 val
* var
/* : AExpr */;
7623 val
* var1
/* : nullable Variable */;
7624 val
* var_variable
/* var variable: nullable Variable */;
7625 val
* var2
/* : null */;
7626 short int var3
/* : Bool */;
7627 val
* var4
/* : AExpr */;
7628 val
* var5
/* : nullable MType */;
7629 val
* var_mtype
/* var mtype: nullable MType */;
7630 short int var6
/* : Bool */;
7633 short int var7
/* : Bool */;
7634 val
* var8
/* : nullable MType */;
7635 val
* var_vartype
/* var vartype: nullable MType */;
7636 short int var9
/* : Bool */;
7639 short int var12
/* : Bool */;
7640 val
* var13
/* : nullable FlowContext */;
7641 val
* var14
/* : FlowContext */;
7642 val
* var15
/* : nullable FlowContext */;
7643 val
* var16
/* : FlowContext */;
7644 val
* var17
/* : MType */;
7646 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AEqExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:AEqExpr>*/;
7647 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:AEqExpr>*/;
7648 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
7649 var_variable
= var1
;
7651 if (var_variable
== NULL
) {
7652 var3
= 1; /* is null */
7654 var3
= 0; /* arg is null but recv is not */
7660 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:AEqExpr>*/;
7661 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
7663 /* <var_mtype:nullable MType> isa MNullType */
7664 cltype
= type_model__MNullType
.color
;
7665 idtype
= type_model__MNullType
.id
;
7666 if(var_mtype
== NULL
) {
7669 if(cltype
>= var_mtype
->type
->table_size
) {
7672 var6
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7680 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>*/;
7682 /* <var_vartype:nullable MType> isa MNullableType */
7683 cltype10
= type_model__MNullableType
.color
;
7684 idtype11
= type_model__MNullableType
.id
;
7685 if(var_vartype
== NULL
) {
7688 if(cltype10
>= var_vartype
->type
->table_size
) {
7691 var9
= var_vartype
->type
->type_table
[cltype10
] == idtype11
;
7699 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AEqExpr>*/;
7700 if (var13
== NULL
) {
7701 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7702 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1258);
7705 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var13
) /* when_true on <var13:nullable FlowContext>*/;
7707 ((void (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var14
, var_variable
, var_mtype
) /* set_var on <var14:FlowContext>*/;
7708 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AEqExpr>*/;
7709 if (var15
== NULL
) {
7710 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7711 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1259);
7714 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var15
) /* when_false on <var15:nullable FlowContext>*/;
7716 var17
= ((val
* (*)(val
*))(var_vartype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_vartype
) /* mtype on <var_vartype:nullable MType(MNullableType)>*/;
7717 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var16
, var_variable
, var17
) /* set_var on <var16:FlowContext>*/;
7720 /* method typing#AEqExpr#accept_typing for (self: Object, TypeVisitor) */
7721 void VIRTUAL_typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
7722 typing__AEqExpr__accept_typing(self
, p0
);
7725 /* method typing#ANeExpr#property_name for (self: ANeExpr): String */
7726 val
* typing__ANeExpr__property_name(val
* self
) {
7727 val
* var
/* : String */;
7728 static val
* varonce
;
7729 val
* var1
/* : String */;
7730 char* var2
/* : NativeString */;
7731 long var3
/* : Int */;
7732 val
* var4
/* : String */;
7738 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7747 /* method typing#ANeExpr#property_name for (self: Object): String */
7748 val
* VIRTUAL_typing__ANeExpr__property_name(val
* self
) {
7749 val
* var
/* : String */;
7750 val
* var1
/* : String */;
7751 var1
= typing__ANeExpr__property_name(self
);
7756 /* method typing#ANeExpr#accept_typing for (self: ANeExpr, TypeVisitor) */
7757 void typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
7758 val
* var_v
/* var v: TypeVisitor */;
7759 val
* var
/* : AExpr */;
7760 val
* var1
/* : nullable Variable */;
7761 val
* var_variable
/* var variable: nullable Variable */;
7762 val
* var2
/* : null */;
7763 short int var3
/* : Bool */;
7764 val
* var4
/* : AExpr */;
7765 val
* var5
/* : nullable MType */;
7766 val
* var_mtype
/* var mtype: nullable MType */;
7767 short int var6
/* : Bool */;
7770 short int var7
/* : Bool */;
7771 val
* var8
/* : nullable MType */;
7772 val
* var_vartype
/* var vartype: nullable MType */;
7773 short int var9
/* : Bool */;
7776 short int var12
/* : Bool */;
7777 val
* var13
/* : nullable FlowContext */;
7778 val
* var14
/* : FlowContext */;
7779 val
* var15
/* : nullable FlowContext */;
7780 val
* var16
/* : FlowContext */;
7781 val
* var17
/* : MType */;
7783 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ANeExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:ANeExpr>*/;
7784 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ANeExpr>*/;
7785 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
7786 var_variable
= var1
;
7788 if (var_variable
== NULL
) {
7789 var3
= 1; /* is null */
7791 var3
= 0; /* arg is null but recv is not */
7797 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:ANeExpr>*/;
7798 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
7800 /* <var_mtype:nullable MType> isa MNullType */
7801 cltype
= type_model__MNullType
.color
;
7802 idtype
= type_model__MNullType
.id
;
7803 if(var_mtype
== NULL
) {
7806 if(cltype
>= var_mtype
->type
->table_size
) {
7809 var6
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7817 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>*/;
7819 /* <var_vartype:nullable MType> isa MNullableType */
7820 cltype10
= type_model__MNullableType
.color
;
7821 idtype11
= type_model__MNullableType
.id
;
7822 if(var_vartype
== NULL
) {
7825 if(cltype10
>= var_vartype
->type
->table_size
) {
7828 var9
= var_vartype
->type
->type_table
[cltype10
] == idtype11
;
7836 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ANeExpr>*/;
7837 if (var13
== NULL
) {
7838 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7839 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1275);
7842 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var13
) /* when_false on <var13:nullable FlowContext>*/;
7844 ((void (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var14
, var_variable
, var_mtype
) /* set_var on <var14:FlowContext>*/;
7845 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ANeExpr>*/;
7846 if (var15
== NULL
) {
7847 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
7848 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1276);
7851 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var15
) /* when_true on <var15:nullable FlowContext>*/;
7853 var17
= ((val
* (*)(val
*))(var_vartype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_vartype
) /* mtype on <var_vartype:nullable MType(MNullableType)>*/;
7854 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var16
, var_variable
, var17
) /* set_var on <var16:FlowContext>*/;
7857 /* method typing#ANeExpr#accept_typing for (self: Object, TypeVisitor) */
7858 void VIRTUAL_typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
7859 typing__ANeExpr__accept_typing(self
, p0
);
7862 /* method typing#ALtExpr#property_name for (self: ALtExpr): String */
7863 val
* typing__ALtExpr__property_name(val
* self
) {
7864 val
* var
/* : String */;
7865 static val
* varonce
;
7866 val
* var1
/* : String */;
7867 char* var2
/* : NativeString */;
7868 long var3
/* : Int */;
7869 val
* var4
/* : String */;
7875 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7884 /* method typing#ALtExpr#property_name for (self: Object): String */
7885 val
* VIRTUAL_typing__ALtExpr__property_name(val
* self
) {
7886 val
* var
/* : String */;
7887 val
* var1
/* : String */;
7888 var1
= typing__ALtExpr__property_name(self
);
7893 /* method typing#ALeExpr#property_name for (self: ALeExpr): String */
7894 val
* typing__ALeExpr__property_name(val
* self
) {
7895 val
* var
/* : String */;
7896 static val
* varonce
;
7897 val
* var1
/* : String */;
7898 char* var2
/* : NativeString */;
7899 long var3
/* : Int */;
7900 val
* var4
/* : String */;
7906 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7915 /* method typing#ALeExpr#property_name for (self: Object): String */
7916 val
* VIRTUAL_typing__ALeExpr__property_name(val
* self
) {
7917 val
* var
/* : String */;
7918 val
* var1
/* : String */;
7919 var1
= typing__ALeExpr__property_name(self
);
7924 /* method typing#ALlExpr#property_name for (self: ALlExpr): String */
7925 val
* typing__ALlExpr__property_name(val
* self
) {
7926 val
* var
/* : String */;
7927 static val
* varonce
;
7928 val
* var1
/* : String */;
7929 char* var2
/* : NativeString */;
7930 long var3
/* : Int */;
7931 val
* var4
/* : String */;
7937 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7946 /* method typing#ALlExpr#property_name for (self: Object): String */
7947 val
* VIRTUAL_typing__ALlExpr__property_name(val
* self
) {
7948 val
* var
/* : String */;
7949 val
* var1
/* : String */;
7950 var1
= typing__ALlExpr__property_name(self
);
7955 /* method typing#AGtExpr#property_name for (self: AGtExpr): String */
7956 val
* typing__AGtExpr__property_name(val
* self
) {
7957 val
* var
/* : String */;
7958 static val
* varonce
;
7959 val
* var1
/* : String */;
7960 char* var2
/* : NativeString */;
7961 long var3
/* : Int */;
7962 val
* var4
/* : String */;
7968 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7977 /* method typing#AGtExpr#property_name for (self: Object): String */
7978 val
* VIRTUAL_typing__AGtExpr__property_name(val
* self
) {
7979 val
* var
/* : String */;
7980 val
* var1
/* : String */;
7981 var1
= typing__AGtExpr__property_name(self
);
7986 /* method typing#AGeExpr#property_name for (self: AGeExpr): String */
7987 val
* typing__AGeExpr__property_name(val
* self
) {
7988 val
* var
/* : String */;
7989 static val
* varonce
;
7990 val
* var1
/* : String */;
7991 char* var2
/* : NativeString */;
7992 long var3
/* : Int */;
7993 val
* var4
/* : String */;
7999 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8008 /* method typing#AGeExpr#property_name for (self: Object): String */
8009 val
* VIRTUAL_typing__AGeExpr__property_name(val
* self
) {
8010 val
* var
/* : String */;
8011 val
* var1
/* : String */;
8012 var1
= typing__AGeExpr__property_name(self
);
8017 /* method typing#AGgExpr#property_name for (self: AGgExpr): String */
8018 val
* typing__AGgExpr__property_name(val
* self
) {
8019 val
* var
/* : String */;
8020 static val
* varonce
;
8021 val
* var1
/* : String */;
8022 char* var2
/* : NativeString */;
8023 long var3
/* : Int */;
8024 val
* var4
/* : String */;
8030 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8039 /* method typing#AGgExpr#property_name for (self: Object): String */
8040 val
* VIRTUAL_typing__AGgExpr__property_name(val
* self
) {
8041 val
* var
/* : String */;
8042 val
* var1
/* : String */;
8043 var1
= typing__AGgExpr__property_name(self
);
8048 /* method typing#APlusExpr#property_name for (self: APlusExpr): String */
8049 val
* typing__APlusExpr__property_name(val
* self
) {
8050 val
* var
/* : String */;
8051 static val
* varonce
;
8052 val
* var1
/* : String */;
8053 char* var2
/* : NativeString */;
8054 long var3
/* : Int */;
8055 val
* var4
/* : String */;
8061 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8070 /* method typing#APlusExpr#property_name for (self: Object): String */
8071 val
* VIRTUAL_typing__APlusExpr__property_name(val
* self
) {
8072 val
* var
/* : String */;
8073 val
* var1
/* : String */;
8074 var1
= typing__APlusExpr__property_name(self
);
8079 /* method typing#AMinusExpr#property_name for (self: AMinusExpr): String */
8080 val
* typing__AMinusExpr__property_name(val
* self
) {
8081 val
* var
/* : String */;
8082 static val
* varonce
;
8083 val
* var1
/* : String */;
8084 char* var2
/* : NativeString */;
8085 long var3
/* : Int */;
8086 val
* var4
/* : String */;
8092 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8101 /* method typing#AMinusExpr#property_name for (self: Object): String */
8102 val
* VIRTUAL_typing__AMinusExpr__property_name(val
* self
) {
8103 val
* var
/* : String */;
8104 val
* var1
/* : String */;
8105 var1
= typing__AMinusExpr__property_name(self
);
8110 /* method typing#AStarshipExpr#property_name for (self: AStarshipExpr): String */
8111 val
* typing__AStarshipExpr__property_name(val
* self
) {
8112 val
* var
/* : String */;
8113 static val
* varonce
;
8114 val
* var1
/* : String */;
8115 char* var2
/* : NativeString */;
8116 long var3
/* : Int */;
8117 val
* var4
/* : String */;
8123 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8132 /* method typing#AStarshipExpr#property_name for (self: Object): String */
8133 val
* VIRTUAL_typing__AStarshipExpr__property_name(val
* self
) {
8134 val
* var
/* : String */;
8135 val
* var1
/* : String */;
8136 var1
= typing__AStarshipExpr__property_name(self
);
8141 /* method typing#AStarExpr#property_name for (self: AStarExpr): String */
8142 val
* typing__AStarExpr__property_name(val
* self
) {
8143 val
* var
/* : String */;
8144 static val
* varonce
;
8145 val
* var1
/* : String */;
8146 char* var2
/* : NativeString */;
8147 long var3
/* : Int */;
8148 val
* var4
/* : String */;
8154 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8163 /* method typing#AStarExpr#property_name for (self: Object): String */
8164 val
* VIRTUAL_typing__AStarExpr__property_name(val
* self
) {
8165 val
* var
/* : String */;
8166 val
* var1
/* : String */;
8167 var1
= typing__AStarExpr__property_name(self
);
8172 /* method typing#ASlashExpr#property_name for (self: ASlashExpr): String */
8173 val
* typing__ASlashExpr__property_name(val
* self
) {
8174 val
* var
/* : String */;
8175 static val
* varonce
;
8176 val
* var1
/* : String */;
8177 char* var2
/* : NativeString */;
8178 long var3
/* : Int */;
8179 val
* var4
/* : String */;
8185 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8194 /* method typing#ASlashExpr#property_name for (self: Object): String */
8195 val
* VIRTUAL_typing__ASlashExpr__property_name(val
* self
) {
8196 val
* var
/* : String */;
8197 val
* var1
/* : String */;
8198 var1
= typing__ASlashExpr__property_name(self
);
8203 /* method typing#APercentExpr#property_name for (self: APercentExpr): String */
8204 val
* typing__APercentExpr__property_name(val
* self
) {
8205 val
* var
/* : String */;
8206 static val
* varonce
;
8207 val
* var1
/* : String */;
8208 char* var2
/* : NativeString */;
8209 long var3
/* : Int */;
8210 val
* var4
/* : String */;
8216 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8225 /* method typing#APercentExpr#property_name for (self: Object): String */
8226 val
* VIRTUAL_typing__APercentExpr__property_name(val
* self
) {
8227 val
* var
/* : String */;
8228 val
* var1
/* : String */;
8229 var1
= typing__APercentExpr__property_name(self
);
8234 /* method typing#AUminusExpr#property_name for (self: AUminusExpr): String */
8235 val
* typing__AUminusExpr__property_name(val
* self
) {
8236 val
* var
/* : String */;
8237 static val
* varonce
;
8238 val
* var1
/* : String */;
8239 char* var2
/* : NativeString */;
8240 long var3
/* : Int */;
8241 val
* var4
/* : String */;
8247 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8256 /* method typing#AUminusExpr#property_name for (self: Object): String */
8257 val
* VIRTUAL_typing__AUminusExpr__property_name(val
* self
) {
8258 val
* var
/* : String */;
8259 val
* var1
/* : String */;
8260 var1
= typing__AUminusExpr__property_name(self
);
8265 /* method typing#AUminusExpr#compute_raw_arguments for (self: AUminusExpr): Array[AExpr] */
8266 val
* typing__AUminusExpr__compute_raw_arguments(val
* self
) {
8267 val
* var
/* : Array[AExpr] */;
8268 val
* var1
/* : Array[AExpr] */;
8269 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
8270 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[AExpr]>*/;
8271 CHECK_NEW_array__Array(var1
);
8277 /* method typing#AUminusExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8278 val
* VIRTUAL_typing__AUminusExpr__compute_raw_arguments(val
* self
) {
8279 val
* var
/* : Array[AExpr] */;
8280 val
* var1
/* : Array[AExpr] */;
8281 var1
= typing__AUminusExpr__compute_raw_arguments(self
);
8286 /* method typing#ACallExpr#property_name for (self: ACallExpr): String */
8287 val
* typing__ACallExpr__property_name(val
* self
) {
8288 val
* var
/* : String */;
8289 val
* var1
/* : TId */;
8290 val
* var2
/* : String */;
8291 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallExpr>*/;
8292 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8298 /* method typing#ACallExpr#property_name for (self: Object): String */
8299 val
* VIRTUAL_typing__ACallExpr__property_name(val
* self
) {
8300 val
* var
/* : String */;
8301 val
* var1
/* : String */;
8302 var1
= typing__ACallExpr__property_name(self
);
8307 /* method typing#ACallExpr#compute_raw_arguments for (self: ACallExpr): Array[AExpr] */
8308 val
* typing__ACallExpr__compute_raw_arguments(val
* self
) {
8309 val
* var
/* : Array[AExpr] */;
8310 val
* var1
/* : AExprs */;
8311 val
* var2
/* : Array[AExpr] */;
8312 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallExpr>*/;
8313 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8319 /* method typing#ACallExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8320 val
* VIRTUAL_typing__ACallExpr__compute_raw_arguments(val
* self
) {
8321 val
* var
/* : Array[AExpr] */;
8322 val
* var1
/* : Array[AExpr] */;
8323 var1
= typing__ACallExpr__compute_raw_arguments(self
);
8328 /* method typing#ACallAssignExpr#property_name for (self: ACallAssignExpr): String */
8329 val
* typing__ACallAssignExpr__property_name(val
* self
) {
8330 val
* var
/* : String */;
8331 val
* var1
/* : TId */;
8332 val
* var2
/* : String */;
8333 static val
* varonce
;
8334 val
* var3
/* : String */;
8335 char* var4
/* : NativeString */;
8336 long var5
/* : Int */;
8337 val
* var6
/* : String */;
8338 val
* var7
/* : String */;
8339 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallAssignExpr>*/;
8340 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8346 var6
= string__NativeString__to_s_with_length(var4
, var5
);
8350 var7
= ((val
* (*)(val
*, val
*))(var2
->class->vft
[COLOR_string__String___43d
]))(var2
, var3
) /* + on <var2:String>*/;
8356 /* method typing#ACallAssignExpr#property_name for (self: Object): String */
8357 val
* VIRTUAL_typing__ACallAssignExpr__property_name(val
* self
) {
8358 val
* var
/* : String */;
8359 val
* var1
/* : String */;
8360 var1
= typing__ACallAssignExpr__property_name(self
);
8365 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: ACallAssignExpr): Array[AExpr] */
8366 val
* typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
8367 val
* var
/* : Array[AExpr] */;
8368 val
* var1
/* : AExprs */;
8369 val
* var2
/* : Array[AExpr] */;
8370 val
* var_res
/* var res: Array[AExpr] */;
8371 val
* var3
/* : AExpr */;
8372 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallAssignExpr>*/;
8373 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8375 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:ACallAssignExpr>*/;
8376 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var3
) /* add on <var_res:Array[AExpr]>*/;
8382 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8383 val
* VIRTUAL_typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
8384 val
* var
/* : Array[AExpr] */;
8385 val
* var1
/* : Array[AExpr] */;
8386 var1
= typing__ACallAssignExpr__compute_raw_arguments(self
);
8391 /* method typing#ABraExpr#property_name for (self: ABraExpr): String */
8392 val
* typing__ABraExpr__property_name(val
* self
) {
8393 val
* var
/* : String */;
8394 static val
* varonce
;
8395 val
* var1
/* : String */;
8396 char* var2
/* : NativeString */;
8397 long var3
/* : Int */;
8398 val
* var4
/* : String */;
8404 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8413 /* method typing#ABraExpr#property_name for (self: Object): String */
8414 val
* VIRTUAL_typing__ABraExpr__property_name(val
* self
) {
8415 val
* var
/* : String */;
8416 val
* var1
/* : String */;
8417 var1
= typing__ABraExpr__property_name(self
);
8422 /* method typing#ABraExpr#compute_raw_arguments for (self: ABraExpr): Array[AExpr] */
8423 val
* typing__ABraExpr__compute_raw_arguments(val
* self
) {
8424 val
* var
/* : Array[AExpr] */;
8425 val
* var1
/* : AExprs */;
8426 val
* var2
/* : Array[AExpr] */;
8427 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraExpr>*/;
8428 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8434 /* method typing#ABraExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8435 val
* VIRTUAL_typing__ABraExpr__compute_raw_arguments(val
* self
) {
8436 val
* var
/* : Array[AExpr] */;
8437 val
* var1
/* : Array[AExpr] */;
8438 var1
= typing__ABraExpr__compute_raw_arguments(self
);
8443 /* method typing#ABraAssignExpr#property_name for (self: ABraAssignExpr): String */
8444 val
* typing__ABraAssignExpr__property_name(val
* self
) {
8445 val
* var
/* : String */;
8446 static val
* varonce
;
8447 val
* var1
/* : String */;
8448 char* var2
/* : NativeString */;
8449 long var3
/* : Int */;
8450 val
* var4
/* : String */;
8456 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8465 /* method typing#ABraAssignExpr#property_name for (self: Object): String */
8466 val
* VIRTUAL_typing__ABraAssignExpr__property_name(val
* self
) {
8467 val
* var
/* : String */;
8468 val
* var1
/* : String */;
8469 var1
= typing__ABraAssignExpr__property_name(self
);
8474 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: ABraAssignExpr): Array[AExpr] */
8475 val
* typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
8476 val
* var
/* : Array[AExpr] */;
8477 val
* var1
/* : AExprs */;
8478 val
* var2
/* : Array[AExpr] */;
8479 val
* var_res
/* var res: Array[AExpr] */;
8480 val
* var3
/* : AExpr */;
8481 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraAssignExpr>*/;
8482 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8484 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:ABraAssignExpr>*/;
8485 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var3
) /* add on <var_res:Array[AExpr]>*/;
8491 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8492 val
* VIRTUAL_typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
8493 val
* var
/* : Array[AExpr] */;
8494 val
* var1
/* : Array[AExpr] */;
8495 var1
= typing__ABraAssignExpr__compute_raw_arguments(self
);
8500 /* method typing#ASendReassignFormExpr#write_mproperty for (self: ASendReassignFormExpr): nullable MMethod */
8501 val
* typing__ASendReassignFormExpr__write_mproperty(val
* self
) {
8502 val
* var
/* : nullable MMethod */;
8503 val
* var1
/* : nullable CallSite */;
8504 val
* var2
/* : MMethod */;
8505 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_callsite
]))(self
) /* write_callsite on <self:ASendReassignFormExpr>*/;
8507 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
8508 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1355);
8511 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
8518 /* method typing#ASendReassignFormExpr#write_mproperty for (self: Object): nullable MMethod */
8519 val
* VIRTUAL_typing__ASendReassignFormExpr__write_mproperty(val
* self
) {
8520 val
* var
/* : nullable MMethod */;
8521 val
* var1
/* : nullable MMethod */;
8522 var1
= typing__ASendReassignFormExpr__write_mproperty(self
);
8527 /* method typing#ASendReassignFormExpr#write_callsite for (self: ASendReassignFormExpr): nullable CallSite */
8528 val
* typing__ASendReassignFormExpr__write_callsite(val
* self
) {
8529 val
* var
/* : nullable CallSite */;
8530 val
* var1
/* : nullable CallSite */;
8531 var1
= self
->attrs
[COLOR_typing__ASendReassignFormExpr___64dwrite_callsite
].val
; /* @write_callsite on <self:ASendReassignFormExpr> */
8536 /* method typing#ASendReassignFormExpr#write_callsite for (self: Object): nullable CallSite */
8537 val
* VIRTUAL_typing__ASendReassignFormExpr__write_callsite(val
* self
) {
8538 val
* var
/* : nullable CallSite */;
8539 val
* var1
/* : nullable CallSite */;
8540 var1
= typing__ASendReassignFormExpr__write_callsite(self
);
8545 /* method typing#ASendReassignFormExpr#write_callsite= for (self: ASendReassignFormExpr, nullable CallSite) */
8546 void typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
8547 self
->attrs
[COLOR_typing__ASendReassignFormExpr___64dwrite_callsite
].val
= p0
; /* @write_callsite on <self:ASendReassignFormExpr> */
8550 /* method typing#ASendReassignFormExpr#write_callsite= for (self: Object, nullable CallSite) */
8551 void VIRTUAL_typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
8552 typing__ASendReassignFormExpr__write_callsite_61d(self
, p0
);
8555 /* method typing#ASendReassignFormExpr#accept_typing for (self: ASendReassignFormExpr, TypeVisitor) */
8556 void typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
8557 val
* var_v
/* var v: TypeVisitor */;
8558 val
* var
/* : AExpr */;
8559 val
* var1
/* : nullable MType */;
8560 val
* var_recvtype
/* var recvtype: nullable MType */;
8561 val
* var2
/* : String */;
8562 val
* var_name
/* var name: String */;
8563 val
* var3
/* : null */;
8564 short int var4
/* : Bool */;
8565 short int var5
/* : Bool */;
8568 static val
* varonce
;
8569 val
* var6
/* : String */;
8570 char* var7
/* : NativeString */;
8571 long var8
/* : Int */;
8572 val
* var9
/* : String */;
8573 static val
* varonce10
;
8574 val
* var11
/* : String */;
8575 char* var12
/* : NativeString */;
8576 long var13
/* : Int */;
8577 val
* var14
/* : String */;
8578 val
* var15
/* : Array[Object] */;
8579 long var16
/* : Int */;
8580 val
* var17
/* : NativeArray[Object] */;
8581 val
* var18
/* : String */;
8582 val
* var19
/* : AExpr */;
8583 short int var20
/* : Bool */;
8586 short int var_for_self
/* var for_self: Bool */;
8587 val
* var23
/* : nullable CallSite */;
8588 val
* var_callsite
/* var callsite: nullable CallSite */;
8589 val
* var24
/* : null */;
8590 short int var25
/* : Bool */;
8591 val
* var26
/* : Array[AExpr] */;
8592 val
* var_args
/* var args: Array[AExpr] */;
8593 short int var27
/* : Bool */;
8594 val
* var28
/* : MSignature */;
8595 val
* var29
/* : nullable MType */;
8596 val
* var_readtype
/* var readtype: nullable MType */;
8597 val
* var30
/* : null */;
8598 short int var31
/* : Bool */;
8599 static val
* varonce32
;
8600 val
* var33
/* : String */;
8601 char* var34
/* : NativeString */;
8602 long var35
/* : Int */;
8603 val
* var36
/* : String */;
8604 static val
* varonce37
;
8605 val
* var38
/* : String */;
8606 char* var39
/* : NativeString */;
8607 long var40
/* : Int */;
8608 val
* var41
/* : String */;
8609 val
* var42
/* : Array[Object] */;
8610 long var43
/* : Int */;
8611 val
* var44
/* : NativeArray[Object] */;
8612 val
* var45
/* : String */;
8613 static val
* varonce46
;
8614 val
* var47
/* : String */;
8615 char* var48
/* : NativeString */;
8616 long var49
/* : Int */;
8617 val
* var50
/* : String */;
8618 val
* var51
/* : String */;
8619 val
* var52
/* : AExpr */;
8620 short int var53
/* : Bool */;
8623 val
* var56
/* : nullable CallSite */;
8624 val
* var_wcallsite
/* var wcallsite: nullable CallSite */;
8625 val
* var57
/* : null */;
8626 short int var58
/* : Bool */;
8627 val
* var59
/* : MSignature */;
8628 val
* var60
/* : Array[MParameter] */;
8629 val
* var61
/* : nullable Object */;
8630 val
* var62
/* : MType */;
8631 val
* var63
/* : nullable MType */;
8632 val
* var_wtype
/* var wtype: nullable MType */;
8633 val
* var64
/* : null */;
8634 short int var65
/* : Bool */;
8635 val
* var66
/* : Array[nullable Object] */;
8636 val
* var67
/* : AExpr */;
8637 short int var68
/* : Bool */;
8638 short int var69
/* : Bool */;
8640 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8641 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
8642 var_recvtype
= var1
;
8643 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendReassignFormExpr>*/;
8646 if (var_recvtype
== NULL
) {
8647 var4
= 1; /* is null */
8649 var4
= 0; /* arg is null but recv is not */
8655 /* <var_recvtype:nullable MType(MType)> isa MNullType */
8656 cltype
= type_model__MNullType
.color
;
8657 idtype
= type_model__MNullType
.id
;
8658 if(cltype
>= var_recvtype
->type
->table_size
) {
8661 var5
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
8667 var7
= "Error: Method \'";
8669 var9
= string__NativeString__to_s_with_length(var7
, var8
);
8676 var12
= "\' call on \'null\'.";
8678 var14
= string__NativeString__to_s_with_length(var12
, var13
);
8682 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
8683 { /* var15 = array_instance Array[Object] */
8685 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
8686 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var6
;
8687 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_name
;
8688 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var11
;
8689 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
8690 CHECK_NEW_array__Array(var15
);
8692 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
8693 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var18
) /* error on <var_v:TypeVisitor>*/;
8697 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8698 /* <var19:AExpr> isa ASelfExpr */
8699 cltype21
= type_parser_nodes__ASelfExpr
.color
;
8700 idtype22
= type_parser_nodes__ASelfExpr
.id
;
8701 if(cltype21
>= var19
->type
->table_size
) {
8704 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
8706 var_for_self
= var20
;
8707 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>*/;
8708 var_callsite
= var23
;
8710 if (var_callsite
== NULL
) {
8711 var25
= 1; /* is null */
8713 var25
= 0; /* arg is null but recv is not */
8719 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASendReassignFormExpr>*/;
8720 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendReassignFormExpr>*/;
8722 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments_61d
]))(self
, var_args
) /* raw_arguments= on <self:ASendReassignFormExpr>*/;
8723 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)>*/;
8725 var28
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
8726 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var28
) /* return_mtype on <var28:MSignature>*/;
8727 var_readtype
= var29
;
8729 if (var_readtype
== NULL
) {
8730 var31
= 1; /* is null */
8732 var31
= 0; /* arg is null but recv is not */
8740 var36
= string__NativeString__to_s_with_length(var34
, var35
);
8747 var39
= " is not a function";
8749 var41
= string__NativeString__to_s_with_length(var39
, var40
);
8753 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
8754 { /* var42 = array_instance Array[Object] */
8756 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
8757 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
8758 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_name
;
8759 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
8760 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
8761 CHECK_NEW_array__Array(var42
);
8763 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
8764 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var45
) /* error on <var_v:TypeVisitor>*/;
8773 var50
= string__NativeString__to_s_with_length(var48
, var49
);
8777 var51
= ((val
* (*)(val
*, val
*))(var_name
->class->vft
[COLOR_string__String___43d
]))(var_name
, var47
) /* + on <var_name:String>*/;
8778 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8779 /* <var52:AExpr> isa ASelfExpr */
8780 cltype54
= type_parser_nodes__ASelfExpr
.color
;
8781 idtype55
= type_parser_nodes__ASelfExpr
.id
;
8782 if(cltype54
>= var52
->type
->table_size
) {
8785 var53
= var52
->type
->type_table
[cltype54
] == idtype55
;
8787 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>*/;
8788 var_wcallsite
= var56
;
8790 if (var_wcallsite
== NULL
) {
8791 var58
= 1; /* is null */
8793 var58
= 0; /* arg is null but recv is not */
8799 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_callsite_61d
]))(self
, var_wcallsite
) /* write_callsite= on <self:ASendReassignFormExpr>*/;
8800 var59
= ((val
* (*)(val
*))(var_wcallsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_wcallsite
) /* msignature on <var_wcallsite:nullable CallSite(CallSite)>*/;
8801 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_model__MSignature__mparameters
]))(var59
) /* mparameters on <var59:MSignature>*/;
8802 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var60
) /* last on <var60:Array[MParameter]>*/;
8803 var62
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_model__MParameter__mtype
]))(var61
) /* mtype on <var61:nullable Object(MParameter)>*/;
8804 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>*/;
8807 if (var_wtype
== NULL
) {
8808 var65
= 1; /* is null */
8810 var65
= 0; /* arg is null but recv is not */
8816 var66
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[AExpr]>*/;
8818 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:ASendReassignFormExpr>*/;
8819 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var67
) /* add on <var_args:Array[AExpr]>*/;
8820 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)>*/;
8823 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var69
) /* is_typed= on <self:ASendReassignFormExpr>*/;
8826 /* method typing#ASendReassignFormExpr#accept_typing for (self: Object, TypeVisitor) */
8827 void VIRTUAL_typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
8828 typing__ASendReassignFormExpr__accept_typing(self
, p0
);
8831 /* method typing#ACallReassignExpr#property_name for (self: ACallReassignExpr): String */
8832 val
* typing__ACallReassignExpr__property_name(val
* self
) {
8833 val
* var
/* : String */;
8834 val
* var1
/* : TId */;
8835 val
* var2
/* : String */;
8836 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallReassignExpr>*/;
8837 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8843 /* method typing#ACallReassignExpr#property_name for (self: Object): String */
8844 val
* VIRTUAL_typing__ACallReassignExpr__property_name(val
* self
) {
8845 val
* var
/* : String */;
8846 val
* var1
/* : String */;
8847 var1
= typing__ACallReassignExpr__property_name(self
);
8852 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: ACallReassignExpr): Array[AExpr] */
8853 val
* typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
8854 val
* var
/* : Array[AExpr] */;
8855 val
* var1
/* : AExprs */;
8856 val
* var2
/* : Array[AExpr] */;
8857 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallReassignExpr>*/;
8858 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8864 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8865 val
* VIRTUAL_typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
8866 val
* var
/* : Array[AExpr] */;
8867 val
* var1
/* : Array[AExpr] */;
8868 var1
= typing__ACallReassignExpr__compute_raw_arguments(self
);
8873 /* method typing#ABraReassignExpr#property_name for (self: ABraReassignExpr): String */
8874 val
* typing__ABraReassignExpr__property_name(val
* self
) {
8875 val
* var
/* : String */;
8876 static val
* varonce
;
8877 val
* var1
/* : String */;
8878 char* var2
/* : NativeString */;
8879 long var3
/* : Int */;
8880 val
* var4
/* : String */;
8886 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8895 /* method typing#ABraReassignExpr#property_name for (self: Object): String */
8896 val
* VIRTUAL_typing__ABraReassignExpr__property_name(val
* self
) {
8897 val
* var
/* : String */;
8898 val
* var1
/* : String */;
8899 var1
= typing__ABraReassignExpr__property_name(self
);
8904 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: ABraReassignExpr): Array[AExpr] */
8905 val
* typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
8906 val
* var
/* : Array[AExpr] */;
8907 val
* var1
/* : AExprs */;
8908 val
* var2
/* : Array[AExpr] */;
8909 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraReassignExpr>*/;
8910 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8916 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8917 val
* VIRTUAL_typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
8918 val
* var
/* : Array[AExpr] */;
8919 val
* var1
/* : Array[AExpr] */;
8920 var1
= typing__ABraReassignExpr__compute_raw_arguments(self
);
8925 /* method typing#AInitExpr#property_name for (self: AInitExpr): String */
8926 val
* typing__AInitExpr__property_name(val
* self
) {
8927 val
* var
/* : String */;
8928 static val
* varonce
;
8929 val
* var1
/* : String */;
8930 char* var2
/* : NativeString */;
8931 long var3
/* : Int */;
8932 val
* var4
/* : String */;
8938 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8947 /* method typing#AInitExpr#property_name for (self: Object): String */
8948 val
* VIRTUAL_typing__AInitExpr__property_name(val
* self
) {
8949 val
* var
/* : String */;
8950 val
* var1
/* : String */;
8951 var1
= typing__AInitExpr__property_name(self
);
8956 /* method typing#AInitExpr#compute_raw_arguments for (self: AInitExpr): Array[AExpr] */
8957 val
* typing__AInitExpr__compute_raw_arguments(val
* self
) {
8958 val
* var
/* : Array[AExpr] */;
8959 val
* var1
/* : AExprs */;
8960 val
* var2
/* : Array[AExpr] */;
8961 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AInitExpr__n_args
]))(self
) /* n_args on <self:AInitExpr>*/;
8962 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8968 /* method typing#AInitExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8969 val
* VIRTUAL_typing__AInitExpr__compute_raw_arguments(val
* self
) {
8970 val
* var
/* : Array[AExpr] */;
8971 val
* var1
/* : Array[AExpr] */;
8972 var1
= typing__AInitExpr__compute_raw_arguments(self
);
8977 /* method typing#AExprs#to_a for (self: AExprs): Array[AExpr] */
8978 val
* typing__AExprs__to_a(val
* self
) {
8979 val
* var
/* : Array[AExpr] */;
8980 val
* var1
/* : ANodes[AExpr] */;
8981 val
* var2
/* : Array[nullable Object] */;
8982 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(self
) /* n_exprs on <self:AExprs>*/;
8983 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_array__Collection__to_a
]))(var1
) /* to_a on <var1:ANodes[AExpr]>*/;
8989 /* method typing#AExprs#to_a for (self: Object): Array[AExpr] */
8990 val
* VIRTUAL_typing__AExprs__to_a(val
* self
) {
8991 val
* var
/* : Array[AExpr] */;
8992 val
* var1
/* : Array[AExpr] */;
8993 var1
= typing__AExprs__to_a(self
);
8998 /* method typing#ASuperExpr#mproperty for (self: ASuperExpr): nullable MMethod */
8999 val
* typing__ASuperExpr__mproperty(val
* self
) {
9000 val
* var
/* : nullable MMethod */;
9001 val
* var1
/* : nullable MMethod */;
9002 var1
= self
->attrs
[COLOR_typing__ASuperExpr___64dmproperty
].val
; /* @mproperty on <self:ASuperExpr> */
9007 /* method typing#ASuperExpr#mproperty for (self: Object): nullable MMethod */
9008 val
* VIRTUAL_typing__ASuperExpr__mproperty(val
* self
) {
9009 val
* var
/* : nullable MMethod */;
9010 val
* var1
/* : nullable MMethod */;
9011 var1
= typing__ASuperExpr__mproperty(self
);
9016 /* method typing#ASuperExpr#mproperty= for (self: ASuperExpr, nullable MMethod) */
9017 void typing__ASuperExpr__mproperty_61d(val
* self
, val
* p0
) {
9018 self
->attrs
[COLOR_typing__ASuperExpr___64dmproperty
].val
= p0
; /* @mproperty on <self:ASuperExpr> */
9021 /* method typing#ASuperExpr#mproperty= for (self: Object, nullable MMethod) */
9022 void VIRTUAL_typing__ASuperExpr__mproperty_61d(val
* self
, val
* p0
) {
9023 typing__ASuperExpr__mproperty_61d(self
, p0
);
9026 /* method typing#ASuperExpr#accept_typing for (self: ASuperExpr, TypeVisitor) */
9027 void typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
9028 val
* var_v
/* var v: TypeVisitor */;
9029 val
* var
/* : AClassdef */;
9030 val
* var1
/* : nullable MClassDef */;
9031 val
* var2
/* : MClassType */;
9032 val
* var_recvtype
/* var recvtype: MClassType */;
9033 val
* var3
/* : MPropDef */;
9034 val
* var4
/* : MProperty */;
9035 val
* var_mproperty
/* var mproperty: MProperty */;
9036 short int var5
/* : Bool */;
9039 short int var6
/* : Bool */;
9040 static val
* varonce
;
9041 val
* var7
/* : String */;
9042 char* var8
/* : NativeString */;
9043 long var9
/* : Int */;
9044 val
* var10
/* : String */;
9045 val
* var11
/* : MModule */;
9046 val
* var12
/* : Array[MPropDef] */;
9047 val
* var_superprops
/* var superprops: Array[MPropDef] */;
9048 long var13
/* : Int */;
9049 long var14
/* : Int */;
9050 short int var15
/* : Bool */;
9051 short int var17
/* : Bool */;
9052 short int var18
/* : Bool */;
9053 short int var19
/* : Bool */;
9054 short int var_
/* var : Bool */;
9055 val
* var20
/* : MPropDef */;
9056 short int var21
/* : Bool */;
9057 static val
* varonce22
;
9058 val
* var23
/* : String */;
9059 char* var24
/* : NativeString */;
9060 long var25
/* : Int */;
9061 val
* var26
/* : String */;
9062 static val
* varonce27
;
9063 val
* var28
/* : String */;
9064 char* var29
/* : NativeString */;
9065 long var30
/* : Int */;
9066 val
* var31
/* : String */;
9067 val
* var32
/* : Array[Object] */;
9068 long var33
/* : Int */;
9069 val
* var34
/* : NativeArray[Object] */;
9070 val
* var35
/* : String */;
9071 val
* var36
/* : nullable Object */;
9072 val
* var_superprop
/* var superprop: MPropDef */;
9073 short int var37
/* : Bool */;
9076 short int var40
/* : Bool */;
9077 val
* var41
/* : MSignature */;
9078 val
* var_msignature
/* var msignature: MSignature */;
9079 val
* var42
/* : AExprs */;
9080 val
* var43
/* : Array[AExpr] */;
9081 val
* var_args
/* var args: Array[AExpr] */;
9082 long var44
/* : Int */;
9083 long var45
/* : Int */;
9084 short int var46
/* : Bool */;
9085 short int var48
/* : Bool */;
9088 const char* var_class_name
;
9089 short int var51
/* : Bool */;
9090 val
* var52
/* : String */;
9091 short int var53
/* : Bool */;
9092 val
* var54
/* : nullable MType */;
9093 short int var55
/* : Bool */;
9094 val
* var56
/* : MPropDef */;
9095 short int var57
/* : Bool */;
9097 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9098 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var
) /* mclassdef on <var:AClassdef>*/;
9100 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9101 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1431);
9104 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:nullable MClassDef>*/;
9106 var_recvtype
= var2
;
9107 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9108 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var3
) /* mproperty on <var3:MPropDef>*/;
9109 var_mproperty
= var4
;
9110 /* <var_mproperty:MProperty> isa MMethod */
9111 cltype
= type_model__MMethod
.color
;
9112 idtype
= type_model__MMethod
.id
;
9113 if(cltype
>= var_mproperty
->type
->table_size
) {
9116 var5
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
9123 var8
= "Error: super only usable in a method";
9125 var10
= string__NativeString__to_s_with_length(var8
, var9
);
9129 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var7
) /* error on <var_v:TypeVisitor>*/;
9133 var11
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9134 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)>*/;
9135 var_superprops
= var12
;
9136 var13
= ((long (*)(val
*))(var_superprops
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_superprops
) /* length on <var_superprops:Array[MPropDef]>*/;
9138 { /* Inline kernel#Int#== (var13,var14) */
9139 var17
= var13
== var14
;
9142 RET_LABEL16
:(void)0;
9145 var19
= ((short int (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MMethod__is_init
]))(var_mproperty
) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
9148 var20
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9149 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_model__MPropDef__is_intro
]))(var20
) /* is_intro on <var20:MPropDef>*/;
9155 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__process_superinit
]))(self
, var_v
) /* process_superinit on <self:ASuperExpr>*/;
9162 var24
= "Error: No super method to call for ";
9164 var26
= string__NativeString__to_s_with_length(var24
, var25
);
9173 var31
= string__NativeString__to_s_with_length(var29
, var30
);
9177 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
9178 { /* var32 = array_instance Array[Object] */
9180 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
9181 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
9182 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_mproperty
;
9183 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
9184 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
9185 CHECK_NEW_array__Array(var32
);
9187 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
9188 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var35
) /* error on <var_v:TypeVisitor>*/;
9192 var36
= ((val
* (*)(val
*))(var_superprops
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_superprops
) /* first on <var_superprops:Array[MPropDef]>*/;
9193 var_superprop
= var36
;
9194 /* <var_superprop:MPropDef> isa MMethodDef */
9195 cltype38
= type_model__MMethodDef
.color
;
9196 idtype39
= type_model__MMethodDef
.id
;
9197 if(cltype38
>= var_superprop
->type
->table_size
) {
9200 var37
= var_superprop
->type
->type_table
[cltype38
] == idtype39
;
9203 fprintf(stderr
, "Runtime error: %s", "Assert failed");
9204 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1448);
9208 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>*/;
9209 var_msignature
= var41
;
9210 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
9211 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_typing__AExprs__to_a
]))(var42
) /* to_a on <var42:AExprs>*/;
9213 var44
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
9215 { /* Inline kernel#Int#> (var44,var45) */
9216 /* Covariant cast for argument 0 (i) <var45:Int> isa OTHER */
9217 /* <var45:Int> isa OTHER */
9218 var48
= 1; /* easy <var45:Int> isa OTHER*/
9220 var_class_name
= type_kernel__Int
.name
;
9221 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
9222 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
9225 var51
= var44
> var45
;
9228 RET_LABEL47
:(void)0;
9231 var52
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty(MMethod)>*/;
9232 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>*/;
9236 var54
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
9237 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var54
) /* mtype= on <self:ASuperExpr>*/;
9239 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var55
) /* is_typed= on <self:ASuperExpr>*/;
9240 var56
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9242 ((void (*)(val
*, short int))(var56
->class->vft
[COLOR_typing__MPropDef__has_supercall_61d
]))(var56
, var57
) /* has_supercall= on <var56:MPropDef>*/;
9245 /* method typing#ASuperExpr#accept_typing for (self: Object, TypeVisitor) */
9246 void VIRTUAL_typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
9247 typing__ASuperExpr__accept_typing(self
, p0
);
9250 /* method typing#ASuperExpr#process_superinit for (self: ASuperExpr, TypeVisitor) */
9251 void typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
9252 val
* var_v
/* var v: TypeVisitor */;
9253 val
* var
/* : AClassdef */;
9254 val
* var1
/* : nullable MClassDef */;
9255 val
* var2
/* : MClassType */;
9256 val
* var_recvtype
/* var recvtype: MClassType */;
9257 val
* var3
/* : MPropDef */;
9258 val
* var4
/* : MProperty */;
9259 val
* var_mproperty
/* var mproperty: MProperty */;
9260 val
* var5
/* : null */;
9261 val
* var_superprop
/* var superprop: nullable MMethodDef */;
9262 val
* var6
/* : AClassdef */;
9263 val
* var7
/* : nullable MClassDef */;
9264 val
* var8
/* : Array[MClassType] */;
9265 val
* var9
/* : Iterator[nullable Object] */;
9266 short int var10
/* : Bool */;
9267 val
* var11
/* : nullable Object */;
9268 val
* var_msupertype
/* var msupertype: MClassType */;
9269 val
* var12
/* : MModule */;
9270 val
* var13
/* : MType */;
9271 val
* var14
/* : ModelBuilder */;
9272 val
* var15
/* : ToolContext */;
9273 long var16
/* : Int */;
9274 long var_errcount
/* var errcount: Int */;
9275 val
* var17
/* : String */;
9276 val
* var18
/* : nullable MProperty */;
9277 short int var19
/* : Bool */;
9280 const char* var_class_name
;
9281 val
* var_candidate
/* var candidate: nullable MMethod */;
9282 val
* var20
/* : null */;
9283 short int var21
/* : Bool */;
9284 val
* var22
/* : ModelBuilder */;
9285 val
* var23
/* : ToolContext */;
9286 long var24
/* : Int */;
9287 short int var25
/* : Bool */;
9288 short int var27
/* : Bool */;
9291 const char* var_class_name30
;
9292 short int var31
/* : Bool */;
9293 short int var32
/* : Bool */;
9294 val
* var33
/* : null */;
9295 short int var34
/* : Bool */;
9296 short int var_
/* var : Bool */;
9297 val
* var35
/* : MProperty */;
9298 short int var36
/* : Bool */;
9299 static val
* varonce
;
9300 val
* var37
/* : String */;
9301 char* var38
/* : NativeString */;
9302 long var39
/* : Int */;
9303 val
* var40
/* : String */;
9304 static val
* varonce41
;
9305 val
* var42
/* : String */;
9306 char* var43
/* : NativeString */;
9307 long var44
/* : Int */;
9308 val
* var45
/* : String */;
9309 val
* var46
/* : String */;
9310 static val
* varonce47
;
9311 val
* var48
/* : String */;
9312 char* var49
/* : NativeString */;
9313 long var50
/* : Int */;
9314 val
* var51
/* : String */;
9315 val
* var52
/* : MProperty */;
9316 val
* var53
/* : String */;
9317 val
* var54
/* : Array[Object] */;
9318 long var55
/* : Int */;
9319 val
* var56
/* : NativeArray[Object] */;
9320 val
* var57
/* : String */;
9321 val
* var58
/* : MModule */;
9322 val
* var59
/* : Array[MPropDef] */;
9323 val
* var_candidatedefs
/* var candidatedefs: Array[MMethodDef] */;
9324 val
* var60
/* : null */;
9325 short int var61
/* : Bool */;
9326 val
* var62
/* : nullable Object */;
9327 short int var63
/* : Bool */;
9328 long var64
/* : Int */;
9329 long var65
/* : Int */;
9330 short int var66
/* : Bool */;
9331 short int var68
/* : Bool */;
9334 const char* var_class_name71
;
9335 short int var72
/* : Bool */;
9336 static val
* varonce73
;
9337 val
* var74
/* : String */;
9338 char* var75
/* : NativeString */;
9339 long var76
/* : Int */;
9340 val
* var77
/* : String */;
9341 static val
* varonce78
;
9342 val
* var79
/* : String */;
9343 char* var80
/* : NativeString */;
9344 long var81
/* : Int */;
9345 val
* var82
/* : String */;
9346 static val
* varonce83
;
9347 val
* var84
/* : String */;
9348 char* var85
/* : NativeString */;
9349 long var86
/* : Int */;
9350 val
* var87
/* : String */;
9351 static val
* varonce88
;
9352 val
* var89
/* : String */;
9353 char* var90
/* : NativeString */;
9354 long var91
/* : Int */;
9355 val
* var92
/* : String */;
9356 val
* var93
/* : String */;
9357 val
* var94
/* : Array[Object] */;
9358 long var95
/* : Int */;
9359 val
* var96
/* : NativeArray[Object] */;
9360 val
* var97
/* : String */;
9361 val
* var98
/* : nullable Object */;
9362 val
* var99
/* : null */;
9363 short int var100
/* : Bool */;
9364 static val
* varonce101
;
9365 val
* var102
/* : String */;
9366 char* var103
/* : NativeString */;
9367 long var104
/* : Int */;
9368 val
* var105
/* : String */;
9369 static val
* varonce106
;
9370 val
* var107
/* : String */;
9371 char* var108
/* : NativeString */;
9372 long var109
/* : Int */;
9373 val
* var110
/* : String */;
9374 val
* var111
/* : Array[Object] */;
9375 long var112
/* : Int */;
9376 val
* var113
/* : NativeArray[Object] */;
9377 val
* var114
/* : String */;
9378 val
* var115
/* : MProperty */;
9379 val
* var116
/* : AExprs */;
9380 val
* var117
/* : Array[AExpr] */;
9381 val
* var_args
/* var args: Array[AExpr] */;
9382 short int var118
/* : Bool */;
9383 val
* var119
/* : MSignature */;
9384 val
* var_msignature
/* var msignature: MSignature */;
9385 long var120
/* : Int */;
9386 long var121
/* : Int */;
9387 short int var122
/* : Bool */;
9388 short int var124
/* : Bool */;
9391 const char* var_class_name127
;
9392 short int var128
/* : Bool */;
9393 val
* var129
/* : String */;
9394 short int var130
/* : Bool */;
9395 short int var131
/* : Bool */;
9397 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9398 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var
) /* mclassdef on <var:AClassdef>*/;
9400 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9401 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1462);
9404 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:nullable MClassDef>*/;
9406 var_recvtype
= var2
;
9407 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9408 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var3
) /* mproperty on <var3:MPropDef>*/;
9409 var_mproperty
= var4
;
9411 var_superprop
= var5
;
9412 var6
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9413 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var6
) /* mclassdef on <var6:AClassdef>*/;
9415 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9416 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1465);
9419 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var7
) /* supertypes on <var7:nullable MClassDef>*/;
9421 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Array[MClassType]>*/;
9423 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
9425 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
9426 var_msupertype
= var11
;
9427 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9428 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>*/;
9429 var_msupertype
= var13
;
9430 var14
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
9431 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var14
) /* toolcontext on <var14:ModelBuilder>*/;
9432 var16
= ((long (*)(val
*))(var15
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var15
) /* error_count on <var15:ToolContext>*/;
9433 var_errcount
= var16
;
9434 var17
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty>*/;
9435 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>*/;
9436 /* <var18:nullable MProperty> isa nullable MMethod */
9437 cltype
= type_nullable_model__MMethod
.color
;
9438 idtype
= type_nullable_model__MMethod
.id
;
9442 if(cltype
>= var18
->type
->table_size
) {
9445 var19
= var18
->type
->type_table
[cltype
] == idtype
;
9449 var_class_name
= var18
== NULL ?
"null" : var18
->type
->name
;
9450 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name
);
9451 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1468);
9454 var_candidate
= var18
;
9456 if (var_candidate
== NULL
) {
9457 var21
= 1; /* is null */
9459 var21
= 0; /* arg is null but recv is not */
9462 var22
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
9463 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var22
) /* toolcontext on <var22:ModelBuilder>*/;
9464 var24
= ((long (*)(val
*))(var23
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var23
) /* error_count on <var23:ToolContext>*/;
9465 { /* Inline kernel#Int#> (var24,var_errcount) */
9466 /* Covariant cast for argument 0 (i) <var_errcount:Int> isa OTHER */
9467 /* <var_errcount:Int> isa OTHER */
9468 var27
= 1; /* easy <var_errcount:Int> isa OTHER*/
9470 var_class_name30
= type_kernel__Int
.name
;
9471 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30
);
9472 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
9475 var31
= var24
> var_errcount
;
9478 RET_LABEL26
:(void)0;
9484 goto CONTINUE_label
;
9488 if (var_superprop
== NULL
) {
9489 var34
= 0; /* is null */
9491 var34
= 1; /* arg is null and recv is not */
9495 var35
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9496 var36
= ((short int (*)(val
*, val
*))(var35
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var35
, var_candidate
) /* != on <var35:MProperty(MMethod)>*/;
9505 var38
= "Error: conflicting super constructor to call for ";
9507 var40
= string__NativeString__to_s_with_length(var38
, var39
);
9516 var45
= string__NativeString__to_s_with_length(var43
, var44
);
9520 var46
= ((val
* (*)(val
*))(var_candidate
->class->vft
[COLOR_model__MProperty__full_name
]))(var_candidate
) /* full_name on <var_candidate:nullable MMethod(MMethod)>*/;
9526 var51
= string__NativeString__to_s_with_length(var49
, var50
);
9530 var52
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9531 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model__MProperty__full_name
]))(var52
) /* full_name on <var52:MProperty(MMethod)>*/;
9532 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
9533 { /* var54 = array_instance Array[Object] */
9535 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
9536 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var37
;
9537 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var_mproperty
;
9538 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var42
;
9539 ((struct instance_array__NativeArray
*)var56
)->values
[3] = (val
*) var46
;
9540 ((struct instance_array__NativeArray
*)var56
)->values
[4] = (val
*) var48
;
9541 ((struct instance_array__NativeArray
*)var56
)->values
[5] = (val
*) var53
;
9542 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
9543 CHECK_NEW_array__Array(var54
);
9545 var57
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
9546 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var57
) /* error on <var_v:TypeVisitor>*/;
9550 var58
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9551 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)>*/;
9552 var_candidatedefs
= var59
;
9554 if (var_superprop
== NULL
) {
9555 var61
= 0; /* is null */
9557 var61
= 1; /* arg is null and recv is not */
9560 var62
= ((val
* (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_candidatedefs
) /* first on <var_candidatedefs:Array[MMethodDef]>*/;
9561 var63
= ((short int (*)(val
*, val
*))(var_superprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_superprop
, var62
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9563 goto CONTINUE_label
;
9566 ((void (*)(val
*, val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidatedefs
, var_superprop
) /* add on <var_candidatedefs:Array[MMethodDef]>*/;
9569 var64
= ((long (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidatedefs
) /* length on <var_candidatedefs:Array[MMethodDef]>*/;
9571 { /* Inline kernel#Int#> (var64,var65) */
9572 /* Covariant cast for argument 0 (i) <var65:Int> isa OTHER */
9573 /* <var65:Int> isa OTHER */
9574 var68
= 1; /* easy <var65:Int> isa OTHER*/
9576 var_class_name71
= type_kernel__Int
.name
;
9577 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71
);
9578 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
9581 var72
= var64
> var65
;
9584 RET_LABEL67
:(void)0;
9590 var75
= "Error: confliting property definitions for property ";
9592 var77
= string__NativeString__to_s_with_length(var75
, var76
);
9601 var82
= string__NativeString__to_s_with_length(var80
, var81
);
9610 var87
= string__NativeString__to_s_with_length(var85
, var86
);
9619 var92
= string__NativeString__to_s_with_length(var90
, var91
);
9623 var93
= ((val
* (*)(val
*, val
*))(var_candidatedefs
->class->vft
[COLOR_string__Collection__join
]))(var_candidatedefs
, var89
) /* join on <var_candidatedefs:Array[MMethodDef]>*/;
9624 var94
= NEW_array__Array(&type_array__Arraykernel__Object
);
9625 { /* var94 = array_instance Array[Object] */
9627 var96
= NEW_array__NativeArray(var95
, &type_array__NativeArraykernel__Object
);
9628 ((struct instance_array__NativeArray
*)var96
)->values
[0] = (val
*) var74
;
9629 ((struct instance_array__NativeArray
*)var96
)->values
[1] = (val
*) var_mproperty
;
9630 ((struct instance_array__NativeArray
*)var96
)->values
[2] = (val
*) var79
;
9631 ((struct instance_array__NativeArray
*)var96
)->values
[3] = (val
*) var_recvtype
;
9632 ((struct instance_array__NativeArray
*)var96
)->values
[4] = (val
*) var84
;
9633 ((struct instance_array__NativeArray
*)var96
)->values
[5] = (val
*) var93
;
9634 ((void (*)(val
*, val
*, long))(var94
->class->vft
[COLOR_array__Array__with_native
]))(var94
, var96
, var95
) /* with_native on <var94:Array[Object]>*/;
9635 CHECK_NEW_array__Array(var94
);
9637 var97
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_string__Object__to_s
]))(var94
) /* to_s on <var94:Array[Object]>*/;
9638 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var97
) /* error on <var_v:TypeVisitor>*/;
9642 var98
= ((val
* (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_candidatedefs
) /* first on <var_candidatedefs:Array[MMethodDef]>*/;
9643 var_superprop
= var98
;
9644 CONTINUE_label
: (void)0;
9645 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
9647 BREAK_label
: (void)0;
9649 if (var_superprop
== NULL
) {
9650 var100
= 1; /* is null */
9652 var100
= 0; /* arg is null but recv is not */
9656 var102
= varonce101
;
9658 var103
= "Error: No super method to call for ";
9660 var105
= string__NativeString__to_s_with_length(var103
, var104
);
9662 varonce101
= var102
;
9665 var107
= varonce106
;
9669 var110
= string__NativeString__to_s_with_length(var108
, var109
);
9671 varonce106
= var107
;
9673 var111
= NEW_array__Array(&type_array__Arraykernel__Object
);
9674 { /* var111 = array_instance Array[Object] */
9676 var113
= NEW_array__NativeArray(var112
, &type_array__NativeArraykernel__Object
);
9677 ((struct instance_array__NativeArray
*)var113
)->values
[0] = (val
*) var102
;
9678 ((struct instance_array__NativeArray
*)var113
)->values
[1] = (val
*) var_mproperty
;
9679 ((struct instance_array__NativeArray
*)var113
)->values
[2] = (val
*) var107
;
9680 ((void (*)(val
*, val
*, long))(var111
->class->vft
[COLOR_array__Array__with_native
]))(var111
, var113
, var112
) /* with_native on <var111:Array[Object]>*/;
9681 CHECK_NEW_array__Array(var111
);
9683 var114
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_string__Object__to_s
]))(var111
) /* to_s on <var111:Array[Object]>*/;
9684 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var114
) /* error on <var_v:TypeVisitor>*/;
9688 var115
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9689 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__mproperty_61d
]))(self
, var115
) /* mproperty= on <self:ASuperExpr>*/;
9690 var116
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
9691 var117
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_typing__AExprs__to_a
]))(var116
) /* to_a on <var116:AExprs>*/;
9694 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>*/;
9695 var_msignature
= var119
;
9696 var120
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
9698 { /* Inline kernel#Int#> (var120,var121) */
9699 /* Covariant cast for argument 0 (i) <var121:Int> isa OTHER */
9700 /* <var121:Int> isa OTHER */
9701 var124
= 1; /* easy <var121:Int> isa OTHER*/
9703 var_class_name127
= type_kernel__Int
.name
;
9704 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name127
);
9705 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
9708 var128
= var120
> var121
;
9711 RET_LABEL123
:(void)0;
9714 var129
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty>*/;
9715 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>*/;
9720 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var131
) /* is_typed= on <self:ASuperExpr>*/;
9723 /* method typing#ASuperExpr#process_superinit for (self: Object, TypeVisitor) */
9724 void VIRTUAL_typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
9725 typing__ASuperExpr__process_superinit(self
, p0
);
9728 /* method typing#ANewExpr#mproperty for (self: ANewExpr): nullable MMethod */
9729 val
* typing__ANewExpr__mproperty(val
* self
) {
9730 val
* var
/* : nullable MMethod */;
9731 val
* var1
/* : nullable CallSite */;
9732 val
* var2
/* : MMethod */;
9733 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ANewExpr__callsite
]))(self
) /* callsite on <self:ANewExpr>*/;
9735 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
9736 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1510);
9739 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
9746 /* method typing#ANewExpr#mproperty for (self: Object): nullable MMethod */
9747 val
* VIRTUAL_typing__ANewExpr__mproperty(val
* self
) {
9748 val
* var
/* : nullable MMethod */;
9749 val
* var1
/* : nullable MMethod */;
9750 var1
= typing__ANewExpr__mproperty(self
);
9755 /* method typing#ANewExpr#callsite for (self: ANewExpr): nullable CallSite */
9756 val
* typing__ANewExpr__callsite(val
* self
) {
9757 val
* var
/* : nullable CallSite */;
9758 val
* var1
/* : nullable CallSite */;
9759 var1
= self
->attrs
[COLOR_typing__ANewExpr___64dcallsite
].val
; /* @callsite on <self:ANewExpr> */
9764 /* method typing#ANewExpr#callsite for (self: Object): nullable CallSite */
9765 val
* VIRTUAL_typing__ANewExpr__callsite(val
* self
) {
9766 val
* var
/* : nullable CallSite */;
9767 val
* var1
/* : nullable CallSite */;
9768 var1
= typing__ANewExpr__callsite(self
);
9773 /* method typing#ANewExpr#callsite= for (self: ANewExpr, nullable CallSite) */
9774 void typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
9775 self
->attrs
[COLOR_typing__ANewExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ANewExpr> */
9778 /* method typing#ANewExpr#callsite= for (self: Object, nullable CallSite) */
9779 void VIRTUAL_typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
9780 typing__ANewExpr__callsite_61d(self
, p0
);