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 (%s:%d)\n", "Uninitialized attribute @typing_phase", "src/typing.nit", 27);
15 /* method typing#ToolContext#typing_phase for (self: Object): Phase */
16 val
* VIRTUAL_typing__ToolContext__typing_phase(val
* self
) {
17 val
* var
/* : Phase */;
18 val
* var1
/* : Phase */;
19 var1
= typing__ToolContext__typing_phase(self
);
24 /* method typing#ToolContext#typing_phase= for (self: ToolContext, Phase) */
25 void typing__ToolContext__typing_phase_61d(val
* self
, val
* p0
) {
26 self
->attrs
[COLOR_typing__ToolContext___64dtyping_phase
].val
= p0
; /* @typing_phase on <self:ToolContext> */
29 /* method typing#ToolContext#typing_phase= for (self: Object, Phase) */
30 void VIRTUAL_typing__ToolContext__typing_phase_61d(val
* self
, val
* p0
) {
31 typing__ToolContext__typing_phase_61d(self
, p0
);
34 /* method typing#MPropDef#has_supercall for (self: MPropDef): Bool */
35 short int typing__MPropDef__has_supercall(val
* self
) {
36 short int var
/* : Bool */;
37 short int var1
/* : Bool */;
38 var1
= self
->attrs
[COLOR_typing__MPropDef___64dhas_supercall
].s
; /* @has_supercall on <self:MPropDef> */
43 /* method typing#MPropDef#has_supercall for (self: Object): Bool */
44 short int VIRTUAL_typing__MPropDef__has_supercall(val
* self
) {
45 short int var
/* : Bool */;
46 short int var1
/* : Bool */;
47 var1
= typing__MPropDef__has_supercall(self
);
52 /* method typing#MPropDef#has_supercall= for (self: MPropDef, Bool) */
53 void typing__MPropDef__has_supercall_61d(val
* self
, short int p0
) {
54 self
->attrs
[COLOR_typing__MPropDef___64dhas_supercall
].s
= p0
; /* @has_supercall on <self:MPropDef> */
57 /* method typing#MPropDef#has_supercall= for (self: Object, Bool) */
58 void VIRTUAL_typing__MPropDef__has_supercall_61d(val
* self
, short int p0
) {
59 typing__MPropDef__has_supercall_61d(self
, p0
);
62 /* method typing#TypingPhase#process_npropdef for (self: TypingPhase, APropdef) */
63 void typing__TypingPhase__process_npropdef(val
* self
, val
* p0
) {
64 val
* var_npropdef
/* var npropdef: APropdef */;
65 val
* var
/* : ToolContext */;
66 val
* var1
/* : ModelBuilder */;
68 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:TypingPhase>*/;
69 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ToolContext__modelbuilder
]))(var
) /* modelbuilder on <var:ToolContext>*/;
70 ((void (*)(val
*, val
*))(var_npropdef
->class->vft
[COLOR_typing__APropdef__do_typing
]))(var_npropdef
, var1
) /* do_typing on <var_npropdef:APropdef>*/;
73 /* method typing#TypingPhase#process_npropdef for (self: Object, APropdef) */
74 void VIRTUAL_typing__TypingPhase__process_npropdef(val
* self
, val
* p0
) {
75 typing__TypingPhase__process_npropdef(self
, p0
);
78 /* method typing#TypeVisitor#modelbuilder for (self: TypeVisitor): ModelBuilder */
79 val
* typing__TypeVisitor__modelbuilder(val
* self
) {
80 val
* var
/* : ModelBuilder */;
81 val
* var1
/* : ModelBuilder */;
82 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dmodelbuilder
].val
; /* @modelbuilder on <self:TypeVisitor> */
84 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @modelbuilder", "src/typing.nit", 41);
91 /* method typing#TypeVisitor#modelbuilder for (self: Object): ModelBuilder */
92 val
* VIRTUAL_typing__TypeVisitor__modelbuilder(val
* self
) {
93 val
* var
/* : ModelBuilder */;
94 val
* var1
/* : ModelBuilder */;
95 var1
= typing__TypeVisitor__modelbuilder(self
);
100 /* method typing#TypeVisitor#modelbuilder= for (self: TypeVisitor, ModelBuilder) */
101 void typing__TypeVisitor__modelbuilder_61d(val
* self
, val
* p0
) {
102 self
->attrs
[COLOR_typing__TypeVisitor___64dmodelbuilder
].val
= p0
; /* @modelbuilder on <self:TypeVisitor> */
105 /* method typing#TypeVisitor#modelbuilder= for (self: Object, ModelBuilder) */
106 void VIRTUAL_typing__TypeVisitor__modelbuilder_61d(val
* self
, val
* p0
) {
107 typing__TypeVisitor__modelbuilder_61d(self
, p0
);
110 /* method typing#TypeVisitor#nclassdef for (self: TypeVisitor): AClassdef */
111 val
* typing__TypeVisitor__nclassdef(val
* self
) {
112 val
* var
/* : AClassdef */;
113 val
* var1
/* : AClassdef */;
114 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dnclassdef
].val
; /* @nclassdef on <self:TypeVisitor> */
116 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @nclassdef", "src/typing.nit", 42);
123 /* method typing#TypeVisitor#nclassdef for (self: Object): AClassdef */
124 val
* VIRTUAL_typing__TypeVisitor__nclassdef(val
* self
) {
125 val
* var
/* : AClassdef */;
126 val
* var1
/* : AClassdef */;
127 var1
= typing__TypeVisitor__nclassdef(self
);
132 /* method typing#TypeVisitor#nclassdef= for (self: TypeVisitor, AClassdef) */
133 void typing__TypeVisitor__nclassdef_61d(val
* self
, val
* p0
) {
134 self
->attrs
[COLOR_typing__TypeVisitor___64dnclassdef
].val
= p0
; /* @nclassdef on <self:TypeVisitor> */
137 /* method typing#TypeVisitor#nclassdef= for (self: Object, AClassdef) */
138 void VIRTUAL_typing__TypeVisitor__nclassdef_61d(val
* self
, val
* p0
) {
139 typing__TypeVisitor__nclassdef_61d(self
, p0
);
142 /* method typing#TypeVisitor#mpropdef for (self: TypeVisitor): MPropDef */
143 val
* typing__TypeVisitor__mpropdef(val
* self
) {
144 val
* var
/* : MPropDef */;
145 val
* var1
/* : MPropDef */;
146 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dmpropdef
].val
; /* @mpropdef on <self:TypeVisitor> */
148 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/typing.nit", 43);
155 /* method typing#TypeVisitor#mpropdef for (self: Object): MPropDef */
156 val
* VIRTUAL_typing__TypeVisitor__mpropdef(val
* self
) {
157 val
* var
/* : MPropDef */;
158 val
* var1
/* : MPropDef */;
159 var1
= typing__TypeVisitor__mpropdef(self
);
164 /* method typing#TypeVisitor#mpropdef= for (self: TypeVisitor, MPropDef) */
165 void typing__TypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
166 self
->attrs
[COLOR_typing__TypeVisitor___64dmpropdef
].val
= p0
; /* @mpropdef on <self:TypeVisitor> */
169 /* method typing#TypeVisitor#mpropdef= for (self: Object, MPropDef) */
170 void VIRTUAL_typing__TypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
171 typing__TypeVisitor__mpropdef_61d(self
, p0
);
174 /* method typing#TypeVisitor#selfvariable for (self: TypeVisitor): Variable */
175 val
* typing__TypeVisitor__selfvariable(val
* self
) {
176 val
* var
/* : Variable */;
177 val
* var1
/* : Variable */;
178 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dselfvariable
].val
; /* @selfvariable on <self:TypeVisitor> */
180 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @selfvariable", "src/typing.nit", 45);
187 /* method typing#TypeVisitor#selfvariable for (self: Object): Variable */
188 val
* VIRTUAL_typing__TypeVisitor__selfvariable(val
* self
) {
189 val
* var
/* : Variable */;
190 val
* var1
/* : Variable */;
191 var1
= typing__TypeVisitor__selfvariable(self
);
196 /* method typing#TypeVisitor#selfvariable= for (self: TypeVisitor, Variable) */
197 void typing__TypeVisitor__selfvariable_61d(val
* self
, val
* p0
) {
198 self
->attrs
[COLOR_typing__TypeVisitor___64dselfvariable
].val
= p0
; /* @selfvariable on <self:TypeVisitor> */
201 /* method typing#TypeVisitor#selfvariable= for (self: Object, Variable) */
202 void VIRTUAL_typing__TypeVisitor__selfvariable_61d(val
* self
, val
* p0
) {
203 typing__TypeVisitor__selfvariable_61d(self
, p0
);
206 /* method typing#TypeVisitor#init for (self: TypeVisitor, ModelBuilder, AClassdef, MPropDef) */
207 void typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
208 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
209 val
* var_nclassdef
/* var nclassdef: AClassdef */;
210 val
* var_mpropdef
/* var mpropdef: MPropDef */;
211 val
* var
/* : nullable MClassDef */;
212 val
* var1
/* : MClass */;
213 val
* var_mclass
/* var mclass: MClass */;
214 val
* var2
/* : Variable */;
216 val
* var3
/* : String */;
217 char* var4
/* : NativeString */;
218 long var5
/* : Int */;
219 val
* var6
/* : String */;
220 val
* var_selfvariable
/* var selfvariable: Variable */;
221 val
* var7
/* : MClassType */;
222 var_modelbuilder
= p0
;
225 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder_61d
]))(self
, var_modelbuilder
) /* modelbuilder= on <self:TypeVisitor>*/;
226 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef_61d
]))(self
, var_nclassdef
) /* nclassdef= on <self:TypeVisitor>*/;
227 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mpropdef_61d
]))(self
, var_mpropdef
) /* mpropdef= on <self:TypeVisitor>*/;
228 var
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef
) /* mclassdef on <var_nclassdef:AClassdef>*/;
230 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 53);
233 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__mclass
]))(var
) /* mclass on <var:nullable MClassDef>*/;
236 var2
= NEW_scope__Variable(&type_scope__Variable
);
242 var6
= string__NativeString__to_s_with_length(var4
, var5
);
246 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_scope__Variable__init
]))(var2
, var3
) /* init on <var2:Variable>*/;
247 CHECK_NEW_scope__Variable(var2
);
248 var_selfvariable
= var2
;
249 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__selfvariable_61d
]))(self
, var_selfvariable
) /* selfvariable= on <self:TypeVisitor>*/;
250 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:MClass>*/;
251 ((void (*)(val
*, val
*))(var_selfvariable
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var_selfvariable
, var7
) /* declared_type= on <var_selfvariable:Variable>*/;
254 /* method typing#TypeVisitor#init for (self: Object, ModelBuilder, AClassdef, MPropDef) */
255 void VIRTUAL_typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
256 typing__TypeVisitor__init(self
, p0
, p1
, p2
);
259 /* method typing#TypeVisitor#mmodule for (self: TypeVisitor): MModule */
260 val
* typing__TypeVisitor__mmodule(val
* self
) {
261 val
* var
/* : MModule */;
262 val
* var1
/* : AClassdef */;
263 val
* var2
/* : nullable MClassDef */;
264 val
* var3
/* : MModule */;
265 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
266 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
268 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 60);
271 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
278 /* method typing#TypeVisitor#mmodule for (self: Object): MModule */
279 val
* VIRTUAL_typing__TypeVisitor__mmodule(val
* self
) {
280 val
* var
/* : MModule */;
281 val
* var1
/* : MModule */;
282 var1
= typing__TypeVisitor__mmodule(self
);
287 /* method typing#TypeVisitor#anchor for (self: TypeVisitor): MClassType */
288 val
* typing__TypeVisitor__anchor(val
* self
) {
289 val
* var
/* : MClassType */;
290 val
* var1
/* : AClassdef */;
291 val
* var2
/* : nullable MClassDef */;
292 val
* var3
/* : MClassType */;
293 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
294 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
296 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 62);
299 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var2
) /* bound_mtype on <var2:nullable MClassDef>*/;
306 /* method typing#TypeVisitor#anchor for (self: Object): MClassType */
307 val
* VIRTUAL_typing__TypeVisitor__anchor(val
* self
) {
308 val
* var
/* : MClassType */;
309 val
* var1
/* : MClassType */;
310 var1
= typing__TypeVisitor__anchor(self
);
315 /* method typing#TypeVisitor#anchor_to for (self: TypeVisitor, MType): MType */
316 val
* typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
317 val
* var
/* : MType */;
318 val
* var_mtype
/* var mtype: MType */;
319 val
* var1
/* : AClassdef */;
320 val
* var2
/* : nullable MClassDef */;
321 val
* var3
/* : MModule */;
322 val
* var_mmodule
/* var mmodule: MModule */;
323 val
* var4
/* : AClassdef */;
324 val
* var5
/* : nullable MClassDef */;
325 val
* var6
/* : MClassType */;
326 val
* var_anchor
/* var anchor: MClassType */;
327 val
* var7
/* : MType */;
329 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
330 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
332 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 66);
335 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
338 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
339 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
341 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 67);
344 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
347 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>*/;
353 /* method typing#TypeVisitor#anchor_to for (self: Object, MType): MType */
354 val
* VIRTUAL_typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
355 val
* var
/* : MType */;
356 val
* var1
/* : MType */;
357 var1
= typing__TypeVisitor__anchor_to(self
, p0
);
362 /* method typing#TypeVisitor#is_subtype for (self: TypeVisitor, MType, MType): Bool */
363 short int typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
364 short int var
/* : Bool */;
365 val
* var_sub
/* var sub: MType */;
366 val
* var_sup
/* var sup: MType */;
367 val
* var1
/* : AClassdef */;
368 val
* var2
/* : nullable MClassDef */;
369 val
* var3
/* : MModule */;
370 val
* var_mmodule
/* var mmodule: MModule */;
371 val
* var4
/* : AClassdef */;
372 val
* var5
/* : nullable MClassDef */;
373 val
* var6
/* : MClassType */;
374 val
* var_anchor
/* var anchor: MClassType */;
375 short int var7
/* : Bool */;
378 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
379 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
381 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 73);
384 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
387 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
388 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
390 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 74);
393 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
396 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>*/;
402 /* method typing#TypeVisitor#is_subtype for (self: Object, MType, MType): Bool */
403 short int VIRTUAL_typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
404 short int var
/* : Bool */;
405 short int var1
/* : Bool */;
406 var1
= typing__TypeVisitor__is_subtype(self
, p0
, p1
);
411 /* method typing#TypeVisitor#resolve_for for (self: TypeVisitor, MType, MType, Bool): MType */
412 val
* typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
413 val
* var
/* : MType */;
414 val
* var_mtype
/* var mtype: MType */;
415 val
* var_subtype
/* var subtype: MType */;
416 short int var_for_self
/* var for_self: Bool */;
417 val
* var1
/* : AClassdef */;
418 val
* var2
/* : nullable MClassDef */;
419 val
* var3
/* : MModule */;
420 val
* var_mmodule
/* var mmodule: MModule */;
421 val
* var4
/* : AClassdef */;
422 val
* var5
/* : nullable MClassDef */;
423 val
* var6
/* : MClassType */;
424 val
* var_anchor
/* var anchor: MClassType */;
425 short int var7
/* : Bool */;
426 val
* var8
/* : MType */;
427 val
* var_res
/* var res: MType */;
431 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
432 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
434 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 80);
437 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
440 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
441 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
443 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 81);
446 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
449 var7
= !var_for_self
;
450 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>*/;
457 /* method typing#TypeVisitor#resolve_for for (self: Object, MType, MType, Bool): MType */
458 val
* VIRTUAL_typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
459 val
* var
/* : MType */;
460 val
* var1
/* : MType */;
461 var1
= typing__TypeVisitor__resolve_for(self
, p0
, p1
, p2
);
466 /* method typing#TypeVisitor#resolve_signature_for for (self: TypeVisitor, MMethodDef, MType, Bool): MSignature */
467 val
* typing__TypeVisitor__resolve_signature_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
468 val
* var
/* : MSignature */;
469 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
470 val
* var_recv
/* var recv: MType */;
471 short int var_for_self
/* var for_self: Bool */;
472 val
* var1
/* : nullable MSignature */;
473 val
* var2
/* : MType */;
474 short int var3
/* : Bool */;
480 var1
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
482 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 94);
485 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>*/;
486 /* <var2:MType> isa MSignature */
487 cltype
= type_model__MSignature
.color
;
488 idtype
= type_model__MSignature
.id
;
489 if(cltype
>= var2
->type
->table_size
) {
492 var3
= var2
->type
->type_table
[cltype
] == idtype
;
495 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 94);
503 /* method typing#TypeVisitor#resolve_signature_for for (self: Object, MMethodDef, MType, Bool): MSignature */
504 val
* VIRTUAL_typing__TypeVisitor__resolve_signature_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
505 val
* var
/* : MSignature */;
506 val
* var1
/* : MSignature */;
507 var1
= typing__TypeVisitor__resolve_signature_for(self
, p0
, p1
, p2
);
512 /* method typing#TypeVisitor#check_subtype for (self: TypeVisitor, ANode, MType, MType): nullable MType */
513 val
* typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
514 val
* var
/* : nullable MType */;
515 val
* var_node
/* var node: ANode */;
516 val
* var_sub
/* var sub: MType */;
517 val
* var_sup
/* var sup: MType */;
518 short int var1
/* : Bool */;
519 val
* var2
/* : MType */;
520 short int var3
/* : Bool */;
521 val
* var4
/* : ModelBuilder */;
523 val
* var5
/* : String */;
524 char* var6
/* : NativeString */;
525 long var7
/* : Int */;
526 val
* var8
/* : String */;
527 static val
* varonce9
;
528 val
* var10
/* : String */;
529 char* var11
/* : NativeString */;
530 long var12
/* : Int */;
531 val
* var13
/* : String */;
532 val
* var14
/* : Array[Object] */;
533 long var15
/* : Int */;
534 val
* var16
/* : NativeArray[Object] */;
535 val
* var17
/* : String */;
536 val
* var18
/* : null */;
540 var1
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var_sup
) /* is_subtype on <self:TypeVisitor>*/;
546 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(self
, var_sup
) /* anchor_to on <self:TypeVisitor>*/;
547 var3
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var2
) /* is_subtype on <self:TypeVisitor>*/;
553 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
557 var6
= "Type error: expected ";
559 var8
= string__NativeString__to_s_with_length(var6
, var7
);
568 var13
= string__NativeString__to_s_with_length(var11
, var12
);
572 var14
= NEW_array__Array(&type_array__Arraykernel__Object
);
573 { /* var14 = array_instance Array[Object] */
575 var16
= NEW_array__NativeArray(var15
, &type_array__NativeArraykernel__Object
);
576 ((struct instance_array__NativeArray
*)var16
)->values
[0] = (val
*) var5
;
577 ((struct instance_array__NativeArray
*)var16
)->values
[1] = (val
*) var_sup
;
578 ((struct instance_array__NativeArray
*)var16
)->values
[2] = (val
*) var10
;
579 ((struct instance_array__NativeArray
*)var16
)->values
[3] = (val
*) var_sub
;
580 ((void (*)(val
*, val
*, long))(var14
->class->vft
[COLOR_array__Array__with_native
]))(var14
, var16
, var15
) /* with_native on <var14:Array[Object]>*/;
581 CHECK_NEW_array__Array(var14
);
583 var17
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_string__Object__to_s
]))(var14
) /* to_s on <var14:Array[Object]>*/;
584 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var4
, var_node
, var17
) /* error on <var4:ModelBuilder>*/;
591 /* method typing#TypeVisitor#check_subtype for (self: Object, ANode, MType, MType): nullable MType */
592 val
* VIRTUAL_typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
593 val
* var
/* : nullable MType */;
594 val
* var1
/* : nullable MType */;
595 var1
= typing__TypeVisitor__check_subtype(self
, p0
, p1
, p2
);
600 /* method typing#TypeVisitor#visit_stmt for (self: TypeVisitor, nullable AExpr) */
601 void typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
602 val
* var_nexpr
/* var nexpr: nullable AExpr */;
603 val
* var
/* : null */;
604 short int var1
/* : Bool */;
607 if (var_nexpr
== NULL
) {
608 var1
= 1; /* is null */
610 var1
= 0; /* arg is null but recv is not */
616 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:nullable AExpr(AExpr)>*/;
619 /* method typing#TypeVisitor#visit_stmt for (self: Object, nullable AExpr) */
620 void VIRTUAL_typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
621 typing__TypeVisitor__visit_stmt(self
, p0
);
624 /* method typing#TypeVisitor#visit_expr for (self: TypeVisitor, AExpr): nullable MType */
625 val
* typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
626 val
* var
/* : nullable MType */;
627 val
* var_nexpr
/* var nexpr: AExpr */;
628 val
* var1
/* : nullable MType */;
629 val
* var_mtype
/* var mtype: nullable MType */;
630 val
* var2
/* : null */;
631 short int var3
/* : Bool */;
632 short int var4
/* : Bool */;
633 short int var5
/* : Bool */;
634 val
* var6
/* : ModelBuilder */;
635 val
* var7
/* : ToolContext */;
636 long var8
/* : Int */;
637 long var9
/* : Int */;
638 short int var10
/* : Bool */;
639 short int var12
/* : Bool */;
642 short int var13
/* : Bool */;
643 short int var14
/* : Bool */;
644 val
* var15
/* : ModelBuilder */;
645 val
* var16
/* : ToolContext */;
646 long var17
/* : Int */;
647 long var18
/* : Int */;
648 short int var19
/* : Bool */;
649 short int var21
/* : Bool */;
652 short int var24
/* : Bool */;
654 val
* var25
/* : String */;
655 char* var26
/* : NativeString */;
656 long var27
/* : Int */;
657 val
* var28
/* : String */;
658 val
* var29
/* : null */;
659 static val
* varonce30
;
660 val
* var31
/* : String */;
661 char* var32
/* : NativeString */;
662 long var33
/* : Int */;
663 val
* var34
/* : String */;
664 val
* var35
/* : null */;
666 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:AExpr>*/;
667 var1
= ((val
* (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__mtype
]))(var_nexpr
) /* mtype on <var_nexpr:AExpr>*/;
670 if (var_mtype
== NULL
) {
671 var3
= 0; /* is null */
673 var3
= 1; /* arg is null and recv is not */
680 var4
= ((short int (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__is_typed
]))(var_nexpr
) /* is_typed on <var_nexpr:AExpr>*/;
683 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
684 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var6
) /* toolcontext on <var6:ModelBuilder>*/;
685 var8
= ((long (*)(val
*))(var7
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var7
) /* error_count on <var7:ToolContext>*/;
687 { /* Inline kernel#Int#> (var8,var9) */
688 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
689 /* <var9:Int> isa OTHER */
690 var12
= 1; /* easy <var9:Int> isa OTHER*/
692 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
702 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
703 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var15
) /* toolcontext on <var15:ModelBuilder>*/;
704 var17
= ((long (*)(val
*))(var16
->class->vft
[COLOR_toolcontext__ToolContext__verbose_level
]))(var16
) /* verbose_level on <var16:ToolContext>*/;
706 { /* Inline kernel#Int#> (var17,var18) */
707 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
708 /* <var18:Int> isa OTHER */
709 var21
= 1; /* easy <var18:Int> isa OTHER*/
711 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
714 var24
= var17
> var18
;
723 var26
= "No return type but no error.";
725 var28
= string__NativeString__to_s_with_length(var26
, var27
);
729 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(var_nexpr
, var25
) /* debug on <var_nexpr:AExpr>*/;
742 var32
= "Type error: expected expression.";
744 var34
= string__NativeString__to_s_with_length(var32
, var33
);
748 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_nexpr
, var31
) /* error on <self:TypeVisitor>*/;
755 /* method typing#TypeVisitor#visit_expr for (self: Object, AExpr): nullable MType */
756 val
* VIRTUAL_typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
757 val
* var
/* : nullable MType */;
758 val
* var1
/* : nullable MType */;
759 var1
= typing__TypeVisitor__visit_expr(self
, p0
);
764 /* method typing#TypeVisitor#visit_expr_subtype for (self: TypeVisitor, AExpr, nullable MType): nullable MType */
765 val
* typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
766 val
* var
/* : nullable MType */;
767 val
* var_nexpr
/* var nexpr: AExpr */;
768 val
* var_sup
/* var sup: nullable MType */;
769 val
* var1
/* : nullable MType */;
770 val
* var_sub
/* var sub: nullable MType */;
771 val
* var2
/* : null */;
772 short int var3
/* : Bool */;
773 val
* var4
/* : null */;
774 val
* var5
/* : null */;
775 short int var6
/* : Bool */;
776 val
* var7
/* : null */;
777 val
* var8
/* : nullable MType */;
778 val
* var_res
/* var res: nullable MType */;
779 short int var9
/* : Bool */;
782 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(self
, var_nexpr
) /* visit_expr on <self:TypeVisitor>*/;
785 if (var_sub
== NULL
) {
786 var3
= 1; /* is null */
788 var3
= 0; /* arg is null but recv is not */
797 if (var_sup
== NULL
) {
798 var6
= 1; /* is null */
800 var6
= 0; /* arg is null but recv is not */
808 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>*/;
810 if (var_res
== NULL
) {
811 var9
= 1; /* <var_sub:nullable MType(MType)> cannot be null */
813 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_res
, var_sub
) /* != on <var_res:nullable MType>*/;
816 ((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>*/;
824 /* method typing#TypeVisitor#visit_expr_subtype for (self: Object, AExpr, nullable MType): nullable MType */
825 val
* VIRTUAL_typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
826 val
* var
/* : nullable MType */;
827 val
* var1
/* : nullable MType */;
828 var1
= typing__TypeVisitor__visit_expr_subtype(self
, p0
, p1
);
833 /* method typing#TypeVisitor#visit_expr_bool for (self: TypeVisitor, AExpr): nullable MType */
834 val
* typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
835 val
* var
/* : nullable MType */;
836 val
* var_nexpr
/* var nexpr: AExpr */;
837 val
* var1
/* : nullable MType */;
838 val
* var2
/* : nullable MType */;
840 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(self
, var_nexpr
) /* type_bool on <self:TypeVisitor>*/;
841 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var_nexpr
, var1
) /* visit_expr_subtype on <self:TypeVisitor>*/;
847 /* method typing#TypeVisitor#visit_expr_bool for (self: Object, AExpr): nullable MType */
848 val
* VIRTUAL_typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
849 val
* var
/* : nullable MType */;
850 val
* var1
/* : nullable MType */;
851 var1
= typing__TypeVisitor__visit_expr_bool(self
, p0
);
856 /* method typing#TypeVisitor#visit_expr_cast for (self: TypeVisitor, ANode, AExpr, AType): nullable MType */
857 val
* typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
858 val
* var
/* : nullable MType */;
859 val
* var_node
/* var node: ANode */;
860 val
* var_nexpr
/* var nexpr: AExpr */;
861 val
* var_ntype
/* var ntype: AType */;
862 val
* var1
/* : nullable MType */;
863 val
* var_sub
/* var sub: nullable MType */;
864 val
* var2
/* : null */;
865 short int var3
/* : Bool */;
866 val
* var4
/* : null */;
867 val
* var5
/* : nullable MType */;
868 val
* var_sup
/* var sup: nullable MType */;
869 val
* var6
/* : null */;
870 short int var7
/* : Bool */;
871 val
* var8
/* : null */;
872 val
* var9
/* : AClassdef */;
873 val
* var10
/* : nullable MClassDef */;
874 val
* var11
/* : MModule */;
875 val
* var_mmodule
/* var mmodule: MModule */;
876 val
* var12
/* : AClassdef */;
877 val
* var13
/* : nullable MClassDef */;
878 val
* var14
/* : MClassType */;
879 val
* var_anchor
/* var anchor: MClassType */;
880 short int var15
/* : Bool */;
881 val
* var16
/* : ModelBuilder */;
883 val
* var17
/* : String */;
884 char* var18
/* : NativeString */;
885 long var19
/* : Int */;
886 val
* var20
/* : String */;
887 static val
* varonce21
;
888 val
* var22
/* : String */;
889 char* var23
/* : NativeString */;
890 long var24
/* : Int */;
891 val
* var25
/* : String */;
892 val
* var26
/* : Array[Object] */;
893 long var27
/* : Int */;
894 val
* var28
/* : NativeArray[Object] */;
895 val
* var29
/* : String */;
896 short int var30
/* : Bool */;
897 short int var31
/* : Bool */;
898 short int var_
/* var : Bool */;
899 short int var32
/* : Bool */;
900 short int var33
/* : Bool */;
901 val
* var34
/* : ModelBuilder */;
902 static val
* varonce35
;
903 val
* var36
/* : String */;
904 char* var37
/* : NativeString */;
905 long var38
/* : Int */;
906 val
* var39
/* : String */;
907 static val
* varonce40
;
908 val
* var41
/* : String */;
909 char* var42
/* : NativeString */;
910 long var43
/* : Int */;
911 val
* var44
/* : String */;
912 static val
* varonce45
;
913 val
* var46
/* : String */;
914 char* var47
/* : NativeString */;
915 long var48
/* : Int */;
916 val
* var49
/* : String */;
917 val
* var50
/* : Array[Object] */;
918 long var51
/* : Int */;
919 val
* var52
/* : NativeArray[Object] */;
920 val
* var53
/* : String */;
924 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(self
, var_nexpr
) /* visit_expr on <self:TypeVisitor>*/;
927 if (var_sub
== NULL
) {
928 var3
= 1; /* is null */
930 var3
= 0; /* arg is null but recv is not */
938 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(self
, var_ntype
) /* resolve_mtype on <self:TypeVisitor>*/;
941 if (var_sup
== NULL
) {
942 var7
= 1; /* is null */
944 var7
= 0; /* arg is null but recv is not */
952 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
953 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var9
) /* mclassdef on <var9:AClassdef>*/;
955 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 184);
958 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var10
) /* mmodule on <var10:nullable MClassDef>*/;
961 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
962 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var12
) /* mclassdef on <var12:AClassdef>*/;
964 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 185);
967 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var13
) /* bound_mtype on <var13:nullable MClassDef>*/;
970 var15
= ((short int (*)(val
*, val
*))(var_sup
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sup
, var_sub
) /* == on <var_sup:nullable MType(MType)>*/;
972 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
976 var18
= "Warning: Expression is already a ";
978 var20
= string__NativeString__to_s_with_length(var18
, var19
);
987 var25
= string__NativeString__to_s_with_length(var23
, var24
);
991 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
992 { /* var26 = array_instance Array[Object] */
994 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
995 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
996 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_sup
;
997 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var22
;
998 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
999 CHECK_NEW_array__Array(var26
);
1001 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
1002 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var16
, var_node
, var29
) /* warning on <var16:ModelBuilder>*/;
1004 var31
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var_sup
) /* is_subtype on <self:TypeVisitor>*/;
1007 var32
= ((short int (*)(val
*))(var_sup
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sup
) /* need_anchor on <var_sup:nullable MType(MType)>*/;
1014 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1018 var37
= "Warning: Expression is already a ";
1020 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1027 var42
= " since it is a ";
1029 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1038 var49
= string__NativeString__to_s_with_length(var47
, var48
);
1042 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
1043 { /* var50 = array_instance Array[Object] */
1045 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
1046 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var36
;
1047 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var_sup
;
1048 ((struct instance_array__NativeArray
*)var52
)->values
[2] = (val
*) var41
;
1049 ((struct instance_array__NativeArray
*)var52
)->values
[3] = (val
*) var_sub
;
1050 ((struct instance_array__NativeArray
*)var52
)->values
[4] = (val
*) var46
;
1051 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
1052 CHECK_NEW_array__Array(var50
);
1054 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
1055 ((void (*)(val
*, val
*, val
*))(var34
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var34
, var_node
, var53
) /* warning on <var34:ModelBuilder>*/;
1064 /* method typing#TypeVisitor#visit_expr_cast for (self: Object, ANode, AExpr, AType): nullable MType */
1065 val
* VIRTUAL_typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1066 val
* var
/* : nullable MType */;
1067 val
* var1
/* : nullable MType */;
1068 var1
= typing__TypeVisitor__visit_expr_cast(self
, p0
, p1
, p2
);
1073 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: TypeVisitor, ANode, MType, String): nullable MProperty */
1074 val
* typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1075 val
* var
/* : nullable MProperty */;
1076 val
* var_anode
/* var anode: ANode */;
1077 val
* var_mtype
/* var mtype: MType */;
1078 val
* var_name
/* var name: String */;
1079 val
* var1
/* : ModelBuilder */;
1080 val
* var2
/* : AClassdef */;
1081 val
* var3
/* : nullable MClassDef */;
1082 val
* var4
/* : MModule */;
1083 val
* var5
/* : nullable MProperty */;
1087 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1088 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1089 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var2
) /* mclassdef on <var2:AClassdef>*/;
1091 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 196);
1094 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var3
) /* mmodule on <var3:nullable MClassDef>*/;
1096 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>*/;
1102 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: Object, ANode, MType, String): nullable MProperty */
1103 val
* VIRTUAL_typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1104 val
* var
/* : nullable MProperty */;
1105 val
* var1
/* : nullable MProperty */;
1106 var1
= typing__TypeVisitor__try_get_mproperty_by_name2(self
, p0
, p1
, p2
);
1111 /* method typing#TypeVisitor#resolve_mtype for (self: TypeVisitor, AType): nullable MType */
1112 val
* typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
1113 val
* var
/* : nullable MType */;
1114 val
* var_node
/* var node: AType */;
1115 val
* var1
/* : ModelBuilder */;
1116 val
* var2
/* : AClassdef */;
1117 val
* var3
/* : nullable MType */;
1119 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1120 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1121 var3
= ((val
* (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype
]))(var1
, var2
, var_node
) /* resolve_mtype on <var1:ModelBuilder>*/;
1127 /* method typing#TypeVisitor#resolve_mtype for (self: Object, AType): nullable MType */
1128 val
* VIRTUAL_typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
1129 val
* var
/* : nullable MType */;
1130 val
* var1
/* : nullable MType */;
1131 var1
= typing__TypeVisitor__resolve_mtype(self
, p0
);
1136 /* method typing#TypeVisitor#try_get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1137 val
* typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1138 val
* var
/* : nullable MClass */;
1139 val
* var_node
/* var node: ANode */;
1140 val
* var_name
/* var name: String */;
1141 val
* var1
/* : AClassdef */;
1142 val
* var2
/* : nullable MClassDef */;
1143 val
* var3
/* : MModule */;
1144 val
* var_mmodule
/* var mmodule: MModule */;
1145 val
* var4
/* : ModelBuilder */;
1146 val
* var5
/* : nullable MClass */;
1147 val
* var_mclass
/* var mclass: nullable MClass */;
1150 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1151 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
1153 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 206);
1156 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
1159 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1160 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>*/;
1167 /* method typing#TypeVisitor#try_get_mclass for (self: Object, ANode, String): nullable MClass */
1168 val
* VIRTUAL_typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1169 val
* var
/* : nullable MClass */;
1170 val
* var1
/* : nullable MClass */;
1171 var1
= typing__TypeVisitor__try_get_mclass(self
, p0
, p1
);
1176 /* method typing#TypeVisitor#get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1177 val
* typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
1178 val
* var
/* : nullable MClass */;
1179 val
* var_node
/* var node: ANode */;
1180 val
* var_name
/* var name: String */;
1181 val
* var1
/* : AClassdef */;
1182 val
* var2
/* : nullable MClassDef */;
1183 val
* var3
/* : MModule */;
1184 val
* var_mmodule
/* var mmodule: MModule */;
1185 val
* var4
/* : ModelBuilder */;
1186 val
* var5
/* : nullable MClass */;
1187 val
* var_mclass
/* var mclass: nullable MClass */;
1188 val
* var6
/* : null */;
1189 short int var7
/* : Bool */;
1190 val
* var8
/* : ModelBuilder */;
1191 static val
* varonce
;
1192 val
* var9
/* : String */;
1193 char* var10
/* : NativeString */;
1194 long var11
/* : Int */;
1195 val
* var12
/* : String */;
1196 static val
* varonce13
;
1197 val
* var14
/* : String */;
1198 char* var15
/* : NativeString */;
1199 long var16
/* : Int */;
1200 val
* var17
/* : String */;
1201 val
* var18
/* : Array[Object] */;
1202 long var19
/* : Int */;
1203 val
* var20
/* : NativeArray[Object] */;
1204 val
* var21
/* : String */;
1207 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1208 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
1210 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 213);
1213 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
1216 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1217 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>*/;
1220 if (var_mclass
== NULL
) {
1221 var7
= 1; /* is null */
1223 var7
= 0; /* arg is null but recv is not */
1226 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1230 var10
= "Type Error: missing primitive class `";
1232 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1241 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1245 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
1246 { /* var18 = array_instance Array[Object] */
1248 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
1249 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var9
;
1250 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var_name
;
1251 ((struct instance_array__NativeArray
*)var20
)->values
[2] = (val
*) var14
;
1252 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
1253 CHECK_NEW_array__Array(var18
);
1255 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
1256 ((void (*)(val
*, val
*, val
*))(var8
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var8
, var_node
, var21
) /* error on <var8:ModelBuilder>*/;
1264 /* method typing#TypeVisitor#get_mclass for (self: Object, ANode, String): nullable MClass */
1265 val
* VIRTUAL_typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
1266 val
* var
/* : nullable MClass */;
1267 val
* var1
/* : nullable MClass */;
1268 var1
= typing__TypeVisitor__get_mclass(self
, p0
, p1
);
1273 /* method typing#TypeVisitor#type_bool for (self: TypeVisitor, ANode): nullable MType */
1274 val
* typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
1275 val
* var
/* : nullable MType */;
1276 val
* var_node
/* var node: ANode */;
1277 static val
* varonce
;
1278 val
* var1
/* : String */;
1279 char* var2
/* : NativeString */;
1280 long var3
/* : Int */;
1281 val
* var4
/* : String */;
1282 val
* var5
/* : nullable MClass */;
1283 val
* var_mclass
/* var mclass: nullable MClass */;
1284 val
* var6
/* : null */;
1285 short int var7
/* : Bool */;
1286 val
* var8
/* : null */;
1287 val
* var9
/* : MClassType */;
1294 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1298 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(self
, var_node
, var1
) /* get_mclass on <self:TypeVisitor>*/;
1301 if (var_mclass
== NULL
) {
1302 var7
= 1; /* is null */
1304 var7
= 0; /* arg is null but recv is not */
1312 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
1318 /* method typing#TypeVisitor#type_bool for (self: Object, ANode): nullable MType */
1319 val
* VIRTUAL_typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
1320 val
* var
/* : nullable MType */;
1321 val
* var1
/* : nullable MType */;
1322 var1
= typing__TypeVisitor__type_bool(self
, p0
);
1327 /* method typing#TypeVisitor#get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
1328 val
* typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
1329 val
* var
/* : nullable CallSite */;
1330 val
* var_node
/* var node: ANode */;
1331 val
* var_recvtype
/* var recvtype: MType */;
1332 val
* var_name
/* var name: String */;
1333 short int var_recv_is_self
/* var recv_is_self: Bool */;
1334 val
* var1
/* : MType */;
1335 val
* var_unsafe_type
/* var unsafe_type: MType */;
1336 short int var2
/* : Bool */;
1339 static val
* varonce
;
1340 val
* var3
/* : String */;
1341 char* var4
/* : NativeString */;
1342 long var5
/* : Int */;
1343 val
* var6
/* : String */;
1344 static val
* varonce7
;
1345 val
* var8
/* : String */;
1346 char* var9
/* : NativeString */;
1347 long var10
/* : Int */;
1348 val
* var11
/* : String */;
1349 val
* var12
/* : Array[Object] */;
1350 long var13
/* : Int */;
1351 val
* var14
/* : NativeArray[Object] */;
1352 val
* var15
/* : String */;
1353 val
* var16
/* : null */;
1354 val
* var17
/* : nullable MProperty */;
1355 val
* var_mproperty
/* var mproperty: nullable MProperty */;
1356 val
* var18
/* : null */;
1357 short int var19
/* : Bool */;
1358 val
* var20
/* : ModelBuilder */;
1359 static val
* varonce21
;
1360 val
* var22
/* : String */;
1361 char* var23
/* : NativeString */;
1362 long var24
/* : Int */;
1363 val
* var25
/* : String */;
1364 static val
* varonce26
;
1365 val
* var27
/* : String */;
1366 char* var28
/* : NativeString */;
1367 long var29
/* : Int */;
1368 val
* var30
/* : String */;
1369 static val
* varonce31
;
1370 val
* var32
/* : String */;
1371 char* var33
/* : NativeString */;
1372 long var34
/* : Int */;
1373 val
* var35
/* : String */;
1374 val
* var36
/* : Array[Object] */;
1375 long var37
/* : Int */;
1376 val
* var38
/* : NativeArray[Object] */;
1377 val
* var39
/* : String */;
1378 val
* var40
/* : ModelBuilder */;
1379 static val
* varonce41
;
1380 val
* var42
/* : String */;
1381 char* var43
/* : NativeString */;
1382 long var44
/* : Int */;
1383 val
* var45
/* : String */;
1384 static val
* varonce46
;
1385 val
* var47
/* : String */;
1386 char* var48
/* : NativeString */;
1387 long var49
/* : Int */;
1388 val
* var50
/* : String */;
1389 static val
* varonce51
;
1390 val
* var52
/* : String */;
1391 char* var53
/* : NativeString */;
1392 long var54
/* : Int */;
1393 val
* var55
/* : String */;
1394 val
* var56
/* : Array[Object] */;
1395 long var57
/* : Int */;
1396 val
* var58
/* : NativeArray[Object] */;
1397 val
* var59
/* : String */;
1398 val
* var60
/* : null */;
1399 short int var61
/* : Bool */;
1402 short int var64
/* : Bool */;
1403 short int var65
/* : Bool */;
1404 val
* var66
/* : MVisibility */;
1405 val
* var67
/* : MVisibility */;
1406 short int var68
/* : Bool */;
1407 short int var_
/* var : Bool */;
1408 short int var69
/* : Bool */;
1409 short int var_70
/* var : Bool */;
1410 val
* var71
/* : MModule */;
1411 val
* var72
/* : MClassDef */;
1412 val
* var73
/* : MModule */;
1413 val
* var74
/* : MVisibility */;
1414 val
* var75
/* : MVisibility */;
1415 short int var76
/* : Bool */;
1416 val
* var77
/* : ModelBuilder */;
1417 static val
* varonce78
;
1418 val
* var79
/* : String */;
1419 char* var80
/* : NativeString */;
1420 long var81
/* : Int */;
1421 val
* var82
/* : String */;
1422 static val
* varonce83
;
1423 val
* var84
/* : String */;
1424 char* var85
/* : NativeString */;
1425 long var86
/* : Int */;
1426 val
* var87
/* : String */;
1427 val
* var88
/* : MClassDef */;
1428 val
* var89
/* : MModule */;
1429 val
* var90
/* : MModule */;
1430 val
* var91
/* : MVisibility */;
1431 val
* var92
/* : Array[Object] */;
1432 long var93
/* : Int */;
1433 val
* var94
/* : NativeArray[Object] */;
1434 val
* var95
/* : String */;
1435 val
* var96
/* : null */;
1436 val
* var97
/* : MModule */;
1437 val
* var98
/* : Array[MPropDef] */;
1438 val
* var_propdefs
/* var propdefs: Array[MMethodDef] */;
1439 long var99
/* : Int */;
1440 long var100
/* : Int */;
1441 short int var101
/* : Bool */;
1442 short int var103
/* : Bool */;
1443 val
* var104
/* : ModelBuilder */;
1444 static val
* varonce105
;
1445 val
* var106
/* : String */;
1446 char* var107
/* : NativeString */;
1447 long var108
/* : Int */;
1448 val
* var109
/* : String */;
1449 static val
* varonce110
;
1450 val
* var111
/* : String */;
1451 char* var112
/* : NativeString */;
1452 long var113
/* : Int */;
1453 val
* var114
/* : String */;
1454 val
* var115
/* : Array[Object] */;
1455 long var116
/* : Int */;
1456 val
* var117
/* : NativeArray[Object] */;
1457 val
* var118
/* : String */;
1458 val
* var119
/* : null */;
1459 long var120
/* : Int */;
1460 long var121
/* : Int */;
1461 short int var122
/* : Bool */;
1462 short int var124
/* : Bool */;
1463 val
* var125
/* : nullable Object */;
1464 val
* var_mpropdef
/* var mpropdef: nullable Object */;
1465 val
* var126
/* : ModelBuilder */;
1466 static val
* varonce127
;
1467 val
* var128
/* : String */;
1468 char* var129
/* : NativeString */;
1469 long var130
/* : Int */;
1470 val
* var131
/* : String */;
1471 static val
* varonce132
;
1472 val
* var133
/* : String */;
1473 char* var134
/* : NativeString */;
1474 long var135
/* : Int */;
1475 val
* var136
/* : String */;
1476 static val
* varonce137
;
1477 val
* var138
/* : String */;
1478 char* var139
/* : NativeString */;
1479 long var140
/* : Int */;
1480 val
* var141
/* : String */;
1481 static val
* varonce142
;
1482 val
* var143
/* : String */;
1483 char* var144
/* : NativeString */;
1484 long var145
/* : Int */;
1485 val
* var146
/* : String */;
1486 val
* var147
/* : String */;
1487 val
* var148
/* : Array[Object] */;
1488 long var149
/* : Int */;
1489 val
* var150
/* : NativeArray[Object] */;
1490 val
* var151
/* : String */;
1491 val
* var152
/* : MPropDef */;
1492 val
* var153
/* : MSignature */;
1493 val
* var_msignature
/* var msignature: MSignature */;
1494 short int var154
/* : Bool */;
1495 short int var_erasure_cast
/* var erasure_cast: Bool */;
1496 val
* var155
/* : nullable MSignature */;
1497 val
* var156
/* : nullable MType */;
1498 val
* var_rettype
/* var rettype: nullable MType */;
1499 short int var157
/* : Bool */;
1500 short int var158
/* : Bool */;
1501 short int var_159
/* var : Bool */;
1502 val
* var160
/* : null */;
1503 short int var161
/* : Bool */;
1504 short int var162
/* : Bool */;
1507 val
* var165
/* : MType */;
1508 short int var166
/* : Bool */;
1511 val
* var169
/* : nullable MType */;
1512 val
* var_erased_rettype
/* var erased_rettype: nullable MType */;
1513 val
* var170
/* : null */;
1514 short int var171
/* : Bool */;
1515 short int var172
/* : Bool */;
1516 val
* var173
/* : CallSite */;
1517 val
* var_callsite
/* var callsite: CallSite */;
1521 var_recv_is_self
= p3
;
1522 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(self
, var_recvtype
) /* anchor_to on <self:TypeVisitor>*/;
1523 var_unsafe_type
= var1
;
1524 /* <var_recvtype:MType> isa MNullType */
1525 cltype
= type_model__MNullType
.color
;
1526 idtype
= type_model__MNullType
.id
;
1527 if(cltype
>= var_recvtype
->type
->table_size
) {
1530 var2
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
1536 var4
= "Error: Method \'";
1538 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1545 var9
= "\' call on \'null\'.";
1547 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1551 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
1552 { /* var12 = array_instance Array[Object] */
1554 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
1555 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var3
;
1556 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var_name
;
1557 ((struct instance_array__NativeArray
*)var14
)->values
[2] = (val
*) var8
;
1558 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
1559 CHECK_NEW_array__Array(var12
);
1561 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
1562 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_node
, var15
) /* error on <self:TypeVisitor>*/;
1568 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>*/;
1569 var_mproperty
= var17
;
1571 if (var_mproperty
== NULL
) {
1572 var19
= 1; /* is null */
1574 var19
= 0; /* arg is null but recv is not */
1577 if (var_recv_is_self
){
1578 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1582 var23
= "Error: Method or variable \'";
1584 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1591 var28
= "\' unknown in ";
1593 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1602 var35
= string__NativeString__to_s_with_length(var33
, var34
);
1606 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
1607 { /* var36 = array_instance Array[Object] */
1609 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
1610 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var22
;
1611 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var_name
;
1612 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var27
;
1613 ((struct instance_array__NativeArray
*)var38
)->values
[3] = (val
*) var_recvtype
;
1614 ((struct instance_array__NativeArray
*)var38
)->values
[4] = (val
*) var32
;
1615 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
1616 CHECK_NEW_array__Array(var36
);
1618 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
1619 ((void (*)(val
*, val
*, val
*))(var20
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var20
, var_node
, var39
) /* error on <var20:ModelBuilder>*/;
1621 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1625 var43
= "Error: Method \'";
1627 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1634 var48
= "\' doesn\'t exists in ";
1636 var50
= string__NativeString__to_s_with_length(var48
, var49
);
1645 var55
= string__NativeString__to_s_with_length(var53
, var54
);
1649 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
1650 { /* var56 = array_instance Array[Object] */
1652 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
1653 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var42
;
1654 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_name
;
1655 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
1656 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var_recvtype
;
1657 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
1658 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
1659 CHECK_NEW_array__Array(var56
);
1661 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
1662 ((void (*)(val
*, val
*, val
*))(var40
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var40
, var_node
, var59
) /* error on <var40:ModelBuilder>*/;
1669 /* <var_mproperty:nullable MProperty(MProperty)> isa MMethod */
1670 cltype62
= type_model__MMethod
.color
;
1671 idtype63
= type_model__MMethod
.id
;
1672 if(cltype62
>= var_mproperty
->type
->table_size
) {
1675 var61
= var_mproperty
->type
->type_table
[cltype62
] == idtype63
;
1678 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 249);
1681 var66
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__visibility
]))(var_mproperty
) /* visibility on <var_mproperty:nullable MProperty(MMethod)>*/;
1682 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__protected_visibility
]))(self
) /* protected_visibility on <self:TypeVisitor>*/;
1683 var68
= ((short int (*)(val
*, val
*))(var66
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var66
, var67
) /* == on <var66:MVisibility>*/;
1686 var69
= !var_recv_is_self
;
1693 var71
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1694 var72
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)>*/;
1695 var73
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var72
) /* mmodule on <var72:MClassDef>*/;
1696 var74
= ((val
* (*)(val
*, val
*))(var71
->class->vft
[COLOR_model_base__MModule__visibility_for
]))(var71
, var73
) /* visibility_for on <var71:MModule>*/;
1697 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__intrude_visibility
]))(self
) /* intrude_visibility on <self:TypeVisitor>*/;
1698 var76
= ((short int (*)(val
*, val
*))(var74
->class->vft
[COLOR_kernel__Comparable___60d
]))(var74
, var75
) /* < on <var74:MVisibility>*/;
1704 var77
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1708 var80
= "Error: Method \'";
1710 var82
= string__NativeString__to_s_with_length(var80
, var81
);
1717 var85
= "\' is protected and can only acceded by self. ";
1719 var87
= string__NativeString__to_s_with_length(var85
, var86
);
1723 var88
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)>*/;
1724 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var88
) /* mmodule on <var88:MClassDef>*/;
1725 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1726 var91
= ((val
* (*)(val
*, val
*))(var89
->class->vft
[COLOR_model_base__MModule__visibility_for
]))(var89
, var90
) /* visibility_for on <var89:MModule>*/;
1727 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
1728 { /* var92 = array_instance Array[Object] */
1730 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
1731 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var79
;
1732 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var_name
;
1733 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var84
;
1734 ((struct instance_array__NativeArray
*)var94
)->values
[3] = (val
*) var91
;
1735 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
1736 CHECK_NEW_array__Array(var92
);
1738 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
1739 ((void (*)(val
*, val
*, val
*))(var77
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var77
, var_node
, var95
) /* error on <var77:ModelBuilder>*/;
1745 var97
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1746 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)>*/;
1747 var_propdefs
= var98
;
1748 var99
= ((long (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_propdefs
) /* length on <var_propdefs:Array[MMethodDef]>*/;
1750 { /* Inline kernel#Int#== (var99,var100) */
1751 var103
= var99
== var100
;
1754 RET_LABEL102
:(void)0;
1757 var104
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1759 var106
= varonce105
;
1761 var107
= "Type error: no definition found for property ";
1763 var109
= string__NativeString__to_s_with_length(var107
, var108
);
1765 varonce105
= var106
;
1768 var111
= varonce110
;
1772 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1774 varonce110
= var111
;
1776 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
1777 { /* var115 = array_instance Array[Object] */
1779 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
1780 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var106
;
1781 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var_name
;
1782 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var111
;
1783 ((struct instance_array__NativeArray
*)var117
)->values
[3] = (val
*) var_unsafe_type
;
1784 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
1785 CHECK_NEW_array__Array(var115
);
1787 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
1788 ((void (*)(val
*, val
*, val
*))(var104
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var104
, var_node
, var118
) /* error on <var104:ModelBuilder>*/;
1793 var120
= ((long (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_propdefs
) /* length on <var_propdefs:Array[MMethodDef]>*/;
1795 { /* Inline kernel#Int#== (var120,var121) */
1796 var124
= var120
== var121
;
1799 RET_LABEL123
:(void)0;
1802 var125
= ((val
* (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_propdefs
) /* first on <var_propdefs:Array[MMethodDef]>*/;
1803 var_mpropdef
= var125
;
1805 var126
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1807 var128
= varonce127
;
1809 var129
= "Warning: confliting property definitions for property ";
1811 var131
= string__NativeString__to_s_with_length(var129
, var130
);
1813 varonce127
= var128
;
1816 var133
= varonce132
;
1820 var136
= string__NativeString__to_s_with_length(var134
, var135
);
1822 varonce132
= var133
;
1825 var138
= varonce137
;
1829 var141
= string__NativeString__to_s_with_length(var139
, var140
);
1831 varonce137
= var138
;
1834 var143
= varonce142
;
1838 var146
= string__NativeString__to_s_with_length(var144
, var145
);
1840 varonce142
= var143
;
1842 var147
= ((val
* (*)(val
*, val
*))(var_propdefs
->class->vft
[COLOR_string__Collection__join
]))(var_propdefs
, var143
) /* join on <var_propdefs:Array[MMethodDef]>*/;
1843 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
1844 { /* var148 = array_instance Array[Object] */
1846 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
1847 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var128
;
1848 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var_name
;
1849 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var133
;
1850 ((struct instance_array__NativeArray
*)var150
)->values
[3] = (val
*) var_unsafe_type
;
1851 ((struct instance_array__NativeArray
*)var150
)->values
[4] = (val
*) var138
;
1852 ((struct instance_array__NativeArray
*)var150
)->values
[5] = (val
*) var147
;
1853 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
1854 CHECK_NEW_array__Array(var148
);
1856 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
1857 ((void (*)(val
*, val
*, val
*))(var126
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var126
, var_node
, var151
) /* warning on <var126:ModelBuilder>*/;
1858 var152
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro
]))(var_mproperty
) /* intro on <var_mproperty:nullable MProperty(MMethod)>*/;
1859 var_mpropdef
= var152
;
1862 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>*/;
1863 var_msignature
= var153
;
1865 var_erasure_cast
= var154
;
1866 var155
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:nullable Object(MMethodDef)>*/;
1867 if (var155
== NULL
) {
1868 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 271);
1871 var156
= ((val
* (*)(val
*))(var155
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var155
) /* return_mtype on <var155:nullable MSignature>*/;
1873 var_rettype
= var156
;
1874 var158
= !var_recv_is_self
;
1878 if (var_rettype
== NULL
) {
1879 var161
= 0; /* is null */
1881 var161
= 1; /* arg is null and recv is not */
1888 /* <var_rettype:nullable MType(MType)> isa MNullableType */
1889 cltype163
= type_model__MNullableType
.color
;
1890 idtype164
= type_model__MNullableType
.id
;
1891 if(cltype163
>= var_rettype
->type
->table_size
) {
1894 var162
= var_rettype
->type
->type_table
[cltype163
] == idtype164
;
1897 var165
= ((val
* (*)(val
*))(var_rettype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_rettype
) /* mtype on <var_rettype:nullable MType(MNullableType)>*/;
1898 var_rettype
= var165
;
1901 /* <var_rettype:nullable MType(MType)> isa MParameterType */
1902 cltype167
= type_model__MParameterType
.color
;
1903 idtype168
= type_model__MParameterType
.id
;
1904 if(cltype167
>= var_rettype
->type
->table_size
) {
1907 var166
= var_rettype
->type
->type_table
[cltype167
] == idtype168
;
1910 var169
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
1911 var_erased_rettype
= var169
;
1913 if (var_erased_rettype
== NULL
) {
1914 var171
= 0; /* is null */
1916 var171
= 1; /* arg is null and recv is not */
1919 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 276);
1923 var_erasure_cast
= var172
;
1928 var173
= NEW_typing__CallSite(&type_typing__CallSite
);
1929 ((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>*/;
1930 CHECK_NEW_typing__CallSite(var173
);
1931 var_callsite
= var173
;
1937 /* method typing#TypeVisitor#get_method for (self: Object, ANode, MType, String, Bool): nullable CallSite */
1938 val
* VIRTUAL_typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
1939 val
* var
/* : nullable CallSite */;
1940 val
* var1
/* : nullable CallSite */;
1941 var1
= typing__TypeVisitor__get_method(self
, p0
, p1
, p2
, p3
);
1946 /* method typing#TypeVisitor#check_signature for (self: TypeVisitor, ANode, Array[AExpr], String, MSignature): Bool */
1947 short int typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
1948 short int var
/* : Bool */;
1949 val
* var_node
/* var node: ANode */;
1950 val
* var_args
/* var args: Array[AExpr] */;
1951 val
* var_name
/* var name: String */;
1952 val
* var_msignature
/* var msignature: MSignature */;
1953 long var1
/* : Int */;
1954 long var_vararg_rank
/* var vararg_rank: Int */;
1955 long var2
/* : Int */;
1956 short int var3
/* : Bool */;
1957 short int var5
/* : Bool */;
1960 short int var6
/* : Bool */;
1961 long var7
/* : Int */;
1962 long var8
/* : Int */;
1963 short int var9
/* : Bool */;
1964 short int var11
/* : Bool */;
1967 short int var14
/* : Bool */;
1968 val
* var15
/* : ModelBuilder */;
1969 static val
* varonce
;
1970 val
* var16
/* : String */;
1971 char* var17
/* : NativeString */;
1972 long var18
/* : Int */;
1973 val
* var19
/* : String */;
1974 static val
* varonce20
;
1975 val
* var21
/* : String */;
1976 char* var22
/* : NativeString */;
1977 long var23
/* : Int */;
1978 val
* var24
/* : String */;
1979 val
* var25
/* : Array[Object] */;
1980 long var26
/* : Int */;
1981 val
* var27
/* : NativeArray[Object] */;
1982 val
* var28
/* : String */;
1983 short int var29
/* : Bool */;
1984 long var30
/* : Int */;
1985 long var31
/* : Int */;
1986 short int var32
/* : Bool */;
1987 short int var34
/* : Bool */;
1988 short int var35
/* : Bool */;
1989 val
* var36
/* : ModelBuilder */;
1990 static val
* varonce37
;
1991 val
* var38
/* : String */;
1992 char* var39
/* : NativeString */;
1993 long var40
/* : Int */;
1994 val
* var41
/* : String */;
1995 long var42
/* : Int */;
1996 static val
* varonce43
;
1997 val
* var44
/* : String */;
1998 char* var45
/* : NativeString */;
1999 long var46
/* : Int */;
2000 val
* var47
/* : String */;
2001 long var48
/* : Int */;
2002 static val
* varonce49
;
2003 val
* var50
/* : String */;
2004 char* var51
/* : NativeString */;
2005 long var52
/* : Int */;
2006 val
* var53
/* : String */;
2007 val
* var54
/* : Array[Object] */;
2008 long var55
/* : Int */;
2009 val
* var56
/* : NativeArray[Object] */;
2010 val
* var57
/* : Object */;
2011 val
* var58
/* : Object */;
2012 val
* var59
/* : String */;
2013 short int var60
/* : Bool */;
2014 long var61
/* : Int */;
2015 long var62
/* : Int */;
2016 long var63
/* : Int */;
2017 long var65
/* : Int */;
2018 long var_vararg_decl
/* var vararg_decl: Int */;
2019 val
* var66
/* : Range[Int] */;
2020 long var67
/* : Int */;
2021 long var68
/* : Int */;
2022 val
* var69
/* : Discrete */;
2023 val
* var70
/* : Discrete */;
2024 val
* var71
/* : Iterator[nullable Object] */;
2025 short int var72
/* : Bool */;
2026 val
* var73
/* : nullable Object */;
2027 long var_i
/* var i: Int */;
2028 long var74
/* : Int */;
2029 long var_j
/* var j: Int */;
2030 short int var75
/* : Bool */;
2031 short int var77
/* : Bool */;
2032 short int var78
/* : Bool */;
2033 short int var80
/* : Bool */;
2036 short int var83
/* : Bool */;
2037 long var84
/* : Int */;
2038 long var86
/* : Int */;
2039 val
* var87
/* : Array[MParameter] */;
2040 val
* var88
/* : nullable Object */;
2041 val
* var89
/* : MType */;
2042 val
* var_paramtype
/* var paramtype: MType */;
2043 val
* var90
/* : nullable Object */;
2044 val
* var91
/* : nullable MType */;
2045 long var92
/* : Int */;
2046 short int var93
/* : Bool */;
2047 short int var95
/* : Bool */;
2050 short int var98
/* : Bool */;
2051 val
* var99
/* : Array[AExpr] */;
2052 val
* var_varargs
/* var varargs: Array[AExpr] */;
2053 val
* var100
/* : Array[MParameter] */;
2054 val
* var101
/* : nullable Object */;
2055 val
* var102
/* : MType */;
2056 val
* var_paramtype103
/* var paramtype: MType */;
2057 val
* var104
/* : Range[Int] */;
2058 long var105
/* : Int */;
2059 long var107
/* : Int */;
2060 val
* var108
/* : Discrete */;
2061 val
* var109
/* : Discrete */;
2062 val
* var110
/* : Iterator[nullable Object] */;
2063 short int var111
/* : Bool */;
2064 val
* var112
/* : nullable Object */;
2065 long var_j113
/* var j: Int */;
2066 long var114
/* : Int */;
2067 val
* var115
/* : nullable Object */;
2068 val
* var116
/* : nullable Object */;
2069 val
* var117
/* : nullable MType */;
2070 short int var119
/* : Bool */;
2074 var_msignature
= p3
;
2075 var1
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
2076 var_vararg_rank
= var1
;
2078 { /* Inline kernel#Int#>= (var_vararg_rank,var2) */
2079 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2080 /* <var2:Int> isa OTHER */
2081 var5
= 1; /* easy <var2:Int> isa OTHER*/
2083 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
2086 var6
= var_vararg_rank
>= var2
;
2092 var7
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2093 var8
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2094 { /* Inline kernel#Int#< (var7,var8) */
2095 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
2096 /* <var8:Int> isa OTHER */
2097 var11
= 1; /* easy <var8:Int> isa OTHER*/
2099 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
2102 var14
= var7
< var8
;
2105 RET_LABEL10
:(void)0;
2108 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2112 var17
= "Error: arity mismatch; prototype is \'";
2114 var19
= string__NativeString__to_s_with_length(var17
, var18
);
2123 var24
= string__NativeString__to_s_with_length(var22
, var23
);
2127 var25
= NEW_array__Array(&type_array__Arraykernel__Object
);
2128 { /* var25 = array_instance Array[Object] */
2130 var27
= NEW_array__NativeArray(var26
, &type_array__NativeArraykernel__Object
);
2131 ((struct instance_array__NativeArray
*)var27
)->values
[0] = (val
*) var16
;
2132 ((struct instance_array__NativeArray
*)var27
)->values
[1] = (val
*) var_name
;
2133 ((struct instance_array__NativeArray
*)var27
)->values
[2] = (val
*) var_msignature
;
2134 ((struct instance_array__NativeArray
*)var27
)->values
[3] = (val
*) var21
;
2135 ((void (*)(val
*, val
*, long))(var25
->class->vft
[COLOR_array__Array__with_native
]))(var25
, var27
, var26
) /* with_native on <var25:Array[Object]>*/;
2136 CHECK_NEW_array__Array(var25
);
2138 var28
= ((val
* (*)(val
*))(var25
->class->vft
[COLOR_string__Object__to_s
]))(var25
) /* to_s on <var25:Array[Object]>*/;
2139 ((void (*)(val
*, val
*, val
*))(var15
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var15
, var_node
, var28
) /* error on <var15:ModelBuilder>*/;
2146 var30
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2147 var31
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2148 { /* Inline kernel#Int#!= (var30,var31) */
2149 var34
= var30
== var31
;
2153 RET_LABEL33
:(void)0;
2156 var36
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2160 var39
= "Error: Incorrect number of parameters. Got ";
2162 var41
= string__NativeString__to_s_with_length(var39
, var40
);
2166 var42
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2170 var45
= ", expected ";
2172 var47
= string__NativeString__to_s_with_length(var45
, var46
);
2176 var48
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2180 var51
= ". Signature is ";
2182 var53
= string__NativeString__to_s_with_length(var51
, var52
);
2186 var54
= NEW_array__Array(&type_array__Arraykernel__Object
);
2187 { /* var54 = array_instance Array[Object] */
2189 var56
= NEW_array__NativeArray(var55
, &type_array__NativeArraykernel__Object
);
2190 ((struct instance_array__NativeArray
*)var56
)->values
[0] = (val
*) var38
;
2191 var57
= BOX_kernel__Int(var42
); /* autobox from Int to Object */
2192 ((struct instance_array__NativeArray
*)var56
)->values
[1] = (val
*) var57
;
2193 ((struct instance_array__NativeArray
*)var56
)->values
[2] = (val
*) var44
;
2194 var58
= BOX_kernel__Int(var48
); /* autobox from Int to Object */
2195 ((struct instance_array__NativeArray
*)var56
)->values
[3] = (val
*) var58
;
2196 ((struct instance_array__NativeArray
*)var56
)->values
[4] = (val
*) var50
;
2197 ((struct instance_array__NativeArray
*)var56
)->values
[5] = (val
*) var_msignature
;
2198 ((void (*)(val
*, val
*, long))(var54
->class->vft
[COLOR_array__Array__with_native
]))(var54
, var56
, var55
) /* with_native on <var54:Array[Object]>*/;
2199 CHECK_NEW_array__Array(var54
);
2201 var59
= ((val
* (*)(val
*))(var54
->class->vft
[COLOR_string__Object__to_s
]))(var54
) /* to_s on <var54:Array[Object]>*/;
2202 ((void (*)(val
*, val
*, val
*))(var36
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var36
, var_node
, var59
) /* error on <var36:ModelBuilder>*/;
2209 var61
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2210 var62
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2211 { /* Inline kernel#Int#- (var61,var62) */
2212 var65
= var61
- var62
;
2215 RET_LABEL64
:(void)0;
2217 var_vararg_decl
= var63
;
2218 var66
= NEW_range__Range(&type_range__Rangekernel__Int
);
2220 var68
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2221 var69
= BOX_kernel__Int(var67
); /* autobox from Int to Discrete */
2222 var70
= BOX_kernel__Int(var68
); /* autobox from Int to Discrete */
2223 ((void (*)(val
*, val
*, val
*))(var66
->class->vft
[COLOR_range__Range__without_last
]))(var66
, var69
, var70
) /* without_last on <var66:Range[Int]>*/;
2224 CHECK_NEW_range__Range(var66
);
2225 var71
= ((val
* (*)(val
*))(var66
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var66
) /* iterator on <var66:Range[Int]>*/;
2227 var72
= ((short int (*)(val
*))(var71
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var71
) /* is_ok on <var71:Iterator[nullable Object]>*/;
2229 var73
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var71
) /* item on <var71:Iterator[nullable Object]>*/;
2230 var74
= ((struct instance_kernel__Int
*)var73
)->value
; /* autounbox from nullable Object to Int */;
2233 { /* Inline kernel#Int#== (var_i,var_vararg_rank) */
2234 var77
= var_i
== var_vararg_rank
;
2237 RET_LABEL76
:(void)0;
2240 goto CONTINUE_label
;
2243 { /* Inline kernel#Int#> (var_i,var_vararg_rank) */
2244 /* Covariant cast for argument 0 (i) <var_vararg_rank:Int> isa OTHER */
2245 /* <var_vararg_rank:Int> isa OTHER */
2246 var80
= 1; /* easy <var_vararg_rank:Int> isa OTHER*/
2248 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
2251 var83
= var_i
> var_vararg_rank
;
2254 RET_LABEL79
:(void)0;
2257 { /* Inline kernel#Int#+ (var_i,var_vararg_decl) */
2258 var86
= var_i
+ var_vararg_decl
;
2261 RET_LABEL85
:(void)0;
2266 var87
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2267 var88
= ((val
* (*)(val
*, long))(var87
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var87
, var_i
) /* [] on <var87:Array[MParameter]>*/;
2268 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MParameter__mtype
]))(var88
) /* mtype on <var88:nullable Object(MParameter)>*/;
2269 var_paramtype
= var89
;
2270 var90
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j
) /* [] on <var_args:Array[AExpr]>*/;
2271 var91
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var90
, var_paramtype
) /* visit_expr_subtype on <self:TypeVisitor>*/;
2273 CONTINUE_label
: (void)0;
2274 ((void (*)(val
*))(var71
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var71
) /* next on <var71:Iterator[nullable Object]>*/;
2276 BREAK_label
: (void)0;
2278 { /* Inline kernel#Int#>= (var_vararg_rank,var92) */
2279 /* Covariant cast for argument 0 (i) <var92:Int> isa OTHER */
2280 /* <var92:Int> isa OTHER */
2281 var95
= 1; /* easy <var92:Int> isa OTHER*/
2283 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
2286 var98
= var_vararg_rank
>= var92
;
2289 RET_LABEL94
:(void)0;
2292 var99
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
2293 ((void (*)(val
*))(var99
->class->vft
[COLOR_array__Array__init
]))(var99
) /* init on <var99:Array[AExpr]>*/;
2294 CHECK_NEW_array__Array(var99
);
2295 var_varargs
= var99
;
2296 var100
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2297 var101
= ((val
* (*)(val
*, long))(var100
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var100
, var_vararg_rank
) /* [] on <var100:Array[MParameter]>*/;
2298 var102
= ((val
* (*)(val
*))(var101
->class->vft
[COLOR_model__MParameter__mtype
]))(var101
) /* mtype on <var101:nullable Object(MParameter)>*/;
2299 var_paramtype103
= var102
;
2300 var104
= NEW_range__Range(&type_range__Rangekernel__Int
);
2301 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_decl) */
2302 var107
= var_vararg_rank
+ var_vararg_decl
;
2305 RET_LABEL106
:(void)0;
2307 var108
= BOX_kernel__Int(var_vararg_rank
); /* autobox from Int to Discrete */
2308 var109
= BOX_kernel__Int(var105
); /* autobox from Int to Discrete */
2309 ((void (*)(val
*, val
*, val
*))(var104
->class->vft
[COLOR_range__Range__init
]))(var104
, var108
, var109
) /* init on <var104:Range[Int]>*/;
2310 CHECK_NEW_range__Range(var104
);
2311 var110
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var104
) /* iterator on <var104:Range[Int]>*/;
2313 var111
= ((short int (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var110
) /* is_ok on <var110:Iterator[nullable Object]>*/;
2315 var112
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var110
) /* item on <var110:Iterator[nullable Object]>*/;
2316 var114
= ((struct instance_kernel__Int
*)var112
)->value
; /* autounbox from nullable Object to Int */;
2318 var115
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j113
) /* [] on <var_args:Array[AExpr]>*/;
2319 ((void (*)(val
*, val
*))(var_varargs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_varargs
, var115
) /* add on <var_varargs:Array[AExpr]>*/;
2320 var116
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j113
) /* [] on <var_args:Array[AExpr]>*/;
2321 var117
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var116
, var_paramtype103
) /* visit_expr_subtype on <self:TypeVisitor>*/;
2323 CONTINUE_label118
: (void)0;
2324 ((void (*)(val
*))(var110
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var110
) /* next on <var110:Iterator[nullable Object]>*/;
2326 BREAK_label118
: (void)0;
2335 /* method typing#TypeVisitor#check_signature for (self: Object, ANode, Array[AExpr], String, MSignature): Bool */
2336 short int VIRTUAL_typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2337 short int var
/* : Bool */;
2338 short int var1
/* : Bool */;
2339 var1
= typing__TypeVisitor__check_signature(self
, p0
, p1
, p2
, p3
);
2344 /* method typing#TypeVisitor#error for (self: TypeVisitor, ANode, String) */
2345 void typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
2346 val
* var_node
/* var node: ANode */;
2347 val
* var_message
/* var message: String */;
2348 val
* var
/* : ModelBuilder */;
2349 val
* var1
/* : ToolContext */;
2350 val
* var2
/* : Location */;
2353 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2354 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
2355 var2
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_node
) /* hot_location on <var_node:ANode>*/;
2356 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var1
, var2
, var_message
) /* error on <var1:ToolContext>*/;
2359 /* method typing#TypeVisitor#error for (self: Object, ANode, String) */
2360 void VIRTUAL_typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
2361 typing__TypeVisitor__error(self
, p0
, p1
);
2364 /* method typing#TypeVisitor#get_variable for (self: TypeVisitor, AExpr, Variable): nullable MType */
2365 val
* typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
2366 val
* var
/* : nullable MType */;
2367 val
* var_node
/* var node: AExpr */;
2368 val
* var_variable
/* var variable: Variable */;
2369 val
* var1
/* : nullable FlowContext */;
2370 val
* var_flow
/* var flow: nullable FlowContext */;
2371 val
* var2
/* : null */;
2372 short int var3
/* : Bool */;
2373 static val
* varonce
;
2374 val
* var4
/* : String */;
2375 char* var5
/* : NativeString */;
2376 long var6
/* : Int */;
2377 val
* var7
/* : String */;
2378 val
* var8
/* : null */;
2379 val
* var9
/* : HashMap[Variable, nullable MType] */;
2380 short int var10
/* : Bool */;
2381 val
* var11
/* : HashMap[Variable, nullable MType] */;
2382 val
* var12
/* : nullable Object */;
2383 val
* var13
/* : nullable Array[nullable MType] */;
2384 val
* var_mtypes
/* var mtypes: nullable Array[nullable MType] */;
2385 short int var14
/* : Bool */;
2386 val
* var15
/* : null */;
2387 short int var16
/* : Bool */;
2388 short int var_
/* var : Bool */;
2389 long var17
/* : Int */;
2390 long var18
/* : Int */;
2391 short int var19
/* : Bool */;
2392 short int var21
/* : Bool */;
2393 val
* var22
/* : nullable MType */;
2394 long var23
/* : Int */;
2395 long var24
/* : Int */;
2396 short int var25
/* : Bool */;
2397 short int var27
/* : Bool */;
2398 val
* var28
/* : nullable Object */;
2399 val
* var29
/* : nullable MType */;
2400 val
* var_res
/* var res: nullable MType */;
2401 val
* var30
/* : null */;
2402 short int var31
/* : Bool */;
2403 val
* var32
/* : nullable MType */;
2406 var1
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
2409 if (var_flow
== NULL
) {
2410 var3
= 1; /* is null */
2412 var3
= 0; /* arg is null but recv is not */
2418 var5
= "No context!";
2420 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2424 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_node
, var4
) /* error on <self:TypeVisitor>*/;
2430 var9
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__vars
]))(var_flow
) /* vars on <var_flow:nullable FlowContext(FlowContext)>*/;
2431 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]>*/;
2433 var11
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__vars
]))(var_flow
) /* vars on <var_flow:nullable FlowContext(FlowContext)>*/;
2434 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_variable
) /* [] on <var11:HashMap[Variable, nullable MType]>*/;
2438 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)>*/;
2441 if (var_mtypes
== NULL
) {
2442 var16
= 1; /* is null */
2444 var16
= 0; /* arg is null but recv is not */
2450 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])>*/;
2452 { /* Inline kernel#Int#== (var17,var18) */
2453 var21
= var17
== var18
;
2456 RET_LABEL20
:(void)0;
2461 var22
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
2465 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])>*/;
2467 { /* Inline kernel#Int#== (var23,var24) */
2468 var27
= var23
== var24
;
2471 RET_LABEL26
:(void)0;
2474 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])>*/;
2478 var29
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(self
, var_node
, var_mtypes
) /* merge_types on <self:TypeVisitor>*/;
2481 if (var_res
== NULL
) {
2482 var31
= 1; /* is null */
2484 var31
= 0; /* arg is null but recv is not */
2487 var32
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
2499 /* method typing#TypeVisitor#get_variable for (self: Object, AExpr, Variable): nullable MType */
2500 val
* VIRTUAL_typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
2501 val
* var
/* : nullable MType */;
2502 val
* var1
/* : nullable MType */;
2503 var1
= typing__TypeVisitor__get_variable(self
, p0
, p1
);
2508 /* method typing#TypeVisitor#set_variable for (self: TypeVisitor, AExpr, Variable, nullable MType) */
2509 void typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2510 val
* var_node
/* var node: AExpr */;
2511 val
* var_variable
/* var variable: Variable */;
2512 val
* var_mtype
/* var mtype: nullable MType */;
2513 val
* var
/* : nullable FlowContext */;
2514 val
* var_flow
/* var flow: nullable FlowContext */;
2515 val
* var1
/* : null */;
2516 short int var2
/* : Bool */;
2520 var
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
2523 if (var_flow
== NULL
) {
2524 var2
= 0; /* is null */
2526 var2
= 1; /* arg is null and recv is not */
2529 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 360);
2532 ((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)>*/;
2535 /* method typing#TypeVisitor#set_variable for (self: Object, AExpr, Variable, nullable MType) */
2536 void VIRTUAL_typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2537 typing__TypeVisitor__set_variable(self
, p0
, p1
, p2
);
2540 /* method typing#TypeVisitor#merge_types for (self: TypeVisitor, ANode, Array[nullable MType]): nullable MType */
2541 val
* typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
2542 val
* var
/* : nullable MType */;
2543 val
* var_node
/* var node: ANode */;
2544 val
* var_col
/* var col: Array[nullable MType] */;
2545 long var1
/* : Int */;
2546 long var2
/* : Int */;
2547 short int var3
/* : Bool */;
2548 short int var5
/* : Bool */;
2549 val
* var6
/* : nullable Object */;
2550 val
* var7
/* : Array[nullable MType] */;
2551 val
* var_res
/* var res: Array[nullable MType] */;
2552 val
* var8
/* : Iterator[nullable Object] */;
2553 short int var9
/* : Bool */;
2554 val
* var10
/* : nullable Object */;
2555 val
* var_t1
/* var t1: nullable MType */;
2556 val
* var11
/* : null */;
2557 short int var12
/* : Bool */;
2558 short int var13
/* : Bool */;
2559 short int var_found
/* var found: Bool */;
2560 val
* var14
/* : Iterator[nullable Object] */;
2561 short int var15
/* : Bool */;
2562 val
* var16
/* : nullable Object */;
2563 val
* var_t2
/* var t2: nullable MType */;
2564 val
* var17
/* : null */;
2565 short int var18
/* : Bool */;
2566 short int var20
/* : Bool */;
2567 short int var21
/* : Bool */;
2570 short int var_
/* var : Bool */;
2571 short int var22
/* : Bool */;
2574 val
* var25
/* : MType */;
2575 short int var26
/* : Bool */;
2576 short int var27
/* : Bool */;
2577 short int var28
/* : Bool */;
2578 val
* var29
/* : null */;
2581 var1
= ((long (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_col
) /* length on <var_col:Array[nullable MType]>*/;
2583 { /* Inline kernel#Int#== (var1,var2) */
2584 var5
= var1
== var2
;
2590 var6
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_col
) /* first on <var_col:Array[nullable MType]>*/;
2595 var7
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
2596 ((void (*)(val
*))(var7
->class->vft
[COLOR_array__Array__init
]))(var7
) /* init on <var7:Array[nullable MType]>*/;
2597 CHECK_NEW_array__Array(var7
);
2599 var8
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_col
) /* iterator on <var_col:Array[nullable MType]>*/;
2601 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
2603 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
2606 if (var_t1
== NULL
) {
2607 var12
= 1; /* is null */
2609 var12
= 0; /* arg is null but recv is not */
2612 goto CONTINUE_label
;
2617 var14
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_col
) /* iterator on <var_col:Array[nullable MType]>*/;
2619 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var14
) /* is_ok on <var14:Iterator[nullable Object]>*/;
2621 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var14
) /* item on <var14:Iterator[nullable Object]>*/;
2624 if (var_t2
== NULL
) {
2625 var18
= 1; /* is null */
2627 var18
= 0; /* arg is null but recv is not */
2630 goto CONTINUE_label19
;
2633 /* <var_t2:nullable MType(MType)> isa MNullableType */
2634 cltype
= type_model__MNullableType
.color
;
2635 idtype
= type_model__MNullableType
.id
;
2636 if(cltype
>= var_t2
->type
->table_size
) {
2639 var21
= var_t2
->type
->type_table
[cltype
] == idtype
;
2645 /* <var_t2:nullable MType(MType)> isa MNullType */
2646 cltype23
= type_model__MNullType
.color
;
2647 idtype24
= type_model__MNullType
.id
;
2648 if(cltype23
>= var_t2
->type
->table_size
) {
2651 var22
= var_t2
->type
->type_table
[cltype23
] == idtype24
;
2656 var25
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t1
) /* as_nullable on <var_t1:nullable MType(MType)>*/;
2660 var26
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_t2
, var_t1
) /* is_subtype on <self:TypeVisitor>*/;
2667 CONTINUE_label19
: (void)0;
2668 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var14
) /* next on <var14:Iterator[nullable Object]>*/;
2670 BREAK_label19
: (void)0;
2676 CONTINUE_label
: (void)0;
2677 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
2679 BREAK_label
: (void)0;
2686 /* method typing#TypeVisitor#merge_types for (self: Object, ANode, Array[nullable MType]): nullable MType */
2687 val
* VIRTUAL_typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
2688 val
* var
/* : nullable MType */;
2689 val
* var1
/* : nullable MType */;
2690 var1
= typing__TypeVisitor__merge_types(self
, p0
, p1
);
2695 /* method typing#CallSite#node for (self: CallSite): ANode */
2696 val
* typing__CallSite__node(val
* self
) {
2697 val
* var
/* : ANode */;
2698 val
* var1
/* : ANode */;
2699 var1
= self
->attrs
[COLOR_typing__CallSite___64dnode
].val
; /* @node on <self:CallSite> */
2701 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @node", "src/typing.nit", 391);
2708 /* method typing#CallSite#node for (self: Object): ANode */
2709 val
* VIRTUAL_typing__CallSite__node(val
* self
) {
2710 val
* var
/* : ANode */;
2711 val
* var1
/* : ANode */;
2712 var1
= typing__CallSite__node(self
);
2717 /* method typing#CallSite#node= for (self: CallSite, ANode) */
2718 void typing__CallSite__node_61d(val
* self
, val
* p0
) {
2719 self
->attrs
[COLOR_typing__CallSite___64dnode
].val
= p0
; /* @node on <self:CallSite> */
2722 /* method typing#CallSite#node= for (self: Object, ANode) */
2723 void VIRTUAL_typing__CallSite__node_61d(val
* self
, val
* p0
) {
2724 typing__CallSite__node_61d(self
, p0
);
2727 /* method typing#CallSite#recv for (self: CallSite): MType */
2728 val
* typing__CallSite__recv(val
* self
) {
2729 val
* var
/* : MType */;
2730 val
* var1
/* : MType */;
2731 var1
= self
->attrs
[COLOR_typing__CallSite___64drecv
].val
; /* @recv on <self:CallSite> */
2733 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @recv", "src/typing.nit", 394);
2740 /* method typing#CallSite#recv for (self: Object): MType */
2741 val
* VIRTUAL_typing__CallSite__recv(val
* self
) {
2742 val
* var
/* : MType */;
2743 val
* var1
/* : MType */;
2744 var1
= typing__CallSite__recv(self
);
2749 /* method typing#CallSite#recv= for (self: CallSite, MType) */
2750 void typing__CallSite__recv_61d(val
* self
, val
* p0
) {
2751 self
->attrs
[COLOR_typing__CallSite___64drecv
].val
= p0
; /* @recv on <self:CallSite> */
2754 /* method typing#CallSite#recv= for (self: Object, MType) */
2755 void VIRTUAL_typing__CallSite__recv_61d(val
* self
, val
* p0
) {
2756 typing__CallSite__recv_61d(self
, p0
);
2759 /* method typing#CallSite#recv_is_self for (self: CallSite): Bool */
2760 short int typing__CallSite__recv_is_self(val
* self
) {
2761 short int var
/* : Bool */;
2762 short int var1
/* : Bool */;
2763 var1
= self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
; /* @recv_is_self on <self:CallSite> */
2768 /* method typing#CallSite#recv_is_self for (self: Object): Bool */
2769 short int VIRTUAL_typing__CallSite__recv_is_self(val
* self
) {
2770 short int var
/* : Bool */;
2771 short int var1
/* : Bool */;
2772 var1
= typing__CallSite__recv_is_self(self
);
2777 /* method typing#CallSite#recv_is_self= for (self: CallSite, Bool) */
2778 void typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
2779 self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
= p0
; /* @recv_is_self on <self:CallSite> */
2782 /* method typing#CallSite#recv_is_self= for (self: Object, Bool) */
2783 void VIRTUAL_typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
2784 typing__CallSite__recv_is_self_61d(self
, p0
);
2787 /* method typing#CallSite#mproperty for (self: CallSite): MMethod */
2788 val
* typing__CallSite__mproperty(val
* self
) {
2789 val
* var
/* : MMethod */;
2790 val
* var1
/* : MMethod */;
2791 var1
= self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
; /* @mproperty on <self:CallSite> */
2793 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mproperty", "src/typing.nit", 402);
2800 /* method typing#CallSite#mproperty for (self: Object): MMethod */
2801 val
* VIRTUAL_typing__CallSite__mproperty(val
* self
) {
2802 val
* var
/* : MMethod */;
2803 val
* var1
/* : MMethod */;
2804 var1
= typing__CallSite__mproperty(self
);
2809 /* method typing#CallSite#mproperty= for (self: CallSite, MMethod) */
2810 void typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
2811 self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
= p0
; /* @mproperty on <self:CallSite> */
2814 /* method typing#CallSite#mproperty= for (self: Object, MMethod) */
2815 void VIRTUAL_typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
2816 typing__CallSite__mproperty_61d(self
, p0
);
2819 /* method typing#CallSite#mpropdef for (self: CallSite): MMethodDef */
2820 val
* typing__CallSite__mpropdef(val
* self
) {
2821 val
* var
/* : MMethodDef */;
2822 val
* var1
/* : MMethodDef */;
2823 var1
= self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
; /* @mpropdef on <self:CallSite> */
2825 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef", "src/typing.nit", 405);
2832 /* method typing#CallSite#mpropdef for (self: Object): MMethodDef */
2833 val
* VIRTUAL_typing__CallSite__mpropdef(val
* self
) {
2834 val
* var
/* : MMethodDef */;
2835 val
* var1
/* : MMethodDef */;
2836 var1
= typing__CallSite__mpropdef(self
);
2841 /* method typing#CallSite#mpropdef= for (self: CallSite, MMethodDef) */
2842 void typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
2843 self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
= p0
; /* @mpropdef on <self:CallSite> */
2846 /* method typing#CallSite#mpropdef= for (self: Object, MMethodDef) */
2847 void VIRTUAL_typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
2848 typing__CallSite__mpropdef_61d(self
, p0
);
2851 /* method typing#CallSite#msignature for (self: CallSite): MSignature */
2852 val
* typing__CallSite__msignature(val
* self
) {
2853 val
* var
/* : MSignature */;
2854 val
* var1
/* : MSignature */;
2855 var1
= self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
; /* @msignature on <self:CallSite> */
2857 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @msignature", "src/typing.nit", 409);
2864 /* method typing#CallSite#msignature for (self: Object): MSignature */
2865 val
* VIRTUAL_typing__CallSite__msignature(val
* self
) {
2866 val
* var
/* : MSignature */;
2867 val
* var1
/* : MSignature */;
2868 var1
= typing__CallSite__msignature(self
);
2873 /* method typing#CallSite#msignature= for (self: CallSite, MSignature) */
2874 void typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
2875 self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
= p0
; /* @msignature on <self:CallSite> */
2878 /* method typing#CallSite#msignature= for (self: Object, MSignature) */
2879 void VIRTUAL_typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
2880 typing__CallSite__msignature_61d(self
, p0
);
2883 /* method typing#CallSite#erasure_cast for (self: CallSite): Bool */
2884 short int typing__CallSite__erasure_cast(val
* self
) {
2885 short int var
/* : Bool */;
2886 short int var1
/* : Bool */;
2887 var1
= self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
; /* @erasure_cast on <self:CallSite> */
2892 /* method typing#CallSite#erasure_cast for (self: Object): Bool */
2893 short int VIRTUAL_typing__CallSite__erasure_cast(val
* self
) {
2894 short int var
/* : Bool */;
2895 short int var1
/* : Bool */;
2896 var1
= typing__CallSite__erasure_cast(self
);
2901 /* method typing#CallSite#erasure_cast= for (self: CallSite, Bool) */
2902 void typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
2903 self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
= p0
; /* @erasure_cast on <self:CallSite> */
2906 /* method typing#CallSite#erasure_cast= for (self: Object, Bool) */
2907 void VIRTUAL_typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
2908 typing__CallSite__erasure_cast_61d(self
, p0
);
2911 /* method typing#CallSite#check_signature for (self: CallSite, TypeVisitor, Array[AExpr]): Bool */
2912 short int typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
2913 short int var
/* : Bool */;
2914 val
* var_v
/* var v: TypeVisitor */;
2915 val
* var_args
/* var args: Array[AExpr] */;
2916 val
* var1
/* : ANode */;
2917 val
* var2
/* : MMethod */;
2918 val
* var3
/* : String */;
2919 val
* var4
/* : MSignature */;
2920 short int var5
/* : Bool */;
2923 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__node
]))(self
) /* node on <self:CallSite>*/;
2924 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__mproperty
]))(self
) /* mproperty on <self:CallSite>*/;
2925 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MProperty__name
]))(var2
) /* name on <var2:MMethod>*/;
2926 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__msignature
]))(self
) /* msignature on <self:CallSite>*/;
2927 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>*/;
2933 /* method typing#CallSite#check_signature for (self: Object, TypeVisitor, Array[AExpr]): Bool */
2934 short int VIRTUAL_typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
2935 short int var
/* : Bool */;
2936 short int var1
/* : Bool */;
2937 var1
= typing__CallSite__check_signature(self
, p0
, p1
);
2942 /* method typing#CallSite#init for (self: CallSite, ANode, MType, Bool, MMethod, MMethodDef, MSignature, Bool) */
2943 void typing__CallSite__init(val
* self
, val
* p0
, val
* p1
, short int p2
, val
* p3
, val
* p4
, val
* p5
, short int p6
) {
2944 self
->attrs
[COLOR_typing__CallSite___64dnode
].val
= p0
; /* @node on <self:CallSite> */
2945 self
->attrs
[COLOR_typing__CallSite___64drecv
].val
= p1
; /* @recv on <self:CallSite> */
2946 self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
= p2
; /* @recv_is_self on <self:CallSite> */
2947 self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
= p3
; /* @mproperty on <self:CallSite> */
2948 self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
= p4
; /* @mpropdef on <self:CallSite> */
2949 self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
= p5
; /* @msignature on <self:CallSite> */
2950 self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
= p6
; /* @erasure_cast on <self:CallSite> */
2953 /* method typing#CallSite#init for (self: Object, ANode, MType, Bool, MMethod, MMethodDef, MSignature, Bool) */
2954 void VIRTUAL_typing__CallSite__init(val
* self
, val
* p0
, val
* p1
, short int p2
, val
* p3
, val
* p4
, val
* p5
, short int p6
) {
2955 typing__CallSite__init(self
, p0
, p1
, p2
, p3
, p4
, p5
, p6
);
2958 /* method typing#Variable#declared_type for (self: Variable): nullable MType */
2959 val
* typing__Variable__declared_type(val
* self
) {
2960 val
* var
/* : nullable MType */;
2961 val
* var1
/* : nullable MType */;
2962 var1
= self
->attrs
[COLOR_typing__Variable___64ddeclared_type
].val
; /* @declared_type on <self:Variable> */
2967 /* method typing#Variable#declared_type for (self: Object): nullable MType */
2968 val
* VIRTUAL_typing__Variable__declared_type(val
* self
) {
2969 val
* var
/* : nullable MType */;
2970 val
* var1
/* : nullable MType */;
2971 var1
= typing__Variable__declared_type(self
);
2976 /* method typing#Variable#declared_type= for (self: Variable, nullable MType) */
2977 void typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
2978 self
->attrs
[COLOR_typing__Variable___64ddeclared_type
].val
= p0
; /* @declared_type on <self:Variable> */
2981 /* method typing#Variable#declared_type= for (self: Object, nullable MType) */
2982 void VIRTUAL_typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
2983 typing__Variable__declared_type_61d(self
, p0
);
2986 /* method typing#FlowContext#vars for (self: FlowContext): HashMap[Variable, nullable MType] */
2987 val
* typing__FlowContext__vars(val
* self
) {
2988 val
* var
/* : HashMap[Variable, nullable MType] */;
2989 val
* var1
/* : HashMap[Variable, nullable MType] */;
2990 var1
= self
->attrs
[COLOR_typing__FlowContext___64dvars
].val
; /* @vars on <self:FlowContext> */
2992 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @vars", "src/typing.nit", 427);
2999 /* method typing#FlowContext#vars for (self: Object): HashMap[Variable, nullable MType] */
3000 val
* VIRTUAL_typing__FlowContext__vars(val
* self
) {
3001 val
* var
/* : HashMap[Variable, nullable MType] */;
3002 val
* var1
/* : HashMap[Variable, nullable MType] */;
3003 var1
= typing__FlowContext__vars(self
);
3008 /* method typing#FlowContext#vars= for (self: FlowContext, HashMap[Variable, nullable MType]) */
3009 void typing__FlowContext__vars_61d(val
* self
, val
* p0
) {
3010 self
->attrs
[COLOR_typing__FlowContext___64dvars
].val
= p0
; /* @vars on <self:FlowContext> */
3013 /* method typing#FlowContext#vars= for (self: Object, HashMap[Variable, nullable MType]) */
3014 void VIRTUAL_typing__FlowContext__vars_61d(val
* self
, val
* p0
) {
3015 typing__FlowContext__vars_61d(self
, p0
);
3018 /* method typing#FlowContext#cache for (self: FlowContext): HashMap[Variable, nullable Array[nullable MType]] */
3019 val
* typing__FlowContext__cache(val
* self
) {
3020 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3021 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3022 var1
= self
->attrs
[COLOR_typing__FlowContext___64dcache
].val
; /* @cache on <self:FlowContext> */
3024 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @cache", "src/typing.nit", 429);
3031 /* method typing#FlowContext#cache for (self: Object): HashMap[Variable, nullable Array[nullable MType]] */
3032 val
* VIRTUAL_typing__FlowContext__cache(val
* self
) {
3033 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3034 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3035 var1
= typing__FlowContext__cache(self
);
3040 /* method typing#FlowContext#cache= for (self: FlowContext, HashMap[Variable, nullable Array[nullable MType]]) */
3041 void typing__FlowContext__cache_61d(val
* self
, val
* p0
) {
3042 self
->attrs
[COLOR_typing__FlowContext___64dcache
].val
= p0
; /* @cache on <self:FlowContext> */
3045 /* method typing#FlowContext#cache= for (self: Object, HashMap[Variable, nullable Array[nullable MType]]) */
3046 void VIRTUAL_typing__FlowContext__cache_61d(val
* self
, val
* p0
) {
3047 typing__FlowContext__cache_61d(self
, p0
);
3050 /* method typing#FlowContext#set_var for (self: FlowContext, Variable, nullable MType) */
3051 void typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
3052 val
* var_variable
/* var variable: Variable */;
3053 val
* var_mtype
/* var mtype: nullable MType */;
3054 val
* var
/* : HashMap[Variable, nullable MType] */;
3055 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3056 val
* var2
/* : Collection[Object] */;
3059 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3060 ((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]>*/;
3061 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3062 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var1
) /* keys on <var1:HashMap[Variable, nullable Array[nullable MType]]>*/;
3063 ((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]])>*/;
3066 /* method typing#FlowContext#set_var for (self: Object, Variable, nullable MType) */
3067 void VIRTUAL_typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
3068 typing__FlowContext__set_var(self
, p0
, p1
);
3071 /* method typing#FlowContext#collect_types for (self: FlowContext, Variable): nullable Array[nullable MType] */
3072 val
* typing__FlowContext__collect_types(val
* self
, val
* p0
) {
3073 val
* var
/* : nullable Array[nullable MType] */;
3074 val
* var_variable
/* var variable: Variable */;
3075 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3076 short int var2
/* : Bool */;
3077 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3078 val
* var4
/* : nullable Object */;
3079 val
* var5
/* : null */;
3080 val
* var_res
/* var res: nullable Array[nullable MType] */;
3081 val
* var6
/* : HashMap[Variable, nullable MType] */;
3082 short int var7
/* : Bool */;
3083 val
* var8
/* : HashMap[Variable, nullable MType] */;
3084 val
* var9
/* : nullable Object */;
3085 val
* var_mtype
/* var mtype: nullable MType */;
3086 val
* var10
/* : Array[nullable MType] */;
3087 long var11
/* : Int */;
3088 val
* var_
/* var : Array[nullable MType] */;
3089 val
* var12
/* : Array[FlowContext] */;
3090 short int var13
/* : Bool */;
3091 val
* var14
/* : Array[nullable MType] */;
3092 long var15
/* : Int */;
3093 val
* var_16
/* var : Array[nullable MType] */;
3094 val
* var17
/* : nullable MType */;
3095 val
* var18
/* : Array[FlowContext] */;
3096 val
* var19
/* : Iterator[nullable Object] */;
3097 short int var20
/* : Bool */;
3098 val
* var21
/* : nullable Object */;
3099 val
* var_flow
/* var flow: FlowContext */;
3100 short int var22
/* : Bool */;
3101 val
* var23
/* : nullable Array[nullable MType] */;
3102 val
* var_r2
/* var r2: nullable Array[nullable MType] */;
3103 val
* var24
/* : null */;
3104 short int var25
/* : Bool */;
3105 val
* var26
/* : null */;
3106 short int var27
/* : Bool */;
3107 val
* var28
/* : Array[nullable Object] */;
3108 val
* var29
/* : Iterator[nullable Object] */;
3109 short int var30
/* : Bool */;
3110 val
* var31
/* : nullable Object */;
3111 val
* var_t
/* var t: nullable MType */;
3112 short int var32
/* : Bool */;
3113 short int var33
/* : Bool */;
3114 val
* var35
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3116 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3117 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]]>*/;
3119 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3120 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_variable
) /* [] on <var3:HashMap[Variable, nullable Array[nullable MType]]>*/;
3127 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3128 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]>*/;
3130 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3131 var9
= ((val
* (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var8
, var_variable
) /* [] on <var8:HashMap[Variable, nullable MType]>*/;
3133 var10
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3135 ((void (*)(val
*, long))(var10
->class->vft
[COLOR_array__Array__with_capacity
]))(var10
, var11
) /* with_capacity on <var10:Array[nullable MType]>*/;
3136 CHECK_NEW_array__Array(var10
);
3138 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_mtype
) /* push on <var_:Array[nullable MType]>*/;
3141 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
3142 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var12
) /* is_empty on <var12:Array[FlowContext]>*/;
3144 var14
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3146 ((void (*)(val
*, long))(var14
->class->vft
[COLOR_array__Array__with_capacity
]))(var14
, var15
) /* with_capacity on <var14:Array[nullable MType]>*/;
3147 CHECK_NEW_array__Array(var14
);
3149 var17
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
3150 ((void (*)(val
*, val
*))(var_16
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_16
, var17
) /* push on <var_16:Array[nullable MType]>*/;
3153 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
3154 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:Array[FlowContext]>*/;
3156 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[nullable Object]>*/;
3158 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[nullable Object]>*/;
3160 var22
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
3162 goto CONTINUE_label
;
3165 var23
= ((val
* (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__collect_types
]))(var_flow
, var_variable
) /* collect_types on <var_flow:FlowContext>*/;
3168 if (var_r2
== NULL
) {
3169 var25
= 1; /* is null */
3171 var25
= 0; /* arg is null but recv is not */
3174 goto CONTINUE_label
;
3178 if (var_res
== NULL
) {
3179 var27
= 1; /* is null */
3181 var27
= 0; /* arg is null but recv is not */
3184 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])>*/;
3187 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])>*/;
3189 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[nullable Object]>*/;
3191 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[nullable Object]>*/;
3193 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])>*/;
3196 ((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])>*/;
3199 CONTINUE_label34
: (void)0;
3200 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[nullable Object]>*/;
3202 BREAK_label34
: (void)0;
3204 CONTINUE_label
: (void)0;
3205 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[nullable Object]>*/;
3207 BREAK_label
: (void)0;
3210 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3211 ((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]]>*/;
3217 /* method typing#FlowContext#collect_types for (self: Object, Variable): nullable Array[nullable MType] */
3218 val
* VIRTUAL_typing__FlowContext__collect_types(val
* self
, val
* p0
) {
3219 val
* var
/* : nullable Array[nullable MType] */;
3220 val
* var1
/* : nullable Array[nullable MType] */;
3221 var1
= typing__FlowContext__collect_types(self
, p0
);
3226 /* method typing#APropdef#do_typing for (self: APropdef, ModelBuilder) */
3227 void typing__APropdef__do_typing(val
* self
, val
* p0
) {
3228 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3229 var_modelbuilder
= p0
;
3232 /* method typing#APropdef#do_typing for (self: Object, ModelBuilder) */
3233 void VIRTUAL_typing__APropdef__do_typing(val
* self
, val
* p0
) {
3234 typing__APropdef__do_typing(self
, p0
);
3237 /* method typing#APropdef#selfvariable for (self: APropdef): nullable Variable */
3238 val
* typing__APropdef__selfvariable(val
* self
) {
3239 val
* var
/* : nullable Variable */;
3240 val
* var1
/* : nullable Variable */;
3241 var1
= self
->attrs
[COLOR_typing__APropdef___64dselfvariable
].val
; /* @selfvariable on <self:APropdef> */
3246 /* method typing#APropdef#selfvariable for (self: Object): nullable Variable */
3247 val
* VIRTUAL_typing__APropdef__selfvariable(val
* self
) {
3248 val
* var
/* : nullable Variable */;
3249 val
* var1
/* : nullable Variable */;
3250 var1
= typing__APropdef__selfvariable(self
);
3255 /* method typing#APropdef#selfvariable= for (self: APropdef, nullable Variable) */
3256 void typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
3257 self
->attrs
[COLOR_typing__APropdef___64dselfvariable
].val
= p0
; /* @selfvariable on <self:APropdef> */
3260 /* method typing#APropdef#selfvariable= for (self: Object, nullable Variable) */
3261 void VIRTUAL_typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
3262 typing__APropdef__selfvariable_61d(self
, p0
);
3265 /* method typing#AConcreteMethPropdef#do_typing for (self: AConcreteMethPropdef, ModelBuilder) */
3266 void typing__AConcreteMethPropdef__do_typing(val
* self
, val
* p0
) {
3267 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3268 val
* var
/* : nullable ANode */;
3269 short int var1
/* : Bool */;
3272 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3273 val
* var2
/* : nullable MPropDef */;
3274 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
3275 val
* var3
/* : TypeVisitor */;
3276 val
* var_v
/* var v: TypeVisitor */;
3277 val
* var4
/* : Variable */;
3278 val
* var5
/* : nullable AExpr */;
3279 val
* var_nblock
/* var nblock: nullable AExpr */;
3280 val
* var6
/* : null */;
3281 short int var7
/* : Bool */;
3282 val
* var8
/* : nullable MPropDef */;
3283 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
3284 val
* var9
/* : Range[Int] */;
3285 long var10
/* : Int */;
3286 val
* var11
/* : nullable MSignature */;
3287 long var12
/* : Int */;
3288 val
* var13
/* : Discrete */;
3289 val
* var14
/* : Discrete */;
3290 val
* var15
/* : Iterator[nullable Object] */;
3291 short int var16
/* : Bool */;
3292 val
* var17
/* : nullable Object */;
3293 long var_i
/* var i: Int */;
3294 long var18
/* : Int */;
3295 val
* var19
/* : nullable MSignature */;
3296 val
* var20
/* : Array[MParameter] */;
3297 val
* var21
/* : nullable Object */;
3298 val
* var22
/* : MType */;
3299 val
* var_mtype
/* var mtype: MType */;
3300 val
* var23
/* : nullable MSignature */;
3301 long var24
/* : Int */;
3302 short int var25
/* : Bool */;
3303 short int var27
/* : Bool */;
3304 val
* var28
/* : nullable ASignature */;
3305 val
* var29
/* : ANodes[AParam] */;
3306 val
* var30
/* : nullable Object */;
3307 static val
* varonce
;
3308 val
* var31
/* : String */;
3309 char* var32
/* : NativeString */;
3310 long var33
/* : Int */;
3311 val
* var34
/* : String */;
3312 val
* var35
/* : nullable MClass */;
3313 val
* var_arrayclass
/* var arrayclass: nullable MClass */;
3314 val
* var36
/* : null */;
3315 short int var37
/* : Bool */;
3316 val
* var38
/* : Array[MType] */;
3317 long var39
/* : Int */;
3318 val
* var40
/* : NativeArray[MType] */;
3319 val
* var41
/* : MClassType */;
3320 val
* var42
/* : nullable ASignature */;
3321 val
* var43
/* : ANodes[AParam] */;
3322 val
* var44
/* : nullable Object */;
3323 val
* var45
/* : nullable Variable */;
3324 val
* var_variable
/* var variable: nullable Variable */;
3325 val
* var46
/* : null */;
3326 short int var47
/* : Bool */;
3327 val
* var48
/* : Range[Int] */;
3328 long var49
/* : Int */;
3329 val
* var50
/* : nullable MSignature */;
3330 val
* var51
/* : Array[MParameter] */;
3331 long var52
/* : Int */;
3332 val
* var53
/* : Discrete */;
3333 val
* var54
/* : Discrete */;
3334 val
* var55
/* : Iterator[nullable Object] */;
3335 short int var56
/* : Bool */;
3336 val
* var57
/* : nullable Object */;
3337 long var_i58
/* var i: Int */;
3338 long var59
/* : Int */;
3339 val
* var60
/* : nullable MSignature */;
3340 val
* var61
/* : Array[MParameter] */;
3341 val
* var62
/* : nullable Object */;
3342 val
* var_mclosure
/* var mclosure: MParameter */;
3343 val
* var63
/* : nullable ASignature */;
3344 val
* var64
/* : ANodes[AClosureDecl] */;
3345 val
* var65
/* : nullable Object */;
3346 val
* var66
/* : nullable ClosureVariable */;
3347 val
* var_variable67
/* var variable: nullable ClosureVariable */;
3348 val
* var68
/* : null */;
3349 short int var69
/* : Bool */;
3350 val
* var70
/* : MType */;
3351 short int var72
/* : Bool */;
3352 val
* var73
/* : nullable FlowContext */;
3353 short int var74
/* : Bool */;
3354 short int var75
/* : Bool */;
3355 short int var_
/* var : Bool */;
3356 val
* var76
/* : nullable MSignature */;
3357 val
* var77
/* : nullable MType */;
3358 val
* var78
/* : null */;
3359 short int var79
/* : Bool */;
3360 static val
* varonce80
;
3361 val
* var81
/* : String */;
3362 char* var82
/* : NativeString */;
3363 long var83
/* : Int */;
3364 val
* var84
/* : String */;
3365 var_modelbuilder
= p0
;
3366 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:AConcreteMethPropdef>*/;
3367 /* <var:nullable ANode> isa AClassdef */
3368 cltype
= type_parser_nodes__AClassdef
.color
;
3369 idtype
= type_parser_nodes__AClassdef
.id
;
3373 if(cltype
>= var
->type
->table_size
) {
3376 var1
= var
->type
->type_table
[cltype
] == idtype
;
3380 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 484);
3383 var_nclassdef
= var
;
3384 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AConcreteMethPropdef>*/;
3386 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 485);
3389 var_mpropdef
= var2
;
3390 var3
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
3391 ((void (*)(val
*, val
*, val
*, val
*))(var3
->class->vft
[COLOR_typing__TypeVisitor__init
]))(var3
, var_modelbuilder
, var_nclassdef
, var_mpropdef
) /* init on <var3:TypeVisitor>*/;
3392 CHECK_NEW_typing__TypeVisitor(var3
);
3394 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
3395 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__APropdef__selfvariable_61d
]))(self
, var4
) /* selfvariable= on <self:AConcreteMethPropdef>*/;
3396 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AConcreteMethPropdef__n_block
]))(self
) /* n_block on <self:AConcreteMethPropdef>*/;
3399 if (var_nblock
== NULL
) {
3400 var7
= 1; /* is null */
3402 var7
= 0; /* arg is null but recv is not */
3408 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AConcreteMethPropdef>*/;
3410 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 492);
3413 var_mmethoddef
= var8
;
3414 var9
= NEW_range__Range(&type_range__Rangekernel__Int
);
3416 var11
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3417 if (var11
== NULL
) {
3418 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 493);
3421 var12
= ((long (*)(val
*))(var11
->class->vft
[COLOR_model__MSignature__arity
]))(var11
) /* arity on <var11:nullable MSignature>*/;
3423 var13
= BOX_kernel__Int(var10
); /* autobox from Int to Discrete */
3424 var14
= BOX_kernel__Int(var12
); /* autobox from Int to Discrete */
3425 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_range__Range__without_last
]))(var9
, var13
, var14
) /* without_last on <var9:Range[Int]>*/;
3426 CHECK_NEW_range__Range(var9
);
3427 var15
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Range[Int]>*/;
3429 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
3431 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
3432 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
3434 var19
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3435 if (var19
== NULL
) {
3436 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 494);
3439 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_model__MSignature__mparameters
]))(var19
) /* mparameters on <var19:nullable MSignature>*/;
3441 var21
= ((val
* (*)(val
*, long))(var20
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var20
, var_i
) /* [] on <var20:Array[MParameter]>*/;
3442 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_model__MParameter__mtype
]))(var21
) /* mtype on <var21:nullable Object(MParameter)>*/;
3444 var23
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3445 if (var23
== NULL
) {
3446 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 495);
3449 var24
= ((long (*)(val
*))(var23
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var23
) /* vararg_rank on <var23:nullable MSignature>*/;
3451 { /* Inline kernel#Int#== (var24,var_i) */
3452 var27
= var24
== var_i
;
3455 RET_LABEL26
:(void)0;
3458 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3459 if (var28
== NULL
) {
3460 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 496);
3463 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_parser_nodes__ASignature__n_params
]))(var28
) /* n_params on <var28:nullable ASignature>*/;
3465 var30
= ((val
* (*)(val
*, long))(var29
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var29
, var_i
) /* [] on <var29:ANodes[AParam]>*/;
3471 var34
= string__NativeString__to_s_with_length(var32
, var33
);
3475 var35
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, var30
, var31
) /* get_mclass on <var_v:TypeVisitor>*/;
3476 var_arrayclass
= var35
;
3478 if (var_arrayclass
== NULL
) {
3479 var37
= 1; /* is null */
3481 var37
= 0; /* arg is null but recv is not */
3487 var38
= NEW_array__Array(&type_array__Arraymodel__MType
);
3488 { /* var38 = array_instance Array[MType] */
3490 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraymodel__MType
);
3491 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_mtype
;
3492 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[MType]>*/;
3493 CHECK_NEW_array__Array(var38
);
3495 var41
= ((val
* (*)(val
*, val
*))(var_arrayclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_arrayclass
, var38
) /* get_mtype on <var_arrayclass:nullable MClass(MClass)>*/;
3499 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3500 if (var42
== NULL
) {
3501 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 500);
3504 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_parser_nodes__ASignature__n_params
]))(var42
) /* n_params on <var42:nullable ASignature>*/;
3506 var44
= ((val
* (*)(val
*, long))(var43
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var43
, var_i
) /* [] on <var43:ANodes[AParam]>*/;
3507 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_scope__AParam__variable
]))(var44
) /* variable on <var44:nullable Object(AParam)>*/;
3508 var_variable
= var45
;
3510 if (var_variable
== NULL
) {
3511 var47
= 0; /* is null */
3513 var47
= 1; /* arg is null and recv is not */
3516 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 501);
3519 ((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)>*/;
3520 CONTINUE_label
: (void)0;
3521 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
3523 BREAK_label
: (void)0;
3524 var48
= NEW_range__Range(&type_range__Rangekernel__Int
);
3526 var50
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3527 if (var50
== NULL
) {
3528 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 504);
3531 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_model__MSignature__mclosures
]))(var50
) /* mclosures on <var50:nullable MSignature>*/;
3533 var52
= ((long (*)(val
*))(var51
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var51
) /* length on <var51:Array[MParameter]>*/;
3534 var53
= BOX_kernel__Int(var49
); /* autobox from Int to Discrete */
3535 var54
= BOX_kernel__Int(var52
); /* autobox from Int to Discrete */
3536 ((void (*)(val
*, val
*, val
*))(var48
->class->vft
[COLOR_range__Range__without_last
]))(var48
, var53
, var54
) /* without_last on <var48:Range[Int]>*/;
3537 CHECK_NEW_range__Range(var48
);
3538 var55
= ((val
* (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var48
) /* iterator on <var48:Range[Int]>*/;
3540 var56
= ((short int (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var55
) /* is_ok on <var55:Iterator[nullable Object]>*/;
3542 var57
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var55
) /* item on <var55:Iterator[nullable Object]>*/;
3543 var59
= ((struct instance_kernel__Int
*)var57
)->value
; /* autounbox from nullable Object to Int */;
3545 var60
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3546 if (var60
== NULL
) {
3547 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 505);
3550 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_model__MSignature__mclosures
]))(var60
) /* mclosures on <var60:nullable MSignature>*/;
3552 var62
= ((val
* (*)(val
*, long))(var61
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var61
, var_i58
) /* [] on <var61:Array[MParameter]>*/;
3553 var_mclosure
= var62
;
3554 var63
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3555 if (var63
== NULL
) {
3556 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 506);
3559 var64
= ((val
* (*)(val
*))(var63
->class->vft
[COLOR_parser_nodes__ASignature__n_closure_decls
]))(var63
) /* n_closure_decls on <var63:nullable ASignature>*/;
3561 var65
= ((val
* (*)(val
*, long))(var64
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var64
, var_i58
) /* [] on <var64:ANodes[AClosureDecl]>*/;
3562 var66
= ((val
* (*)(val
*))(var65
->class->vft
[COLOR_scope__AClosureDecl__variable
]))(var65
) /* variable on <var65:nullable Object(AClosureDecl)>*/;
3563 var_variable67
= var66
;
3565 if (var_variable67
== NULL
) {
3566 var69
= 0; /* is null */
3568 var69
= 1; /* arg is null and recv is not */
3571 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 507);
3574 var70
= ((val
* (*)(val
*))(var_mclosure
->class->vft
[COLOR_model__MParameter__mtype
]))(var_mclosure
) /* mtype on <var_mclosure:MParameter>*/;
3575 ((void (*)(val
*, val
*))(var_variable67
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var_variable67
, var70
) /* declared_type= on <var_variable67:nullable ClosureVariable(ClosureVariable)>*/;
3576 CONTINUE_label71
: (void)0;
3577 ((void (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var55
) /* next on <var55:Iterator[nullable Object]>*/;
3579 BREAK_label71
: (void)0;
3580 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var_nblock
) /* visit_stmt on <var_v:TypeVisitor>*/;
3581 var73
= ((val
* (*)(val
*))(var_nblock
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_nblock
) /* after_flow_context on <var_nblock:nullable AExpr(AExpr)>*/;
3582 if (var73
== NULL
) {
3583 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 512);
3586 var74
= ((short int (*)(val
*))(var73
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var73
) /* is_unreachable on <var73:nullable FlowContext>*/;
3591 var76
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3592 if (var76
== NULL
) {
3593 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 512);
3596 var77
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var76
) /* return_mtype on <var76:nullable MSignature>*/;
3599 if (var77
== NULL
) {
3600 var79
= 0; /* is null */
3602 var79
= 1; /* arg is null and recv is not */
3612 var82
= "Control error: Reached end of function (a \'return\' with a value was expected).";
3614 var84
= string__NativeString__to_s_with_length(var82
, var83
);
3618 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var81
) /* error on <var_v:TypeVisitor>*/;
3623 /* method typing#AConcreteMethPropdef#do_typing for (self: Object, ModelBuilder) */
3624 void VIRTUAL_typing__AConcreteMethPropdef__do_typing(val
* self
, val
* p0
) {
3625 typing__AConcreteMethPropdef__do_typing(self
, p0
);
3628 /* method typing#AAttrPropdef#do_typing for (self: AAttrPropdef, ModelBuilder) */
3629 void typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
3630 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3631 val
* var
/* : nullable ANode */;
3632 short int var1
/* : Bool */;
3635 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3636 val
* var2
/* : TypeVisitor */;
3637 val
* var3
/* : nullable MPropDef */;
3638 val
* var_v
/* var v: TypeVisitor */;
3639 val
* var4
/* : Variable */;
3640 val
* var5
/* : nullable AExpr */;
3641 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3642 val
* var6
/* : null */;
3643 short int var7
/* : Bool */;
3644 val
* var8
/* : nullable MPropDef */;
3645 val
* var9
/* : nullable MType */;
3646 val
* var_mtype
/* var mtype: nullable MType */;
3647 val
* var10
/* : nullable MType */;
3648 var_modelbuilder
= p0
;
3649 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:AAttrPropdef>*/;
3650 /* <var:nullable ANode> isa AClassdef */
3651 cltype
= type_parser_nodes__AClassdef
.color
;
3652 idtype
= type_parser_nodes__AClassdef
.id
;
3656 if(cltype
>= var
->type
->table_size
) {
3659 var1
= var
->type
->type_table
[cltype
] == idtype
;
3663 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 522);
3666 var_nclassdef
= var
;
3667 var2
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
3668 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AAttrPropdef>*/;
3670 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 523);
3673 ((void (*)(val
*, val
*, val
*, val
*))(var2
->class->vft
[COLOR_typing__TypeVisitor__init
]))(var2
, var_modelbuilder
, var_nclassdef
, var3
) /* init on <var2:TypeVisitor>*/;
3674 CHECK_NEW_typing__TypeVisitor(var2
);
3676 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
3677 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__APropdef__selfvariable_61d
]))(self
, var4
) /* selfvariable= on <self:AAttrPropdef>*/;
3678 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_expr
]))(self
) /* n_expr on <self:AAttrPropdef>*/;
3681 if (var_nexpr
== NULL
) {
3682 var7
= 0; /* is null */
3684 var7
= 1; /* arg is null and recv is not */
3687 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AAttrPropdef>*/;
3689 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 528);
3692 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var8
) /* static_mtype on <var8:nullable MPropDef(nullable MAttributeDef)>*/;
3695 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>*/;
3701 /* method typing#AAttrPropdef#do_typing for (self: Object, ModelBuilder) */
3702 void VIRTUAL_typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
3703 typing__AAttrPropdef__do_typing(self
, p0
);
3706 /* method typing#AExpr#mtype for (self: AExpr): nullable MType */
3707 val
* typing__AExpr__mtype(val
* self
) {
3708 val
* var
/* : nullable MType */;
3709 val
* var1
/* : nullable MType */;
3710 var1
= self
->attrs
[COLOR_typing__AExpr___64dmtype
].val
; /* @mtype on <self:AExpr> */
3715 /* method typing#AExpr#mtype for (self: Object): nullable MType */
3716 val
* VIRTUAL_typing__AExpr__mtype(val
* self
) {
3717 val
* var
/* : nullable MType */;
3718 val
* var1
/* : nullable MType */;
3719 var1
= typing__AExpr__mtype(self
);
3724 /* method typing#AExpr#mtype= for (self: AExpr, nullable MType) */
3725 void typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
3726 self
->attrs
[COLOR_typing__AExpr___64dmtype
].val
= p0
; /* @mtype on <self:AExpr> */
3729 /* method typing#AExpr#mtype= for (self: Object, nullable MType) */
3730 void VIRTUAL_typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
3731 typing__AExpr__mtype_61d(self
, p0
);
3734 /* method typing#AExpr#is_typed for (self: AExpr): Bool */
3735 short int typing__AExpr__is_typed(val
* self
) {
3736 short int var
/* : Bool */;
3737 short int var1
/* : Bool */;
3738 var1
= self
->attrs
[COLOR_typing__AExpr___64dis_typed
].s
; /* @is_typed on <self:AExpr> */
3743 /* method typing#AExpr#is_typed for (self: Object): Bool */
3744 short int VIRTUAL_typing__AExpr__is_typed(val
* self
) {
3745 short int var
/* : Bool */;
3746 short int var1
/* : Bool */;
3747 var1
= typing__AExpr__is_typed(self
);
3752 /* method typing#AExpr#is_typed= for (self: AExpr, Bool) */
3753 void typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
3754 self
->attrs
[COLOR_typing__AExpr___64dis_typed
].s
= p0
; /* @is_typed on <self:AExpr> */
3757 /* method typing#AExpr#is_typed= for (self: Object, Bool) */
3758 void VIRTUAL_typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
3759 typing__AExpr__is_typed_61d(self
, p0
);
3762 /* method typing#AExpr#implicit_cast_to for (self: AExpr): nullable MType */
3763 val
* typing__AExpr__implicit_cast_to(val
* self
) {
3764 val
* var
/* : nullable MType */;
3765 val
* var1
/* : nullable MType */;
3766 var1
= self
->attrs
[COLOR_typing__AExpr___64dimplicit_cast_to
].val
; /* @implicit_cast_to on <self:AExpr> */
3771 /* method typing#AExpr#implicit_cast_to for (self: Object): nullable MType */
3772 val
* VIRTUAL_typing__AExpr__implicit_cast_to(val
* self
) {
3773 val
* var
/* : nullable MType */;
3774 val
* var1
/* : nullable MType */;
3775 var1
= typing__AExpr__implicit_cast_to(self
);
3780 /* method typing#AExpr#implicit_cast_to= for (self: AExpr, nullable MType) */
3781 void typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
3782 self
->attrs
[COLOR_typing__AExpr___64dimplicit_cast_to
].val
= p0
; /* @implicit_cast_to on <self:AExpr> */
3785 /* method typing#AExpr#implicit_cast_to= for (self: Object, nullable MType) */
3786 void VIRTUAL_typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
3787 typing__AExpr__implicit_cast_to_61d(self
, p0
);
3790 /* method typing#AExpr#its_variable for (self: AExpr): nullable Variable */
3791 val
* typing__AExpr__its_variable(val
* self
) {
3792 val
* var
/* : nullable Variable */;
3793 val
* var1
/* : null */;
3800 /* method typing#AExpr#its_variable for (self: Object): nullable Variable */
3801 val
* VIRTUAL_typing__AExpr__its_variable(val
* self
) {
3802 val
* var
/* : nullable Variable */;
3803 val
* var1
/* : nullable Variable */;
3804 var1
= typing__AExpr__its_variable(self
);
3809 /* method typing#AExpr#accept_typing for (self: AExpr, TypeVisitor) */
3810 void typing__AExpr__accept_typing(val
* self
, val
* p0
) {
3811 val
* var_v
/* var v: TypeVisitor */;
3812 static val
* varonce
;
3813 val
* var
/* : String */;
3814 char* var1
/* : NativeString */;
3815 long var2
/* : Int */;
3816 val
* var3
/* : String */;
3817 val
* var4
/* : String */;
3818 val
* var5
/* : Array[Object] */;
3819 long var6
/* : Int */;
3820 val
* var7
/* : NativeArray[Object] */;
3821 val
* var8
/* : String */;
3826 var1
= "no implemented accept_typing for ";
3828 var3
= string__NativeString__to_s_with_length(var1
, var2
);
3832 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__Object__class_name
]))(self
) /* class_name on <self:AExpr>*/;
3833 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
3834 { /* var5 = array_instance Array[Object] */
3836 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
3837 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
3838 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var4
;
3839 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
3840 CHECK_NEW_array__Array(var5
);
3842 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
3843 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var8
) /* error on <var_v:TypeVisitor>*/;
3846 /* method typing#AExpr#accept_typing for (self: Object, TypeVisitor) */
3847 void VIRTUAL_typing__AExpr__accept_typing(val
* self
, val
* p0
) {
3848 typing__AExpr__accept_typing(self
, p0
);
3851 /* method typing#ABlockExpr#accept_typing for (self: ABlockExpr, TypeVisitor) */
3852 void typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
3853 val
* var_v
/* var v: TypeVisitor */;
3854 val
* var
/* : ANodes[AExpr] */;
3855 val
* var1
/* : Iterator[nullable Object] */;
3856 short int var2
/* : Bool */;
3857 val
* var3
/* : nullable Object */;
3858 val
* var_e
/* var e: AExpr */;
3859 short int var4
/* : Bool */;
3861 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3862 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var
) /* iterator on <var:ANodes[AExpr]>*/;
3864 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
3866 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
3868 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var_e
) /* visit_stmt on <var_v:TypeVisitor>*/;
3869 CONTINUE_label
: (void)0;
3870 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
3872 BREAK_label
: (void)0;
3874 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:ABlockExpr>*/;
3877 /* method typing#ABlockExpr#accept_typing for (self: Object, TypeVisitor) */
3878 void VIRTUAL_typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
3879 typing__ABlockExpr__accept_typing(self
, p0
);
3882 /* method typing#ABlockExpr#mtype for (self: ABlockExpr): nullable MType */
3883 val
* typing__ABlockExpr__mtype(val
* self
) {
3884 val
* var
/* : nullable MType */;
3885 val
* var1
/* : ANodes[AExpr] */;
3886 short int var2
/* : Bool */;
3887 val
* var3
/* : null */;
3888 val
* var4
/* : ANodes[AExpr] */;
3889 val
* var5
/* : nullable Object */;
3890 val
* var6
/* : nullable MType */;
3891 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3892 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var1
) /* is_empty on <var1:ANodes[AExpr]>*/;
3899 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3900 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var4
) /* last on <var4:ANodes[AExpr]>*/;
3901 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_typing__AExpr__mtype
]))(var5
) /* mtype on <var5:nullable Object(AExpr)>*/;
3907 /* method typing#ABlockExpr#mtype for (self: Object): nullable MType */
3908 val
* VIRTUAL_typing__ABlockExpr__mtype(val
* self
) {
3909 val
* var
/* : nullable MType */;
3910 val
* var1
/* : nullable MType */;
3911 var1
= typing__ABlockExpr__mtype(self
);
3916 /* method typing#AVardeclExpr#accept_typing for (self: AVardeclExpr, TypeVisitor) */
3917 void typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
3918 val
* var_v
/* var v: TypeVisitor */;
3919 val
* var
/* : nullable Variable */;
3920 val
* var_variable
/* var variable: nullable Variable */;
3921 val
* var1
/* : null */;
3922 short int var2
/* : Bool */;
3923 val
* var3
/* : nullable AType */;
3924 val
* var_ntype
/* var ntype: nullable AType */;
3925 val
* var4
/* : null */;
3926 short int var5
/* : Bool */;
3927 val
* var6
/* : null */;
3928 val
* var_mtype
/* var mtype: nullable MType */;
3929 val
* var7
/* : nullable MType */;
3930 val
* var8
/* : null */;
3931 short int var9
/* : Bool */;
3932 val
* var10
/* : nullable AExpr */;
3933 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3934 val
* var11
/* : null */;
3935 short int var12
/* : Bool */;
3936 val
* var13
/* : null */;
3937 short int var14
/* : Bool */;
3938 val
* var15
/* : nullable MType */;
3939 val
* var16
/* : nullable MType */;
3940 val
* var17
/* : null */;
3941 short int var18
/* : Bool */;
3942 val
* var_decltype
/* var decltype: nullable MType */;
3943 short int var19
/* : Bool */;
3944 val
* var20
/* : null */;
3945 short int var21
/* : Bool */;
3946 short int var_
/* var : Bool */;
3947 short int var22
/* : Bool */;
3950 static val
* varonce
;
3951 val
* var23
/* : String */;
3952 char* var24
/* : NativeString */;
3953 long var25
/* : Int */;
3954 val
* var26
/* : String */;
3955 val
* var27
/* : nullable MClass */;
3956 val
* var28
/* : MClassType */;
3957 val
* var29
/* : MType */;
3958 val
* var30
/* : null */;
3959 short int var31
/* : Bool */;
3960 short int var32
/* : Bool */;
3962 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVardeclExpr__variable
]))(self
) /* variable on <self:AVardeclExpr>*/;
3965 if (var_variable
== NULL
) {
3966 var2
= 1; /* is null */
3968 var2
= 0; /* arg is null but recv is not */
3974 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AVardeclExpr__n_type
]))(self
) /* n_type on <self:AVardeclExpr>*/;
3977 if (var_ntype
== NULL
) {
3978 var5
= 1; /* is null */
3980 var5
= 0; /* arg is null but recv is not */
3986 var7
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var_ntype
) /* resolve_mtype on <var_v:TypeVisitor>*/;
3989 if (var_mtype
== NULL
) {
3990 var9
= 1; /* is null */
3992 var9
= 0; /* arg is null but recv is not */
3999 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AVardeclExpr__n_expr
]))(self
) /* n_expr on <self:AVardeclExpr>*/;
4002 if (var_nexpr
== NULL
) {
4003 var12
= 0; /* is null */
4005 var12
= 1; /* arg is null and recv is not */
4009 if (var_mtype
== NULL
) {
4010 var14
= 0; /* is null */
4012 var14
= 1; /* arg is null and recv is not */
4015 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>*/;
4018 var16
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4021 if (var_mtype
== NULL
) {
4022 var18
= 1; /* is null */
4024 var18
= 0; /* arg is null but recv is not */
4033 var_decltype
= var_mtype
;
4035 if (var_mtype
== NULL
) {
4036 var21
= 1; /* is null */
4038 var21
= 0; /* arg is null but recv is not */
4044 /* <var_mtype:nullable MType(MType)> isa MNullType */
4045 cltype
= type_model__MNullType
.color
;
4046 idtype
= type_model__MNullType
.id
;
4047 if(cltype
>= var_mtype
->type
->table_size
) {
4050 var22
= var_mtype
->type
->type_table
[cltype
] == idtype
;
4060 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4064 var27
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var23
) /* get_mclass on <var_v:TypeVisitor>*/;
4065 if (var27
== NULL
) {
4066 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 603);
4069 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_model__MClass__mclass_type
]))(var27
) /* mclass_type on <var27:nullable MClass>*/;
4071 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MType__as_nullable
]))(var28
) /* as_nullable on <var28:MClassType>*/;
4072 var_decltype
= var29
;
4074 if (var_mtype
== NULL
) {
4075 var31
= 1; /* is null */
4077 var31
= 0; /* arg is null but recv is not */
4080 var_mtype
= var_decltype
;
4085 ((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)>*/;
4086 ((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>*/;
4088 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var32
) /* is_typed= on <self:AVardeclExpr>*/;
4091 /* method typing#AVardeclExpr#accept_typing for (self: Object, TypeVisitor) */
4092 void VIRTUAL_typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
4093 typing__AVardeclExpr__accept_typing(self
, p0
);
4096 /* method typing#AVarExpr#its_variable for (self: AVarExpr): nullable Variable */
4097 val
* typing__AVarExpr__its_variable(val
* self
) {
4098 val
* var
/* : nullable Variable */;
4099 val
* var1
/* : nullable Variable */;
4100 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarExpr>*/;
4106 /* method typing#AVarExpr#its_variable for (self: Object): nullable Variable */
4107 val
* VIRTUAL_typing__AVarExpr__its_variable(val
* self
) {
4108 val
* var
/* : nullable Variable */;
4109 val
* var1
/* : nullable Variable */;
4110 var1
= typing__AVarExpr__its_variable(self
);
4115 /* method typing#AVarExpr#accept_typing for (self: AVarExpr, TypeVisitor) */
4116 void typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
4117 val
* var_v
/* var v: TypeVisitor */;
4118 val
* var
/* : nullable Variable */;
4119 val
* var_variable
/* var variable: nullable Variable */;
4120 val
* var1
/* : null */;
4121 short int var2
/* : Bool */;
4122 val
* var3
/* : nullable MType */;
4123 val
* var_mtype
/* var mtype: nullable MType */;
4124 val
* var4
/* : null */;
4125 short int var5
/* : Bool */;
4127 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarExpr>*/;
4130 if (var_variable
== NULL
) {
4131 var2
= 1; /* is null */
4133 var2
= 0; /* arg is null but recv is not */
4139 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>*/;
4142 if (var_mtype
== NULL
) {
4143 var5
= 0; /* is null */
4145 var5
= 1; /* arg is null and recv is not */
4150 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:AVarExpr>*/;
4153 /* method typing#AVarExpr#accept_typing for (self: Object, TypeVisitor) */
4154 void VIRTUAL_typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
4155 typing__AVarExpr__accept_typing(self
, p0
);
4158 /* method typing#AVarAssignExpr#accept_typing for (self: AVarAssignExpr, TypeVisitor) */
4159 void typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
4160 val
* var_v
/* var v: TypeVisitor */;
4161 val
* var
/* : nullable Variable */;
4162 val
* var_variable
/* var variable: nullable Variable */;
4163 val
* var1
/* : null */;
4164 short int var2
/* : Bool */;
4165 val
* var3
/* : AExpr */;
4166 val
* var4
/* : nullable MType */;
4167 val
* var5
/* : nullable MType */;
4168 val
* var_mtype
/* var mtype: nullable MType */;
4169 short int var6
/* : Bool */;
4171 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarAssignExpr>*/;
4174 if (var_variable
== NULL
) {
4175 var2
= 0; /* is null */
4177 var2
= 1; /* arg is null and recv is not */
4180 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 638);
4183 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:AVarAssignExpr>*/;
4184 var4
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
4185 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>*/;
4187 ((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>*/;
4189 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var6
) /* is_typed= on <self:AVarAssignExpr>*/;
4192 /* method typing#AVarAssignExpr#accept_typing for (self: Object, TypeVisitor) */
4193 void VIRTUAL_typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
4194 typing__AVarAssignExpr__accept_typing(self
, p0
);
4197 /* method typing#AReassignFormExpr#reassign_property for (self: AReassignFormExpr): nullable MMethodDef */
4198 val
* typing__AReassignFormExpr__reassign_property(val
* self
) {
4199 val
* var
/* : nullable MMethodDef */;
4200 val
* var1
/* : nullable CallSite */;
4201 val
* var2
/* : MMethodDef */;
4202 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite
]))(self
) /* reassign_callsite on <self:AReassignFormExpr>*/;
4204 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 650);
4207 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mpropdef
]))(var1
) /* mpropdef on <var1:nullable CallSite>*/;
4214 /* method typing#AReassignFormExpr#reassign_property for (self: Object): nullable MMethodDef */
4215 val
* VIRTUAL_typing__AReassignFormExpr__reassign_property(val
* self
) {
4216 val
* var
/* : nullable MMethodDef */;
4217 val
* var1
/* : nullable MMethodDef */;
4218 var1
= typing__AReassignFormExpr__reassign_property(self
);
4223 /* method typing#AReassignFormExpr#reassign_callsite for (self: AReassignFormExpr): nullable CallSite */
4224 val
* typing__AReassignFormExpr__reassign_callsite(val
* self
) {
4225 val
* var
/* : nullable CallSite */;
4226 val
* var1
/* : nullable CallSite */;
4227 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___64dreassign_callsite
].val
; /* @reassign_callsite on <self:AReassignFormExpr> */
4232 /* method typing#AReassignFormExpr#reassign_callsite for (self: Object): nullable CallSite */
4233 val
* VIRTUAL_typing__AReassignFormExpr__reassign_callsite(val
* self
) {
4234 val
* var
/* : nullable CallSite */;
4235 val
* var1
/* : nullable CallSite */;
4236 var1
= typing__AReassignFormExpr__reassign_callsite(self
);
4241 /* method typing#AReassignFormExpr#reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */
4242 void typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
4243 self
->attrs
[COLOR_typing__AReassignFormExpr___64dreassign_callsite
].val
= p0
; /* @reassign_callsite on <self:AReassignFormExpr> */
4246 /* method typing#AReassignFormExpr#reassign_callsite= for (self: Object, nullable CallSite) */
4247 void VIRTUAL_typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
4248 typing__AReassignFormExpr__reassign_callsite_61d(self
, p0
);
4251 /* method typing#AReassignFormExpr#read_type for (self: AReassignFormExpr): nullable MType */
4252 val
* typing__AReassignFormExpr__read_type(val
* self
) {
4253 val
* var
/* : nullable MType */;
4254 val
* var1
/* : nullable MType */;
4255 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___64dread_type
].val
; /* @read_type on <self:AReassignFormExpr> */
4260 /* method typing#AReassignFormExpr#read_type for (self: Object): nullable MType */
4261 val
* VIRTUAL_typing__AReassignFormExpr__read_type(val
* self
) {
4262 val
* var
/* : nullable MType */;
4263 val
* var1
/* : nullable MType */;
4264 var1
= typing__AReassignFormExpr__read_type(self
);
4269 /* method typing#AReassignFormExpr#read_type= for (self: AReassignFormExpr, nullable MType) */
4270 void typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
4271 self
->attrs
[COLOR_typing__AReassignFormExpr___64dread_type
].val
= p0
; /* @read_type on <self:AReassignFormExpr> */
4274 /* method typing#AReassignFormExpr#read_type= for (self: Object, nullable MType) */
4275 void VIRTUAL_typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
4276 typing__AReassignFormExpr__read_type_61d(self
, p0
);
4279 /* method typing#AReassignFormExpr#resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */
4280 val
* typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4281 val
* var
/* : nullable MType */;
4282 val
* var_v
/* var v: TypeVisitor */;
4283 val
* var_readtype
/* var readtype: MType */;
4284 val
* var_writetype
/* var writetype: MType */;
4285 val
* var1
/* : AAssignOp */;
4286 short int var2
/* : Bool */;
4289 static val
* varonce
;
4290 val
* var3
/* : String */;
4291 char* var4
/* : NativeString */;
4292 long var5
/* : Int */;
4293 val
* var6
/* : String */;
4294 val
* var_reassign_name
/* var reassign_name: String */;
4295 val
* var7
/* : AAssignOp */;
4296 short int var8
/* : Bool */;
4299 static val
* varonce11
;
4300 val
* var12
/* : String */;
4301 char* var13
/* : NativeString */;
4302 long var14
/* : Int */;
4303 val
* var15
/* : String */;
4304 short int var16
/* : Bool */;
4307 static val
* varonce19
;
4308 val
* var20
/* : String */;
4309 char* var21
/* : NativeString */;
4310 long var22
/* : Int */;
4311 val
* var23
/* : String */;
4312 static val
* varonce24
;
4313 val
* var25
/* : String */;
4314 char* var26
/* : NativeString */;
4315 long var27
/* : Int */;
4316 val
* var28
/* : String */;
4317 val
* var29
/* : Array[Object] */;
4318 long var30
/* : Int */;
4319 val
* var31
/* : NativeArray[Object] */;
4320 val
* var32
/* : String */;
4321 val
* var33
/* : null */;
4322 short int var34
/* : Bool */;
4323 val
* var35
/* : nullable CallSite */;
4324 val
* var_callsite
/* var callsite: nullable CallSite */;
4325 val
* var36
/* : null */;
4326 short int var37
/* : Bool */;
4327 val
* var38
/* : null */;
4328 val
* var39
/* : MSignature */;
4329 val
* var_msignature
/* var msignature: MSignature */;
4330 val
* var40
/* : nullable MType */;
4331 val
* var_rettype
/* var rettype: nullable MType */;
4332 short int var41
/* : Bool */;
4333 long var42
/* : Int */;
4334 long var43
/* : Int */;
4335 short int var44
/* : Bool */;
4336 short int var46
/* : Bool */;
4337 short int var_
/* var : Bool */;
4338 val
* var47
/* : null */;
4339 short int var48
/* : Bool */;
4340 val
* var49
/* : AExpr */;
4341 val
* var50
/* : Array[MParameter] */;
4342 val
* var51
/* : nullable Object */;
4343 val
* var52
/* : MType */;
4344 val
* var53
/* : nullable MType */;
4345 val
* var_value_type
/* var value_type: nullable MType */;
4346 val
* var54
/* : null */;
4347 short int var55
/* : Bool */;
4348 val
* var56
/* : null */;
4349 val
* var57
/* : nullable MType */;
4353 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_assign_op
]))(self
) /* n_assign_op on <self:AReassignFormExpr>*/;
4354 /* <var1:AAssignOp> isa APlusAssignOp */
4355 cltype
= type_parser_nodes__APlusAssignOp
.color
;
4356 idtype
= type_parser_nodes__APlusAssignOp
.id
;
4357 if(cltype
>= var1
->type
->table_size
) {
4360 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4368 var6
= string__NativeString__to_s_with_length(var4
, var5
);
4372 var_reassign_name
= var3
;
4374 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_assign_op
]))(self
) /* n_assign_op on <self:AReassignFormExpr>*/;
4375 /* <var7:AAssignOp> isa AMinusAssignOp */
4376 cltype9
= type_parser_nodes__AMinusAssignOp
.color
;
4377 idtype10
= type_parser_nodes__AMinusAssignOp
.id
;
4378 if(cltype9
>= var7
->type
->table_size
) {
4381 var8
= var7
->type
->type_table
[cltype9
] == idtype10
;
4389 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4393 var_reassign_name
= var12
;
4395 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Aborted", "src/typing.nit", 670);
4399 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type_61d
]))(self
, var_readtype
) /* read_type= on <self:AReassignFormExpr>*/;
4400 /* <var_readtype:MType> isa MNullType */
4401 cltype17
= type_model__MNullType
.color
;
4402 idtype18
= type_model__MNullType
.id
;
4403 if(cltype17
>= var_readtype
->type
->table_size
) {
4406 var16
= var_readtype
->type
->type_table
[cltype17
] == idtype18
;
4412 var21
= "Error: Method \'";
4414 var23
= string__NativeString__to_s_with_length(var21
, var22
);
4421 var26
= "\' call on \'null\'.";
4423 var28
= string__NativeString__to_s_with_length(var26
, var27
);
4427 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
4428 { /* var29 = array_instance Array[Object] */
4430 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
4431 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var20
;
4432 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_reassign_name
;
4433 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
4434 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
4435 CHECK_NEW_array__Array(var29
);
4437 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
4438 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var32
) /* error on <var_v:TypeVisitor>*/;
4445 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>*/;
4446 var_callsite
= var35
;
4448 if (var_callsite
== NULL
) {
4449 var37
= 1; /* is null */
4451 var37
= 0; /* arg is null but recv is not */
4459 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite_61d
]))(self
, var_callsite
) /* reassign_callsite= on <self:AReassignFormExpr>*/;
4460 var39
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
4461 var_msignature
= var39
;
4462 var40
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
4463 var_rettype
= var40
;
4464 var42
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
4466 { /* Inline kernel#Int#== (var42,var43) */
4467 var46
= var42
== var43
;
4470 RET_LABEL45
:(void)0;
4475 if (var_rettype
== NULL
) {
4476 var48
= 0; /* is null */
4478 var48
= 1; /* arg is null and recv is not */
4485 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 686);
4488 var49
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:AReassignFormExpr>*/;
4489 var50
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
4490 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var50
) /* first on <var50:Array[MParameter]>*/;
4491 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_model__MParameter__mtype
]))(var51
) /* mtype on <var51:nullable Object(MParameter)>*/;
4492 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>*/;
4493 var_value_type
= var53
;
4495 if (var_value_type
== NULL
) {
4496 var55
= 1; /* is null */
4498 var55
= 0; /* arg is null but recv is not */
4506 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>*/;
4513 /* method typing#AReassignFormExpr#resolve_reassignment for (self: Object, TypeVisitor, MType, MType): nullable MType */
4514 val
* VIRTUAL_typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4515 val
* var
/* : nullable MType */;
4516 val
* var1
/* : nullable MType */;
4517 var1
= typing__AReassignFormExpr__resolve_reassignment(self
, p0
, p1
, p2
);
4522 /* method typing#AVarReassignExpr#accept_typing for (self: AVarReassignExpr, TypeVisitor) */
4523 void typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
4524 val
* var_v
/* var v: TypeVisitor */;
4525 val
* var
/* : nullable Variable */;
4526 val
* var_variable
/* var variable: nullable Variable */;
4527 val
* var1
/* : null */;
4528 short int var2
/* : Bool */;
4529 val
* var3
/* : nullable MType */;
4530 val
* var_readtype
/* var readtype: nullable MType */;
4531 val
* var4
/* : null */;
4532 short int var5
/* : Bool */;
4533 val
* var6
/* : nullable MType */;
4534 val
* var_writetype
/* var writetype: nullable MType */;
4535 val
* var7
/* : null */;
4536 short int var8
/* : Bool */;
4537 val
* var9
/* : nullable MType */;
4538 val
* var_rettype
/* var rettype: nullable MType */;
4539 short int var10
/* : Bool */;
4541 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarReassignExpr>*/;
4544 if (var_variable
== NULL
) {
4545 var2
= 0; /* is null */
4547 var2
= 1; /* arg is null and recv is not */
4550 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 700);
4553 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>*/;
4554 var_readtype
= var3
;
4556 if (var_readtype
== NULL
) {
4557 var5
= 1; /* is null */
4559 var5
= 0; /* arg is null but recv is not */
4565 var6
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
4566 var_writetype
= var6
;
4568 if (var_writetype
== NULL
) {
4569 var8
= 1; /* is null */
4571 var8
= 0; /* arg is null but recv is not */
4577 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>*/;
4579 ((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>*/;
4581 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var10
) /* is_typed= on <self:AVarReassignExpr>*/;
4584 /* method typing#AVarReassignExpr#accept_typing for (self: Object, TypeVisitor) */
4585 void VIRTUAL_typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
4586 typing__AVarReassignExpr__accept_typing(self
, p0
);
4589 /* method typing#AContinueExpr#accept_typing for (self: AContinueExpr, TypeVisitor) */
4590 void typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
4591 val
* var_v
/* var v: TypeVisitor */;
4592 val
* var
/* : nullable AExpr */;
4593 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4594 val
* var1
/* : null */;
4595 short int var2
/* : Bool */;
4596 val
* var3
/* : nullable MType */;
4597 val
* var_mtype
/* var mtype: nullable MType */;
4598 short int var4
/* : Bool */;
4600 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AContinueExpr__n_expr
]))(self
) /* n_expr on <self:AContinueExpr>*/;
4603 if (var_nexpr
== NULL
) {
4604 var2
= 0; /* is null */
4606 var2
= 1; /* arg is null and recv is not */
4609 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4614 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AContinueExpr>*/;
4617 /* method typing#AContinueExpr#accept_typing for (self: Object, TypeVisitor) */
4618 void VIRTUAL_typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
4619 typing__AContinueExpr__accept_typing(self
, p0
);
4622 /* method typing#ABreakExpr#accept_typing for (self: ABreakExpr, TypeVisitor) */
4623 void typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
4624 val
* var_v
/* var v: TypeVisitor */;
4625 val
* var
/* : nullable AExpr */;
4626 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4627 val
* var1
/* : null */;
4628 short int var2
/* : Bool */;
4629 val
* var3
/* : nullable MType */;
4630 val
* var_mtype
/* var mtype: nullable MType */;
4631 short int var4
/* : Bool */;
4633 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABreakExpr__n_expr
]))(self
) /* n_expr on <self:ABreakExpr>*/;
4636 if (var_nexpr
== NULL
) {
4637 var2
= 0; /* is null */
4639 var2
= 1; /* arg is null and recv is not */
4642 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4647 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:ABreakExpr>*/;
4650 /* method typing#ABreakExpr#accept_typing for (self: Object, TypeVisitor) */
4651 void VIRTUAL_typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
4652 typing__ABreakExpr__accept_typing(self
, p0
);
4655 /* method typing#AReturnExpr#accept_typing for (self: AReturnExpr, TypeVisitor) */
4656 void typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
4657 val
* var_v
/* var v: TypeVisitor */;
4658 val
* var
/* : nullable AExpr */;
4659 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4660 val
* var1
/* : MPropDef */;
4661 short int var2
/* : Bool */;
4664 val
* var3
/* : nullable MSignature */;
4665 val
* var4
/* : nullable MType */;
4666 val
* var_ret_type
/* var ret_type: nullable MType */;
4667 val
* var5
/* : null */;
4668 short int var6
/* : Bool */;
4669 val
* var7
/* : null */;
4670 short int var8
/* : Bool */;
4671 val
* var9
/* : nullable MType */;
4672 val
* var_mtype
/* var mtype: nullable MType */;
4673 val
* var10
/* : nullable MType */;
4674 val
* var_mtype11
/* var mtype: nullable MType */;
4675 static val
* varonce
;
4676 val
* var12
/* : String */;
4677 char* var13
/* : NativeString */;
4678 long var14
/* : Int */;
4679 val
* var15
/* : String */;
4680 val
* var16
/* : null */;
4681 short int var17
/* : Bool */;
4682 static val
* varonce18
;
4683 val
* var19
/* : String */;
4684 char* var20
/* : NativeString */;
4685 long var21
/* : Int */;
4686 val
* var22
/* : String */;
4687 short int var23
/* : Bool */;
4689 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReturnExpr__n_expr
]))(self
) /* n_expr on <self:AReturnExpr>*/;
4691 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
4692 /* <var1:MPropDef> isa MMethodDef */
4693 cltype
= type_model__MMethodDef
.color
;
4694 idtype
= type_model__MMethodDef
.id
;
4695 if(cltype
>= var1
->type
->table_size
) {
4698 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4701 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 743);
4704 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var1
) /* msignature on <var1:MPropDef(MMethodDef)>*/;
4706 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 743);
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 static val
* varonce166
;
5347 val
* var167
/* : String */;
5348 char* var168
/* : NativeString */;
5349 long var169
/* : Int */;
5350 val
* var170
/* : String */;
5351 short int var171
/* : Bool */;
5352 val
* var172
/* : nullable CallSite */;
5353 val
* var_ikdef
/* var ikdef: nullable CallSite */;
5354 val
* var173
/* : null */;
5355 short int var174
/* : Bool */;
5356 static val
* varonce175
;
5357 val
* var176
/* : String */;
5358 char* var177
/* : NativeString */;
5359 long var178
/* : Int */;
5360 val
* var179
/* : String */;
5361 val
* var180
/* : Array[Object] */;
5362 long var181
/* : Int */;
5363 val
* var182
/* : NativeArray[Object] */;
5364 val
* var183
/* : String */;
5365 val
* var184
/* : MMethod */;
5366 static val
* varonce185
;
5367 val
* var186
/* : String */;
5368 char* var187
/* : NativeString */;
5369 long var188
/* : Int */;
5370 val
* var189
/* : String */;
5371 short int var190
/* : Bool */;
5372 val
* var191
/* : nullable CallSite */;
5373 val
* var_itemdef
/* var itemdef: nullable CallSite */;
5374 val
* var192
/* : null */;
5375 short int var193
/* : Bool */;
5376 static val
* varonce194
;
5377 val
* var195
/* : String */;
5378 char* var196
/* : NativeString */;
5379 long var197
/* : Int */;
5380 val
* var198
/* : String */;
5381 val
* var199
/* : Array[Object] */;
5382 long var200
/* : Int */;
5383 val
* var201
/* : NativeArray[Object] */;
5384 val
* var202
/* : String */;
5385 val
* var203
/* : MMethod */;
5386 static val
* varonce204
;
5387 val
* var205
/* : String */;
5388 char* var206
/* : NativeString */;
5389 long var207
/* : Int */;
5390 val
* var208
/* : String */;
5391 short int var209
/* : Bool */;
5392 val
* var210
/* : nullable CallSite */;
5393 val
* var_nextdef
/* var nextdef: nullable CallSite */;
5394 val
* var211
/* : null */;
5395 short int var212
/* : Bool */;
5396 static val
* varonce213
;
5397 val
* var214
/* : String */;
5398 char* var215
/* : NativeString */;
5399 long var216
/* : Int */;
5400 val
* var217
/* : String */;
5401 val
* var218
/* : Array[Object] */;
5402 long var219
/* : Int */;
5403 val
* var220
/* : NativeArray[Object] */;
5404 val
* var221
/* : String */;
5405 val
* var222
/* : MMethod */;
5406 static val
* varonce223
;
5407 val
* var224
/* : String */;
5408 char* var225
/* : NativeString */;
5409 long var226
/* : Int */;
5410 val
* var227
/* : String */;
5411 short int var228
/* : Bool */;
5412 val
* var229
/* : nullable CallSite */;
5413 val
* var_keydef
/* var keydef: nullable CallSite */;
5414 val
* var230
/* : null */;
5415 short int var231
/* : Bool */;
5416 static val
* varonce232
;
5417 val
* var233
/* : String */;
5418 char* var234
/* : NativeString */;
5419 long var235
/* : Int */;
5420 val
* var236
/* : String */;
5421 val
* var237
/* : Array[Object] */;
5422 long var238
/* : Int */;
5423 val
* var239
/* : NativeArray[Object] */;
5424 val
* var240
/* : String */;
5425 val
* var241
/* : MMethod */;
5433 var3
= string__NativeString__to_s_with_length(var1
, var2
);
5437 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
5440 if (var_objcla
== NULL
) {
5441 var6
= 1; /* is null */
5443 var6
= 0; /* arg is null but recv is not */
5449 var7
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
5450 var_unsafe_type
= var7
;
5456 var12
= string__NativeString__to_s_with_length(var10
, var11
);
5460 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>*/;
5462 if (var13
== NULL
) {
5463 var15
= 1; /* is null */
5465 var15
= 0; /* arg is null but recv is not */
5473 var20
= string__NativeString__to_s_with_length(var18
, var19
);
5477 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>*/;
5479 if (var21
== NULL
) {
5480 var23
= 1; /* is null */
5482 var23
= 0; /* arg is null but recv is not */
5488 var26
= "Type Error: Expected method \'iterator\' in type ";
5490 var28
= string__NativeString__to_s_with_length(var26
, var27
);
5494 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
5495 { /* var29 = array_instance Array[Object] */
5497 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
5498 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var25
;
5499 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_mtype
;
5500 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
5501 CHECK_NEW_array__Array(var29
);
5503 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
5504 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var32
) /* error on <var_v:TypeVisitor>*/;
5506 var33
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
5510 var36
= "NOT YET IMPLEMENTED: Do \'for\' on ";
5512 var38
= string__NativeString__to_s_with_length(var36
, var37
);
5516 var39
= NEW_array__Array(&type_array__Arraykernel__Object
);
5517 { /* var39 = array_instance Array[Object] */
5519 var41
= NEW_array__NativeArray(var40
, &type_array__NativeArraykernel__Object
);
5520 ((struct instance_array__NativeArray
*)var41
)->values
[0] = (val
*) var35
;
5521 ((struct instance_array__NativeArray
*)var41
)->values
[1] = (val
*) var_mtype
;
5522 ((void (*)(val
*, val
*, long))(var39
->class->vft
[COLOR_array__Array__with_native
]))(var39
, var41
, var40
) /* with_native on <var39:Array[Object]>*/;
5523 CHECK_NEW_array__Array(var39
);
5525 var42
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_string__Object__to_s
]))(var39
) /* to_s on <var39:Array[Object]>*/;
5526 ((void (*)(val
*, val
*, val
*))(var33
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var33
, self
, var42
) /* error on <var33:ModelBuilder>*/;
5536 var47
= string__NativeString__to_s_with_length(var45
, var46
);
5541 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>*/;
5544 if (var_itdef
== NULL
) {
5545 var51
= 1; /* is null */
5547 var51
= 0; /* arg is null but recv is not */
5553 var54
= "Type Error: Expected method \'iterator\' in type ";
5555 var56
= string__NativeString__to_s_with_length(var54
, var55
);
5559 var57
= NEW_array__Array(&type_array__Arraykernel__Object
);
5560 { /* var57 = array_instance Array[Object] */
5562 var59
= NEW_array__NativeArray(var58
, &type_array__NativeArraykernel__Object
);
5563 ((struct instance_array__NativeArray
*)var59
)->values
[0] = (val
*) var53
;
5564 ((struct instance_array__NativeArray
*)var59
)->values
[1] = (val
*) var_mtype
;
5565 ((void (*)(val
*, val
*, long))(var57
->class->vft
[COLOR_array__Array__with_native
]))(var57
, var59
, var58
) /* with_native on <var57:Array[Object]>*/;
5566 CHECK_NEW_array__Array(var57
);
5568 var60
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_string__Object__to_s
]))(var57
) /* to_s on <var57:Array[Object]>*/;
5569 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var60
) /* error on <var_v:TypeVisitor>*/;
5573 var61
= ((val
* (*)(val
*))(var_itdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_itdef
) /* mproperty on <var_itdef:nullable CallSite(CallSite)>*/;
5574 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_iterator_61d
]))(self
, var61
) /* method_iterator= on <self:AForExpr>*/;
5575 var62
= ((val
* (*)(val
*))(var_itdef
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_itdef
) /* msignature on <var_itdef:nullable CallSite(CallSite)>*/;
5576 var63
= ((val
* (*)(val
*))(var62
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var62
) /* return_mtype on <var62:MSignature>*/;
5579 if (var_ittype
== NULL
) {
5580 var65
= 1; /* is null */
5582 var65
= 0; /* arg is null but recv is not */
5588 var68
= "Type Error: Expected method \'iterator\' to return an Iterator or MapIterator type";
5590 var70
= string__NativeString__to_s_with_length(var68
, var69
);
5594 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var67
) /* error on <var_v:TypeVisitor>*/;
5603 var75
= string__NativeString__to_s_with_length(var73
, var74
);
5607 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>*/;
5608 var_colit_cla
= var76
;
5612 var79
= "MapIterator";
5614 var81
= string__NativeString__to_s_with_length(var79
, var80
);
5618 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>*/;
5619 var_mapit_cla
= var82
;
5625 if (var_colit_cla
== NULL
) {
5626 var87
= 0; /* is null */
5628 var87
= 1; /* arg is null and recv is not */
5632 var88
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5633 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MType__as_nullable
]))(var88
) /* as_nullable on <var88:MClassType>*/;
5634 var90
= NEW_array__Array(&type_array__Arraymodel__MType
);
5635 { /* var90 = array_instance Array[MType] */
5637 var92
= NEW_array__NativeArray(var91
, &type_array__NativeArraymodel__MType
);
5638 ((struct instance_array__NativeArray
*)var92
)->values
[0] = (val
*) var89
;
5639 ((void (*)(val
*, val
*, long))(var90
->class->vft
[COLOR_array__Array__with_native
]))(var90
, var92
, var91
) /* with_native on <var90:Array[MType]>*/;
5640 CHECK_NEW_array__Array(var90
);
5642 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)>*/;
5643 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>*/;
5649 var95
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
5650 var96
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor
]))(var_v
) /* anchor on <var_v:TypeVisitor>*/;
5651 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)>*/;
5652 var_coltype
= var97
;
5653 var98
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
5654 var_variables
= var98
;
5655 if (var_variables
== NULL
) {
5656 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 872);
5659 var99
= ((long (*)(val
*))(var_variables
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_variables
) /* length on <var_variables:nullable Array[Variable]>*/;
5662 { /* Inline kernel#Int#!= (var99,var100) */
5663 var103
= var99
== var100
;
5667 RET_LABEL102
:(void)0;
5671 var106
= varonce105
;
5673 var107
= "Type Error: Expected one variable";
5675 var109
= string__NativeString__to_s_with_length(var107
, var108
);
5677 varonce105
= var106
;
5679 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var106
) /* error on <var_v:TypeVisitor>*/;
5681 if (var_variables
== NULL
) {
5682 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 875);
5685 var110
= ((val
* (*)(val
*))(var_variables
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_variables
) /* first on <var_variables:nullable Array[Variable]>*/;
5687 var111
= ((val
* (*)(val
*))(var_coltype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype
) /* arguments on <var_coltype:MClassType>*/;
5688 var112
= ((val
* (*)(val
*))(var111
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var111
) /* first on <var111:Array[MType]>*/;
5689 ((void (*)(val
*, val
*))(var110
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var110
, var112
) /* declared_type= on <var110:nullable Object(Variable)>*/;
5692 var_is_col
= var113
;
5696 if (var_mapit_cla
== NULL
) {
5697 var116
= 0; /* is null */
5699 var116
= 1; /* arg is null and recv is not */
5703 var118
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5704 var119
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5705 var120
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_model__MType__as_nullable
]))(var119
) /* as_nullable on <var119:MClassType>*/;
5706 var121
= NEW_array__Array(&type_array__Arraymodel__MType
);
5707 { /* var121 = array_instance Array[MType] */
5709 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraymodel__MType
);
5710 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var118
;
5711 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var120
;
5712 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[MType]>*/;
5713 CHECK_NEW_array__Array(var121
);
5715 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)>*/;
5716 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>*/;
5722 var126
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
5723 var127
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor
]))(var_v
) /* anchor on <var_v:TypeVisitor>*/;
5724 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)>*/;
5725 var_coltype129
= var128
;
5726 var130
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
5727 var_variables131
= var130
;
5728 if (var_variables131
== NULL
) {
5729 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 884);
5732 var132
= ((long (*)(val
*))(var_variables131
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_variables131
) /* length on <var_variables131:nullable Array[Variable]>*/;
5735 { /* Inline kernel#Int#!= (var132,var133) */
5736 var136
= var132
== var133
;
5740 RET_LABEL135
:(void)0;
5744 var139
= varonce138
;
5746 var140
= "Type Error: Expected two variables";
5748 var142
= string__NativeString__to_s_with_length(var140
, var141
);
5750 varonce138
= var139
;
5752 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var139
) /* error on <var_v:TypeVisitor>*/;
5755 if (var_variables131
== NULL
) {
5756 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 887);
5759 var144
= ((val
* (*)(val
*, long))(var_variables131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_variables131
, var143
) /* [] on <var_variables131:nullable Array[Variable]>*/;
5761 var145
= ((val
* (*)(val
*))(var_coltype129
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype129
) /* arguments on <var_coltype129:MClassType>*/;
5763 var147
= ((val
* (*)(val
*, long))(var145
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var145
, var146
) /* [] on <var145:Array[MType]>*/;
5764 ((void (*)(val
*, val
*))(var144
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var144
, var147
) /* declared_type= on <var144:nullable Object(Variable)>*/;
5766 if (var_variables131
== NULL
) {
5767 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 888);
5770 var149
= ((val
* (*)(val
*, long))(var_variables131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_variables131
, var148
) /* [] on <var_variables131:nullable Array[Variable]>*/;
5772 var150
= ((val
* (*)(val
*))(var_coltype129
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype129
) /* arguments on <var_coltype129:MClassType>*/;
5774 var152
= ((val
* (*)(val
*, long))(var150
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var150
, var151
) /* [] on <var150:Array[MType]>*/;
5775 ((void (*)(val
*, val
*))(var149
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var149
, var152
) /* declared_type= on <var149:nullable Object(Variable)>*/;
5778 var_is_map
= var153
;
5781 var155
= !var_is_col
;
5784 var157
= !var_is_map
;
5791 var159
= varonce158
;
5793 var160
= "Type Error: Expected method \'iterator\' to return an Iterator of MapIterator type";
5795 var162
= string__NativeString__to_s_with_length(var160
, var161
);
5797 varonce158
= var159
;
5799 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var159
) /* error on <var_v:TypeVisitor>*/;
5803 var163
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5805 var164
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
5809 /* <var_mtype:MType> isa MClassType */
5810 cltype
= type_model__MClassType
.color
;
5811 idtype
= type_model__MClassType
.id
;
5812 if(cltype
>= var_mtype
->type
->table_size
) {
5815 var165
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5818 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 901);
5821 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__coltype_61d
]))(self
, var_mtype
) /* coltype= on <self:AForExpr>*/;
5823 var167
= varonce166
;
5827 var170
= string__NativeString__to_s_with_length(var168
, var169
);
5829 varonce166
= var167
;
5832 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>*/;
5835 if (var_ikdef
== NULL
) {
5836 var174
= 1; /* is null */
5838 var174
= 0; /* arg is null but recv is not */
5842 var176
= varonce175
;
5844 var177
= "Type Error: Expected method \'is_ok\' in Iterator type ";
5846 var179
= string__NativeString__to_s_with_length(var177
, var178
);
5848 varonce175
= var176
;
5850 var180
= NEW_array__Array(&type_array__Arraykernel__Object
);
5851 { /* var180 = array_instance Array[Object] */
5853 var182
= NEW_array__NativeArray(var181
, &type_array__NativeArraykernel__Object
);
5854 ((struct instance_array__NativeArray
*)var182
)->values
[0] = (val
*) var176
;
5855 ((struct instance_array__NativeArray
*)var182
)->values
[1] = (val
*) var_ittype
;
5856 ((void (*)(val
*, val
*, long))(var180
->class->vft
[COLOR_array__Array__with_native
]))(var180
, var182
, var181
) /* with_native on <var180:Array[Object]>*/;
5857 CHECK_NEW_array__Array(var180
);
5859 var183
= ((val
* (*)(val
*))(var180
->class->vft
[COLOR_string__Object__to_s
]))(var180
) /* to_s on <var180:Array[Object]>*/;
5860 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var183
) /* error on <var_v:TypeVisitor>*/;
5864 var184
= ((val
* (*)(val
*))(var_ikdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_ikdef
) /* mproperty on <var_ikdef:nullable CallSite(CallSite)>*/;
5865 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_is_ok_61d
]))(self
, var184
) /* method_is_ok= on <self:AForExpr>*/;
5867 var186
= varonce185
;
5871 var189
= string__NativeString__to_s_with_length(var187
, var188
);
5873 varonce185
= var186
;
5876 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>*/;
5877 var_itemdef
= var191
;
5879 if (var_itemdef
== NULL
) {
5880 var193
= 1; /* is null */
5882 var193
= 0; /* arg is null but recv is not */
5886 var195
= varonce194
;
5888 var196
= "Type Error: Expected method \'item\' in Iterator type ";
5890 var198
= string__NativeString__to_s_with_length(var196
, var197
);
5892 varonce194
= var195
;
5894 var199
= NEW_array__Array(&type_array__Arraykernel__Object
);
5895 { /* var199 = array_instance Array[Object] */
5897 var201
= NEW_array__NativeArray(var200
, &type_array__NativeArraykernel__Object
);
5898 ((struct instance_array__NativeArray
*)var201
)->values
[0] = (val
*) var195
;
5899 ((struct instance_array__NativeArray
*)var201
)->values
[1] = (val
*) var_ittype
;
5900 ((void (*)(val
*, val
*, long))(var199
->class->vft
[COLOR_array__Array__with_native
]))(var199
, var201
, var200
) /* with_native on <var199:Array[Object]>*/;
5901 CHECK_NEW_array__Array(var199
);
5903 var202
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_string__Object__to_s
]))(var199
) /* to_s on <var199:Array[Object]>*/;
5904 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var202
) /* error on <var_v:TypeVisitor>*/;
5908 var203
= ((val
* (*)(val
*))(var_itemdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_itemdef
) /* mproperty on <var_itemdef:nullable CallSite(CallSite)>*/;
5909 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_item_61d
]))(self
, var203
) /* method_item= on <self:AForExpr>*/;
5911 var205
= varonce204
;
5915 var208
= string__NativeString__to_s_with_length(var206
, var207
);
5917 varonce204
= var205
;
5920 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>*/;
5921 var_nextdef
= var210
;
5923 if (var_nextdef
== NULL
) {
5924 var212
= 1; /* is null */
5926 var212
= 0; /* arg is null but recv is not */
5930 var214
= varonce213
;
5932 var215
= "Type Error: Expected method \'next\' in Iterator type ";
5934 var217
= string__NativeString__to_s_with_length(var215
, var216
);
5936 varonce213
= var214
;
5938 var218
= NEW_array__Array(&type_array__Arraykernel__Object
);
5939 { /* var218 = array_instance Array[Object] */
5941 var220
= NEW_array__NativeArray(var219
, &type_array__NativeArraykernel__Object
);
5942 ((struct instance_array__NativeArray
*)var220
)->values
[0] = (val
*) var214
;
5943 ((struct instance_array__NativeArray
*)var220
)->values
[1] = (val
*) var_ittype
;
5944 ((void (*)(val
*, val
*, long))(var218
->class->vft
[COLOR_array__Array__with_native
]))(var218
, var220
, var219
) /* with_native on <var218:Array[Object]>*/;
5945 CHECK_NEW_array__Array(var218
);
5947 var221
= ((val
* (*)(val
*))(var218
->class->vft
[COLOR_string__Object__to_s
]))(var218
) /* to_s on <var218:Array[Object]>*/;
5948 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var221
) /* error on <var_v:TypeVisitor>*/;
5952 var222
= ((val
* (*)(val
*))(var_nextdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_nextdef
) /* mproperty on <var_nextdef:nullable CallSite(CallSite)>*/;
5953 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_next_61d
]))(self
, var222
) /* method_next= on <self:AForExpr>*/;
5956 var224
= varonce223
;
5960 var227
= string__NativeString__to_s_with_length(var225
, var226
);
5962 varonce223
= var224
;
5965 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>*/;
5966 var_keydef
= var229
;
5968 if (var_keydef
== NULL
) {
5969 var231
= 1; /* is null */
5971 var231
= 0; /* arg is null but recv is not */
5975 var233
= varonce232
;
5977 var234
= "Type Error: Expected method \'key\' in Iterator type ";
5979 var236
= string__NativeString__to_s_with_length(var234
, var235
);
5981 varonce232
= var233
;
5983 var237
= NEW_array__Array(&type_array__Arraykernel__Object
);
5984 { /* var237 = array_instance Array[Object] */
5986 var239
= NEW_array__NativeArray(var238
, &type_array__NativeArraykernel__Object
);
5987 ((struct instance_array__NativeArray
*)var239
)->values
[0] = (val
*) var233
;
5988 ((struct instance_array__NativeArray
*)var239
)->values
[1] = (val
*) var_ittype
;
5989 ((void (*)(val
*, val
*, long))(var237
->class->vft
[COLOR_array__Array__with_native
]))(var237
, var239
, var238
) /* with_native on <var237:Array[Object]>*/;
5990 CHECK_NEW_array__Array(var237
);
5992 var240
= ((val
* (*)(val
*))(var237
->class->vft
[COLOR_string__Object__to_s
]))(var237
) /* to_s on <var237:Array[Object]>*/;
5993 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var240
) /* error on <var_v:TypeVisitor>*/;
5997 var241
= ((val
* (*)(val
*))(var_keydef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_keydef
) /* mproperty on <var_keydef:nullable CallSite(CallSite)>*/;
5998 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_key_61d
]))(self
, var241
) /* method_key= on <self:AForExpr>*/;
6003 /* method typing#AForExpr#do_type_iterator for (self: Object, TypeVisitor, MType) */
6004 void VIRTUAL_typing__AForExpr__do_type_iterator(val
* self
, val
* p0
, val
* p1
) {
6005 typing__AForExpr__do_type_iterator(self
, p0
, p1
);
6008 /* method typing#AForExpr#accept_typing for (self: AForExpr, TypeVisitor) */
6009 void typing__AForExpr__accept_typing(val
* self
, val
* p0
) {
6010 val
* var_v
/* var v: TypeVisitor */;
6011 val
* var
/* : AExpr */;
6012 val
* var1
/* : nullable MType */;
6013 val
* var_mtype
/* var mtype: nullable MType */;
6014 val
* var2
/* : null */;
6015 short int var3
/* : Bool */;
6016 val
* var4
/* : nullable AExpr */;
6017 short int var5
/* : Bool */;
6019 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_expr
]))(self
) /* n_expr on <self:AForExpr>*/;
6020 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
6023 if (var_mtype
== NULL
) {
6024 var3
= 1; /* is null */
6026 var3
= 0; /* arg is null but recv is not */
6032 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__do_type_iterator
]))(self
, var_v
, var_mtype
) /* do_type_iterator on <self:AForExpr>*/;
6033 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_block
]))(self
) /* n_block on <self:AForExpr>*/;
6034 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var4
) /* visit_stmt on <var_v:TypeVisitor>*/;
6036 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var5
) /* is_typed= on <self:AForExpr>*/;
6039 /* method typing#AForExpr#accept_typing for (self: Object, TypeVisitor) */
6040 void VIRTUAL_typing__AForExpr__accept_typing(val
* self
, val
* p0
) {
6041 typing__AForExpr__accept_typing(self
, p0
);
6044 /* method typing#AAssertExpr#accept_typing for (self: AAssertExpr, TypeVisitor) */
6045 void typing__AAssertExpr__accept_typing(val
* self
, val
* p0
) {
6046 val
* var_v
/* var v: TypeVisitor */;
6047 val
* var
/* : AExpr */;
6048 val
* var1
/* : nullable MType */;
6049 val
* var2
/* : nullable AExpr */;
6050 short int var3
/* : Bool */;
6052 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_expr
]))(self
) /* n_expr on <self:AAssertExpr>*/;
6053 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6055 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_else
]))(self
) /* n_else on <self:AAssertExpr>*/;
6056 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
6058 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AAssertExpr>*/;
6061 /* method typing#AAssertExpr#accept_typing for (self: Object, TypeVisitor) */
6062 void VIRTUAL_typing__AAssertExpr__accept_typing(val
* self
, val
* p0
) {
6063 typing__AAssertExpr__accept_typing(self
, p0
);
6066 /* method typing#AOrExpr#accept_typing for (self: AOrExpr, TypeVisitor) */
6067 void typing__AOrExpr__accept_typing(val
* self
, val
* p0
) {
6068 val
* var_v
/* var v: TypeVisitor */;
6069 val
* var
/* : AExpr */;
6070 val
* var1
/* : nullable MType */;
6071 val
* var2
/* : AExpr */;
6072 val
* var3
/* : nullable MType */;
6073 val
* var4
/* : nullable MType */;
6075 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr
]))(self
) /* n_expr on <self:AOrExpr>*/;
6076 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6078 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrExpr>*/;
6079 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6081 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6082 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AOrExpr>*/;
6085 /* method typing#AOrExpr#accept_typing for (self: Object, TypeVisitor) */
6086 void VIRTUAL_typing__AOrExpr__accept_typing(val
* self
, val
* p0
) {
6087 typing__AOrExpr__accept_typing(self
, p0
);
6090 /* method typing#AImpliesExpr#accept_typing for (self: AImpliesExpr, TypeVisitor) */
6091 void typing__AImpliesExpr__accept_typing(val
* self
, val
* p0
) {
6092 val
* var_v
/* var v: TypeVisitor */;
6093 val
* var
/* : AExpr */;
6094 val
* var1
/* : nullable MType */;
6095 val
* var2
/* : AExpr */;
6096 val
* var3
/* : nullable MType */;
6097 val
* var4
/* : nullable MType */;
6099 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr
]))(self
) /* n_expr on <self:AImpliesExpr>*/;
6100 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6102 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr2
]))(self
) /* n_expr2 on <self:AImpliesExpr>*/;
6103 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6105 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6106 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AImpliesExpr>*/;
6109 /* method typing#AImpliesExpr#accept_typing for (self: Object, TypeVisitor) */
6110 void VIRTUAL_typing__AImpliesExpr__accept_typing(val
* self
, val
* p0
) {
6111 typing__AImpliesExpr__accept_typing(self
, p0
);
6114 /* method typing#AAndExpr#accept_typing for (self: AAndExpr, TypeVisitor) */
6115 void typing__AAndExpr__accept_typing(val
* self
, val
* p0
) {
6116 val
* var_v
/* var v: TypeVisitor */;
6117 val
* var
/* : AExpr */;
6118 val
* var1
/* : nullable MType */;
6119 val
* var2
/* : AExpr */;
6120 val
* var3
/* : nullable MType */;
6121 val
* var4
/* : nullable MType */;
6123 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr
]))(self
) /* n_expr on <self:AAndExpr>*/;
6124 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6126 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr2
]))(self
) /* n_expr2 on <self:AAndExpr>*/;
6127 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6129 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6130 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AAndExpr>*/;
6133 /* method typing#AAndExpr#accept_typing for (self: Object, TypeVisitor) */
6134 void VIRTUAL_typing__AAndExpr__accept_typing(val
* self
, val
* p0
) {
6135 typing__AAndExpr__accept_typing(self
, p0
);
6138 /* method typing#ANotExpr#accept_typing for (self: ANotExpr, TypeVisitor) */
6139 void typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
6140 val
* var_v
/* var v: TypeVisitor */;
6141 val
* var
/* : AExpr */;
6142 val
* var1
/* : nullable MType */;
6143 val
* var2
/* : nullable MType */;
6145 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANotExpr__n_expr
]))(self
) /* n_expr on <self:ANotExpr>*/;
6146 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6148 var2
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6149 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:ANotExpr>*/;
6152 /* method typing#ANotExpr#accept_typing for (self: Object, TypeVisitor) */
6153 void VIRTUAL_typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
6154 typing__ANotExpr__accept_typing(self
, p0
);
6157 /* method typing#AOrElseExpr#accept_typing for (self: AOrElseExpr, TypeVisitor) */
6158 void typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
6159 val
* var_v
/* var v: TypeVisitor */;
6160 val
* var
/* : AExpr */;
6161 val
* var1
/* : nullable MType */;
6162 val
* var_t1
/* var t1: nullable MType */;
6163 val
* var2
/* : AExpr */;
6164 val
* var3
/* : nullable MType */;
6165 val
* var_t2
/* var t2: nullable MType */;
6166 short int var4
/* : Bool */;
6167 val
* var5
/* : null */;
6168 short int var6
/* : Bool */;
6169 short int var_
/* var : Bool */;
6170 val
* var7
/* : null */;
6171 short int var8
/* : Bool */;
6172 short int var9
/* : Bool */;
6175 val
* var10
/* : MType */;
6176 val
* var11
/* : Array[MType] */;
6177 long var12
/* : Int */;
6178 val
* var13
/* : NativeArray[MType] */;
6179 val
* var14
/* : nullable MType */;
6180 val
* var_t
/* var t: nullable MType */;
6181 val
* var15
/* : null */;
6182 short int var16
/* : Bool */;
6183 val
* var17
/* : MModule */;
6184 val
* var18
/* : MClassType */;
6185 short int var19
/* : Bool */;
6188 val
* var22
/* : MType */;
6190 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrElseExpr__n_expr
]))(self
) /* n_expr on <self:AOrElseExpr>*/;
6191 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
6193 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrElseExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrElseExpr>*/;
6194 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var2
) /* visit_expr on <var_v:TypeVisitor>*/;
6197 if (var_t1
== NULL
) {
6198 var6
= 1; /* is null */
6200 var6
= 0; /* arg is null but recv is not */
6207 if (var_t2
== NULL
) {
6208 var8
= 1; /* is null */
6210 var8
= 0; /* arg is null but recv is not */
6218 /* <var_t1:nullable MType(MType)> isa MNullableType */
6219 cltype
= type_model__MNullableType
.color
;
6220 idtype
= type_model__MNullableType
.id
;
6221 if(cltype
>= var_t1
->type
->table_size
) {
6224 var9
= var_t1
->type
->type_table
[cltype
] == idtype
;
6227 var10
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_t1
) /* mtype on <var_t1:nullable MType(MNullableType)>*/;
6231 var11
= NEW_array__Array(&type_array__Arraymodel__MType
);
6232 { /* var11 = array_instance Array[MType] */
6234 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraymodel__MType
);
6235 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_t1
;
6236 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_t2
;
6237 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[MType]>*/;
6238 CHECK_NEW_array__Array(var11
);
6240 var14
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(var_v
, self
, var11
) /* merge_types on <var_v:TypeVisitor>*/;
6243 if (var_t
== NULL
) {
6244 var16
= 1; /* is null */
6246 var16
= 0; /* arg is null but recv is not */
6249 var17
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
6250 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MModule__object_type
]))(var17
) /* object_type on <var17:MModule>*/;
6252 /* <var_t2:nullable MType(MType)> isa MNullableType */
6253 cltype20
= type_model__MNullableType
.color
;
6254 idtype21
= type_model__MNullableType
.id
;
6255 if(cltype20
>= var_t2
->type
->table_size
) {
6258 var19
= var_t2
->type
->type_table
[cltype20
] == idtype21
;
6261 var22
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t
) /* as_nullable on <var_t:nullable MType(MClassType)>*/;
6267 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_t
) /* mtype= on <self:AOrElseExpr>*/;
6270 /* method typing#AOrElseExpr#accept_typing for (self: Object, TypeVisitor) */
6271 void VIRTUAL_typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
6272 typing__AOrElseExpr__accept_typing(self
, p0
);
6275 /* method typing#AEeExpr#accept_typing for (self: AEeExpr, TypeVisitor) */
6276 void typing__AEeExpr__accept_typing(val
* self
, val
* p0
) {
6277 val
* var_v
/* var v: TypeVisitor */;
6278 val
* var
/* : AExpr */;
6279 val
* var1
/* : nullable MType */;
6280 val
* var2
/* : AExpr */;
6281 val
* var3
/* : nullable MType */;
6282 val
* var4
/* : nullable MType */;
6284 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AEeExpr__n_expr
]))(self
) /* n_expr on <self:AEeExpr>*/;
6285 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
6287 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AEeExpr__n_expr2
]))(self
) /* n_expr2 on <self:AEeExpr>*/;
6288 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var2
) /* visit_expr on <var_v:TypeVisitor>*/;
6290 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6291 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AEeExpr>*/;
6294 /* method typing#AEeExpr#accept_typing for (self: Object, TypeVisitor) */
6295 void VIRTUAL_typing__AEeExpr__accept_typing(val
* self
, val
* p0
) {
6296 typing__AEeExpr__accept_typing(self
, p0
);
6299 /* method typing#ATrueExpr#accept_typing for (self: ATrueExpr, TypeVisitor) */
6300 void typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
6301 val
* var_v
/* var v: TypeVisitor */;
6302 val
* var
/* : nullable MType */;
6304 var
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6305 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:ATrueExpr>*/;
6308 /* method typing#ATrueExpr#accept_typing for (self: Object, TypeVisitor) */
6309 void VIRTUAL_typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
6310 typing__ATrueExpr__accept_typing(self
, p0
);
6313 /* method typing#AFalseExpr#accept_typing for (self: AFalseExpr, TypeVisitor) */
6314 void typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
6315 val
* var_v
/* var v: TypeVisitor */;
6316 val
* var
/* : nullable MType */;
6318 var
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6319 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:AFalseExpr>*/;
6322 /* method typing#AFalseExpr#accept_typing for (self: Object, TypeVisitor) */
6323 void VIRTUAL_typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
6324 typing__AFalseExpr__accept_typing(self
, p0
);
6327 /* method typing#AIntExpr#accept_typing for (self: AIntExpr, TypeVisitor) */
6328 void typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
6329 val
* var_v
/* var v: TypeVisitor */;
6330 static val
* varonce
;
6331 val
* var
/* : String */;
6332 char* var1
/* : NativeString */;
6333 long var2
/* : Int */;
6334 val
* var3
/* : String */;
6335 val
* var4
/* : nullable MClass */;
6336 val
* var_mclass
/* var mclass: nullable MClass */;
6337 val
* var5
/* : null */;
6338 short int var6
/* : Bool */;
6339 val
* var7
/* : MClassType */;
6346 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6350 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6353 if (var_mclass
== NULL
) {
6354 var6
= 1; /* is null */
6356 var6
= 0; /* arg is null but recv is not */
6362 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6363 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AIntExpr>*/;
6366 /* method typing#AIntExpr#accept_typing for (self: Object, TypeVisitor) */
6367 void VIRTUAL_typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
6368 typing__AIntExpr__accept_typing(self
, p0
);
6371 /* method typing#AFloatExpr#accept_typing for (self: AFloatExpr, TypeVisitor) */
6372 void typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
6373 val
* var_v
/* var v: TypeVisitor */;
6374 static val
* varonce
;
6375 val
* var
/* : String */;
6376 char* var1
/* : NativeString */;
6377 long var2
/* : Int */;
6378 val
* var3
/* : String */;
6379 val
* var4
/* : nullable MClass */;
6380 val
* var_mclass
/* var mclass: nullable MClass */;
6381 val
* var5
/* : null */;
6382 short int var6
/* : Bool */;
6383 val
* var7
/* : MClassType */;
6390 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6394 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6397 if (var_mclass
== NULL
) {
6398 var6
= 1; /* is null */
6400 var6
= 0; /* arg is null but recv is not */
6406 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6407 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AFloatExpr>*/;
6410 /* method typing#AFloatExpr#accept_typing for (self: Object, TypeVisitor) */
6411 void VIRTUAL_typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
6412 typing__AFloatExpr__accept_typing(self
, p0
);
6415 /* method typing#ACharExpr#accept_typing for (self: ACharExpr, TypeVisitor) */
6416 void typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
6417 val
* var_v
/* var v: TypeVisitor */;
6418 static val
* varonce
;
6419 val
* var
/* : String */;
6420 char* var1
/* : NativeString */;
6421 long var2
/* : Int */;
6422 val
* var3
/* : String */;
6423 val
* var4
/* : nullable MClass */;
6424 val
* var_mclass
/* var mclass: nullable MClass */;
6425 val
* var5
/* : null */;
6426 short int var6
/* : Bool */;
6427 val
* var7
/* : MClassType */;
6434 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6438 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6441 if (var_mclass
== NULL
) {
6442 var6
= 1; /* is null */
6444 var6
= 0; /* arg is null but recv is not */
6450 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6451 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:ACharExpr>*/;
6454 /* method typing#ACharExpr#accept_typing for (self: Object, TypeVisitor) */
6455 void VIRTUAL_typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
6456 typing__ACharExpr__accept_typing(self
, p0
);
6459 /* method typing#AStringFormExpr#accept_typing for (self: AStringFormExpr, TypeVisitor) */
6460 void typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
6461 val
* var_v
/* var v: TypeVisitor */;
6462 static val
* varonce
;
6463 val
* var
/* : String */;
6464 char* var1
/* : NativeString */;
6465 long var2
/* : Int */;
6466 val
* var3
/* : String */;
6467 val
* var4
/* : nullable MClass */;
6468 val
* var_mclass
/* var mclass: nullable MClass */;
6469 val
* var5
/* : null */;
6470 short int var6
/* : Bool */;
6471 val
* var7
/* : MClassType */;
6478 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6482 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6485 if (var_mclass
== NULL
) {
6486 var6
= 1; /* is null */
6488 var6
= 0; /* arg is null but recv is not */
6494 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6495 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AStringFormExpr>*/;
6498 /* method typing#AStringFormExpr#accept_typing for (self: Object, TypeVisitor) */
6499 void VIRTUAL_typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
6500 typing__AStringFormExpr__accept_typing(self
, p0
);
6503 /* method typing#ASuperstringExpr#accept_typing for (self: ASuperstringExpr, TypeVisitor) */
6504 void typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
6505 val
* var_v
/* var v: TypeVisitor */;
6506 static val
* varonce
;
6507 val
* var
/* : String */;
6508 char* var1
/* : NativeString */;
6509 long var2
/* : Int */;
6510 val
* var3
/* : String */;
6511 val
* var4
/* : nullable MClass */;
6512 val
* var_mclass
/* var mclass: nullable MClass */;
6513 val
* var5
/* : null */;
6514 short int var6
/* : Bool */;
6515 val
* var7
/* : MClassType */;
6516 val
* var8
/* : ANodes[AExpr] */;
6517 val
* var9
/* : Iterator[nullable Object] */;
6518 short int var10
/* : Bool */;
6519 val
* var11
/* : nullable Object */;
6520 val
* var_nexpr
/* var nexpr: AExpr */;
6521 val
* var12
/* : nullable MType */;
6522 val
* var_t
/* var t: nullable MType */;
6529 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6533 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6536 if (var_mclass
== NULL
) {
6537 var6
= 1; /* is null */
6539 var6
= 0; /* arg is null but recv is not */
6545 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6546 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:ASuperstringExpr>*/;
6547 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperstringExpr__n_exprs
]))(self
) /* n_exprs on <self:ASuperstringExpr>*/;
6548 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:ANodes[AExpr]>*/;
6550 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
6552 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
6554 var12
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
6556 CONTINUE_label
: (void)0;
6557 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
6559 BREAK_label
: (void)0;
6562 /* method typing#ASuperstringExpr#accept_typing for (self: Object, TypeVisitor) */
6563 void VIRTUAL_typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
6564 typing__ASuperstringExpr__accept_typing(self
, p0
);
6567 /* method typing#AArrayExpr#accept_typing for (self: AArrayExpr, TypeVisitor) */
6568 void typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
6569 val
* var_v
/* var v: TypeVisitor */;
6570 val
* var
/* : Array[nullable MType] */;
6571 val
* var_mtypes
/* var mtypes: Array[nullable MType] */;
6572 val
* var1
/* : AExprs */;
6573 val
* var2
/* : ANodes[AExpr] */;
6574 val
* var3
/* : Iterator[nullable Object] */;
6575 short int var4
/* : Bool */;
6576 val
* var5
/* : nullable Object */;
6577 val
* var_e
/* var e: AExpr */;
6578 val
* var6
/* : nullable MType */;
6579 val
* var_t
/* var t: nullable MType */;
6580 val
* var7
/* : null */;
6581 short int var8
/* : Bool */;
6582 val
* var9
/* : nullable MType */;
6583 val
* var_mtype
/* var mtype: nullable MType */;
6584 val
* var10
/* : null */;
6585 short int var11
/* : Bool */;
6586 static val
* varonce
;
6587 val
* var12
/* : String */;
6588 char* var13
/* : NativeString */;
6589 long var14
/* : Int */;
6590 val
* var15
/* : String */;
6591 static val
* varonce16
;
6592 val
* var17
/* : String */;
6593 char* var18
/* : NativeString */;
6594 long var19
/* : Int */;
6595 val
* var20
/* : String */;
6596 val
* var21
/* : String */;
6597 val
* var22
/* : Array[Object] */;
6598 long var23
/* : Int */;
6599 val
* var24
/* : NativeArray[Object] */;
6600 val
* var25
/* : String */;
6601 static val
* varonce26
;
6602 val
* var27
/* : String */;
6603 char* var28
/* : NativeString */;
6604 long var29
/* : Int */;
6605 val
* var30
/* : String */;
6606 val
* var31
/* : nullable MClass */;
6607 val
* var_mclass
/* var mclass: nullable MClass */;
6608 val
* var32
/* : null */;
6609 short int var33
/* : Bool */;
6610 val
* var34
/* : Array[MType] */;
6611 long var35
/* : Int */;
6612 val
* var36
/* : NativeArray[MType] */;
6613 val
* var37
/* : MClassType */;
6615 var
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
6616 ((void (*)(val
*))(var
->class->vft
[COLOR_array__Array__init
]))(var
) /* init on <var:Array[nullable MType]>*/;
6617 CHECK_NEW_array__Array(var
);
6619 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AArrayExpr__n_exprs
]))(self
) /* n_exprs on <self:AArrayExpr>*/;
6620 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(var1
) /* n_exprs on <var1:AExprs>*/;
6621 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:ANodes[AExpr]>*/;
6623 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
6625 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
6627 var6
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_e
) /* visit_expr on <var_v:TypeVisitor>*/;
6630 if (var_t
== NULL
) {
6631 var8
= 1; /* is null */
6633 var8
= 0; /* arg is null but recv is not */
6639 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mtypes
, var_t
) /* add on <var_mtypes:Array[nullable MType]>*/;
6640 CONTINUE_label
: (void)0;
6641 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
6643 BREAK_label
: (void)0;
6644 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>*/;
6647 if (var_mtype
== NULL
) {
6648 var11
= 1; /* is null */
6650 var11
= 0; /* arg is null but recv is not */
6656 var13
= "Type Error: ambiguous array type ";
6658 var15
= string__NativeString__to_s_with_length(var13
, var14
);
6667 var20
= string__NativeString__to_s_with_length(var18
, var19
);
6671 var21
= ((val
* (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_string__Collection__join
]))(var_mtypes
, var17
) /* join on <var_mtypes:Array[nullable MType]>*/;
6672 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
6673 { /* var22 = array_instance Array[Object] */
6675 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
6676 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var12
;
6677 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var21
;
6678 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
6679 CHECK_NEW_array__Array(var22
);
6681 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
6682 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var25
) /* error on <var_v:TypeVisitor>*/;
6691 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6695 var31
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var27
) /* get_mclass on <var_v:TypeVisitor>*/;
6698 if (var_mclass
== NULL
) {
6699 var33
= 1; /* is null */
6701 var33
= 0; /* arg is null but recv is not */
6707 var34
= NEW_array__Array(&type_array__Arraymodel__MType
);
6708 { /* var34 = array_instance Array[MType] */
6710 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraymodel__MType
);
6711 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var_mtype
;
6712 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[MType]>*/;
6713 CHECK_NEW_array__Array(var34
);
6715 var37
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var34
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6716 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var37
) /* mtype= on <self:AArrayExpr>*/;
6719 /* method typing#AArrayExpr#accept_typing for (self: Object, TypeVisitor) */
6720 void VIRTUAL_typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
6721 typing__AArrayExpr__accept_typing(self
, p0
);
6724 /* method typing#ARangeExpr#accept_typing for (self: ARangeExpr, TypeVisitor) */
6725 void typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
6726 val
* var_v
/* var v: TypeVisitor */;
6727 static val
* varonce
;
6728 val
* var
/* : String */;
6729 char* var1
/* : NativeString */;
6730 long var2
/* : Int */;
6731 val
* var3
/* : String */;
6732 val
* var4
/* : nullable MClass */;
6733 val
* var_discrete_class
/* var discrete_class: nullable MClass */;
6734 val
* var5
/* : null */;
6735 short int var6
/* : Bool */;
6736 val
* var7
/* : MClassDef */;
6737 val
* var8
/* : MClassType */;
6738 val
* var_discrete_type
/* var discrete_type: MClassType */;
6739 val
* var9
/* : AExpr */;
6740 val
* var10
/* : nullable MType */;
6741 val
* var_t1
/* var t1: nullable MType */;
6742 val
* var11
/* : AExpr */;
6743 val
* var12
/* : nullable MType */;
6744 val
* var_t2
/* var t2: nullable MType */;
6745 short int var13
/* : Bool */;
6746 val
* var14
/* : null */;
6747 short int var15
/* : Bool */;
6748 short int var_
/* var : Bool */;
6749 val
* var16
/* : null */;
6750 short int var17
/* : Bool */;
6751 static val
* varonce18
;
6752 val
* var19
/* : String */;
6753 char* var20
/* : NativeString */;
6754 long var21
/* : Int */;
6755 val
* var22
/* : String */;
6756 val
* var23
/* : nullable MClass */;
6757 val
* var_mclass
/* var mclass: nullable MClass */;
6758 val
* var24
/* : null */;
6759 short int var25
/* : Bool */;
6760 short int var26
/* : Bool */;
6761 val
* var27
/* : Array[MType] */;
6762 long var28
/* : Int */;
6763 val
* var29
/* : NativeArray[MType] */;
6764 val
* var30
/* : MClassType */;
6765 short int var31
/* : Bool */;
6766 val
* var32
/* : Array[MType] */;
6767 long var33
/* : Int */;
6768 val
* var34
/* : NativeArray[MType] */;
6769 val
* var35
/* : MClassType */;
6770 static val
* varonce36
;
6771 val
* var37
/* : String */;
6772 char* var38
/* : NativeString */;
6773 long var39
/* : Int */;
6774 val
* var40
/* : String */;
6775 static val
* varonce41
;
6776 val
* var42
/* : String */;
6777 char* var43
/* : NativeString */;
6778 long var44
/* : Int */;
6779 val
* var45
/* : String */;
6780 val
* var46
/* : Array[Object] */;
6781 long var47
/* : Int */;
6782 val
* var48
/* : NativeArray[Object] */;
6783 val
* var49
/* : String */;
6790 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6794 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6795 var_discrete_class
= var4
;
6797 if (var_discrete_class
== NULL
) {
6798 var6
= 1; /* is null */
6800 var6
= 0; /* arg is null but recv is not */
6806 var7
= ((val
* (*)(val
*))(var_discrete_class
->class->vft
[COLOR_model__MClass__intro
]))(var_discrete_class
) /* intro on <var_discrete_class:nullable MClass(MClass)>*/;
6807 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var7
) /* bound_mtype on <var7:MClassDef>*/;
6808 var_discrete_type
= var8
;
6809 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ARangeExpr__n_expr
]))(self
) /* n_expr on <self:ARangeExpr>*/;
6810 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>*/;
6812 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ARangeExpr__n_expr2
]))(self
) /* n_expr2 on <self:ARangeExpr>*/;
6813 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>*/;
6816 if (var_t1
== NULL
) {
6817 var15
= 1; /* is null */
6819 var15
= 0; /* arg is null but recv is not */
6826 if (var_t2
== NULL
) {
6827 var17
= 1; /* is null */
6829 var17
= 0; /* arg is null but recv is not */
6842 var22
= string__NativeString__to_s_with_length(var20
, var21
);
6846 var23
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var19
) /* get_mclass on <var_v:TypeVisitor>*/;
6849 if (var_mclass
== NULL
) {
6850 var25
= 1; /* is null */
6852 var25
= 0; /* arg is null but recv is not */
6858 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>*/;
6860 var27
= NEW_array__Array(&type_array__Arraymodel__MType
);
6861 { /* var27 = array_instance Array[MType] */
6863 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraymodel__MType
);
6864 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var_t2
;
6865 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[MType]>*/;
6866 CHECK_NEW_array__Array(var27
);
6868 var30
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var27
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6869 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var30
) /* mtype= on <self:ARangeExpr>*/;
6871 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>*/;
6873 var32
= NEW_array__Array(&type_array__Arraymodel__MType
);
6874 { /* var32 = array_instance Array[MType] */
6876 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraymodel__MType
);
6877 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var_t1
;
6878 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[MType]>*/;
6879 CHECK_NEW_array__Array(var32
);
6881 var35
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var32
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6882 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var35
) /* mtype= on <self:ARangeExpr>*/;
6887 var38
= "Type Error: Cannot create range: ";
6889 var40
= string__NativeString__to_s_with_length(var38
, var39
);
6898 var45
= string__NativeString__to_s_with_length(var43
, var44
);
6902 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
6903 { /* var46 = array_instance Array[Object] */
6905 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
6906 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var37
;
6907 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var_t1
;
6908 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var42
;
6909 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var_t2
;
6910 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
6911 CHECK_NEW_array__Array(var46
);
6913 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
6914 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var49
) /* error on <var_v:TypeVisitor>*/;
6919 /* method typing#ARangeExpr#accept_typing for (self: Object, TypeVisitor) */
6920 void VIRTUAL_typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
6921 typing__ARangeExpr__accept_typing(self
, p0
);
6924 /* method typing#ANullExpr#accept_typing for (self: ANullExpr, TypeVisitor) */
6925 void typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
6926 val
* var_v
/* var v: TypeVisitor */;
6927 val
* var
/* : MModule */;
6928 val
* var1
/* : Model */;
6929 val
* var2
/* : MNullType */;
6931 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
6932 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model_base__MModule__model
]))(var
) /* model on <var:MModule>*/;
6933 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__Model__null_type
]))(var1
) /* null_type on <var1:Model>*/;
6934 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:ANullExpr>*/;
6937 /* method typing#ANullExpr#accept_typing for (self: Object, TypeVisitor) */
6938 void VIRTUAL_typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
6939 typing__ANullExpr__accept_typing(self
, p0
);
6942 /* method typing#AIsaExpr#cast_type for (self: AIsaExpr): nullable MType */
6943 val
* typing__AIsaExpr__cast_type(val
* self
) {
6944 val
* var
/* : nullable MType */;
6945 val
* var1
/* : nullable MType */;
6946 var1
= self
->attrs
[COLOR_typing__AIsaExpr___64dcast_type
].val
; /* @cast_type on <self:AIsaExpr> */
6951 /* method typing#AIsaExpr#cast_type for (self: Object): nullable MType */
6952 val
* VIRTUAL_typing__AIsaExpr__cast_type(val
* self
) {
6953 val
* var
/* : nullable MType */;
6954 val
* var1
/* : nullable MType */;
6955 var1
= typing__AIsaExpr__cast_type(self
);
6960 /* method typing#AIsaExpr#cast_type= for (self: AIsaExpr, nullable MType) */
6961 void typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
6962 self
->attrs
[COLOR_typing__AIsaExpr___64dcast_type
].val
= p0
; /* @cast_type on <self:AIsaExpr> */
6965 /* method typing#AIsaExpr#cast_type= for (self: Object, nullable MType) */
6966 void VIRTUAL_typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
6967 typing__AIsaExpr__cast_type_61d(self
, p0
);
6970 /* method typing#AIsaExpr#accept_typing for (self: AIsaExpr, TypeVisitor) */
6971 void typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
6972 val
* var_v
/* var v: TypeVisitor */;
6973 val
* var
/* : AExpr */;
6974 val
* var1
/* : AType */;
6975 val
* var2
/* : nullable MType */;
6976 val
* var_mtype
/* var mtype: nullable MType */;
6977 val
* var3
/* : AExpr */;
6978 val
* var4
/* : nullable Variable */;
6979 val
* var_variable
/* var variable: nullable Variable */;
6980 val
* var5
/* : null */;
6981 short int var6
/* : Bool */;
6982 val
* var7
/* : AExpr */;
6983 val
* var8
/* : nullable MType */;
6984 val
* var_orig
/* var orig: nullable MType */;
6985 val
* var9
/* : String */;
6986 val
* var10
/* : null */;
6987 short int var11
/* : Bool */;
6988 val
* var12
/* : String */;
6989 static val
* varonce
;
6990 val
* var13
/* : String */;
6991 char* var14
/* : NativeString */;
6992 long var15
/* : Int */;
6993 val
* var16
/* : String */;
6994 val
* var_from
/* var from: String */;
6995 val
* var17
/* : String */;
6996 val
* var18
/* : null */;
6997 short int var19
/* : Bool */;
6998 val
* var20
/* : String */;
6999 static val
* varonce21
;
7000 val
* var22
/* : String */;
7001 char* var23
/* : NativeString */;
7002 long var24
/* : Int */;
7003 val
* var25
/* : String */;
7004 val
* var_to
/* var to: String */;
7005 val
* var26
/* : nullable FlowContext */;
7006 val
* var27
/* : FlowContext */;
7007 val
* var28
/* : nullable MType */;
7009 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
7010 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_type
]))(self
) /* n_type on <self:AIsaExpr>*/;
7011 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>*/;
7013 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AIsaExpr__cast_type_61d
]))(self
, var_mtype
) /* cast_type= on <self:AIsaExpr>*/;
7014 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
7015 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var3
) /* its_variable on <var3:AExpr>*/;
7016 var_variable
= var4
;
7018 if (var_variable
== NULL
) {
7019 var6
= 0; /* is null */
7021 var6
= 1; /* arg is null and recv is not */
7024 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
7025 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_typing__AExpr__mtype
]))(var7
) /* mtype on <var7:AExpr>*/;
7028 if (var_orig
== NULL
) {
7029 var11
= 0; /* is null */
7031 var11
= 1; /* arg is null and recv is not */
7034 var12
= ((val
* (*)(val
*))(var_orig
->class->vft
[COLOR_string__Object__to_s
]))(var_orig
) /* to_s on <var_orig:nullable MType(MType)>*/;
7042 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7050 if (var_mtype
== NULL
) {
7051 var19
= 0; /* is null */
7053 var19
= 1; /* arg is null and recv is not */
7056 var20
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_string__Object__to_s
]))(var_mtype
) /* to_s on <var_mtype:nullable MType(MType)>*/;
7064 var25
= string__NativeString__to_s_with_length(var23
, var24
);
7071 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AIsaExpr>*/;
7072 if (var26
== NULL
) {
7073 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1155);
7076 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var26
) /* when_true on <var26:nullable FlowContext>*/;
7078 ((void (*)(val
*, val
*, val
*))(var27
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var27
, var_variable
, var_mtype
) /* set_var on <var27:FlowContext>*/;
7081 var28
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
7082 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var28
) /* mtype= on <self:AIsaExpr>*/;
7085 /* method typing#AIsaExpr#accept_typing for (self: Object, TypeVisitor) */
7086 void VIRTUAL_typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
7087 typing__AIsaExpr__accept_typing(self
, p0
);
7090 /* method typing#AAsCastExpr#accept_typing for (self: AAsCastExpr, TypeVisitor) */
7091 void typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
7092 val
* var_v
/* var v: TypeVisitor */;
7093 val
* var
/* : AExpr */;
7094 val
* var1
/* : AType */;
7095 val
* var2
/* : nullable MType */;
7097 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsCastExpr__n_expr
]))(self
) /* n_expr on <self:AAsCastExpr>*/;
7098 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsCastExpr__n_type
]))(self
) /* n_type on <self:AAsCastExpr>*/;
7099 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>*/;
7100 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:AAsCastExpr>*/;
7103 /* method typing#AAsCastExpr#accept_typing for (self: Object, TypeVisitor) */
7104 void VIRTUAL_typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
7105 typing__AAsCastExpr__accept_typing(self
, p0
);
7108 /* method typing#AAsNotnullExpr#accept_typing for (self: AAsNotnullExpr, TypeVisitor) */
7109 void typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
7110 val
* var_v
/* var v: TypeVisitor */;
7111 val
* var
/* : AExpr */;
7112 val
* var1
/* : nullable MType */;
7113 val
* var_mtype
/* var mtype: nullable MType */;
7114 short int var2
/* : Bool */;
7117 static val
* varonce
;
7118 val
* var3
/* : String */;
7119 char* var4
/* : NativeString */;
7120 long var5
/* : Int */;
7121 val
* var6
/* : String */;
7122 short int var7
/* : Bool */;
7125 val
* var10
/* : MType */;
7127 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsNotnullExpr__n_expr
]))(self
) /* n_expr on <self:AAsNotnullExpr>*/;
7128 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7130 /* <var_mtype:nullable MType> isa MNullType */
7131 cltype
= type_model__MNullType
.color
;
7132 idtype
= type_model__MNullType
.id
;
7133 if(var_mtype
== NULL
) {
7136 if(cltype
>= var_mtype
->type
->table_size
) {
7139 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7146 var4
= "Type error: as(not null) on null";
7148 var6
= string__NativeString__to_s_with_length(var4
, var5
);
7152 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var3
) /* error on <var_v:TypeVisitor>*/;
7156 /* <var_mtype:nullable MType> isa MNullableType */
7157 cltype8
= type_model__MNullableType
.color
;
7158 idtype9
= type_model__MNullableType
.id
;
7159 if(var_mtype
== NULL
) {
7162 if(cltype8
>= var_mtype
->type
->table_size
) {
7165 var7
= var_mtype
->type
->type_table
[cltype8
] == idtype9
;
7169 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:nullable MType(MNullableType)>*/;
7170 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var10
) /* mtype= on <self:AAsNotnullExpr>*/;
7174 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:AAsNotnullExpr>*/;
7177 /* method typing#AAsNotnullExpr#accept_typing for (self: Object, TypeVisitor) */
7178 void VIRTUAL_typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
7179 typing__AAsNotnullExpr__accept_typing(self
, p0
);
7182 /* method typing#AProxyExpr#accept_typing for (self: AProxyExpr, TypeVisitor) */
7183 void typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
7184 val
* var_v
/* var v: TypeVisitor */;
7185 val
* var
/* : AExpr */;
7186 val
* var1
/* : nullable MType */;
7188 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AProxyExpr>*/;
7189 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7190 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var1
) /* mtype= on <self:AProxyExpr>*/;
7193 /* method typing#AProxyExpr#accept_typing for (self: Object, TypeVisitor) */
7194 void VIRTUAL_typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
7195 typing__AProxyExpr__accept_typing(self
, p0
);
7198 /* method typing#ASelfExpr#its_variable for (self: ASelfExpr): nullable Variable */
7199 val
* typing__ASelfExpr__its_variable(val
* self
) {
7200 val
* var
/* : nullable Variable */;
7201 val
* var1
/* : nullable Variable */;
7202 var1
= self
->attrs
[COLOR_typing__ASelfExpr___64dits_variable
].val
; /* @its_variable on <self:ASelfExpr> */
7207 /* method typing#ASelfExpr#its_variable for (self: Object): nullable Variable */
7208 val
* VIRTUAL_typing__ASelfExpr__its_variable(val
* self
) {
7209 val
* var
/* : nullable Variable */;
7210 val
* var1
/* : nullable Variable */;
7211 var1
= typing__ASelfExpr__its_variable(self
);
7216 /* method typing#ASelfExpr#its_variable= for (self: ASelfExpr, nullable Variable) */
7217 void typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
7218 self
->attrs
[COLOR_typing__ASelfExpr___64dits_variable
].val
= p0
; /* @its_variable on <self:ASelfExpr> */
7221 /* method typing#ASelfExpr#its_variable= for (self: Object, nullable Variable) */
7222 void VIRTUAL_typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
7223 typing__ASelfExpr__its_variable_61d(self
, p0
);
7226 /* method typing#ASelfExpr#accept_typing for (self: ASelfExpr, TypeVisitor) */
7227 void typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
7228 val
* var_v
/* var v: TypeVisitor */;
7229 val
* var
/* : Variable */;
7230 val
* var_variable
/* var variable: Variable */;
7231 val
* var1
/* : nullable MType */;
7233 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
7235 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASelfExpr__its_variable_61d
]))(self
, var_variable
) /* its_variable= on <self:ASelfExpr>*/;
7236 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>*/;
7237 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var1
) /* mtype= on <self:ASelfExpr>*/;
7240 /* method typing#ASelfExpr#accept_typing for (self: Object, TypeVisitor) */
7241 void VIRTUAL_typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
7242 typing__ASelfExpr__accept_typing(self
, p0
);
7245 /* method typing#ASendExpr#mproperty for (self: ASendExpr): nullable MMethod */
7246 val
* typing__ASendExpr__mproperty(val
* self
) {
7247 val
* var
/* : nullable MMethod */;
7248 val
* var1
/* : nullable CallSite */;
7249 val
* var2
/* : MMethod */;
7250 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite
]))(self
) /* callsite on <self:ASendExpr>*/;
7252 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1207);
7255 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
7262 /* method typing#ASendExpr#mproperty for (self: Object): nullable MMethod */
7263 val
* VIRTUAL_typing__ASendExpr__mproperty(val
* self
) {
7264 val
* var
/* : nullable MMethod */;
7265 val
* var1
/* : nullable MMethod */;
7266 var1
= typing__ASendExpr__mproperty(self
);
7271 /* method typing#ASendExpr#callsite for (self: ASendExpr): nullable CallSite */
7272 val
* typing__ASendExpr__callsite(val
* self
) {
7273 val
* var
/* : nullable CallSite */;
7274 val
* var1
/* : nullable CallSite */;
7275 var1
= self
->attrs
[COLOR_typing__ASendExpr___64dcallsite
].val
; /* @callsite on <self:ASendExpr> */
7280 /* method typing#ASendExpr#callsite for (self: Object): nullable CallSite */
7281 val
* VIRTUAL_typing__ASendExpr__callsite(val
* self
) {
7282 val
* var
/* : nullable CallSite */;
7283 val
* var1
/* : nullable CallSite */;
7284 var1
= typing__ASendExpr__callsite(self
);
7289 /* method typing#ASendExpr#callsite= for (self: ASendExpr, nullable CallSite) */
7290 void typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
7291 self
->attrs
[COLOR_typing__ASendExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ASendExpr> */
7294 /* method typing#ASendExpr#callsite= for (self: Object, nullable CallSite) */
7295 void VIRTUAL_typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
7296 typing__ASendExpr__callsite_61d(self
, p0
);
7299 /* method typing#ASendExpr#accept_typing for (self: ASendExpr, TypeVisitor) */
7300 void typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
7301 val
* var_v
/* var v: TypeVisitor */;
7302 val
* var
/* : AExpr */;
7303 val
* var1
/* : nullable MType */;
7304 val
* var_recvtype
/* var recvtype: nullable MType */;
7305 val
* var2
/* : String */;
7306 val
* var_name
/* var name: String */;
7307 val
* var3
/* : null */;
7308 short int var4
/* : Bool */;
7309 short int var5
/* : Bool */;
7312 static val
* varonce
;
7313 val
* var6
/* : String */;
7314 char* var7
/* : NativeString */;
7315 long var8
/* : Int */;
7316 val
* var9
/* : String */;
7317 static val
* varonce10
;
7318 val
* var11
/* : String */;
7319 char* var12
/* : NativeString */;
7320 long var13
/* : Int */;
7321 val
* var14
/* : String */;
7322 val
* var15
/* : Array[Object] */;
7323 long var16
/* : Int */;
7324 val
* var17
/* : NativeArray[Object] */;
7325 val
* var18
/* : String */;
7326 val
* var19
/* : AExpr */;
7327 short int var20
/* : Bool */;
7330 val
* var23
/* : nullable CallSite */;
7331 val
* var_callsite
/* var callsite: nullable CallSite */;
7332 val
* var24
/* : null */;
7333 short int var25
/* : Bool */;
7334 val
* var26
/* : MSignature */;
7335 val
* var_msignature
/* var msignature: MSignature */;
7336 val
* var27
/* : Array[AExpr] */;
7337 val
* var_args
/* var args: Array[AExpr] */;
7338 short int var28
/* : Bool */;
7339 val
* var29
/* : MMethod */;
7340 short int var30
/* : Bool */;
7341 val
* var31
/* : MPropDef */;
7342 val
* var_vmpropdef
/* var vmpropdef: MPropDef */;
7343 short int var32
/* : Bool */;
7344 short int var33
/* : Bool */;
7347 short int var_
/* var : Bool */;
7348 val
* var36
/* : MProperty */;
7349 short int var37
/* : Bool */;
7350 short int var38
/* : Bool */;
7351 static val
* varonce39
;
7352 val
* var40
/* : String */;
7353 char* var41
/* : NativeString */;
7354 long var42
/* : Int */;
7355 val
* var43
/* : String */;
7356 val
* var44
/* : nullable MType */;
7357 val
* var_ret
/* var ret: nullable MType */;
7358 val
* var45
/* : null */;
7359 short int var46
/* : Bool */;
7360 short int var47
/* : Bool */;
7361 val
* var48
/* : ANodes[AClosureDef] */;
7362 long var49
/* : Int */;
7363 val
* var50
/* : Array[MParameter] */;
7364 long var51
/* : Int */;
7365 short int var52
/* : Bool */;
7366 short int var54
/* : Bool */;
7367 val
* var55
/* : Range[Int] */;
7368 long var56
/* : Int */;
7369 val
* var57
/* : ANodes[AClosureDef] */;
7370 long var58
/* : Int */;
7371 val
* var59
/* : Discrete */;
7372 val
* var60
/* : Discrete */;
7373 val
* var61
/* : Iterator[nullable Object] */;
7374 short int var62
/* : Bool */;
7375 val
* var63
/* : nullable Object */;
7376 long var_i
/* var i: Int */;
7377 long var64
/* : Int */;
7378 val
* var65
/* : ANodes[AClosureDef] */;
7379 val
* var66
/* : nullable Object */;
7380 val
* var67
/* : Array[MParameter] */;
7381 val
* var68
/* : nullable Object */;
7382 static val
* varonce69
;
7383 val
* var70
/* : String */;
7384 char* var71
/* : NativeString */;
7385 long var72
/* : Int */;
7386 val
* var73
/* : String */;
7387 val
* var74
/* : ANodes[AClosureDef] */;
7388 long var75
/* : Int */;
7389 static val
* varonce76
;
7390 val
* var77
/* : String */;
7391 char* var78
/* : NativeString */;
7392 long var79
/* : Int */;
7393 val
* var80
/* : String */;
7394 val
* var81
/* : Array[MParameter] */;
7395 long var82
/* : Int */;
7396 val
* var83
/* : Array[Object] */;
7397 long var84
/* : Int */;
7398 val
* var85
/* : NativeArray[Object] */;
7399 val
* var86
/* : Object */;
7400 val
* var87
/* : Object */;
7401 val
* var88
/* : String */;
7403 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
7404 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7405 var_recvtype
= var1
;
7406 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendExpr>*/;
7409 if (var_recvtype
== NULL
) {
7410 var4
= 1; /* is null */
7412 var4
= 0; /* arg is null but recv is not */
7418 /* <var_recvtype:nullable MType(MType)> isa MNullType */
7419 cltype
= type_model__MNullType
.color
;
7420 idtype
= type_model__MNullType
.id
;
7421 if(cltype
>= var_recvtype
->type
->table_size
) {
7424 var5
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
7430 var7
= "Error: Method \'";
7432 var9
= string__NativeString__to_s_with_length(var7
, var8
);
7439 var12
= "\' call on \'null\'.";
7441 var14
= string__NativeString__to_s_with_length(var12
, var13
);
7445 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
7446 { /* var15 = array_instance Array[Object] */
7448 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
7449 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var6
;
7450 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_name
;
7451 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var11
;
7452 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
7453 CHECK_NEW_array__Array(var15
);
7455 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
7456 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var18
) /* error on <var_v:TypeVisitor>*/;
7460 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
7461 /* <var19:AExpr> isa ASelfExpr */
7462 cltype21
= type_parser_nodes__ASelfExpr
.color
;
7463 idtype22
= type_parser_nodes__ASelfExpr
.id
;
7464 if(cltype21
>= var19
->type
->table_size
) {
7467 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
7469 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>*/;
7470 var_callsite
= var23
;
7472 if (var_callsite
== NULL
) {
7473 var25
= 1; /* is null */
7475 var25
= 0; /* arg is null but recv is not */
7481 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASendExpr>*/;
7482 var26
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
7483 var_msignature
= var26
;
7484 var27
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendExpr>*/;
7486 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments_61d
]))(self
, var_args
) /* raw_arguments= on <self:ASendExpr>*/;
7487 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)>*/;
7489 var29
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_callsite
) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
7490 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_model__MMethod__is_init
]))(var29
) /* is_init on <var29:MMethod>*/;
7492 var31
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
7493 var_vmpropdef
= var31
;
7494 /* <var_vmpropdef:MPropDef> isa MMethodDef */
7495 cltype34
= type_model__MMethodDef
.color
;
7496 idtype35
= type_model__MMethodDef
.id
;
7497 if(cltype34
>= var_vmpropdef
->type
->table_size
) {
7500 var33
= var_vmpropdef
->type
->type_table
[cltype34
] == idtype35
;
7504 var36
= ((val
* (*)(val
*))(var_vmpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_vmpropdef
) /* mproperty on <var_vmpropdef:MPropDef(MMethodDef)>*/;
7505 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_model__MMethod__is_init
]))(var36
) /* is_init on <var36:MProperty(MMethod)>*/;
7515 var41
= "Can call a init only in another init";
7517 var43
= string__NativeString__to_s_with_length(var41
, var42
);
7521 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var40
) /* error on <var_v:TypeVisitor>*/;
7526 var44
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
7529 if (var_ret
== NULL
) {
7530 var46
= 0; /* is null */
7532 var46
= 1; /* arg is null and recv is not */
7535 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_ret
) /* mtype= on <self:ASendExpr>*/;
7538 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var47
) /* is_typed= on <self:ASendExpr>*/;
7540 var48
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_closure_defs
]))(self
) /* n_closure_defs on <self:ASendExpr>*/;
7541 var49
= ((long (*)(val
*))(var48
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var48
) /* length on <var48:ANodes[AClosureDef]>*/;
7542 var50
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mclosures
]))(var_msignature
) /* mclosures on <var_msignature:MSignature>*/;
7543 var51
= ((long (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var50
) /* length on <var50:Array[MParameter]>*/;
7544 { /* Inline kernel#Int#== (var49,var51) */
7545 var54
= var49
== var51
;
7548 RET_LABEL53
:(void)0;
7551 var55
= NEW_range__Range(&type_range__Rangekernel__Int
);
7553 var57
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_closure_defs
]))(self
) /* n_closure_defs on <self:ASendExpr>*/;
7554 var58
= ((long (*)(val
*))(var57
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var57
) /* length on <var57:ANodes[AClosureDef]>*/;
7555 var59
= BOX_kernel__Int(var56
); /* autobox from Int to Discrete */
7556 var60
= BOX_kernel__Int(var58
); /* autobox from Int to Discrete */
7557 ((void (*)(val
*, val
*, val
*))(var55
->class->vft
[COLOR_range__Range__without_last
]))(var55
, var59
, var60
) /* without_last on <var55:Range[Int]>*/;
7558 CHECK_NEW_range__Range(var55
);
7559 var61
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var55
) /* iterator on <var55:Range[Int]>*/;
7561 var62
= ((short int (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var61
) /* is_ok on <var61:Iterator[nullable Object]>*/;
7563 var63
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var61
) /* item on <var61:Iterator[nullable Object]>*/;
7564 var64
= ((struct instance_kernel__Int
*)var63
)->value
; /* autounbox from nullable Object to Int */;
7566 var65
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_closure_defs
]))(self
) /* n_closure_defs on <self:ASendExpr>*/;
7567 var66
= ((val
* (*)(val
*, long))(var65
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var65
, var_i
) /* [] on <var65:ANodes[AClosureDef]>*/;
7568 var67
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mclosures
]))(var_msignature
) /* mclosures on <var_msignature:MSignature>*/;
7569 var68
= ((val
* (*)(val
*, long))(var67
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var67
, var_i
) /* [] on <var67:Array[MParameter]>*/;
7570 ((void (*)(val
*, val
*, val
*))(var66
->class->vft
[COLOR_typing__AClosureDef__accept_typing
]))(var66
, var_v
, var68
) /* accept_typing on <var66:nullable Object(AClosureDef)>*/;
7571 CONTINUE_label
: (void)0;
7572 ((void (*)(val
*))(var61
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var61
) /* next on <var61:Iterator[nullable Object]>*/;
7574 BREAK_label
: (void)0;
7579 var71
= "closure: got ";
7581 var73
= string__NativeString__to_s_with_length(var71
, var72
);
7585 var74
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_closure_defs
]))(self
) /* n_closure_defs on <self:ASendExpr>*/;
7586 var75
= ((long (*)(val
*))(var74
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var74
) /* length on <var74:ANodes[AClosureDef]>*/;
7592 var80
= string__NativeString__to_s_with_length(var78
, var79
);
7596 var81
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mclosures
]))(var_msignature
) /* mclosures on <var_msignature:MSignature>*/;
7597 var82
= ((long (*)(val
*))(var81
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var81
) /* length on <var81:Array[MParameter]>*/;
7598 var83
= NEW_array__Array(&type_array__Arraykernel__Object
);
7599 { /* var83 = array_instance Array[Object] */
7601 var85
= NEW_array__NativeArray(var84
, &type_array__NativeArraykernel__Object
);
7602 ((struct instance_array__NativeArray
*)var85
)->values
[0] = (val
*) var70
;
7603 var86
= BOX_kernel__Int(var75
); /* autobox from Int to Object */
7604 ((struct instance_array__NativeArray
*)var85
)->values
[1] = (val
*) var86
;
7605 ((struct instance_array__NativeArray
*)var85
)->values
[2] = (val
*) var77
;
7606 var87
= BOX_kernel__Int(var82
); /* autobox from Int to Object */
7607 ((struct instance_array__NativeArray
*)var85
)->values
[3] = (val
*) var87
;
7608 ((void (*)(val
*, val
*, long))(var83
->class->vft
[COLOR_array__Array__with_native
]))(var83
, var85
, var84
) /* with_native on <var83:Array[Object]>*/;
7609 CHECK_NEW_array__Array(var83
);
7611 var88
= ((val
* (*)(val
*))(var83
->class->vft
[COLOR_string__Object__to_s
]))(var83
) /* to_s on <var83:Array[Object]>*/;
7612 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(self
, var88
) /* debug on <self:ASendExpr>*/;
7616 /* method typing#ASendExpr#accept_typing for (self: Object, TypeVisitor) */
7617 void VIRTUAL_typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
7618 typing__ASendExpr__accept_typing(self
, p0
);
7621 /* method typing#ASendExpr#property_name for (self: ASendExpr): String */
7622 val
* typing__ASendExpr__property_name(val
* self
) {
7623 val
* var
/* : String */;
7624 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/typing.nit", 1256);
7629 /* method typing#ASendExpr#property_name for (self: Object): String */
7630 val
* VIRTUAL_typing__ASendExpr__property_name(val
* self
) {
7631 val
* var
/* : String */;
7632 val
* var1
/* : String */;
7633 var1
= typing__ASendExpr__property_name(self
);
7638 /* method typing#ASendExpr#raw_arguments for (self: ASendExpr): nullable Array[AExpr] */
7639 val
* typing__ASendExpr__raw_arguments(val
* self
) {
7640 val
* var
/* : nullable Array[AExpr] */;
7641 val
* var1
/* : nullable Array[AExpr] */;
7642 var1
= self
->attrs
[COLOR_typing__ASendExpr___64draw_arguments
].val
; /* @raw_arguments on <self:ASendExpr> */
7647 /* method typing#ASendExpr#raw_arguments for (self: Object): nullable Array[AExpr] */
7648 val
* VIRTUAL_typing__ASendExpr__raw_arguments(val
* self
) {
7649 val
* var
/* : nullable Array[AExpr] */;
7650 val
* var1
/* : nullable Array[AExpr] */;
7651 var1
= typing__ASendExpr__raw_arguments(self
);
7656 /* method typing#ASendExpr#raw_arguments= for (self: ASendExpr, nullable Array[AExpr]) */
7657 void typing__ASendExpr__raw_arguments_61d(val
* self
, val
* p0
) {
7658 self
->attrs
[COLOR_typing__ASendExpr___64draw_arguments
].val
= p0
; /* @raw_arguments on <self:ASendExpr> */
7661 /* method typing#ASendExpr#raw_arguments= for (self: Object, nullable Array[AExpr]) */
7662 void VIRTUAL_typing__ASendExpr__raw_arguments_61d(val
* self
, val
* p0
) {
7663 typing__ASendExpr__raw_arguments_61d(self
, p0
);
7666 /* method typing#ASendExpr#compute_raw_arguments for (self: ASendExpr): Array[AExpr] */
7667 val
* typing__ASendExpr__compute_raw_arguments(val
* self
) {
7668 val
* var
/* : Array[AExpr] */;
7669 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/typing.nit", 1263);
7674 /* method typing#ASendExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
7675 val
* VIRTUAL_typing__ASendExpr__compute_raw_arguments(val
* self
) {
7676 val
* var
/* : Array[AExpr] */;
7677 val
* var1
/* : Array[AExpr] */;
7678 var1
= typing__ASendExpr__compute_raw_arguments(self
);
7683 /* method typing#ABinopExpr#compute_raw_arguments for (self: ABinopExpr): Array[AExpr] */
7684 val
* typing__ABinopExpr__compute_raw_arguments(val
* self
) {
7685 val
* var
/* : Array[AExpr] */;
7686 val
* var1
/* : Array[AExpr] */;
7687 long var2
/* : Int */;
7688 val
* var_
/* var : Array[AExpr] */;
7689 val
* var3
/* : AExpr */;
7690 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
7692 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[AExpr]>*/;
7693 CHECK_NEW_array__Array(var1
);
7695 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:ABinopExpr>*/;
7696 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var3
) /* push on <var_:Array[AExpr]>*/;
7702 /* method typing#ABinopExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
7703 val
* VIRTUAL_typing__ABinopExpr__compute_raw_arguments(val
* self
) {
7704 val
* var
/* : Array[AExpr] */;
7705 val
* var1
/* : Array[AExpr] */;
7706 var1
= typing__ABinopExpr__compute_raw_arguments(self
);
7711 /* method typing#AEqExpr#property_name for (self: AEqExpr): String */
7712 val
* typing__AEqExpr__property_name(val
* self
) {
7713 val
* var
/* : String */;
7714 static val
* varonce
;
7715 val
* var1
/* : String */;
7716 char* var2
/* : NativeString */;
7717 long var3
/* : Int */;
7718 val
* var4
/* : String */;
7724 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7733 /* method typing#AEqExpr#property_name for (self: Object): String */
7734 val
* VIRTUAL_typing__AEqExpr__property_name(val
* self
) {
7735 val
* var
/* : String */;
7736 val
* var1
/* : String */;
7737 var1
= typing__AEqExpr__property_name(self
);
7742 /* method typing#AEqExpr#accept_typing for (self: AEqExpr, TypeVisitor) */
7743 void typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
7744 val
* var_v
/* var v: TypeVisitor */;
7745 val
* var
/* : AExpr */;
7746 val
* var1
/* : nullable Variable */;
7747 val
* var_variable
/* var variable: nullable Variable */;
7748 val
* var2
/* : null */;
7749 short int var3
/* : Bool */;
7750 val
* var4
/* : AExpr */;
7751 val
* var5
/* : nullable MType */;
7752 val
* var_mtype
/* var mtype: nullable MType */;
7753 short int var6
/* : Bool */;
7756 short int var7
/* : Bool */;
7757 val
* var8
/* : nullable MType */;
7758 val
* var_vartype
/* var vartype: nullable MType */;
7759 short int var9
/* : Bool */;
7762 short int var12
/* : Bool */;
7763 val
* var13
/* : nullable FlowContext */;
7764 val
* var14
/* : FlowContext */;
7765 val
* var15
/* : nullable FlowContext */;
7766 val
* var16
/* : FlowContext */;
7767 val
* var17
/* : MType */;
7769 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AEqExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:AEqExpr>*/;
7770 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:AEqExpr>*/;
7771 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
7772 var_variable
= var1
;
7774 if (var_variable
== NULL
) {
7775 var3
= 1; /* is null */
7777 var3
= 0; /* arg is null but recv is not */
7783 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:AEqExpr>*/;
7784 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
7786 /* <var_mtype:nullable MType> isa MNullType */
7787 cltype
= type_model__MNullType
.color
;
7788 idtype
= type_model__MNullType
.id
;
7789 if(var_mtype
== NULL
) {
7792 if(cltype
>= var_mtype
->type
->table_size
) {
7795 var6
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7803 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>*/;
7805 /* <var_vartype:nullable MType> isa MNullableType */
7806 cltype10
= type_model__MNullableType
.color
;
7807 idtype11
= type_model__MNullableType
.id
;
7808 if(var_vartype
== NULL
) {
7811 if(cltype10
>= var_vartype
->type
->table_size
) {
7814 var9
= var_vartype
->type
->type_table
[cltype10
] == idtype11
;
7822 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AEqExpr>*/;
7823 if (var13
== NULL
) {
7824 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1281);
7827 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var13
) /* when_true on <var13:nullable FlowContext>*/;
7829 ((void (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var14
, var_variable
, var_mtype
) /* set_var on <var14:FlowContext>*/;
7830 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AEqExpr>*/;
7831 if (var15
== NULL
) {
7832 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1282);
7835 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var15
) /* when_false on <var15:nullable FlowContext>*/;
7837 var17
= ((val
* (*)(val
*))(var_vartype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_vartype
) /* mtype on <var_vartype:nullable MType(MNullableType)>*/;
7838 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var16
, var_variable
, var17
) /* set_var on <var16:FlowContext>*/;
7841 /* method typing#AEqExpr#accept_typing for (self: Object, TypeVisitor) */
7842 void VIRTUAL_typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
7843 typing__AEqExpr__accept_typing(self
, p0
);
7846 /* method typing#ANeExpr#property_name for (self: ANeExpr): String */
7847 val
* typing__ANeExpr__property_name(val
* self
) {
7848 val
* var
/* : String */;
7849 static val
* varonce
;
7850 val
* var1
/* : String */;
7851 char* var2
/* : NativeString */;
7852 long var3
/* : Int */;
7853 val
* var4
/* : String */;
7859 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7868 /* method typing#ANeExpr#property_name for (self: Object): String */
7869 val
* VIRTUAL_typing__ANeExpr__property_name(val
* self
) {
7870 val
* var
/* : String */;
7871 val
* var1
/* : String */;
7872 var1
= typing__ANeExpr__property_name(self
);
7877 /* method typing#ANeExpr#accept_typing for (self: ANeExpr, TypeVisitor) */
7878 void typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
7879 val
* var_v
/* var v: TypeVisitor */;
7880 val
* var
/* : AExpr */;
7881 val
* var1
/* : nullable Variable */;
7882 val
* var_variable
/* var variable: nullable Variable */;
7883 val
* var2
/* : null */;
7884 short int var3
/* : Bool */;
7885 val
* var4
/* : AExpr */;
7886 val
* var5
/* : nullable MType */;
7887 val
* var_mtype
/* var mtype: nullable MType */;
7888 short int var6
/* : Bool */;
7891 short int var7
/* : Bool */;
7892 val
* var8
/* : nullable MType */;
7893 val
* var_vartype
/* var vartype: nullable MType */;
7894 short int var9
/* : Bool */;
7897 short int var12
/* : Bool */;
7898 val
* var13
/* : nullable FlowContext */;
7899 val
* var14
/* : FlowContext */;
7900 val
* var15
/* : nullable FlowContext */;
7901 val
* var16
/* : FlowContext */;
7902 val
* var17
/* : MType */;
7904 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ANeExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:ANeExpr>*/;
7905 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ANeExpr>*/;
7906 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
7907 var_variable
= var1
;
7909 if (var_variable
== NULL
) {
7910 var3
= 1; /* is null */
7912 var3
= 0; /* arg is null but recv is not */
7918 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:ANeExpr>*/;
7919 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
7921 /* <var_mtype:nullable MType> isa MNullType */
7922 cltype
= type_model__MNullType
.color
;
7923 idtype
= type_model__MNullType
.id
;
7924 if(var_mtype
== NULL
) {
7927 if(cltype
>= var_mtype
->type
->table_size
) {
7930 var6
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7938 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>*/;
7940 /* <var_vartype:nullable MType> isa MNullableType */
7941 cltype10
= type_model__MNullableType
.color
;
7942 idtype11
= type_model__MNullableType
.id
;
7943 if(var_vartype
== NULL
) {
7946 if(cltype10
>= var_vartype
->type
->table_size
) {
7949 var9
= var_vartype
->type
->type_table
[cltype10
] == idtype11
;
7957 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ANeExpr>*/;
7958 if (var13
== NULL
) {
7959 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1298);
7962 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var13
) /* when_false on <var13:nullable FlowContext>*/;
7964 ((void (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var14
, var_variable
, var_mtype
) /* set_var on <var14:FlowContext>*/;
7965 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ANeExpr>*/;
7966 if (var15
== NULL
) {
7967 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1299);
7970 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var15
) /* when_true on <var15:nullable FlowContext>*/;
7972 var17
= ((val
* (*)(val
*))(var_vartype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_vartype
) /* mtype on <var_vartype:nullable MType(MNullableType)>*/;
7973 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var16
, var_variable
, var17
) /* set_var on <var16:FlowContext>*/;
7976 /* method typing#ANeExpr#accept_typing for (self: Object, TypeVisitor) */
7977 void VIRTUAL_typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
7978 typing__ANeExpr__accept_typing(self
, p0
);
7981 /* method typing#ALtExpr#property_name for (self: ALtExpr): String */
7982 val
* typing__ALtExpr__property_name(val
* self
) {
7983 val
* var
/* : String */;
7984 static val
* varonce
;
7985 val
* var1
/* : String */;
7986 char* var2
/* : NativeString */;
7987 long var3
/* : Int */;
7988 val
* var4
/* : String */;
7994 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8003 /* method typing#ALtExpr#property_name for (self: Object): String */
8004 val
* VIRTUAL_typing__ALtExpr__property_name(val
* self
) {
8005 val
* var
/* : String */;
8006 val
* var1
/* : String */;
8007 var1
= typing__ALtExpr__property_name(self
);
8012 /* method typing#ALeExpr#property_name for (self: ALeExpr): String */
8013 val
* typing__ALeExpr__property_name(val
* self
) {
8014 val
* var
/* : String */;
8015 static val
* varonce
;
8016 val
* var1
/* : String */;
8017 char* var2
/* : NativeString */;
8018 long var3
/* : Int */;
8019 val
* var4
/* : String */;
8025 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8034 /* method typing#ALeExpr#property_name for (self: Object): String */
8035 val
* VIRTUAL_typing__ALeExpr__property_name(val
* self
) {
8036 val
* var
/* : String */;
8037 val
* var1
/* : String */;
8038 var1
= typing__ALeExpr__property_name(self
);
8043 /* method typing#ALlExpr#property_name for (self: ALlExpr): String */
8044 val
* typing__ALlExpr__property_name(val
* self
) {
8045 val
* var
/* : String */;
8046 static val
* varonce
;
8047 val
* var1
/* : String */;
8048 char* var2
/* : NativeString */;
8049 long var3
/* : Int */;
8050 val
* var4
/* : String */;
8056 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8065 /* method typing#ALlExpr#property_name for (self: Object): String */
8066 val
* VIRTUAL_typing__ALlExpr__property_name(val
* self
) {
8067 val
* var
/* : String */;
8068 val
* var1
/* : String */;
8069 var1
= typing__ALlExpr__property_name(self
);
8074 /* method typing#AGtExpr#property_name for (self: AGtExpr): String */
8075 val
* typing__AGtExpr__property_name(val
* self
) {
8076 val
* var
/* : String */;
8077 static val
* varonce
;
8078 val
* var1
/* : String */;
8079 char* var2
/* : NativeString */;
8080 long var3
/* : Int */;
8081 val
* var4
/* : String */;
8087 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8096 /* method typing#AGtExpr#property_name for (self: Object): String */
8097 val
* VIRTUAL_typing__AGtExpr__property_name(val
* self
) {
8098 val
* var
/* : String */;
8099 val
* var1
/* : String */;
8100 var1
= typing__AGtExpr__property_name(self
);
8105 /* method typing#AGeExpr#property_name for (self: AGeExpr): String */
8106 val
* typing__AGeExpr__property_name(val
* self
) {
8107 val
* var
/* : String */;
8108 static val
* varonce
;
8109 val
* var1
/* : String */;
8110 char* var2
/* : NativeString */;
8111 long var3
/* : Int */;
8112 val
* var4
/* : String */;
8118 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8127 /* method typing#AGeExpr#property_name for (self: Object): String */
8128 val
* VIRTUAL_typing__AGeExpr__property_name(val
* self
) {
8129 val
* var
/* : String */;
8130 val
* var1
/* : String */;
8131 var1
= typing__AGeExpr__property_name(self
);
8136 /* method typing#AGgExpr#property_name for (self: AGgExpr): String */
8137 val
* typing__AGgExpr__property_name(val
* self
) {
8138 val
* var
/* : String */;
8139 static val
* varonce
;
8140 val
* var1
/* : String */;
8141 char* var2
/* : NativeString */;
8142 long var3
/* : Int */;
8143 val
* var4
/* : String */;
8149 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8158 /* method typing#AGgExpr#property_name for (self: Object): String */
8159 val
* VIRTUAL_typing__AGgExpr__property_name(val
* self
) {
8160 val
* var
/* : String */;
8161 val
* var1
/* : String */;
8162 var1
= typing__AGgExpr__property_name(self
);
8167 /* method typing#APlusExpr#property_name for (self: APlusExpr): String */
8168 val
* typing__APlusExpr__property_name(val
* self
) {
8169 val
* var
/* : String */;
8170 static val
* varonce
;
8171 val
* var1
/* : String */;
8172 char* var2
/* : NativeString */;
8173 long var3
/* : Int */;
8174 val
* var4
/* : String */;
8180 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8189 /* method typing#APlusExpr#property_name for (self: Object): String */
8190 val
* VIRTUAL_typing__APlusExpr__property_name(val
* self
) {
8191 val
* var
/* : String */;
8192 val
* var1
/* : String */;
8193 var1
= typing__APlusExpr__property_name(self
);
8198 /* method typing#AMinusExpr#property_name for (self: AMinusExpr): String */
8199 val
* typing__AMinusExpr__property_name(val
* self
) {
8200 val
* var
/* : String */;
8201 static val
* varonce
;
8202 val
* var1
/* : String */;
8203 char* var2
/* : NativeString */;
8204 long var3
/* : Int */;
8205 val
* var4
/* : String */;
8211 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8220 /* method typing#AMinusExpr#property_name for (self: Object): String */
8221 val
* VIRTUAL_typing__AMinusExpr__property_name(val
* self
) {
8222 val
* var
/* : String */;
8223 val
* var1
/* : String */;
8224 var1
= typing__AMinusExpr__property_name(self
);
8229 /* method typing#AStarshipExpr#property_name for (self: AStarshipExpr): String */
8230 val
* typing__AStarshipExpr__property_name(val
* self
) {
8231 val
* var
/* : String */;
8232 static val
* varonce
;
8233 val
* var1
/* : String */;
8234 char* var2
/* : NativeString */;
8235 long var3
/* : Int */;
8236 val
* var4
/* : String */;
8242 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8251 /* method typing#AStarshipExpr#property_name for (self: Object): String */
8252 val
* VIRTUAL_typing__AStarshipExpr__property_name(val
* self
) {
8253 val
* var
/* : String */;
8254 val
* var1
/* : String */;
8255 var1
= typing__AStarshipExpr__property_name(self
);
8260 /* method typing#AStarExpr#property_name for (self: AStarExpr): String */
8261 val
* typing__AStarExpr__property_name(val
* self
) {
8262 val
* var
/* : String */;
8263 static val
* varonce
;
8264 val
* var1
/* : String */;
8265 char* var2
/* : NativeString */;
8266 long var3
/* : Int */;
8267 val
* var4
/* : String */;
8273 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8282 /* method typing#AStarExpr#property_name for (self: Object): String */
8283 val
* VIRTUAL_typing__AStarExpr__property_name(val
* self
) {
8284 val
* var
/* : String */;
8285 val
* var1
/* : String */;
8286 var1
= typing__AStarExpr__property_name(self
);
8291 /* method typing#ASlashExpr#property_name for (self: ASlashExpr): String */
8292 val
* typing__ASlashExpr__property_name(val
* self
) {
8293 val
* var
/* : String */;
8294 static val
* varonce
;
8295 val
* var1
/* : String */;
8296 char* var2
/* : NativeString */;
8297 long var3
/* : Int */;
8298 val
* var4
/* : String */;
8304 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8313 /* method typing#ASlashExpr#property_name for (self: Object): String */
8314 val
* VIRTUAL_typing__ASlashExpr__property_name(val
* self
) {
8315 val
* var
/* : String */;
8316 val
* var1
/* : String */;
8317 var1
= typing__ASlashExpr__property_name(self
);
8322 /* method typing#APercentExpr#property_name for (self: APercentExpr): String */
8323 val
* typing__APercentExpr__property_name(val
* self
) {
8324 val
* var
/* : String */;
8325 static val
* varonce
;
8326 val
* var1
/* : String */;
8327 char* var2
/* : NativeString */;
8328 long var3
/* : Int */;
8329 val
* var4
/* : String */;
8335 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8344 /* method typing#APercentExpr#property_name for (self: Object): String */
8345 val
* VIRTUAL_typing__APercentExpr__property_name(val
* self
) {
8346 val
* var
/* : String */;
8347 val
* var1
/* : String */;
8348 var1
= typing__APercentExpr__property_name(self
);
8353 /* method typing#AUminusExpr#property_name for (self: AUminusExpr): String */
8354 val
* typing__AUminusExpr__property_name(val
* self
) {
8355 val
* var
/* : String */;
8356 static val
* varonce
;
8357 val
* var1
/* : String */;
8358 char* var2
/* : NativeString */;
8359 long var3
/* : Int */;
8360 val
* var4
/* : String */;
8366 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8375 /* method typing#AUminusExpr#property_name for (self: Object): String */
8376 val
* VIRTUAL_typing__AUminusExpr__property_name(val
* self
) {
8377 val
* var
/* : String */;
8378 val
* var1
/* : String */;
8379 var1
= typing__AUminusExpr__property_name(self
);
8384 /* method typing#AUminusExpr#compute_raw_arguments for (self: AUminusExpr): Array[AExpr] */
8385 val
* typing__AUminusExpr__compute_raw_arguments(val
* self
) {
8386 val
* var
/* : Array[AExpr] */;
8387 val
* var1
/* : Array[AExpr] */;
8388 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
8389 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[AExpr]>*/;
8390 CHECK_NEW_array__Array(var1
);
8396 /* method typing#AUminusExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8397 val
* VIRTUAL_typing__AUminusExpr__compute_raw_arguments(val
* self
) {
8398 val
* var
/* : Array[AExpr] */;
8399 val
* var1
/* : Array[AExpr] */;
8400 var1
= typing__AUminusExpr__compute_raw_arguments(self
);
8405 /* method typing#ACallExpr#property_name for (self: ACallExpr): String */
8406 val
* typing__ACallExpr__property_name(val
* self
) {
8407 val
* var
/* : String */;
8408 val
* var1
/* : TId */;
8409 val
* var2
/* : String */;
8410 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallExpr>*/;
8411 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8417 /* method typing#ACallExpr#property_name for (self: Object): String */
8418 val
* VIRTUAL_typing__ACallExpr__property_name(val
* self
) {
8419 val
* var
/* : String */;
8420 val
* var1
/* : String */;
8421 var1
= typing__ACallExpr__property_name(self
);
8426 /* method typing#ACallExpr#compute_raw_arguments for (self: ACallExpr): Array[AExpr] */
8427 val
* typing__ACallExpr__compute_raw_arguments(val
* self
) {
8428 val
* var
/* : Array[AExpr] */;
8429 val
* var1
/* : AExprs */;
8430 val
* var2
/* : Array[AExpr] */;
8431 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallExpr>*/;
8432 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8438 /* method typing#ACallExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8439 val
* VIRTUAL_typing__ACallExpr__compute_raw_arguments(val
* self
) {
8440 val
* var
/* : Array[AExpr] */;
8441 val
* var1
/* : Array[AExpr] */;
8442 var1
= typing__ACallExpr__compute_raw_arguments(self
);
8447 /* method typing#ACallAssignExpr#property_name for (self: ACallAssignExpr): String */
8448 val
* typing__ACallAssignExpr__property_name(val
* self
) {
8449 val
* var
/* : String */;
8450 val
* var1
/* : TId */;
8451 val
* var2
/* : String */;
8452 static val
* varonce
;
8453 val
* var3
/* : String */;
8454 char* var4
/* : NativeString */;
8455 long var5
/* : Int */;
8456 val
* var6
/* : String */;
8457 val
* var7
/* : String */;
8458 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallAssignExpr>*/;
8459 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8465 var6
= string__NativeString__to_s_with_length(var4
, var5
);
8469 var7
= ((val
* (*)(val
*, val
*))(var2
->class->vft
[COLOR_string__String___43d
]))(var2
, var3
) /* + on <var2:String>*/;
8475 /* method typing#ACallAssignExpr#property_name for (self: Object): String */
8476 val
* VIRTUAL_typing__ACallAssignExpr__property_name(val
* self
) {
8477 val
* var
/* : String */;
8478 val
* var1
/* : String */;
8479 var1
= typing__ACallAssignExpr__property_name(self
);
8484 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: ACallAssignExpr): Array[AExpr] */
8485 val
* typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
8486 val
* var
/* : Array[AExpr] */;
8487 val
* var1
/* : AExprs */;
8488 val
* var2
/* : Array[AExpr] */;
8489 val
* var_res
/* var res: Array[AExpr] */;
8490 val
* var3
/* : AExpr */;
8491 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallAssignExpr>*/;
8492 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8494 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:ACallAssignExpr>*/;
8495 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var3
) /* add on <var_res:Array[AExpr]>*/;
8501 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8502 val
* VIRTUAL_typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
8503 val
* var
/* : Array[AExpr] */;
8504 val
* var1
/* : Array[AExpr] */;
8505 var1
= typing__ACallAssignExpr__compute_raw_arguments(self
);
8510 /* method typing#ABraExpr#property_name for (self: ABraExpr): String */
8511 val
* typing__ABraExpr__property_name(val
* self
) {
8512 val
* var
/* : String */;
8513 static val
* varonce
;
8514 val
* var1
/* : String */;
8515 char* var2
/* : NativeString */;
8516 long var3
/* : Int */;
8517 val
* var4
/* : String */;
8523 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8532 /* method typing#ABraExpr#property_name for (self: Object): String */
8533 val
* VIRTUAL_typing__ABraExpr__property_name(val
* self
) {
8534 val
* var
/* : String */;
8535 val
* var1
/* : String */;
8536 var1
= typing__ABraExpr__property_name(self
);
8541 /* method typing#ABraExpr#compute_raw_arguments for (self: ABraExpr): Array[AExpr] */
8542 val
* typing__ABraExpr__compute_raw_arguments(val
* self
) {
8543 val
* var
/* : Array[AExpr] */;
8544 val
* var1
/* : AExprs */;
8545 val
* var2
/* : Array[AExpr] */;
8546 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraExpr>*/;
8547 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8553 /* method typing#ABraExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8554 val
* VIRTUAL_typing__ABraExpr__compute_raw_arguments(val
* self
) {
8555 val
* var
/* : Array[AExpr] */;
8556 val
* var1
/* : Array[AExpr] */;
8557 var1
= typing__ABraExpr__compute_raw_arguments(self
);
8562 /* method typing#ABraAssignExpr#property_name for (self: ABraAssignExpr): String */
8563 val
* typing__ABraAssignExpr__property_name(val
* self
) {
8564 val
* var
/* : String */;
8565 static val
* varonce
;
8566 val
* var1
/* : String */;
8567 char* var2
/* : NativeString */;
8568 long var3
/* : Int */;
8569 val
* var4
/* : String */;
8575 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8584 /* method typing#ABraAssignExpr#property_name for (self: Object): String */
8585 val
* VIRTUAL_typing__ABraAssignExpr__property_name(val
* self
) {
8586 val
* var
/* : String */;
8587 val
* var1
/* : String */;
8588 var1
= typing__ABraAssignExpr__property_name(self
);
8593 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: ABraAssignExpr): Array[AExpr] */
8594 val
* typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
8595 val
* var
/* : Array[AExpr] */;
8596 val
* var1
/* : AExprs */;
8597 val
* var2
/* : Array[AExpr] */;
8598 val
* var_res
/* var res: Array[AExpr] */;
8599 val
* var3
/* : AExpr */;
8600 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraAssignExpr>*/;
8601 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8603 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:ABraAssignExpr>*/;
8604 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var3
) /* add on <var_res:Array[AExpr]>*/;
8610 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8611 val
* VIRTUAL_typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
8612 val
* var
/* : Array[AExpr] */;
8613 val
* var1
/* : Array[AExpr] */;
8614 var1
= typing__ABraAssignExpr__compute_raw_arguments(self
);
8619 /* method typing#ASendReassignFormExpr#write_mproperty for (self: ASendReassignFormExpr): nullable MMethod */
8620 val
* typing__ASendReassignFormExpr__write_mproperty(val
* self
) {
8621 val
* var
/* : nullable MMethod */;
8622 val
* var1
/* : nullable CallSite */;
8623 val
* var2
/* : MMethod */;
8624 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_callsite
]))(self
) /* write_callsite on <self:ASendReassignFormExpr>*/;
8626 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1378);
8629 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
8636 /* method typing#ASendReassignFormExpr#write_mproperty for (self: Object): nullable MMethod */
8637 val
* VIRTUAL_typing__ASendReassignFormExpr__write_mproperty(val
* self
) {
8638 val
* var
/* : nullable MMethod */;
8639 val
* var1
/* : nullable MMethod */;
8640 var1
= typing__ASendReassignFormExpr__write_mproperty(self
);
8645 /* method typing#ASendReassignFormExpr#write_callsite for (self: ASendReassignFormExpr): nullable CallSite */
8646 val
* typing__ASendReassignFormExpr__write_callsite(val
* self
) {
8647 val
* var
/* : nullable CallSite */;
8648 val
* var1
/* : nullable CallSite */;
8649 var1
= self
->attrs
[COLOR_typing__ASendReassignFormExpr___64dwrite_callsite
].val
; /* @write_callsite on <self:ASendReassignFormExpr> */
8654 /* method typing#ASendReassignFormExpr#write_callsite for (self: Object): nullable CallSite */
8655 val
* VIRTUAL_typing__ASendReassignFormExpr__write_callsite(val
* self
) {
8656 val
* var
/* : nullable CallSite */;
8657 val
* var1
/* : nullable CallSite */;
8658 var1
= typing__ASendReassignFormExpr__write_callsite(self
);
8663 /* method typing#ASendReassignFormExpr#write_callsite= for (self: ASendReassignFormExpr, nullable CallSite) */
8664 void typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
8665 self
->attrs
[COLOR_typing__ASendReassignFormExpr___64dwrite_callsite
].val
= p0
; /* @write_callsite on <self:ASendReassignFormExpr> */
8668 /* method typing#ASendReassignFormExpr#write_callsite= for (self: Object, nullable CallSite) */
8669 void VIRTUAL_typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
8670 typing__ASendReassignFormExpr__write_callsite_61d(self
, p0
);
8673 /* method typing#ASendReassignFormExpr#accept_typing for (self: ASendReassignFormExpr, TypeVisitor) */
8674 void typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
8675 val
* var_v
/* var v: TypeVisitor */;
8676 val
* var
/* : AExpr */;
8677 val
* var1
/* : nullable MType */;
8678 val
* var_recvtype
/* var recvtype: nullable MType */;
8679 val
* var2
/* : String */;
8680 val
* var_name
/* var name: String */;
8681 val
* var3
/* : null */;
8682 short int var4
/* : Bool */;
8683 short int var5
/* : Bool */;
8686 static val
* varonce
;
8687 val
* var6
/* : String */;
8688 char* var7
/* : NativeString */;
8689 long var8
/* : Int */;
8690 val
* var9
/* : String */;
8691 static val
* varonce10
;
8692 val
* var11
/* : String */;
8693 char* var12
/* : NativeString */;
8694 long var13
/* : Int */;
8695 val
* var14
/* : String */;
8696 val
* var15
/* : Array[Object] */;
8697 long var16
/* : Int */;
8698 val
* var17
/* : NativeArray[Object] */;
8699 val
* var18
/* : String */;
8700 val
* var19
/* : AExpr */;
8701 short int var20
/* : Bool */;
8704 short int var_for_self
/* var for_self: Bool */;
8705 val
* var23
/* : nullable CallSite */;
8706 val
* var_callsite
/* var callsite: nullable CallSite */;
8707 val
* var24
/* : null */;
8708 short int var25
/* : Bool */;
8709 val
* var26
/* : Array[AExpr] */;
8710 val
* var_args
/* var args: Array[AExpr] */;
8711 short int var27
/* : Bool */;
8712 val
* var28
/* : MSignature */;
8713 val
* var29
/* : nullable MType */;
8714 val
* var_readtype
/* var readtype: nullable MType */;
8715 val
* var30
/* : null */;
8716 short int var31
/* : Bool */;
8717 static val
* varonce32
;
8718 val
* var33
/* : String */;
8719 char* var34
/* : NativeString */;
8720 long var35
/* : Int */;
8721 val
* var36
/* : String */;
8722 static val
* varonce37
;
8723 val
* var38
/* : String */;
8724 char* var39
/* : NativeString */;
8725 long var40
/* : Int */;
8726 val
* var41
/* : String */;
8727 val
* var42
/* : Array[Object] */;
8728 long var43
/* : Int */;
8729 val
* var44
/* : NativeArray[Object] */;
8730 val
* var45
/* : String */;
8731 static val
* varonce46
;
8732 val
* var47
/* : String */;
8733 char* var48
/* : NativeString */;
8734 long var49
/* : Int */;
8735 val
* var50
/* : String */;
8736 val
* var51
/* : String */;
8737 val
* var52
/* : AExpr */;
8738 short int var53
/* : Bool */;
8741 val
* var56
/* : nullable CallSite */;
8742 val
* var_wcallsite
/* var wcallsite: nullable CallSite */;
8743 val
* var57
/* : null */;
8744 short int var58
/* : Bool */;
8745 val
* var59
/* : MSignature */;
8746 val
* var60
/* : Array[MParameter] */;
8747 val
* var61
/* : nullable Object */;
8748 val
* var62
/* : MType */;
8749 val
* var63
/* : nullable MType */;
8750 val
* var_wtype
/* var wtype: nullable MType */;
8751 val
* var64
/* : null */;
8752 short int var65
/* : Bool */;
8753 val
* var66
/* : Array[nullable Object] */;
8754 val
* var67
/* : AExpr */;
8755 short int var68
/* : Bool */;
8756 short int var69
/* : Bool */;
8758 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8759 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
8760 var_recvtype
= var1
;
8761 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendReassignFormExpr>*/;
8764 if (var_recvtype
== NULL
) {
8765 var4
= 1; /* is null */
8767 var4
= 0; /* arg is null but recv is not */
8773 /* <var_recvtype:nullable MType(MType)> isa MNullType */
8774 cltype
= type_model__MNullType
.color
;
8775 idtype
= type_model__MNullType
.id
;
8776 if(cltype
>= var_recvtype
->type
->table_size
) {
8779 var5
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
8785 var7
= "Error: Method \'";
8787 var9
= string__NativeString__to_s_with_length(var7
, var8
);
8794 var12
= "\' call on \'null\'.";
8796 var14
= string__NativeString__to_s_with_length(var12
, var13
);
8800 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
8801 { /* var15 = array_instance Array[Object] */
8803 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
8804 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var6
;
8805 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_name
;
8806 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var11
;
8807 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
8808 CHECK_NEW_array__Array(var15
);
8810 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
8811 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var18
) /* error on <var_v:TypeVisitor>*/;
8815 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8816 /* <var19:AExpr> isa ASelfExpr */
8817 cltype21
= type_parser_nodes__ASelfExpr
.color
;
8818 idtype22
= type_parser_nodes__ASelfExpr
.id
;
8819 if(cltype21
>= var19
->type
->table_size
) {
8822 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
8824 var_for_self
= var20
;
8825 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>*/;
8826 var_callsite
= var23
;
8828 if (var_callsite
== NULL
) {
8829 var25
= 1; /* is null */
8831 var25
= 0; /* arg is null but recv is not */
8837 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASendReassignFormExpr>*/;
8838 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendReassignFormExpr>*/;
8840 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments_61d
]))(self
, var_args
) /* raw_arguments= on <self:ASendReassignFormExpr>*/;
8841 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)>*/;
8843 var28
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
8844 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var28
) /* return_mtype on <var28:MSignature>*/;
8845 var_readtype
= var29
;
8847 if (var_readtype
== NULL
) {
8848 var31
= 1; /* is null */
8850 var31
= 0; /* arg is null but recv is not */
8858 var36
= string__NativeString__to_s_with_length(var34
, var35
);
8865 var39
= " is not a function";
8867 var41
= string__NativeString__to_s_with_length(var39
, var40
);
8871 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
8872 { /* var42 = array_instance Array[Object] */
8874 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
8875 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
8876 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_name
;
8877 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
8878 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
8879 CHECK_NEW_array__Array(var42
);
8881 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
8882 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var45
) /* error on <var_v:TypeVisitor>*/;
8891 var50
= string__NativeString__to_s_with_length(var48
, var49
);
8895 var51
= ((val
* (*)(val
*, val
*))(var_name
->class->vft
[COLOR_string__String___43d
]))(var_name
, var47
) /* + on <var_name:String>*/;
8896 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8897 /* <var52:AExpr> isa ASelfExpr */
8898 cltype54
= type_parser_nodes__ASelfExpr
.color
;
8899 idtype55
= type_parser_nodes__ASelfExpr
.id
;
8900 if(cltype54
>= var52
->type
->table_size
) {
8903 var53
= var52
->type
->type_table
[cltype54
] == idtype55
;
8905 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>*/;
8906 var_wcallsite
= var56
;
8908 if (var_wcallsite
== NULL
) {
8909 var58
= 1; /* is null */
8911 var58
= 0; /* arg is null but recv is not */
8917 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_callsite_61d
]))(self
, var_wcallsite
) /* write_callsite= on <self:ASendReassignFormExpr>*/;
8918 var59
= ((val
* (*)(val
*))(var_wcallsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_wcallsite
) /* msignature on <var_wcallsite:nullable CallSite(CallSite)>*/;
8919 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_model__MSignature__mparameters
]))(var59
) /* mparameters on <var59:MSignature>*/;
8920 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var60
) /* last on <var60:Array[MParameter]>*/;
8921 var62
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_model__MParameter__mtype
]))(var61
) /* mtype on <var61:nullable Object(MParameter)>*/;
8922 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>*/;
8925 if (var_wtype
== NULL
) {
8926 var65
= 1; /* is null */
8928 var65
= 0; /* arg is null but recv is not */
8934 var66
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[AExpr]>*/;
8936 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:ASendReassignFormExpr>*/;
8937 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var67
) /* add on <var_args:Array[AExpr]>*/;
8938 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)>*/;
8941 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var69
) /* is_typed= on <self:ASendReassignFormExpr>*/;
8944 /* method typing#ASendReassignFormExpr#accept_typing for (self: Object, TypeVisitor) */
8945 void VIRTUAL_typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
8946 typing__ASendReassignFormExpr__accept_typing(self
, p0
);
8949 /* method typing#ACallReassignExpr#property_name for (self: ACallReassignExpr): String */
8950 val
* typing__ACallReassignExpr__property_name(val
* self
) {
8951 val
* var
/* : String */;
8952 val
* var1
/* : TId */;
8953 val
* var2
/* : String */;
8954 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallReassignExpr>*/;
8955 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8961 /* method typing#ACallReassignExpr#property_name for (self: Object): String */
8962 val
* VIRTUAL_typing__ACallReassignExpr__property_name(val
* self
) {
8963 val
* var
/* : String */;
8964 val
* var1
/* : String */;
8965 var1
= typing__ACallReassignExpr__property_name(self
);
8970 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: ACallReassignExpr): Array[AExpr] */
8971 val
* typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
8972 val
* var
/* : Array[AExpr] */;
8973 val
* var1
/* : AExprs */;
8974 val
* var2
/* : Array[AExpr] */;
8975 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallReassignExpr>*/;
8976 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8982 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8983 val
* VIRTUAL_typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
8984 val
* var
/* : Array[AExpr] */;
8985 val
* var1
/* : Array[AExpr] */;
8986 var1
= typing__ACallReassignExpr__compute_raw_arguments(self
);
8991 /* method typing#ABraReassignExpr#property_name for (self: ABraReassignExpr): String */
8992 val
* typing__ABraReassignExpr__property_name(val
* self
) {
8993 val
* var
/* : String */;
8994 static val
* varonce
;
8995 val
* var1
/* : String */;
8996 char* var2
/* : NativeString */;
8997 long var3
/* : Int */;
8998 val
* var4
/* : String */;
9004 var4
= string__NativeString__to_s_with_length(var2
, var3
);
9013 /* method typing#ABraReassignExpr#property_name for (self: Object): String */
9014 val
* VIRTUAL_typing__ABraReassignExpr__property_name(val
* self
) {
9015 val
* var
/* : String */;
9016 val
* var1
/* : String */;
9017 var1
= typing__ABraReassignExpr__property_name(self
);
9022 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: ABraReassignExpr): Array[AExpr] */
9023 val
* typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
9024 val
* var
/* : Array[AExpr] */;
9025 val
* var1
/* : AExprs */;
9026 val
* var2
/* : Array[AExpr] */;
9027 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraReassignExpr>*/;
9028 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
9034 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
9035 val
* VIRTUAL_typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
9036 val
* var
/* : Array[AExpr] */;
9037 val
* var1
/* : Array[AExpr] */;
9038 var1
= typing__ABraReassignExpr__compute_raw_arguments(self
);
9043 /* method typing#AInitExpr#property_name for (self: AInitExpr): String */
9044 val
* typing__AInitExpr__property_name(val
* self
) {
9045 val
* var
/* : String */;
9046 static val
* varonce
;
9047 val
* var1
/* : String */;
9048 char* var2
/* : NativeString */;
9049 long var3
/* : Int */;
9050 val
* var4
/* : String */;
9056 var4
= string__NativeString__to_s_with_length(var2
, var3
);
9065 /* method typing#AInitExpr#property_name for (self: Object): String */
9066 val
* VIRTUAL_typing__AInitExpr__property_name(val
* self
) {
9067 val
* var
/* : String */;
9068 val
* var1
/* : String */;
9069 var1
= typing__AInitExpr__property_name(self
);
9074 /* method typing#AInitExpr#compute_raw_arguments for (self: AInitExpr): Array[AExpr] */
9075 val
* typing__AInitExpr__compute_raw_arguments(val
* self
) {
9076 val
* var
/* : Array[AExpr] */;
9077 val
* var1
/* : AExprs */;
9078 val
* var2
/* : Array[AExpr] */;
9079 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AInitExpr__n_args
]))(self
) /* n_args on <self:AInitExpr>*/;
9080 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
9086 /* method typing#AInitExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
9087 val
* VIRTUAL_typing__AInitExpr__compute_raw_arguments(val
* self
) {
9088 val
* var
/* : Array[AExpr] */;
9089 val
* var1
/* : Array[AExpr] */;
9090 var1
= typing__AInitExpr__compute_raw_arguments(self
);
9095 /* method typing#AExprs#to_a for (self: AExprs): Array[AExpr] */
9096 val
* typing__AExprs__to_a(val
* self
) {
9097 val
* var
/* : Array[AExpr] */;
9098 val
* var1
/* : ANodes[AExpr] */;
9099 val
* var2
/* : Array[nullable Object] */;
9100 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(self
) /* n_exprs on <self:AExprs>*/;
9101 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_array__Collection__to_a
]))(var1
) /* to_a on <var1:ANodes[AExpr]>*/;
9107 /* method typing#AExprs#to_a for (self: Object): Array[AExpr] */
9108 val
* VIRTUAL_typing__AExprs__to_a(val
* self
) {
9109 val
* var
/* : Array[AExpr] */;
9110 val
* var1
/* : Array[AExpr] */;
9111 var1
= typing__AExprs__to_a(self
);
9116 /* method typing#ASuperExpr#mproperty for (self: ASuperExpr): nullable MMethod */
9117 val
* typing__ASuperExpr__mproperty(val
* self
) {
9118 val
* var
/* : nullable MMethod */;
9119 val
* var1
/* : nullable MMethod */;
9120 var1
= self
->attrs
[COLOR_typing__ASuperExpr___64dmproperty
].val
; /* @mproperty on <self:ASuperExpr> */
9125 /* method typing#ASuperExpr#mproperty for (self: Object): nullable MMethod */
9126 val
* VIRTUAL_typing__ASuperExpr__mproperty(val
* self
) {
9127 val
* var
/* : nullable MMethod */;
9128 val
* var1
/* : nullable MMethod */;
9129 var1
= typing__ASuperExpr__mproperty(self
);
9134 /* method typing#ASuperExpr#mproperty= for (self: ASuperExpr, nullable MMethod) */
9135 void typing__ASuperExpr__mproperty_61d(val
* self
, val
* p0
) {
9136 self
->attrs
[COLOR_typing__ASuperExpr___64dmproperty
].val
= p0
; /* @mproperty on <self:ASuperExpr> */
9139 /* method typing#ASuperExpr#mproperty= for (self: Object, nullable MMethod) */
9140 void VIRTUAL_typing__ASuperExpr__mproperty_61d(val
* self
, val
* p0
) {
9141 typing__ASuperExpr__mproperty_61d(self
, p0
);
9144 /* method typing#ASuperExpr#accept_typing for (self: ASuperExpr, TypeVisitor) */
9145 void typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
9146 val
* var_v
/* var v: TypeVisitor */;
9147 val
* var
/* : AClassdef */;
9148 val
* var1
/* : nullable MClassDef */;
9149 val
* var2
/* : MClassType */;
9150 val
* var_recvtype
/* var recvtype: MClassType */;
9151 val
* var3
/* : MPropDef */;
9152 val
* var4
/* : MProperty */;
9153 val
* var_mproperty
/* var mproperty: MProperty */;
9154 short int var5
/* : Bool */;
9157 short int var6
/* : Bool */;
9158 static val
* varonce
;
9159 val
* var7
/* : String */;
9160 char* var8
/* : NativeString */;
9161 long var9
/* : Int */;
9162 val
* var10
/* : String */;
9163 val
* var11
/* : MModule */;
9164 val
* var12
/* : Array[MPropDef] */;
9165 val
* var_superprops
/* var superprops: Array[MPropDef] */;
9166 long var13
/* : Int */;
9167 long var14
/* : Int */;
9168 short int var15
/* : Bool */;
9169 short int var17
/* : Bool */;
9170 short int var18
/* : Bool */;
9171 short int var19
/* : Bool */;
9172 short int var_
/* var : Bool */;
9173 val
* var20
/* : MPropDef */;
9174 short int var21
/* : Bool */;
9175 static val
* varonce22
;
9176 val
* var23
/* : String */;
9177 char* var24
/* : NativeString */;
9178 long var25
/* : Int */;
9179 val
* var26
/* : String */;
9180 static val
* varonce27
;
9181 val
* var28
/* : String */;
9182 char* var29
/* : NativeString */;
9183 long var30
/* : Int */;
9184 val
* var31
/* : String */;
9185 val
* var32
/* : Array[Object] */;
9186 long var33
/* : Int */;
9187 val
* var34
/* : NativeArray[Object] */;
9188 val
* var35
/* : String */;
9189 val
* var36
/* : nullable Object */;
9190 val
* var_superprop
/* var superprop: MPropDef */;
9191 short int var37
/* : Bool */;
9194 short int var40
/* : Bool */;
9195 val
* var41
/* : MSignature */;
9196 val
* var_msignature
/* var msignature: MSignature */;
9197 val
* var42
/* : AExprs */;
9198 val
* var43
/* : Array[AExpr] */;
9199 val
* var_args
/* var args: Array[AExpr] */;
9200 long var44
/* : Int */;
9201 long var45
/* : Int */;
9202 short int var46
/* : Bool */;
9203 short int var48
/* : Bool */;
9206 short int var51
/* : Bool */;
9207 val
* var52
/* : String */;
9208 short int var53
/* : Bool */;
9209 val
* var54
/* : nullable MType */;
9210 short int var55
/* : Bool */;
9211 val
* var56
/* : MPropDef */;
9212 short int var57
/* : Bool */;
9214 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9215 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var
) /* mclassdef on <var:AClassdef>*/;
9217 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1454);
9220 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:nullable MClassDef>*/;
9222 var_recvtype
= var2
;
9223 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9224 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var3
) /* mproperty on <var3:MPropDef>*/;
9225 var_mproperty
= var4
;
9226 /* <var_mproperty:MProperty> isa MMethod */
9227 cltype
= type_model__MMethod
.color
;
9228 idtype
= type_model__MMethod
.id
;
9229 if(cltype
>= var_mproperty
->type
->table_size
) {
9232 var5
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
9239 var8
= "Error: super only usable in a method";
9241 var10
= string__NativeString__to_s_with_length(var8
, var9
);
9245 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var7
) /* error on <var_v:TypeVisitor>*/;
9249 var11
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9250 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)>*/;
9251 var_superprops
= var12
;
9252 var13
= ((long (*)(val
*))(var_superprops
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_superprops
) /* length on <var_superprops:Array[MPropDef]>*/;
9254 { /* Inline kernel#Int#== (var13,var14) */
9255 var17
= var13
== var14
;
9258 RET_LABEL16
:(void)0;
9261 var19
= ((short int (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MMethod__is_init
]))(var_mproperty
) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
9264 var20
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9265 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_model__MPropDef__is_intro
]))(var20
) /* is_intro on <var20:MPropDef>*/;
9271 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__process_superinit
]))(self
, var_v
) /* process_superinit on <self:ASuperExpr>*/;
9278 var24
= "Error: No super method to call for ";
9280 var26
= string__NativeString__to_s_with_length(var24
, var25
);
9289 var31
= string__NativeString__to_s_with_length(var29
, var30
);
9293 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
9294 { /* var32 = array_instance Array[Object] */
9296 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
9297 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
9298 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_mproperty
;
9299 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
9300 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
9301 CHECK_NEW_array__Array(var32
);
9303 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
9304 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var35
) /* error on <var_v:TypeVisitor>*/;
9308 var36
= ((val
* (*)(val
*))(var_superprops
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_superprops
) /* first on <var_superprops:Array[MPropDef]>*/;
9309 var_superprop
= var36
;
9310 /* <var_superprop:MPropDef> isa MMethodDef */
9311 cltype38
= type_model__MMethodDef
.color
;
9312 idtype39
= type_model__MMethodDef
.id
;
9313 if(cltype38
>= var_superprop
->type
->table_size
) {
9316 var37
= var_superprop
->type
->type_table
[cltype38
] == idtype39
;
9319 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/typing.nit", 1471);
9323 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>*/;
9324 var_msignature
= var41
;
9325 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
9326 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_typing__AExprs__to_a
]))(var42
) /* to_a on <var42:AExprs>*/;
9328 var44
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
9330 { /* Inline kernel#Int#> (var44,var45) */
9331 /* Covariant cast for argument 0 (i) <var45:Int> isa OTHER */
9332 /* <var45:Int> isa OTHER */
9333 var48
= 1; /* easy <var45:Int> isa OTHER*/
9335 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
9338 var51
= var44
> var45
;
9341 RET_LABEL47
:(void)0;
9344 var52
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty(MMethod)>*/;
9345 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>*/;
9349 var54
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
9350 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var54
) /* mtype= on <self:ASuperExpr>*/;
9352 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var55
) /* is_typed= on <self:ASuperExpr>*/;
9353 var56
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9355 ((void (*)(val
*, short int))(var56
->class->vft
[COLOR_typing__MPropDef__has_supercall_61d
]))(var56
, var57
) /* has_supercall= on <var56:MPropDef>*/;
9358 /* method typing#ASuperExpr#accept_typing for (self: Object, TypeVisitor) */
9359 void VIRTUAL_typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
9360 typing__ASuperExpr__accept_typing(self
, p0
);
9363 /* method typing#ASuperExpr#process_superinit for (self: ASuperExpr, TypeVisitor) */
9364 void typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
9365 val
* var_v
/* var v: TypeVisitor */;
9366 val
* var
/* : AClassdef */;
9367 val
* var1
/* : nullable MClassDef */;
9368 val
* var2
/* : MClassType */;
9369 val
* var_recvtype
/* var recvtype: MClassType */;
9370 val
* var3
/* : MPropDef */;
9371 val
* var4
/* : MProperty */;
9372 val
* var_mproperty
/* var mproperty: MProperty */;
9373 val
* var5
/* : null */;
9374 val
* var_superprop
/* var superprop: nullable MMethodDef */;
9375 val
* var6
/* : AClassdef */;
9376 val
* var7
/* : nullable MClassDef */;
9377 val
* var8
/* : Array[MClassType] */;
9378 val
* var9
/* : Iterator[nullable Object] */;
9379 short int var10
/* : Bool */;
9380 val
* var11
/* : nullable Object */;
9381 val
* var_msupertype
/* var msupertype: MClassType */;
9382 val
* var12
/* : MModule */;
9383 val
* var13
/* : MType */;
9384 val
* var14
/* : ModelBuilder */;
9385 val
* var15
/* : ToolContext */;
9386 long var16
/* : Int */;
9387 long var_errcount
/* var errcount: Int */;
9388 val
* var17
/* : String */;
9389 val
* var18
/* : nullable MProperty */;
9390 short int var19
/* : Bool */;
9393 val
* var_candidate
/* var candidate: nullable MMethod */;
9394 val
* var20
/* : null */;
9395 short int var21
/* : Bool */;
9396 val
* var22
/* : ModelBuilder */;
9397 val
* var23
/* : ToolContext */;
9398 long var24
/* : Int */;
9399 short int var25
/* : Bool */;
9400 short int var27
/* : Bool */;
9403 short int var30
/* : Bool */;
9404 short int var31
/* : Bool */;
9405 val
* var32
/* : null */;
9406 short int var33
/* : Bool */;
9407 short int var_
/* var : Bool */;
9408 val
* var34
/* : MProperty */;
9409 short int var35
/* : Bool */;
9410 static val
* varonce
;
9411 val
* var36
/* : String */;
9412 char* var37
/* : NativeString */;
9413 long var38
/* : Int */;
9414 val
* var39
/* : String */;
9415 static val
* varonce40
;
9416 val
* var41
/* : String */;
9417 char* var42
/* : NativeString */;
9418 long var43
/* : Int */;
9419 val
* var44
/* : String */;
9420 val
* var45
/* : String */;
9421 static val
* varonce46
;
9422 val
* var47
/* : String */;
9423 char* var48
/* : NativeString */;
9424 long var49
/* : Int */;
9425 val
* var50
/* : String */;
9426 val
* var51
/* : MProperty */;
9427 val
* var52
/* : String */;
9428 val
* var53
/* : Array[Object] */;
9429 long var54
/* : Int */;
9430 val
* var55
/* : NativeArray[Object] */;
9431 val
* var56
/* : String */;
9432 val
* var57
/* : MModule */;
9433 val
* var58
/* : Array[MPropDef] */;
9434 val
* var_candidatedefs
/* var candidatedefs: Array[MMethodDef] */;
9435 val
* var59
/* : null */;
9436 short int var60
/* : Bool */;
9437 val
* var61
/* : nullable Object */;
9438 short int var62
/* : Bool */;
9439 long var63
/* : Int */;
9440 long var64
/* : Int */;
9441 short int var65
/* : Bool */;
9442 short int var67
/* : Bool */;
9445 short int var70
/* : Bool */;
9446 static val
* varonce71
;
9447 val
* var72
/* : String */;
9448 char* var73
/* : NativeString */;
9449 long var74
/* : Int */;
9450 val
* var75
/* : String */;
9451 static val
* varonce76
;
9452 val
* var77
/* : String */;
9453 char* var78
/* : NativeString */;
9454 long var79
/* : Int */;
9455 val
* var80
/* : String */;
9456 static val
* varonce81
;
9457 val
* var82
/* : String */;
9458 char* var83
/* : NativeString */;
9459 long var84
/* : Int */;
9460 val
* var85
/* : String */;
9461 static val
* varonce86
;
9462 val
* var87
/* : String */;
9463 char* var88
/* : NativeString */;
9464 long var89
/* : Int */;
9465 val
* var90
/* : String */;
9466 val
* var91
/* : String */;
9467 val
* var92
/* : Array[Object] */;
9468 long var93
/* : Int */;
9469 val
* var94
/* : NativeArray[Object] */;
9470 val
* var95
/* : String */;
9471 val
* var96
/* : nullable Object */;
9472 val
* var97
/* : null */;
9473 short int var98
/* : Bool */;
9474 static val
* varonce99
;
9475 val
* var100
/* : String */;
9476 char* var101
/* : NativeString */;
9477 long var102
/* : Int */;
9478 val
* var103
/* : String */;
9479 static val
* varonce104
;
9480 val
* var105
/* : String */;
9481 char* var106
/* : NativeString */;
9482 long var107
/* : Int */;
9483 val
* var108
/* : String */;
9484 val
* var109
/* : Array[Object] */;
9485 long var110
/* : Int */;
9486 val
* var111
/* : NativeArray[Object] */;
9487 val
* var112
/* : String */;
9488 val
* var113
/* : MProperty */;
9489 val
* var114
/* : AExprs */;
9490 val
* var115
/* : Array[AExpr] */;
9491 val
* var_args
/* var args: Array[AExpr] */;
9492 short int var116
/* : Bool */;
9493 val
* var117
/* : MSignature */;
9494 val
* var_msignature
/* var msignature: MSignature */;
9495 long var118
/* : Int */;
9496 long var119
/* : Int */;
9497 short int var120
/* : Bool */;
9498 short int var122
/* : Bool */;
9501 short int var125
/* : Bool */;
9502 val
* var126
/* : String */;
9503 short int var127
/* : Bool */;
9504 short int var128
/* : Bool */;
9506 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9507 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var
) /* mclassdef on <var:AClassdef>*/;
9509 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1485);
9512 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:nullable MClassDef>*/;
9514 var_recvtype
= var2
;
9515 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9516 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var3
) /* mproperty on <var3:MPropDef>*/;
9517 var_mproperty
= var4
;
9519 var_superprop
= var5
;
9520 var6
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9521 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var6
) /* mclassdef on <var6:AClassdef>*/;
9523 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1488);
9526 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var7
) /* supertypes on <var7:nullable MClassDef>*/;
9528 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:Array[MClassType]>*/;
9530 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
9532 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
9533 var_msupertype
= var11
;
9534 var12
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9535 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>*/;
9536 var_msupertype
= var13
;
9537 var14
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
9538 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var14
) /* toolcontext on <var14:ModelBuilder>*/;
9539 var16
= ((long (*)(val
*))(var15
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var15
) /* error_count on <var15:ToolContext>*/;
9540 var_errcount
= var16
;
9541 var17
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty>*/;
9542 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>*/;
9543 /* <var18:nullable MProperty> isa nullable MMethod */
9544 cltype
= type_nullable_model__MMethod
.color
;
9545 idtype
= type_nullable_model__MMethod
.id
;
9549 if(cltype
>= var18
->type
->table_size
) {
9552 var19
= var18
->type
->type_table
[cltype
] == idtype
;
9556 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/typing.nit", 1491);
9559 var_candidate
= var18
;
9561 if (var_candidate
== NULL
) {
9562 var21
= 1; /* is null */
9564 var21
= 0; /* arg is null but recv is not */
9567 var22
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
9568 var23
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var22
) /* toolcontext on <var22:ModelBuilder>*/;
9569 var24
= ((long (*)(val
*))(var23
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var23
) /* error_count on <var23:ToolContext>*/;
9570 { /* Inline kernel#Int#> (var24,var_errcount) */
9571 /* Covariant cast for argument 0 (i) <var_errcount:Int> isa OTHER */
9572 /* <var_errcount:Int> isa OTHER */
9573 var27
= 1; /* easy <var_errcount:Int> isa OTHER*/
9575 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
9578 var30
= var24
> var_errcount
;
9581 RET_LABEL26
:(void)0;
9587 goto CONTINUE_label
;
9591 if (var_superprop
== NULL
) {
9592 var33
= 0; /* is null */
9594 var33
= 1; /* arg is null and recv is not */
9598 var34
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9599 var35
= ((short int (*)(val
*, val
*))(var34
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var34
, var_candidate
) /* != on <var34:MProperty(MMethod)>*/;
9608 var37
= "Error: conflicting super constructor to call for ";
9610 var39
= string__NativeString__to_s_with_length(var37
, var38
);
9619 var44
= string__NativeString__to_s_with_length(var42
, var43
);
9623 var45
= ((val
* (*)(val
*))(var_candidate
->class->vft
[COLOR_model__MProperty__full_name
]))(var_candidate
) /* full_name on <var_candidate:nullable MMethod(MMethod)>*/;
9629 var50
= string__NativeString__to_s_with_length(var48
, var49
);
9633 var51
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9634 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_model__MProperty__full_name
]))(var51
) /* full_name on <var51:MProperty(MMethod)>*/;
9635 var53
= NEW_array__Array(&type_array__Arraykernel__Object
);
9636 { /* var53 = array_instance Array[Object] */
9638 var55
= NEW_array__NativeArray(var54
, &type_array__NativeArraykernel__Object
);
9639 ((struct instance_array__NativeArray
*)var55
)->values
[0] = (val
*) var36
;
9640 ((struct instance_array__NativeArray
*)var55
)->values
[1] = (val
*) var_mproperty
;
9641 ((struct instance_array__NativeArray
*)var55
)->values
[2] = (val
*) var41
;
9642 ((struct instance_array__NativeArray
*)var55
)->values
[3] = (val
*) var45
;
9643 ((struct instance_array__NativeArray
*)var55
)->values
[4] = (val
*) var47
;
9644 ((struct instance_array__NativeArray
*)var55
)->values
[5] = (val
*) var52
;
9645 ((void (*)(val
*, val
*, long))(var53
->class->vft
[COLOR_array__Array__with_native
]))(var53
, var55
, var54
) /* with_native on <var53:Array[Object]>*/;
9646 CHECK_NEW_array__Array(var53
);
9648 var56
= ((val
* (*)(val
*))(var53
->class->vft
[COLOR_string__Object__to_s
]))(var53
) /* to_s on <var53:Array[Object]>*/;
9649 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var56
) /* error on <var_v:TypeVisitor>*/;
9653 var57
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9654 var58
= ((val
* (*)(val
*, val
*, val
*))(var_candidate
->class->vft
[COLOR_model__MProperty__lookup_definitions
]))(var_candidate
, var57
, var_recvtype
) /* lookup_definitions on <var_candidate:nullable MMethod(MMethod)>*/;
9655 var_candidatedefs
= var58
;
9657 if (var_superprop
== NULL
) {
9658 var60
= 0; /* is null */
9660 var60
= 1; /* arg is null and recv is not */
9663 var61
= ((val
* (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_candidatedefs
) /* first on <var_candidatedefs:Array[MMethodDef]>*/;
9664 var62
= ((short int (*)(val
*, val
*))(var_superprop
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_superprop
, var61
) /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9666 goto CONTINUE_label
;
9669 ((void (*)(val
*, val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidatedefs
, var_superprop
) /* add on <var_candidatedefs:Array[MMethodDef]>*/;
9672 var63
= ((long (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidatedefs
) /* length on <var_candidatedefs:Array[MMethodDef]>*/;
9674 { /* Inline kernel#Int#> (var63,var64) */
9675 /* Covariant cast for argument 0 (i) <var64:Int> isa OTHER */
9676 /* <var64:Int> isa OTHER */
9677 var67
= 1; /* easy <var64:Int> isa OTHER*/
9679 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
9682 var70
= var63
> var64
;
9685 RET_LABEL66
:(void)0;
9691 var73
= "Error: confliting property definitions for property ";
9693 var75
= string__NativeString__to_s_with_length(var73
, var74
);
9702 var80
= string__NativeString__to_s_with_length(var78
, var79
);
9711 var85
= string__NativeString__to_s_with_length(var83
, var84
);
9720 var90
= string__NativeString__to_s_with_length(var88
, var89
);
9724 var91
= ((val
* (*)(val
*, val
*))(var_candidatedefs
->class->vft
[COLOR_string__Collection__join
]))(var_candidatedefs
, var87
) /* join on <var_candidatedefs:Array[MMethodDef]>*/;
9725 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
9726 { /* var92 = array_instance Array[Object] */
9728 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
9729 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var72
;
9730 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var_mproperty
;
9731 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var77
;
9732 ((struct instance_array__NativeArray
*)var94
)->values
[3] = (val
*) var_recvtype
;
9733 ((struct instance_array__NativeArray
*)var94
)->values
[4] = (val
*) var82
;
9734 ((struct instance_array__NativeArray
*)var94
)->values
[5] = (val
*) var91
;
9735 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
9736 CHECK_NEW_array__Array(var92
);
9738 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
9739 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var95
) /* error on <var_v:TypeVisitor>*/;
9743 var96
= ((val
* (*)(val
*))(var_candidatedefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_candidatedefs
) /* first on <var_candidatedefs:Array[MMethodDef]>*/;
9744 var_superprop
= var96
;
9745 CONTINUE_label
: (void)0;
9746 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
9748 BREAK_label
: (void)0;
9750 if (var_superprop
== NULL
) {
9751 var98
= 1; /* is null */
9753 var98
= 0; /* arg is null but recv is not */
9759 var101
= "Error: No super method to call for ";
9761 var103
= string__NativeString__to_s_with_length(var101
, var102
);
9766 var105
= varonce104
;
9770 var108
= string__NativeString__to_s_with_length(var106
, var107
);
9772 varonce104
= var105
;
9774 var109
= NEW_array__Array(&type_array__Arraykernel__Object
);
9775 { /* var109 = array_instance Array[Object] */
9777 var111
= NEW_array__NativeArray(var110
, &type_array__NativeArraykernel__Object
);
9778 ((struct instance_array__NativeArray
*)var111
)->values
[0] = (val
*) var100
;
9779 ((struct instance_array__NativeArray
*)var111
)->values
[1] = (val
*) var_mproperty
;
9780 ((struct instance_array__NativeArray
*)var111
)->values
[2] = (val
*) var105
;
9781 ((void (*)(val
*, val
*, long))(var109
->class->vft
[COLOR_array__Array__with_native
]))(var109
, var111
, var110
) /* with_native on <var109:Array[Object]>*/;
9782 CHECK_NEW_array__Array(var109
);
9784 var112
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_string__Object__to_s
]))(var109
) /* to_s on <var109:Array[Object]>*/;
9785 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var112
) /* error on <var_v:TypeVisitor>*/;
9789 var113
= ((val
* (*)(val
*))(var_superprop
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_superprop
) /* mproperty on <var_superprop:nullable MMethodDef(MMethodDef)>*/;
9790 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__mproperty_61d
]))(self
, var113
) /* mproperty= on <self:ASuperExpr>*/;
9791 var114
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
9792 var115
= ((val
* (*)(val
*))(var114
->class->vft
[COLOR_typing__AExprs__to_a
]))(var114
) /* to_a on <var114:AExprs>*/;
9795 var117
= ((val
* (*)(val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_signature_for
]))(var_v
, var_superprop
, var_recvtype
, var116
) /* resolve_signature_for on <var_v:TypeVisitor>*/;
9796 var_msignature
= var117
;
9797 var118
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
9799 { /* Inline kernel#Int#> (var118,var119) */
9800 /* Covariant cast for argument 0 (i) <var119:Int> isa OTHER */
9801 /* <var119:Int> isa OTHER */
9802 var122
= 1; /* easy <var119:Int> isa OTHER*/
9804 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
9807 var125
= var118
> var119
;
9810 RET_LABEL121
:(void)0;
9813 var126
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty>*/;
9814 var127
= ((short int (*)(val
*, val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__check_signature
]))(var_v
, self
, var_args
, var126
, var_msignature
) /* check_signature on <var_v:TypeVisitor>*/;
9819 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var128
) /* is_typed= on <self:ASuperExpr>*/;
9822 /* method typing#ASuperExpr#process_superinit for (self: Object, TypeVisitor) */
9823 void VIRTUAL_typing__ASuperExpr__process_superinit(val
* self
, val
* p0
) {
9824 typing__ASuperExpr__process_superinit(self
, p0
);
9827 /* method typing#ANewExpr#mproperty for (self: ANewExpr): nullable MMethod */
9828 val
* typing__ANewExpr__mproperty(val
* self
) {
9829 val
* var
/* : nullable MMethod */;
9830 val
* var1
/* : nullable CallSite */;
9831 val
* var2
/* : MMethod */;
9832 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ANewExpr__callsite
]))(self
) /* callsite on <self:ANewExpr>*/;
9834 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/typing.nit", 1533);
9837 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var1
) /* mproperty on <var1:nullable CallSite>*/;
9844 /* method typing#ANewExpr#mproperty for (self: Object): nullable MMethod */
9845 val
* VIRTUAL_typing__ANewExpr__mproperty(val
* self
) {
9846 val
* var
/* : nullable MMethod */;
9847 val
* var1
/* : nullable MMethod */;
9848 var1
= typing__ANewExpr__mproperty(self
);
9853 /* method typing#ANewExpr#callsite for (self: ANewExpr): nullable CallSite */
9854 val
* typing__ANewExpr__callsite(val
* self
) {
9855 val
* var
/* : nullable CallSite */;
9856 val
* var1
/* : nullable CallSite */;
9857 var1
= self
->attrs
[COLOR_typing__ANewExpr___64dcallsite
].val
; /* @callsite on <self:ANewExpr> */
9862 /* method typing#ANewExpr#callsite for (self: Object): nullable CallSite */
9863 val
* VIRTUAL_typing__ANewExpr__callsite(val
* self
) {
9864 val
* var
/* : nullable CallSite */;
9865 val
* var1
/* : nullable CallSite */;
9866 var1
= typing__ANewExpr__callsite(self
);
9871 /* method typing#ANewExpr#callsite= for (self: ANewExpr, nullable CallSite) */
9872 void typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
9873 self
->attrs
[COLOR_typing__ANewExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ANewExpr> */
9876 /* method typing#ANewExpr#callsite= for (self: Object, nullable CallSite) */
9877 void VIRTUAL_typing__ANewExpr__callsite_61d(val
* self
, val
* p0
) {
9878 typing__ANewExpr__callsite_61d(self
, p0
);