1 #include "typing.sep.0.h"
2 /* method typing#ToolContext#typing_phase for (self: ToolContext): Phase */
3 val
* typing__ToolContext__typing_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_typing__ToolContext___64dtyping_phase
].val
; /* @typing_phase on <self:ToolContext> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @typing_phase");
9 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 27);
16 /* method typing#ToolContext#typing_phase for (self: Object): Phase */
17 val
* VIRTUAL_typing__ToolContext__typing_phase(val
* self
) {
18 val
* var
/* : Phase */;
19 val
* var1
/* : Phase */;
20 var1
= typing__ToolContext__typing_phase(self
);
25 /* method typing#ToolContext#typing_phase= for (self: ToolContext, Phase) */
26 void typing__ToolContext__typing_phase_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_typing__ToolContext___64dtyping_phase
].val
= p0
; /* @typing_phase on <self:ToolContext> */
30 /* method typing#ToolContext#typing_phase= for (self: Object, Phase) */
31 void VIRTUAL_typing__ToolContext__typing_phase_61d(val
* self
, val
* p0
) {
32 typing__ToolContext__typing_phase_61d(self
, p0
);
35 /* method typing#TypingPhase#process_npropdef for (self: TypingPhase, APropdef) */
36 void typing__TypingPhase__process_npropdef(val
* self
, val
* p0
) {
37 val
* var_npropdef
/* var npropdef: APropdef */;
38 val
* var
/* : ToolContext */;
39 val
* var1
/* : ModelBuilder */;
41 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_phase__Phase__toolcontext
]))(self
) /* toolcontext on <self:TypingPhase>*/;
42 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ToolContext__modelbuilder
]))(var
) /* modelbuilder on <var:ToolContext>*/;
43 ((void (*)(val
*, val
*))(var_npropdef
->class->vft
[COLOR_typing__APropdef__do_typing
]))(var_npropdef
, var1
) /* do_typing on <var_npropdef:APropdef>*/;
46 /* method typing#TypingPhase#process_npropdef for (self: Object, APropdef) */
47 void VIRTUAL_typing__TypingPhase__process_npropdef(val
* self
, val
* p0
) {
48 typing__TypingPhase__process_npropdef(self
, p0
);
51 /* method typing#TypeVisitor#modelbuilder for (self: TypeVisitor): ModelBuilder */
52 val
* typing__TypeVisitor__modelbuilder(val
* self
) {
53 val
* var
/* : ModelBuilder */;
54 val
* var1
/* : ModelBuilder */;
55 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dmodelbuilder
].val
; /* @modelbuilder on <self:TypeVisitor> */
57 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @modelbuilder");
58 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 36);
65 /* method typing#TypeVisitor#modelbuilder for (self: Object): ModelBuilder */
66 val
* VIRTUAL_typing__TypeVisitor__modelbuilder(val
* self
) {
67 val
* var
/* : ModelBuilder */;
68 val
* var1
/* : ModelBuilder */;
69 var1
= typing__TypeVisitor__modelbuilder(self
);
74 /* method typing#TypeVisitor#modelbuilder= for (self: TypeVisitor, ModelBuilder) */
75 void typing__TypeVisitor__modelbuilder_61d(val
* self
, val
* p0
) {
76 self
->attrs
[COLOR_typing__TypeVisitor___64dmodelbuilder
].val
= p0
; /* @modelbuilder on <self:TypeVisitor> */
79 /* method typing#TypeVisitor#modelbuilder= for (self: Object, ModelBuilder) */
80 void VIRTUAL_typing__TypeVisitor__modelbuilder_61d(val
* self
, val
* p0
) {
81 typing__TypeVisitor__modelbuilder_61d(self
, p0
);
84 /* method typing#TypeVisitor#nclassdef for (self: TypeVisitor): AClassdef */
85 val
* typing__TypeVisitor__nclassdef(val
* self
) {
86 val
* var
/* : AClassdef */;
87 val
* var1
/* : AClassdef */;
88 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dnclassdef
].val
; /* @nclassdef on <self:TypeVisitor> */
90 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @nclassdef");
91 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 37);
98 /* method typing#TypeVisitor#nclassdef for (self: Object): AClassdef */
99 val
* VIRTUAL_typing__TypeVisitor__nclassdef(val
* self
) {
100 val
* var
/* : AClassdef */;
101 val
* var1
/* : AClassdef */;
102 var1
= typing__TypeVisitor__nclassdef(self
);
107 /* method typing#TypeVisitor#nclassdef= for (self: TypeVisitor, AClassdef) */
108 void typing__TypeVisitor__nclassdef_61d(val
* self
, val
* p0
) {
109 self
->attrs
[COLOR_typing__TypeVisitor___64dnclassdef
].val
= p0
; /* @nclassdef on <self:TypeVisitor> */
112 /* method typing#TypeVisitor#nclassdef= for (self: Object, AClassdef) */
113 void VIRTUAL_typing__TypeVisitor__nclassdef_61d(val
* self
, val
* p0
) {
114 typing__TypeVisitor__nclassdef_61d(self
, p0
);
117 /* method typing#TypeVisitor#mpropdef for (self: TypeVisitor): MPropDef */
118 val
* typing__TypeVisitor__mpropdef(val
* self
) {
119 val
* var
/* : MPropDef */;
120 val
* var1
/* : MPropDef */;
121 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dmpropdef
].val
; /* @mpropdef on <self:TypeVisitor> */
123 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdef");
124 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 38);
131 /* method typing#TypeVisitor#mpropdef for (self: Object): MPropDef */
132 val
* VIRTUAL_typing__TypeVisitor__mpropdef(val
* self
) {
133 val
* var
/* : MPropDef */;
134 val
* var1
/* : MPropDef */;
135 var1
= typing__TypeVisitor__mpropdef(self
);
140 /* method typing#TypeVisitor#mpropdef= for (self: TypeVisitor, MPropDef) */
141 void typing__TypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
142 self
->attrs
[COLOR_typing__TypeVisitor___64dmpropdef
].val
= p0
; /* @mpropdef on <self:TypeVisitor> */
145 /* method typing#TypeVisitor#mpropdef= for (self: Object, MPropDef) */
146 void VIRTUAL_typing__TypeVisitor__mpropdef_61d(val
* self
, val
* p0
) {
147 typing__TypeVisitor__mpropdef_61d(self
, p0
);
150 /* method typing#TypeVisitor#selfvariable for (self: TypeVisitor): Variable */
151 val
* typing__TypeVisitor__selfvariable(val
* self
) {
152 val
* var
/* : Variable */;
153 val
* var1
/* : Variable */;
154 var1
= self
->attrs
[COLOR_typing__TypeVisitor___64dselfvariable
].val
; /* @selfvariable on <self:TypeVisitor> */
156 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @selfvariable");
157 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 40);
164 /* method typing#TypeVisitor#selfvariable for (self: Object): Variable */
165 val
* VIRTUAL_typing__TypeVisitor__selfvariable(val
* self
) {
166 val
* var
/* : Variable */;
167 val
* var1
/* : Variable */;
168 var1
= typing__TypeVisitor__selfvariable(self
);
173 /* method typing#TypeVisitor#selfvariable= for (self: TypeVisitor, Variable) */
174 void typing__TypeVisitor__selfvariable_61d(val
* self
, val
* p0
) {
175 self
->attrs
[COLOR_typing__TypeVisitor___64dselfvariable
].val
= p0
; /* @selfvariable on <self:TypeVisitor> */
178 /* method typing#TypeVisitor#selfvariable= for (self: Object, Variable) */
179 void VIRTUAL_typing__TypeVisitor__selfvariable_61d(val
* self
, val
* p0
) {
180 typing__TypeVisitor__selfvariable_61d(self
, p0
);
183 /* method typing#TypeVisitor#init for (self: TypeVisitor, ModelBuilder, AClassdef, MPropDef) */
184 void typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
185 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
186 val
* var_nclassdef
/* var nclassdef: AClassdef */;
187 val
* var_mpropdef
/* var mpropdef: MPropDef */;
188 val
* var
/* : nullable MClassDef */;
189 val
* var1
/* : MClass */;
190 val
* var_mclass
/* var mclass: MClass */;
191 val
* var2
/* : Variable */;
193 val
* var3
/* : String */;
194 char* var4
/* : NativeString */;
195 long var5
/* : Int */;
196 val
* var6
/* : String */;
197 val
* var_selfvariable
/* var selfvariable: Variable */;
198 val
* var7
/* : MClassType */;
199 var_modelbuilder
= p0
;
202 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder_61d
]))(self
, var_modelbuilder
) /* modelbuilder= on <self:TypeVisitor>*/;
203 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef_61d
]))(self
, var_nclassdef
) /* nclassdef= on <self:TypeVisitor>*/;
204 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mpropdef_61d
]))(self
, var_mpropdef
) /* mpropdef= on <self:TypeVisitor>*/;
205 var
= ((val
* (*)(val
*))(var_nclassdef
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var_nclassdef
) /* mclassdef on <var_nclassdef:AClassdef>*/;
207 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
208 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 48);
211 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_model__MClassDef__mclass
]))(var
) /* mclass on <var:nullable MClassDef>*/;
214 var2
= NEW_scope__Variable(&type_scope__Variable
);
220 var6
= string__NativeString__to_s_with_length(var4
, var5
);
224 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_scope__Variable__init
]))(var2
, var3
) /* init on <var2:Variable>*/;
225 var_selfvariable
= var2
;
226 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__selfvariable_61d
]))(self
, var_selfvariable
) /* selfvariable= on <self:TypeVisitor>*/;
227 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:MClass>*/;
228 ((void (*)(val
*, val
*))(var_selfvariable
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var_selfvariable
, var7
) /* declared_type= on <var_selfvariable:Variable>*/;
231 /* method typing#TypeVisitor#init for (self: Object, ModelBuilder, AClassdef, MPropDef) */
232 void VIRTUAL_typing__TypeVisitor__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
233 typing__TypeVisitor__init(self
, p0
, p1
, p2
);
236 /* method typing#TypeVisitor#mmodule for (self: TypeVisitor): MModule */
237 val
* typing__TypeVisitor__mmodule(val
* self
) {
238 val
* var
/* : MModule */;
239 val
* var1
/* : AClassdef */;
240 val
* var2
/* : nullable MClassDef */;
241 val
* var3
/* : MModule */;
242 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
243 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
245 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
246 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 55);
249 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
256 /* method typing#TypeVisitor#mmodule for (self: Object): MModule */
257 val
* VIRTUAL_typing__TypeVisitor__mmodule(val
* self
) {
258 val
* var
/* : MModule */;
259 val
* var1
/* : MModule */;
260 var1
= typing__TypeVisitor__mmodule(self
);
265 /* method typing#TypeVisitor#anchor for (self: TypeVisitor): MClassType */
266 val
* typing__TypeVisitor__anchor(val
* self
) {
267 val
* var
/* : MClassType */;
268 val
* var1
/* : AClassdef */;
269 val
* var2
/* : nullable MClassDef */;
270 val
* var3
/* : MClassType */;
271 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
272 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
274 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
275 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 57);
278 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var2
) /* bound_mtype on <var2:nullable MClassDef>*/;
285 /* method typing#TypeVisitor#anchor for (self: Object): MClassType */
286 val
* VIRTUAL_typing__TypeVisitor__anchor(val
* self
) {
287 val
* var
/* : MClassType */;
288 val
* var1
/* : MClassType */;
289 var1
= typing__TypeVisitor__anchor(self
);
294 /* method typing#TypeVisitor#anchor_to for (self: TypeVisitor, MType): MType */
295 val
* typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
296 val
* var
/* : MType */;
297 val
* var_mtype
/* var mtype: MType */;
298 val
* var1
/* : AClassdef */;
299 val
* var2
/* : nullable MClassDef */;
300 val
* var3
/* : MModule */;
301 val
* var_mmodule
/* var mmodule: MModule */;
302 val
* var4
/* : AClassdef */;
303 val
* var5
/* : nullable MClassDef */;
304 val
* var6
/* : MClassType */;
305 val
* var_anchor
/* var anchor: MClassType */;
306 val
* var7
/* : MType */;
308 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
309 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
311 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
312 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 61);
315 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
318 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
319 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
321 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
322 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 62);
325 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
328 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>*/;
334 /* method typing#TypeVisitor#anchor_to for (self: Object, MType): MType */
335 val
* VIRTUAL_typing__TypeVisitor__anchor_to(val
* self
, val
* p0
) {
336 val
* var
/* : MType */;
337 val
* var1
/* : MType */;
338 var1
= typing__TypeVisitor__anchor_to(self
, p0
);
343 /* method typing#TypeVisitor#is_subtype for (self: TypeVisitor, MType, MType): Bool */
344 short int typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
345 short int var
/* : Bool */;
346 val
* var_sub
/* var sub: MType */;
347 val
* var_sup
/* var sup: MType */;
348 val
* var1
/* : AClassdef */;
349 val
* var2
/* : nullable MClassDef */;
350 val
* var3
/* : MModule */;
351 val
* var_mmodule
/* var mmodule: MModule */;
352 val
* var4
/* : AClassdef */;
353 val
* var5
/* : nullable MClassDef */;
354 val
* var6
/* : MClassType */;
355 val
* var_anchor
/* var anchor: MClassType */;
356 short int var7
/* : Bool */;
359 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
360 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
362 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
363 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 68);
366 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
369 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
370 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
372 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
373 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 69);
376 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
379 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>*/;
385 /* method typing#TypeVisitor#is_subtype for (self: Object, MType, MType): Bool */
386 short int VIRTUAL_typing__TypeVisitor__is_subtype(val
* self
, val
* p0
, val
* p1
) {
387 short int var
/* : Bool */;
388 short int var1
/* : Bool */;
389 var1
= typing__TypeVisitor__is_subtype(self
, p0
, p1
);
394 /* method typing#TypeVisitor#resolve_for for (self: TypeVisitor, MType, MType, Bool): MType */
395 val
* typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
396 val
* var
/* : MType */;
397 val
* var_mtype
/* var mtype: MType */;
398 val
* var_subtype
/* var subtype: MType */;
399 short int var_for_self
/* var for_self: Bool */;
400 val
* var1
/* : AClassdef */;
401 val
* var2
/* : nullable MClassDef */;
402 val
* var3
/* : MModule */;
403 val
* var_mmodule
/* var mmodule: MModule */;
404 val
* var4
/* : AClassdef */;
405 val
* var5
/* : nullable MClassDef */;
406 val
* var6
/* : MClassType */;
407 val
* var_anchor
/* var anchor: MClassType */;
408 short int var7
/* : Bool */;
409 val
* var8
/* : MType */;
410 val
* var_res
/* var res: MType */;
414 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
415 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
417 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
418 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 75);
421 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
424 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
425 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var4
) /* mclassdef on <var4:AClassdef>*/;
427 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
428 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 76);
431 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var5
) /* bound_mtype on <var5:nullable MClassDef>*/;
434 var7
= !var_for_self
;
435 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>*/;
442 /* method typing#TypeVisitor#resolve_for for (self: Object, MType, MType, Bool): MType */
443 val
* VIRTUAL_typing__TypeVisitor__resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
444 val
* var
/* : MType */;
445 val
* var1
/* : MType */;
446 var1
= typing__TypeVisitor__resolve_for(self
, p0
, p1
, p2
);
451 /* method typing#TypeVisitor#resolve_signature_for for (self: TypeVisitor, MMethodDef, MType, Bool): MSignature */
452 val
* typing__TypeVisitor__resolve_signature_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
453 val
* var
/* : MSignature */;
454 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
455 val
* var_recv
/* var recv: MType */;
456 short int var_for_self
/* var for_self: Bool */;
457 val
* var1
/* : nullable MSignature */;
458 val
* var2
/* : MType */;
459 short int var3
/* : Bool */;
462 const char* var_class_name
;
466 var1
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
468 fprintf(stderr
, "Runtime error: %s", "Cast failed");
469 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 89);
472 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>*/;
473 /* <var2:MType> isa MSignature */
474 cltype
= type_model__MSignature
.color
;
475 idtype
= type_model__MSignature
.id
;
476 if(cltype
>= var2
->type
->table_size
) {
479 var3
= var2
->type
->type_table
[cltype
] == idtype
;
482 var_class_name
= var2
== NULL ?
"null" : var2
->type
->name
;
483 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
484 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 89);
492 /* method typing#TypeVisitor#resolve_signature_for for (self: Object, MMethodDef, MType, Bool): MSignature */
493 val
* VIRTUAL_typing__TypeVisitor__resolve_signature_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
494 val
* var
/* : MSignature */;
495 val
* var1
/* : MSignature */;
496 var1
= typing__TypeVisitor__resolve_signature_for(self
, p0
, p1
, p2
);
501 /* method typing#TypeVisitor#check_subtype for (self: TypeVisitor, ANode, MType, MType): nullable MType */
502 val
* typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
503 val
* var
/* : nullable MType */;
504 val
* var_node
/* var node: ANode */;
505 val
* var_sub
/* var sub: MType */;
506 val
* var_sup
/* var sup: MType */;
507 short int var1
/* : Bool */;
508 val
* var2
/* : MType */;
509 short int var3
/* : Bool */;
510 val
* var4
/* : ModelBuilder */;
512 val
* var5
/* : String */;
513 char* var6
/* : NativeString */;
514 long var7
/* : Int */;
515 val
* var8
/* : String */;
516 static val
* varonce9
;
517 val
* var10
/* : String */;
518 char* var11
/* : NativeString */;
519 long var12
/* : Int */;
520 val
* var13
/* : String */;
521 val
* var14
/* : Array[Object] */;
522 long var15
/* : Int */;
523 val
* var16
/* : NativeArray[Object] */;
524 val
* var17
/* : String */;
525 val
* var18
/* : null */;
529 var1
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var_sup
) /* is_subtype on <self:TypeVisitor>*/;
535 var2
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(self
, var_sup
) /* anchor_to on <self:TypeVisitor>*/;
536 var3
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var2
) /* is_subtype on <self:TypeVisitor>*/;
542 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
546 var6
= "Type error: expected ";
548 var8
= string__NativeString__to_s_with_length(var6
, var7
);
557 var13
= string__NativeString__to_s_with_length(var11
, var12
);
561 var14
= NEW_array__Array(&type_array__Arraykernel__Object
);
562 { /* var14 = array_instance Array[Object] */
564 var16
= NEW_array__NativeArray(var15
, &type_array__NativeArraykernel__Object
);
565 ((struct instance_array__NativeArray
*)var16
)->values
[0] = (val
*) var5
;
566 ((struct instance_array__NativeArray
*)var16
)->values
[1] = (val
*) var_sup
;
567 ((struct instance_array__NativeArray
*)var16
)->values
[2] = (val
*) var10
;
568 ((struct instance_array__NativeArray
*)var16
)->values
[3] = (val
*) var_sub
;
569 ((void (*)(val
*, val
*, long))(var14
->class->vft
[COLOR_array__Array__with_native
]))(var14
, var16
, var15
) /* with_native on <var14:Array[Object]>*/;
571 var17
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_string__Object__to_s
]))(var14
) /* to_s on <var14:Array[Object]>*/;
572 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var4
, var_node
, var17
) /* error on <var4:ModelBuilder>*/;
579 /* method typing#TypeVisitor#check_subtype for (self: Object, ANode, MType, MType): nullable MType */
580 val
* VIRTUAL_typing__TypeVisitor__check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
581 val
* var
/* : nullable MType */;
582 val
* var1
/* : nullable MType */;
583 var1
= typing__TypeVisitor__check_subtype(self
, p0
, p1
, p2
);
588 /* method typing#TypeVisitor#visit_stmt for (self: TypeVisitor, nullable AExpr) */
589 void typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
590 val
* var_nexpr
/* var nexpr: nullable AExpr */;
591 val
* var
/* : null */;
592 short int var1
/* : Bool */;
595 if (var_nexpr
== NULL
) {
596 var1
= 1; /* is null */
598 var1
= 0; /* arg is null but recv is not */
604 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:nullable AExpr(AExpr)>*/;
607 /* method typing#TypeVisitor#visit_stmt for (self: Object, nullable AExpr) */
608 void VIRTUAL_typing__TypeVisitor__visit_stmt(val
* self
, val
* p0
) {
609 typing__TypeVisitor__visit_stmt(self
, p0
);
612 /* method typing#TypeVisitor#visit_expr for (self: TypeVisitor, AExpr): nullable MType */
613 val
* typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
614 val
* var
/* : nullable MType */;
615 val
* var_nexpr
/* var nexpr: AExpr */;
616 val
* var1
/* : nullable MType */;
617 val
* var_mtype
/* var mtype: nullable MType */;
618 val
* var2
/* : null */;
619 short int var3
/* : Bool */;
620 short int var4
/* : Bool */;
621 short int var5
/* : Bool */;
622 val
* var6
/* : ModelBuilder */;
623 val
* var7
/* : ToolContext */;
624 long var8
/* : Int */;
625 long var9
/* : Int */;
626 short int var10
/* : Bool */;
627 short int var12
/* : Bool */;
630 const char* var_class_name
;
631 short int var13
/* : Bool */;
632 short int var14
/* : Bool */;
633 val
* var15
/* : ModelBuilder */;
634 val
* var16
/* : ToolContext */;
635 long var17
/* : Int */;
636 long var18
/* : Int */;
637 short int var19
/* : Bool */;
638 short int var21
/* : Bool */;
641 const char* var_class_name24
;
642 short int var25
/* : Bool */;
644 val
* var26
/* : String */;
645 char* var27
/* : NativeString */;
646 long var28
/* : Int */;
647 val
* var29
/* : String */;
648 val
* var30
/* : null */;
649 static val
* varonce31
;
650 val
* var32
/* : String */;
651 char* var33
/* : NativeString */;
652 long var34
/* : Int */;
653 val
* var35
/* : String */;
654 val
* var36
/* : null */;
656 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__accept_typing
]))(var_nexpr
, self
) /* accept_typing on <var_nexpr:AExpr>*/;
657 var1
= ((val
* (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__mtype
]))(var_nexpr
) /* mtype on <var_nexpr:AExpr>*/;
660 if (var_mtype
== NULL
) {
661 var3
= 0; /* is null */
663 var3
= 1; /* arg is null and recv is not */
670 var4
= ((short int (*)(val
*))(var_nexpr
->class->vft
[COLOR_typing__AExpr__is_typed
]))(var_nexpr
) /* is_typed on <var_nexpr:AExpr>*/;
673 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
674 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var6
) /* toolcontext on <var6:ModelBuilder>*/;
675 var8
= ((long (*)(val
*))(var7
->class->vft
[COLOR_toolcontext__ToolContext__error_count
]))(var7
) /* error_count on <var7:ToolContext>*/;
677 { /* Inline kernel#Int#> (var8,var9) */
678 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
679 /* <var9:Int> isa OTHER */
680 var12
= 1; /* easy <var9:Int> isa OTHER*/
682 var_class_name
= type_kernel__Int
.name
;
683 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
684 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
694 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
695 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var15
) /* toolcontext on <var15:ModelBuilder>*/;
696 var17
= ((long (*)(val
*))(var16
->class->vft
[COLOR_toolcontext__ToolContext__verbose_level
]))(var16
) /* verbose_level on <var16:ToolContext>*/;
698 { /* Inline kernel#Int#> (var17,var18) */
699 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
700 /* <var18:Int> isa OTHER */
701 var21
= 1; /* easy <var18:Int> isa OTHER*/
703 var_class_name24
= type_kernel__Int
.name
;
704 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24
);
705 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
708 var25
= var17
> var18
;
717 var27
= "No return type but no error.";
719 var29
= string__NativeString__to_s_with_length(var27
, var28
);
723 ((void (*)(val
*, val
*))(var_nexpr
->class->vft
[COLOR_parser_nodes__ANode__debug
]))(var_nexpr
, var26
) /* debug on <var_nexpr:AExpr>*/;
736 var33
= "Type error: expected expression.";
738 var35
= string__NativeString__to_s_with_length(var33
, var34
);
742 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_nexpr
, var32
) /* error on <self:TypeVisitor>*/;
749 /* method typing#TypeVisitor#visit_expr for (self: Object, AExpr): nullable MType */
750 val
* VIRTUAL_typing__TypeVisitor__visit_expr(val
* self
, val
* p0
) {
751 val
* var
/* : nullable MType */;
752 val
* var1
/* : nullable MType */;
753 var1
= typing__TypeVisitor__visit_expr(self
, p0
);
758 /* method typing#TypeVisitor#visit_expr_subtype for (self: TypeVisitor, AExpr, nullable MType): nullable MType */
759 val
* typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
760 val
* var
/* : nullable MType */;
761 val
* var_nexpr
/* var nexpr: AExpr */;
762 val
* var_sup
/* var sup: nullable MType */;
763 val
* var1
/* : nullable MType */;
764 val
* var_sub
/* var sub: nullable MType */;
765 val
* var2
/* : null */;
766 short int var3
/* : Bool */;
767 val
* var4
/* : null */;
768 val
* var5
/* : null */;
769 short int var6
/* : Bool */;
770 val
* var7
/* : null */;
771 val
* var8
/* : nullable MType */;
772 val
* var_res
/* var res: nullable MType */;
773 short int var9
/* : Bool */;
776 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(self
, var_nexpr
) /* visit_expr on <self:TypeVisitor>*/;
779 if (var_sub
== NULL
) {
780 var3
= 1; /* is null */
782 var3
= 0; /* arg is null but recv is not */
791 if (var_sup
== NULL
) {
792 var6
= 1; /* is null */
794 var6
= 0; /* arg is null but recv is not */
802 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>*/;
804 if (var_res
== NULL
) {
805 var9
= 1; /* <var_sub:nullable MType(MType)> cannot be null */
807 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_res
, var_sub
) /* != on <var_res:nullable MType>*/;
810 ((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>*/;
818 /* method typing#TypeVisitor#visit_expr_subtype for (self: Object, AExpr, nullable MType): nullable MType */
819 val
* VIRTUAL_typing__TypeVisitor__visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
820 val
* var
/* : nullable MType */;
821 val
* var1
/* : nullable MType */;
822 var1
= typing__TypeVisitor__visit_expr_subtype(self
, p0
, p1
);
827 /* method typing#TypeVisitor#visit_expr_bool for (self: TypeVisitor, AExpr): nullable MType */
828 val
* typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
829 val
* var
/* : nullable MType */;
830 val
* var_nexpr
/* var nexpr: AExpr */;
831 val
* var1
/* : nullable MType */;
832 val
* var2
/* : nullable MType */;
834 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(self
, var_nexpr
) /* type_bool on <self:TypeVisitor>*/;
835 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var_nexpr
, var1
) /* visit_expr_subtype on <self:TypeVisitor>*/;
841 /* method typing#TypeVisitor#visit_expr_bool for (self: Object, AExpr): nullable MType */
842 val
* VIRTUAL_typing__TypeVisitor__visit_expr_bool(val
* self
, val
* p0
) {
843 val
* var
/* : nullable MType */;
844 val
* var1
/* : nullable MType */;
845 var1
= typing__TypeVisitor__visit_expr_bool(self
, p0
);
850 /* method typing#TypeVisitor#visit_expr_cast for (self: TypeVisitor, ANode, AExpr, AType): nullable MType */
851 val
* typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
852 val
* var
/* : nullable MType */;
853 val
* var_node
/* var node: ANode */;
854 val
* var_nexpr
/* var nexpr: AExpr */;
855 val
* var_ntype
/* var ntype: AType */;
856 val
* var1
/* : nullable MType */;
857 val
* var_sub
/* var sub: nullable MType */;
858 val
* var2
/* : null */;
859 short int var3
/* : Bool */;
860 val
* var4
/* : null */;
861 val
* var5
/* : nullable MType */;
862 val
* var_sup
/* var sup: nullable MType */;
863 val
* var6
/* : null */;
864 short int var7
/* : Bool */;
865 val
* var8
/* : null */;
866 val
* var9
/* : AClassdef */;
867 val
* var10
/* : nullable MClassDef */;
868 val
* var11
/* : MModule */;
869 val
* var_mmodule
/* var mmodule: MModule */;
870 val
* var12
/* : AClassdef */;
871 val
* var13
/* : nullable MClassDef */;
872 val
* var14
/* : MClassType */;
873 val
* var_anchor
/* var anchor: MClassType */;
874 short int var15
/* : Bool */;
875 val
* var16
/* : ModelBuilder */;
877 val
* var17
/* : String */;
878 char* var18
/* : NativeString */;
879 long var19
/* : Int */;
880 val
* var20
/* : String */;
881 static val
* varonce21
;
882 val
* var22
/* : String */;
883 char* var23
/* : NativeString */;
884 long var24
/* : Int */;
885 val
* var25
/* : String */;
886 val
* var26
/* : Array[Object] */;
887 long var27
/* : Int */;
888 val
* var28
/* : NativeArray[Object] */;
889 val
* var29
/* : String */;
890 short int var30
/* : Bool */;
891 short int var31
/* : Bool */;
892 short int var_
/* var : Bool */;
893 short int var32
/* : Bool */;
894 short int var33
/* : Bool */;
895 val
* var34
/* : ModelBuilder */;
896 static val
* varonce35
;
897 val
* var36
/* : String */;
898 char* var37
/* : NativeString */;
899 long var38
/* : Int */;
900 val
* var39
/* : String */;
901 static val
* varonce40
;
902 val
* var41
/* : String */;
903 char* var42
/* : NativeString */;
904 long var43
/* : Int */;
905 val
* var44
/* : String */;
906 static val
* varonce45
;
907 val
* var46
/* : String */;
908 char* var47
/* : NativeString */;
909 long var48
/* : Int */;
910 val
* var49
/* : String */;
911 val
* var50
/* : Array[Object] */;
912 long var51
/* : Int */;
913 val
* var52
/* : NativeArray[Object] */;
914 val
* var53
/* : String */;
918 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(self
, var_nexpr
) /* visit_expr on <self:TypeVisitor>*/;
921 if (var_sub
== NULL
) {
922 var3
= 1; /* is null */
924 var3
= 0; /* arg is null but recv is not */
932 var5
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(self
, var_ntype
) /* resolve_mtype on <self:TypeVisitor>*/;
935 if (var_sup
== NULL
) {
936 var7
= 1; /* is null */
938 var7
= 0; /* arg is null but recv is not */
946 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
947 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var9
) /* mclassdef on <var9:AClassdef>*/;
949 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
950 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 179);
953 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var10
) /* mmodule on <var10:nullable MClassDef>*/;
956 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
957 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var12
) /* mclassdef on <var12:AClassdef>*/;
959 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
960 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 180);
963 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var13
) /* bound_mtype on <var13:nullable MClassDef>*/;
966 var15
= ((short int (*)(val
*, val
*))(var_sup
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sup
, var_sub
) /* == on <var_sup:nullable MType(MType)>*/;
968 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
972 var18
= "Warning: Expression is already a ";
974 var20
= string__NativeString__to_s_with_length(var18
, var19
);
983 var25
= string__NativeString__to_s_with_length(var23
, var24
);
987 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
988 { /* var26 = array_instance Array[Object] */
990 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
991 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
992 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_sup
;
993 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var22
;
994 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
996 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
997 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var16
, var_node
, var29
) /* warning on <var16:ModelBuilder>*/;
999 var31
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_sub
, var_sup
) /* is_subtype on <self:TypeVisitor>*/;
1002 var32
= ((short int (*)(val
*))(var_sup
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sup
) /* need_anchor on <var_sup:nullable MType(MType)>*/;
1009 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1013 var37
= "Warning: Expression is already a ";
1015 var39
= string__NativeString__to_s_with_length(var37
, var38
);
1022 var42
= " since it is a ";
1024 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1033 var49
= string__NativeString__to_s_with_length(var47
, var48
);
1037 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
1038 { /* var50 = array_instance Array[Object] */
1040 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
1041 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var36
;
1042 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var_sup
;
1043 ((struct instance_array__NativeArray
*)var52
)->values
[2] = (val
*) var41
;
1044 ((struct instance_array__NativeArray
*)var52
)->values
[3] = (val
*) var_sub
;
1045 ((struct instance_array__NativeArray
*)var52
)->values
[4] = (val
*) var46
;
1046 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
1048 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
1049 ((void (*)(val
*, val
*, val
*))(var34
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var34
, var_node
, var53
) /* warning on <var34:ModelBuilder>*/;
1058 /* method typing#TypeVisitor#visit_expr_cast for (self: Object, ANode, AExpr, AType): nullable MType */
1059 val
* VIRTUAL_typing__TypeVisitor__visit_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1060 val
* var
/* : nullable MType */;
1061 val
* var1
/* : nullable MType */;
1062 var1
= typing__TypeVisitor__visit_expr_cast(self
, p0
, p1
, p2
);
1067 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: TypeVisitor, ANode, MType, String): nullable MProperty */
1068 val
* typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1069 val
* var
/* : nullable MProperty */;
1070 val
* var_anode
/* var anode: ANode */;
1071 val
* var_mtype
/* var mtype: MType */;
1072 val
* var_name
/* var name: String */;
1073 val
* var1
/* : ModelBuilder */;
1074 val
* var2
/* : AClassdef */;
1075 val
* var3
/* : nullable MClassDef */;
1076 val
* var4
/* : MModule */;
1077 val
* var5
/* : nullable MProperty */;
1081 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1082 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1083 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var2
) /* mclassdef on <var2:AClassdef>*/;
1085 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1086 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 191);
1089 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var3
) /* mmodule on <var3:nullable MClassDef>*/;
1091 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>*/;
1097 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: Object, ANode, MType, String): nullable MProperty */
1098 val
* VIRTUAL_typing__TypeVisitor__try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1099 val
* var
/* : nullable MProperty */;
1100 val
* var1
/* : nullable MProperty */;
1101 var1
= typing__TypeVisitor__try_get_mproperty_by_name2(self
, p0
, p1
, p2
);
1106 /* method typing#TypeVisitor#resolve_mtype for (self: TypeVisitor, AType): nullable MType */
1107 val
* typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
1108 val
* var
/* : nullable MType */;
1109 val
* var_node
/* var node: AType */;
1110 val
* var1
/* : ModelBuilder */;
1111 val
* var2
/* : AClassdef */;
1112 val
* var3
/* : nullable MType */;
1114 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1115 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1116 var3
= ((val
* (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_modelize_class__ModelBuilder__resolve_mtype
]))(var1
, var2
, var_node
) /* resolve_mtype on <var1:ModelBuilder>*/;
1122 /* method typing#TypeVisitor#resolve_mtype for (self: Object, AType): nullable MType */
1123 val
* VIRTUAL_typing__TypeVisitor__resolve_mtype(val
* self
, val
* p0
) {
1124 val
* var
/* : nullable MType */;
1125 val
* var1
/* : nullable MType */;
1126 var1
= typing__TypeVisitor__resolve_mtype(self
, p0
);
1131 /* method typing#TypeVisitor#try_get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1132 val
* typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1133 val
* var
/* : nullable MClass */;
1134 val
* var_node
/* var node: ANode */;
1135 val
* var_name
/* var name: String */;
1136 val
* var1
/* : AClassdef */;
1137 val
* var2
/* : nullable MClassDef */;
1138 val
* var3
/* : MModule */;
1139 val
* var_mmodule
/* var mmodule: MModule */;
1140 val
* var4
/* : ModelBuilder */;
1141 val
* var5
/* : nullable MClass */;
1142 val
* var_mclass
/* var mclass: nullable MClass */;
1145 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1146 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
1148 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1149 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 201);
1152 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
1155 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1156 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>*/;
1163 /* method typing#TypeVisitor#try_get_mclass for (self: Object, ANode, String): nullable MClass */
1164 val
* VIRTUAL_typing__TypeVisitor__try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
1165 val
* var
/* : nullable MClass */;
1166 val
* var1
/* : nullable MClass */;
1167 var1
= typing__TypeVisitor__try_get_mclass(self
, p0
, p1
);
1172 /* method typing#TypeVisitor#get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
1173 val
* typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
1174 val
* var
/* : nullable MClass */;
1175 val
* var_node
/* var node: ANode */;
1176 val
* var_name
/* var name: String */;
1177 val
* var1
/* : AClassdef */;
1178 val
* var2
/* : nullable MClassDef */;
1179 val
* var3
/* : MModule */;
1180 val
* var_mmodule
/* var mmodule: MModule */;
1181 val
* var4
/* : ModelBuilder */;
1182 val
* var5
/* : nullable MClass */;
1183 val
* var_mclass
/* var mclass: nullable MClass */;
1184 val
* var6
/* : null */;
1185 short int var7
/* : Bool */;
1186 val
* var8
/* : ModelBuilder */;
1187 static val
* varonce
;
1188 val
* var9
/* : String */;
1189 char* var10
/* : NativeString */;
1190 long var11
/* : Int */;
1191 val
* var12
/* : String */;
1192 static val
* varonce13
;
1193 val
* var14
/* : String */;
1194 char* var15
/* : NativeString */;
1195 long var16
/* : Int */;
1196 val
* var17
/* : String */;
1197 val
* var18
/* : Array[Object] */;
1198 long var19
/* : Int */;
1199 val
* var20
/* : NativeArray[Object] */;
1200 val
* var21
/* : String */;
1203 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(self
) /* nclassdef on <self:TypeVisitor>*/;
1204 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var1
) /* mclassdef on <var1:AClassdef>*/;
1206 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1207 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 208);
1210 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:nullable MClassDef>*/;
1213 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1214 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>*/;
1217 if (var_mclass
== NULL
) {
1218 var7
= 1; /* is null */
1220 var7
= 0; /* arg is null but recv is not */
1223 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1227 var10
= "Type Error: missing primitive class `";
1229 var12
= string__NativeString__to_s_with_length(var10
, var11
);
1238 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1242 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
1243 { /* var18 = array_instance Array[Object] */
1245 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
1246 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var9
;
1247 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var_name
;
1248 ((struct instance_array__NativeArray
*)var20
)->values
[2] = (val
*) var14
;
1249 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
1251 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
1252 ((void (*)(val
*, val
*, val
*))(var8
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var8
, var_node
, var21
) /* error on <var8:ModelBuilder>*/;
1260 /* method typing#TypeVisitor#get_mclass for (self: Object, ANode, String): nullable MClass */
1261 val
* VIRTUAL_typing__TypeVisitor__get_mclass(val
* self
, val
* p0
, val
* p1
) {
1262 val
* var
/* : nullable MClass */;
1263 val
* var1
/* : nullable MClass */;
1264 var1
= typing__TypeVisitor__get_mclass(self
, p0
, p1
);
1269 /* method typing#TypeVisitor#type_bool for (self: TypeVisitor, ANode): nullable MType */
1270 val
* typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
1271 val
* var
/* : nullable MType */;
1272 val
* var_node
/* var node: ANode */;
1273 static val
* varonce
;
1274 val
* var1
/* : String */;
1275 char* var2
/* : NativeString */;
1276 long var3
/* : Int */;
1277 val
* var4
/* : String */;
1278 val
* var5
/* : nullable MClass */;
1279 val
* var_mclass
/* var mclass: nullable MClass */;
1280 val
* var6
/* : null */;
1281 short int var7
/* : Bool */;
1282 val
* var8
/* : null */;
1283 val
* var9
/* : MClassType */;
1290 var4
= string__NativeString__to_s_with_length(var2
, var3
);
1294 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(self
, var_node
, var1
) /* get_mclass on <self:TypeVisitor>*/;
1297 if (var_mclass
== NULL
) {
1298 var7
= 1; /* is null */
1300 var7
= 0; /* arg is null but recv is not */
1308 var9
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
1314 /* method typing#TypeVisitor#type_bool for (self: Object, ANode): nullable MType */
1315 val
* VIRTUAL_typing__TypeVisitor__type_bool(val
* self
, val
* p0
) {
1316 val
* var
/* : nullable MType */;
1317 val
* var1
/* : nullable MType */;
1318 var1
= typing__TypeVisitor__type_bool(self
, p0
);
1323 /* method typing#TypeVisitor#get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
1324 val
* typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
1325 val
* var
/* : nullable CallSite */;
1326 val
* var_node
/* var node: ANode */;
1327 val
* var_recvtype
/* var recvtype: MType */;
1328 val
* var_name
/* var name: String */;
1329 short int var_recv_is_self
/* var recv_is_self: Bool */;
1330 val
* var1
/* : MType */;
1331 val
* var_unsafe_type
/* var unsafe_type: MType */;
1332 short int var2
/* : Bool */;
1335 static val
* varonce
;
1336 val
* var3
/* : String */;
1337 char* var4
/* : NativeString */;
1338 long var5
/* : Int */;
1339 val
* var6
/* : String */;
1340 static val
* varonce7
;
1341 val
* var8
/* : String */;
1342 char* var9
/* : NativeString */;
1343 long var10
/* : Int */;
1344 val
* var11
/* : String */;
1345 val
* var12
/* : Array[Object] */;
1346 long var13
/* : Int */;
1347 val
* var14
/* : NativeArray[Object] */;
1348 val
* var15
/* : String */;
1349 val
* var16
/* : null */;
1350 val
* var17
/* : nullable MProperty */;
1351 val
* var_mproperty
/* var mproperty: nullable MProperty */;
1352 val
* var18
/* : null */;
1353 short int var19
/* : Bool */;
1354 val
* var20
/* : ModelBuilder */;
1355 static val
* varonce21
;
1356 val
* var22
/* : String */;
1357 char* var23
/* : NativeString */;
1358 long var24
/* : Int */;
1359 val
* var25
/* : String */;
1360 static val
* varonce26
;
1361 val
* var27
/* : String */;
1362 char* var28
/* : NativeString */;
1363 long var29
/* : Int */;
1364 val
* var30
/* : String */;
1365 static val
* varonce31
;
1366 val
* var32
/* : String */;
1367 char* var33
/* : NativeString */;
1368 long var34
/* : Int */;
1369 val
* var35
/* : String */;
1370 val
* var36
/* : Array[Object] */;
1371 long var37
/* : Int */;
1372 val
* var38
/* : NativeArray[Object] */;
1373 val
* var39
/* : String */;
1374 val
* var40
/* : ModelBuilder */;
1375 static val
* varonce41
;
1376 val
* var42
/* : String */;
1377 char* var43
/* : NativeString */;
1378 long var44
/* : Int */;
1379 val
* var45
/* : String */;
1380 static val
* varonce46
;
1381 val
* var47
/* : String */;
1382 char* var48
/* : NativeString */;
1383 long var49
/* : Int */;
1384 val
* var50
/* : String */;
1385 static val
* varonce51
;
1386 val
* var52
/* : String */;
1387 char* var53
/* : NativeString */;
1388 long var54
/* : Int */;
1389 val
* var55
/* : String */;
1390 val
* var56
/* : Array[Object] */;
1391 long var57
/* : Int */;
1392 val
* var58
/* : NativeArray[Object] */;
1393 val
* var59
/* : String */;
1394 val
* var60
/* : null */;
1395 short int var61
/* : Bool */;
1398 short int var64
/* : Bool */;
1399 short int var65
/* : Bool */;
1400 val
* var66
/* : MVisibility */;
1401 val
* var67
/* : MVisibility */;
1402 short int var68
/* : Bool */;
1403 short int var_
/* var : Bool */;
1404 short int var69
/* : Bool */;
1405 short int var_70
/* var : Bool */;
1406 val
* var71
/* : MModule */;
1407 val
* var72
/* : MClassDef */;
1408 val
* var73
/* : MModule */;
1409 val
* var74
/* : MVisibility */;
1410 val
* var75
/* : MVisibility */;
1411 short int var76
/* : Bool */;
1412 val
* var77
/* : ModelBuilder */;
1413 static val
* varonce78
;
1414 val
* var79
/* : String */;
1415 char* var80
/* : NativeString */;
1416 long var81
/* : Int */;
1417 val
* var82
/* : String */;
1418 static val
* varonce83
;
1419 val
* var84
/* : String */;
1420 char* var85
/* : NativeString */;
1421 long var86
/* : Int */;
1422 val
* var87
/* : String */;
1423 val
* var88
/* : MClassDef */;
1424 val
* var89
/* : MModule */;
1425 val
* var90
/* : MModule */;
1426 val
* var91
/* : MVisibility */;
1427 val
* var92
/* : Array[Object] */;
1428 long var93
/* : Int */;
1429 val
* var94
/* : NativeArray[Object] */;
1430 val
* var95
/* : String */;
1431 val
* var96
/* : null */;
1432 val
* var97
/* : MModule */;
1433 val
* var98
/* : Array[MPropDef] */;
1434 val
* var_propdefs
/* var propdefs: Array[MMethodDef] */;
1435 long var99
/* : Int */;
1436 long var100
/* : Int */;
1437 short int var101
/* : Bool */;
1438 short int var103
/* : Bool */;
1439 val
* var104
/* : ModelBuilder */;
1440 static val
* varonce105
;
1441 val
* var106
/* : String */;
1442 char* var107
/* : NativeString */;
1443 long var108
/* : Int */;
1444 val
* var109
/* : String */;
1445 static val
* varonce110
;
1446 val
* var111
/* : String */;
1447 char* var112
/* : NativeString */;
1448 long var113
/* : Int */;
1449 val
* var114
/* : String */;
1450 val
* var115
/* : Array[Object] */;
1451 long var116
/* : Int */;
1452 val
* var117
/* : NativeArray[Object] */;
1453 val
* var118
/* : String */;
1454 val
* var119
/* : null */;
1455 long var120
/* : Int */;
1456 long var121
/* : Int */;
1457 short int var122
/* : Bool */;
1458 short int var124
/* : Bool */;
1459 val
* var125
/* : nullable Object */;
1460 val
* var_mpropdef
/* var mpropdef: nullable Object */;
1461 val
* var126
/* : ModelBuilder */;
1462 static val
* varonce127
;
1463 val
* var128
/* : String */;
1464 char* var129
/* : NativeString */;
1465 long var130
/* : Int */;
1466 val
* var131
/* : String */;
1467 static val
* varonce132
;
1468 val
* var133
/* : String */;
1469 char* var134
/* : NativeString */;
1470 long var135
/* : Int */;
1471 val
* var136
/* : String */;
1472 static val
* varonce137
;
1473 val
* var138
/* : String */;
1474 char* var139
/* : NativeString */;
1475 long var140
/* : Int */;
1476 val
* var141
/* : String */;
1477 static val
* varonce142
;
1478 val
* var143
/* : String */;
1479 char* var144
/* : NativeString */;
1480 long var145
/* : Int */;
1481 val
* var146
/* : String */;
1482 val
* var147
/* : String */;
1483 val
* var148
/* : Array[Object] */;
1484 long var149
/* : Int */;
1485 val
* var150
/* : NativeArray[Object] */;
1486 val
* var151
/* : String */;
1487 val
* var152
/* : MPropDef */;
1488 val
* var153
/* : MSignature */;
1489 val
* var_msignature
/* var msignature: MSignature */;
1490 short int var154
/* : Bool */;
1491 short int var_erasure_cast
/* var erasure_cast: Bool */;
1492 val
* var155
/* : nullable MSignature */;
1493 val
* var156
/* : nullable MType */;
1494 val
* var_rettype
/* var rettype: nullable MType */;
1495 short int var157
/* : Bool */;
1496 short int var158
/* : Bool */;
1497 short int var_159
/* var : Bool */;
1498 val
* var160
/* : null */;
1499 short int var161
/* : Bool */;
1500 short int var162
/* : Bool */;
1503 val
* var165
/* : MType */;
1504 short int var166
/* : Bool */;
1507 val
* var169
/* : nullable MType */;
1508 val
* var_erased_rettype
/* var erased_rettype: nullable MType */;
1509 val
* var170
/* : null */;
1510 short int var171
/* : Bool */;
1511 short int var172
/* : Bool */;
1512 val
* var173
/* : CallSite */;
1513 val
* var_callsite
/* var callsite: CallSite */;
1517 var_recv_is_self
= p3
;
1518 var1
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(self
, var_recvtype
) /* anchor_to on <self:TypeVisitor>*/;
1519 var_unsafe_type
= var1
;
1520 /* <var_recvtype:MType> isa MNullType */
1521 cltype
= type_model__MNullType
.color
;
1522 idtype
= type_model__MNullType
.id
;
1523 if(cltype
>= var_recvtype
->type
->table_size
) {
1526 var2
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
1532 var4
= "Error: Method \'";
1534 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1541 var9
= "\' call on \'null\'.";
1543 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1547 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
1548 { /* var12 = array_instance Array[Object] */
1550 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
1551 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var3
;
1552 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var_name
;
1553 ((struct instance_array__NativeArray
*)var14
)->values
[2] = (val
*) var8
;
1554 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
1556 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
1557 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_node
, var15
) /* error on <self:TypeVisitor>*/;
1563 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>*/;
1564 var_mproperty
= var17
;
1566 if (var_mproperty
== NULL
) {
1567 var19
= 1; /* is null */
1569 var19
= 0; /* arg is null but recv is not */
1572 if (var_recv_is_self
){
1573 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1577 var23
= "Error: Method or variable \'";
1579 var25
= string__NativeString__to_s_with_length(var23
, var24
);
1586 var28
= "\' unknown in ";
1588 var30
= string__NativeString__to_s_with_length(var28
, var29
);
1597 var35
= string__NativeString__to_s_with_length(var33
, var34
);
1601 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
1602 { /* var36 = array_instance Array[Object] */
1604 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
1605 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var22
;
1606 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var_name
;
1607 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var27
;
1608 ((struct instance_array__NativeArray
*)var38
)->values
[3] = (val
*) var_recvtype
;
1609 ((struct instance_array__NativeArray
*)var38
)->values
[4] = (val
*) var32
;
1610 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
1612 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
1613 ((void (*)(val
*, val
*, val
*))(var20
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var20
, var_node
, var39
) /* error on <var20:ModelBuilder>*/;
1615 var40
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1619 var43
= "Error: Method \'";
1621 var45
= string__NativeString__to_s_with_length(var43
, var44
);
1628 var48
= "\' doesn\'t exists in ";
1630 var50
= string__NativeString__to_s_with_length(var48
, var49
);
1639 var55
= string__NativeString__to_s_with_length(var53
, var54
);
1643 var56
= NEW_array__Array(&type_array__Arraykernel__Object
);
1644 { /* var56 = array_instance Array[Object] */
1646 var58
= NEW_array__NativeArray(var57
, &type_array__NativeArraykernel__Object
);
1647 ((struct instance_array__NativeArray
*)var58
)->values
[0] = (val
*) var42
;
1648 ((struct instance_array__NativeArray
*)var58
)->values
[1] = (val
*) var_name
;
1649 ((struct instance_array__NativeArray
*)var58
)->values
[2] = (val
*) var47
;
1650 ((struct instance_array__NativeArray
*)var58
)->values
[3] = (val
*) var_recvtype
;
1651 ((struct instance_array__NativeArray
*)var58
)->values
[4] = (val
*) var52
;
1652 ((void (*)(val
*, val
*, long))(var56
->class->vft
[COLOR_array__Array__with_native
]))(var56
, var58
, var57
) /* with_native on <var56:Array[Object]>*/;
1654 var59
= ((val
* (*)(val
*))(var56
->class->vft
[COLOR_string__Object__to_s
]))(var56
) /* to_s on <var56:Array[Object]>*/;
1655 ((void (*)(val
*, val
*, val
*))(var40
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var40
, var_node
, var59
) /* error on <var40:ModelBuilder>*/;
1662 /* <var_mproperty:nullable MProperty(MProperty)> isa MMethod */
1663 cltype62
= type_model__MMethod
.color
;
1664 idtype63
= type_model__MMethod
.id
;
1665 if(cltype62
>= var_mproperty
->type
->table_size
) {
1668 var61
= var_mproperty
->type
->type_table
[cltype62
] == idtype63
;
1671 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1672 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 244);
1675 var66
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__visibility
]))(var_mproperty
) /* visibility on <var_mproperty:nullable MProperty(MMethod)>*/;
1676 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__protected_visibility
]))(self
) /* protected_visibility on <self:TypeVisitor>*/;
1677 var68
= ((short int (*)(val
*, val
*))(var66
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var66
, var67
) /* == on <var66:MVisibility>*/;
1680 var69
= !var_recv_is_self
;
1687 var71
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1688 var72
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)>*/;
1689 var73
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var72
) /* mmodule on <var72:MClassDef>*/;
1690 var74
= ((val
* (*)(val
*, val
*))(var71
->class->vft
[COLOR_mmodule__MModule__visibility_for
]))(var71
, var73
) /* visibility_for on <var71:MModule>*/;
1691 var75
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__intrude_visibility
]))(self
) /* intrude_visibility on <self:TypeVisitor>*/;
1692 var76
= ((short int (*)(val
*, val
*))(var74
->class->vft
[COLOR_kernel__Comparable___60d
]))(var74
, var75
) /* < on <var74:MVisibility>*/;
1698 var77
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1702 var80
= "Error: Method \'";
1704 var82
= string__NativeString__to_s_with_length(var80
, var81
);
1711 var85
= "\' is protected and can only acceded by self. ";
1713 var87
= string__NativeString__to_s_with_length(var85
, var86
);
1717 var88
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)>*/;
1718 var89
= ((val
* (*)(val
*))(var88
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var88
) /* mmodule on <var88:MClassDef>*/;
1719 var90
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1720 var91
= ((val
* (*)(val
*, val
*))(var89
->class->vft
[COLOR_mmodule__MModule__visibility_for
]))(var89
, var90
) /* visibility_for on <var89:MModule>*/;
1721 var92
= NEW_array__Array(&type_array__Arraykernel__Object
);
1722 { /* var92 = array_instance Array[Object] */
1724 var94
= NEW_array__NativeArray(var93
, &type_array__NativeArraykernel__Object
);
1725 ((struct instance_array__NativeArray
*)var94
)->values
[0] = (val
*) var79
;
1726 ((struct instance_array__NativeArray
*)var94
)->values
[1] = (val
*) var_name
;
1727 ((struct instance_array__NativeArray
*)var94
)->values
[2] = (val
*) var84
;
1728 ((struct instance_array__NativeArray
*)var94
)->values
[3] = (val
*) var91
;
1729 ((void (*)(val
*, val
*, long))(var92
->class->vft
[COLOR_array__Array__with_native
]))(var92
, var94
, var93
) /* with_native on <var92:Array[Object]>*/;
1731 var95
= ((val
* (*)(val
*))(var92
->class->vft
[COLOR_string__Object__to_s
]))(var92
) /* to_s on <var92:Array[Object]>*/;
1732 ((void (*)(val
*, val
*, val
*))(var77
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var77
, var_node
, var95
) /* error on <var77:ModelBuilder>*/;
1738 var97
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(self
) /* mmodule on <self:TypeVisitor>*/;
1739 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)>*/;
1740 var_propdefs
= var98
;
1741 var99
= ((long (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_propdefs
) /* length on <var_propdefs:Array[MMethodDef]>*/;
1743 { /* Inline kernel#Int#== (var99,var100) */
1744 var103
= var99
== var100
;
1747 RET_LABEL102
:(void)0;
1750 var104
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1752 var106
= varonce105
;
1754 var107
= "Type error: no definition found for property ";
1756 var109
= string__NativeString__to_s_with_length(var107
, var108
);
1758 varonce105
= var106
;
1761 var111
= varonce110
;
1765 var114
= string__NativeString__to_s_with_length(var112
, var113
);
1767 varonce110
= var111
;
1769 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
1770 { /* var115 = array_instance Array[Object] */
1772 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
1773 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var106
;
1774 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var_name
;
1775 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var111
;
1776 ((struct instance_array__NativeArray
*)var117
)->values
[3] = (val
*) var_unsafe_type
;
1777 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
1779 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
1780 ((void (*)(val
*, val
*, val
*))(var104
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var104
, var_node
, var118
) /* error on <var104:ModelBuilder>*/;
1785 var120
= ((long (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_propdefs
) /* length on <var_propdefs:Array[MMethodDef]>*/;
1787 { /* Inline kernel#Int#== (var120,var121) */
1788 var124
= var120
== var121
;
1791 RET_LABEL123
:(void)0;
1794 var125
= ((val
* (*)(val
*))(var_propdefs
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_propdefs
) /* first on <var_propdefs:Array[MMethodDef]>*/;
1795 var_mpropdef
= var125
;
1797 var126
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
1799 var128
= varonce127
;
1801 var129
= "Warning: confliting property definitions for property ";
1803 var131
= string__NativeString__to_s_with_length(var129
, var130
);
1805 varonce127
= var128
;
1808 var133
= varonce132
;
1812 var136
= string__NativeString__to_s_with_length(var134
, var135
);
1814 varonce132
= var133
;
1817 var138
= varonce137
;
1821 var141
= string__NativeString__to_s_with_length(var139
, var140
);
1823 varonce137
= var138
;
1826 var143
= varonce142
;
1830 var146
= string__NativeString__to_s_with_length(var144
, var145
);
1832 varonce142
= var143
;
1834 var147
= ((val
* (*)(val
*, val
*))(var_propdefs
->class->vft
[COLOR_string__Collection__join
]))(var_propdefs
, var143
) /* join on <var_propdefs:Array[MMethodDef]>*/;
1835 var148
= NEW_array__Array(&type_array__Arraykernel__Object
);
1836 { /* var148 = array_instance Array[Object] */
1838 var150
= NEW_array__NativeArray(var149
, &type_array__NativeArraykernel__Object
);
1839 ((struct instance_array__NativeArray
*)var150
)->values
[0] = (val
*) var128
;
1840 ((struct instance_array__NativeArray
*)var150
)->values
[1] = (val
*) var_name
;
1841 ((struct instance_array__NativeArray
*)var150
)->values
[2] = (val
*) var133
;
1842 ((struct instance_array__NativeArray
*)var150
)->values
[3] = (val
*) var_unsafe_type
;
1843 ((struct instance_array__NativeArray
*)var150
)->values
[4] = (val
*) var138
;
1844 ((struct instance_array__NativeArray
*)var150
)->values
[5] = (val
*) var147
;
1845 ((void (*)(val
*, val
*, long))(var148
->class->vft
[COLOR_array__Array__with_native
]))(var148
, var150
, var149
) /* with_native on <var148:Array[Object]>*/;
1847 var151
= ((val
* (*)(val
*))(var148
->class->vft
[COLOR_string__Object__to_s
]))(var148
) /* to_s on <var148:Array[Object]>*/;
1848 ((void (*)(val
*, val
*, val
*))(var126
->class->vft
[COLOR_modelbuilder__ModelBuilder__warning
]))(var126
, var_node
, var151
) /* warning on <var126:ModelBuilder>*/;
1849 var152
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro
]))(var_mproperty
) /* intro on <var_mproperty:nullable MProperty(MMethod)>*/;
1850 var_mpropdef
= var152
;
1853 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>*/;
1854 var_msignature
= var153
;
1856 var_erasure_cast
= var154
;
1857 var155
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mpropdef
) /* msignature on <var_mpropdef:nullable Object(MMethodDef)>*/;
1858 if (var155
== NULL
) {
1859 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1860 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 266);
1863 var156
= ((val
* (*)(val
*))(var155
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var155
) /* return_mtype on <var155:nullable MSignature>*/;
1865 var_rettype
= var156
;
1866 var158
= !var_recv_is_self
;
1870 if (var_rettype
== NULL
) {
1871 var161
= 0; /* is null */
1873 var161
= 1; /* arg is null and recv is not */
1880 /* <var_rettype:nullable MType(MType)> isa MNullableType */
1881 cltype163
= type_model__MNullableType
.color
;
1882 idtype164
= type_model__MNullableType
.id
;
1883 if(cltype163
>= var_rettype
->type
->table_size
) {
1886 var162
= var_rettype
->type
->type_table
[cltype163
] == idtype164
;
1889 var165
= ((val
* (*)(val
*))(var_rettype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_rettype
) /* mtype on <var_rettype:nullable MType(MNullableType)>*/;
1890 var_rettype
= var165
;
1893 /* <var_rettype:nullable MType(MType)> isa MParameterType */
1894 cltype167
= type_model__MParameterType
.color
;
1895 idtype168
= type_model__MParameterType
.id
;
1896 if(cltype167
>= var_rettype
->type
->table_size
) {
1899 var166
= var_rettype
->type
->type_table
[cltype167
] == idtype168
;
1902 var169
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
1903 var_erased_rettype
= var169
;
1905 if (var_erased_rettype
== NULL
) {
1906 var171
= 0; /* is null */
1908 var171
= 1; /* arg is null and recv is not */
1911 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1912 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 271);
1916 var_erasure_cast
= var172
;
1921 var173
= NEW_typing__CallSite(&type_typing__CallSite
);
1922 ((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>*/;
1923 var_callsite
= var173
;
1929 /* method typing#TypeVisitor#get_method for (self: Object, ANode, MType, String, Bool): nullable CallSite */
1930 val
* VIRTUAL_typing__TypeVisitor__get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
1931 val
* var
/* : nullable CallSite */;
1932 val
* var1
/* : nullable CallSite */;
1933 var1
= typing__TypeVisitor__get_method(self
, p0
, p1
, p2
, p3
);
1938 /* method typing#TypeVisitor#check_signature for (self: TypeVisitor, ANode, Array[AExpr], String, MSignature): Bool */
1939 short int typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
1940 short int var
/* : Bool */;
1941 val
* var_node
/* var node: ANode */;
1942 val
* var_args
/* var args: Array[AExpr] */;
1943 val
* var_name
/* var name: String */;
1944 val
* var_msignature
/* var msignature: MSignature */;
1945 long var1
/* : Int */;
1946 long var_vararg_rank
/* var vararg_rank: Int */;
1947 long var2
/* : Int */;
1948 short int var3
/* : Bool */;
1949 short int var5
/* : Bool */;
1952 const char* var_class_name
;
1953 short int var6
/* : Bool */;
1954 long var7
/* : Int */;
1955 long var8
/* : Int */;
1956 short int var9
/* : Bool */;
1957 short int var11
/* : Bool */;
1960 const char* var_class_name14
;
1961 short int var15
/* : Bool */;
1962 val
* var16
/* : ModelBuilder */;
1963 static val
* varonce
;
1964 val
* var17
/* : String */;
1965 char* var18
/* : NativeString */;
1966 long var19
/* : Int */;
1967 val
* var20
/* : String */;
1968 static val
* varonce21
;
1969 val
* var22
/* : String */;
1970 char* var23
/* : NativeString */;
1971 long var24
/* : Int */;
1972 val
* var25
/* : String */;
1973 val
* var26
/* : Array[Object] */;
1974 long var27
/* : Int */;
1975 val
* var28
/* : NativeArray[Object] */;
1976 val
* var29
/* : String */;
1977 short int var30
/* : Bool */;
1978 long var31
/* : Int */;
1979 long var32
/* : Int */;
1980 short int var33
/* : Bool */;
1981 short int var35
/* : Bool */;
1982 short int var36
/* : Bool */;
1983 val
* var37
/* : ModelBuilder */;
1984 static val
* varonce38
;
1985 val
* var39
/* : String */;
1986 char* var40
/* : NativeString */;
1987 long var41
/* : Int */;
1988 val
* var42
/* : String */;
1989 long var43
/* : Int */;
1990 static val
* varonce44
;
1991 val
* var45
/* : String */;
1992 char* var46
/* : NativeString */;
1993 long var47
/* : Int */;
1994 val
* var48
/* : String */;
1995 long var49
/* : Int */;
1996 static val
* varonce50
;
1997 val
* var51
/* : String */;
1998 char* var52
/* : NativeString */;
1999 long var53
/* : Int */;
2000 val
* var54
/* : String */;
2001 val
* var55
/* : Array[Object] */;
2002 long var56
/* : Int */;
2003 val
* var57
/* : NativeArray[Object] */;
2004 val
* var58
/* : Object */;
2005 val
* var59
/* : Object */;
2006 val
* var60
/* : String */;
2007 short int var61
/* : Bool */;
2008 long var62
/* : Int */;
2009 long var63
/* : Int */;
2010 long var64
/* : Int */;
2011 long var66
/* : Int */;
2012 long var_vararg_decl
/* var vararg_decl: Int */;
2013 val
* var67
/* : Range[Int] */;
2014 long var68
/* : Int */;
2015 long var69
/* : Int */;
2016 val
* var70
/* : Discrete */;
2017 val
* var71
/* : Discrete */;
2018 val
* var72
/* : Iterator[nullable Object] */;
2019 short int var73
/* : Bool */;
2020 val
* var74
/* : nullable Object */;
2021 long var_i
/* var i: Int */;
2022 long var75
/* : Int */;
2023 long var_j
/* var j: Int */;
2024 short int var76
/* : Bool */;
2025 short int var78
/* : Bool */;
2026 short int var79
/* : Bool */;
2027 short int var81
/* : Bool */;
2030 const char* var_class_name84
;
2031 short int var85
/* : Bool */;
2032 long var86
/* : Int */;
2033 long var88
/* : Int */;
2034 val
* var89
/* : Array[MParameter] */;
2035 val
* var90
/* : nullable Object */;
2036 val
* var91
/* : MType */;
2037 val
* var_paramtype
/* var paramtype: MType */;
2038 val
* var92
/* : nullable Object */;
2039 val
* var93
/* : nullable MType */;
2040 long var94
/* : Int */;
2041 short int var95
/* : Bool */;
2042 short int var97
/* : Bool */;
2045 const char* var_class_name100
;
2046 short int var101
/* : Bool */;
2047 val
* var102
/* : Array[AExpr] */;
2048 val
* var_varargs
/* var varargs: Array[AExpr] */;
2049 val
* var103
/* : Array[MParameter] */;
2050 val
* var104
/* : nullable Object */;
2051 val
* var105
/* : MType */;
2052 val
* var_paramtype106
/* var paramtype: MType */;
2053 val
* var107
/* : Range[Int] */;
2054 long var108
/* : Int */;
2055 long var110
/* : Int */;
2056 val
* var111
/* : Discrete */;
2057 val
* var112
/* : Discrete */;
2058 val
* var113
/* : Iterator[nullable Object] */;
2059 short int var114
/* : Bool */;
2060 val
* var115
/* : nullable Object */;
2061 long var_j116
/* var j: Int */;
2062 long var117
/* : Int */;
2063 val
* var118
/* : nullable Object */;
2064 val
* var119
/* : nullable Object */;
2065 val
* var120
/* : nullable MType */;
2066 short int var122
/* : Bool */;
2070 var_msignature
= p3
;
2071 var1
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
2072 var_vararg_rank
= var1
;
2074 { /* Inline kernel#Int#>= (var_vararg_rank,var2) */
2075 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2076 /* <var2:Int> isa OTHER */
2077 var5
= 1; /* easy <var2:Int> isa OTHER*/
2079 var_class_name
= type_kernel__Int
.name
;
2080 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2081 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
2084 var6
= var_vararg_rank
>= var2
;
2090 var7
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2091 var8
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2092 { /* Inline kernel#Int#< (var7,var8) */
2093 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
2094 /* <var8:Int> isa OTHER */
2095 var11
= 1; /* easy <var8:Int> isa OTHER*/
2097 var_class_name14
= type_kernel__Int
.name
;
2098 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14
);
2099 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
2102 var15
= var7
< var8
;
2105 RET_LABEL10
:(void)0;
2108 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2112 var18
= "Error: arity mismatch; prototype is \'";
2114 var20
= string__NativeString__to_s_with_length(var18
, var19
);
2123 var25
= string__NativeString__to_s_with_length(var23
, var24
);
2127 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
2128 { /* var26 = array_instance Array[Object] */
2130 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
2131 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
2132 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_name
;
2133 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var_msignature
;
2134 ((struct instance_array__NativeArray
*)var28
)->values
[3] = (val
*) var22
;
2135 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
2137 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
2138 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var16
, var_node
, var29
) /* error on <var16:ModelBuilder>*/;
2145 var31
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2146 var32
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2147 { /* Inline kernel#Int#!= (var31,var32) */
2148 var35
= var31
== var32
;
2152 RET_LABEL34
:(void)0;
2155 var37
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2159 var40
= "Error: Incorrect number of parameters. Got ";
2161 var42
= string__NativeString__to_s_with_length(var40
, var41
);
2165 var43
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2169 var46
= ", expected ";
2171 var48
= string__NativeString__to_s_with_length(var46
, var47
);
2175 var49
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2179 var52
= ". Signature is ";
2181 var54
= string__NativeString__to_s_with_length(var52
, var53
);
2185 var55
= NEW_array__Array(&type_array__Arraykernel__Object
);
2186 { /* var55 = array_instance Array[Object] */
2188 var57
= NEW_array__NativeArray(var56
, &type_array__NativeArraykernel__Object
);
2189 ((struct instance_array__NativeArray
*)var57
)->values
[0] = (val
*) var39
;
2190 var58
= BOX_kernel__Int(var43
); /* autobox from Int to Object */
2191 ((struct instance_array__NativeArray
*)var57
)->values
[1] = (val
*) var58
;
2192 ((struct instance_array__NativeArray
*)var57
)->values
[2] = (val
*) var45
;
2193 var59
= BOX_kernel__Int(var49
); /* autobox from Int to Object */
2194 ((struct instance_array__NativeArray
*)var57
)->values
[3] = (val
*) var59
;
2195 ((struct instance_array__NativeArray
*)var57
)->values
[4] = (val
*) var51
;
2196 ((struct instance_array__NativeArray
*)var57
)->values
[5] = (val
*) var_msignature
;
2197 ((void (*)(val
*, val
*, long))(var55
->class->vft
[COLOR_array__Array__with_native
]))(var55
, var57
, var56
) /* with_native on <var55:Array[Object]>*/;
2199 var60
= ((val
* (*)(val
*))(var55
->class->vft
[COLOR_string__Object__to_s
]))(var55
) /* to_s on <var55:Array[Object]>*/;
2200 ((void (*)(val
*, val
*, val
*))(var37
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var37
, var_node
, var60
) /* error on <var37:ModelBuilder>*/;
2207 var62
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
2208 var63
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2209 { /* Inline kernel#Int#- (var62,var63) */
2210 var66
= var62
- var63
;
2213 RET_LABEL65
:(void)0;
2215 var_vararg_decl
= var64
;
2216 var67
= NEW_range__Range(&type_range__Rangekernel__Int
);
2218 var69
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2219 var70
= BOX_kernel__Int(var68
); /* autobox from Int to Discrete */
2220 var71
= BOX_kernel__Int(var69
); /* autobox from Int to Discrete */
2221 ((void (*)(val
*, val
*, val
*))(var67
->class->vft
[COLOR_range__Range__without_last
]))(var67
, var70
, var71
) /* without_last on <var67:Range[Int]>*/;
2222 var72
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var67
) /* iterator on <var67:Range[Int]>*/;
2224 var73
= ((short int (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var72
) /* is_ok on <var72:Iterator[nullable Object]>*/;
2226 var74
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var72
) /* item on <var72:Iterator[nullable Object]>*/;
2227 var75
= ((struct instance_kernel__Int
*)var74
)->value
; /* autounbox from nullable Object to Int */;
2230 { /* Inline kernel#Int#== (var_i,var_vararg_rank) */
2231 var78
= var_i
== var_vararg_rank
;
2234 RET_LABEL77
:(void)0;
2237 goto CONTINUE_label
;
2240 { /* Inline kernel#Int#> (var_i,var_vararg_rank) */
2241 /* Covariant cast for argument 0 (i) <var_vararg_rank:Int> isa OTHER */
2242 /* <var_vararg_rank:Int> isa OTHER */
2243 var81
= 1; /* easy <var_vararg_rank:Int> isa OTHER*/
2245 var_class_name84
= type_kernel__Int
.name
;
2246 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84
);
2247 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
2250 var85
= var_i
> var_vararg_rank
;
2253 RET_LABEL80
:(void)0;
2256 { /* Inline kernel#Int#+ (var_i,var_vararg_decl) */
2257 var88
= var_i
+ var_vararg_decl
;
2260 RET_LABEL87
:(void)0;
2265 var89
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2266 var90
= ((val
* (*)(val
*, long))(var89
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var89
, var_i
) /* [] on <var89:Array[MParameter]>*/;
2267 var91
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_model__MParameter__mtype
]))(var90
) /* mtype on <var90:nullable Object(MParameter)>*/;
2268 var_paramtype
= var91
;
2269 var92
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j
) /* [] on <var_args:Array[AExpr]>*/;
2270 var93
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var92
, var_paramtype
) /* visit_expr_subtype on <self:TypeVisitor>*/;
2272 CONTINUE_label
: (void)0;
2273 ((void (*)(val
*))(var72
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var72
) /* next on <var72:Iterator[nullable Object]>*/;
2275 BREAK_label
: (void)0;
2277 { /* Inline kernel#Int#>= (var_vararg_rank,var94) */
2278 /* Covariant cast for argument 0 (i) <var94:Int> isa OTHER */
2279 /* <var94:Int> isa OTHER */
2280 var97
= 1; /* easy <var94:Int> isa OTHER*/
2282 var_class_name100
= type_kernel__Int
.name
;
2283 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name100
);
2284 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
2287 var101
= var_vararg_rank
>= var94
;
2290 RET_LABEL96
:(void)0;
2293 var102
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
2294 ((void (*)(val
*))(var102
->class->vft
[COLOR_array__Array__init
]))(var102
) /* init on <var102:Array[AExpr]>*/;
2295 var_varargs
= var102
;
2296 var103
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2297 var104
= ((val
* (*)(val
*, long))(var103
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var103
, var_vararg_rank
) /* [] on <var103:Array[MParameter]>*/;
2298 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_model__MParameter__mtype
]))(var104
) /* mtype on <var104:nullable Object(MParameter)>*/;
2299 var_paramtype106
= var105
;
2300 var107
= NEW_range__Range(&type_range__Rangekernel__Int
);
2301 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_decl) */
2302 var110
= var_vararg_rank
+ var_vararg_decl
;
2305 RET_LABEL109
:(void)0;
2307 var111
= BOX_kernel__Int(var_vararg_rank
); /* autobox from Int to Discrete */
2308 var112
= BOX_kernel__Int(var108
); /* autobox from Int to Discrete */
2309 ((void (*)(val
*, val
*, val
*))(var107
->class->vft
[COLOR_range__Range__init
]))(var107
, var111
, var112
) /* init on <var107:Range[Int]>*/;
2310 var113
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var107
) /* iterator on <var107:Range[Int]>*/;
2312 var114
= ((short int (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var113
) /* is_ok on <var113:Iterator[nullable Object]>*/;
2314 var115
= ((val
* (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var113
) /* item on <var113:Iterator[nullable Object]>*/;
2315 var117
= ((struct instance_kernel__Int
*)var115
)->value
; /* autounbox from nullable Object to Int */;
2317 var118
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j116
) /* [] on <var_args:Array[AExpr]>*/;
2318 ((void (*)(val
*, val
*))(var_varargs
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_varargs
, var118
) /* add on <var_varargs:Array[AExpr]>*/;
2319 var119
= ((val
* (*)(val
*, long))(var_args
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_args
, var_j116
) /* [] on <var_args:Array[AExpr]>*/;
2320 var120
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_subtype
]))(self
, var119
, var_paramtype106
) /* visit_expr_subtype on <self:TypeVisitor>*/;
2322 CONTINUE_label121
: (void)0;
2323 ((void (*)(val
*))(var113
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var113
) /* next on <var113:Iterator[nullable Object]>*/;
2325 BREAK_label121
: (void)0;
2334 /* method typing#TypeVisitor#check_signature for (self: Object, ANode, Array[AExpr], String, MSignature): Bool */
2335 short int VIRTUAL_typing__TypeVisitor__check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2336 short int var
/* : Bool */;
2337 short int var1
/* : Bool */;
2338 var1
= typing__TypeVisitor__check_signature(self
, p0
, p1
, p2
, p3
);
2343 /* method typing#TypeVisitor#error for (self: TypeVisitor, ANode, String) */
2344 void typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
2345 val
* var_node
/* var node: ANode */;
2346 val
* var_message
/* var message: String */;
2347 val
* var
/* : ModelBuilder */;
2348 val
* var1
/* : ToolContext */;
2349 val
* var2
/* : Location */;
2352 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(self
) /* modelbuilder on <self:TypeVisitor>*/;
2353 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelbuilder__ModelBuilder__toolcontext
]))(var
) /* toolcontext on <var:ModelBuilder>*/;
2354 var2
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_parser_nodes__ANode__hot_location
]))(var_node
) /* hot_location on <var_node:ANode>*/;
2355 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_toolcontext__ToolContext__error
]))(var1
, var2
, var_message
) /* error on <var1:ToolContext>*/;
2358 /* method typing#TypeVisitor#error for (self: Object, ANode, String) */
2359 void VIRTUAL_typing__TypeVisitor__error(val
* self
, val
* p0
, val
* p1
) {
2360 typing__TypeVisitor__error(self
, p0
, p1
);
2363 /* method typing#TypeVisitor#get_variable for (self: TypeVisitor, AExpr, Variable): nullable MType */
2364 val
* typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
2365 val
* var
/* : nullable MType */;
2366 val
* var_node
/* var node: AExpr */;
2367 val
* var_variable
/* var variable: Variable */;
2368 val
* var1
/* : nullable FlowContext */;
2369 val
* var_flow
/* var flow: nullable FlowContext */;
2370 val
* var2
/* : null */;
2371 short int var3
/* : Bool */;
2372 static val
* varonce
;
2373 val
* var4
/* : String */;
2374 char* var5
/* : NativeString */;
2375 long var6
/* : Int */;
2376 val
* var7
/* : String */;
2377 val
* var8
/* : null */;
2378 val
* var9
/* : HashMap[Variable, nullable MType] */;
2379 short int var10
/* : Bool */;
2380 val
* var11
/* : HashMap[Variable, nullable MType] */;
2381 val
* var12
/* : nullable Object */;
2382 val
* var13
/* : nullable Array[nullable MType] */;
2383 val
* var_mtypes
/* var mtypes: nullable Array[nullable MType] */;
2384 short int var14
/* : Bool */;
2385 val
* var15
/* : null */;
2386 short int var16
/* : Bool */;
2387 short int var_
/* var : Bool */;
2388 long var17
/* : Int */;
2389 long var18
/* : Int */;
2390 short int var19
/* : Bool */;
2391 short int var21
/* : Bool */;
2392 val
* var22
/* : nullable MType */;
2393 long var23
/* : Int */;
2394 long var24
/* : Int */;
2395 short int var25
/* : Bool */;
2396 short int var27
/* : Bool */;
2397 val
* var28
/* : nullable Object */;
2398 val
* var29
/* : nullable MType */;
2399 val
* var_res
/* var res: nullable MType */;
2400 val
* var30
/* : null */;
2401 short int var31
/* : Bool */;
2402 val
* var32
/* : nullable MType */;
2405 var1
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
2408 if (var_flow
== NULL
) {
2409 var3
= 1; /* is null */
2411 var3
= 0; /* arg is null but recv is not */
2417 var5
= "No context!";
2419 var7
= string__NativeString__to_s_with_length(var5
, var6
);
2423 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__error
]))(self
, var_node
, var4
) /* error on <self:TypeVisitor>*/;
2429 var9
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__vars
]))(var_flow
) /* vars on <var_flow:nullable FlowContext(FlowContext)>*/;
2430 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]>*/;
2432 var11
= ((val
* (*)(val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__vars
]))(var_flow
) /* vars on <var_flow:nullable FlowContext(FlowContext)>*/;
2433 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_variable
) /* [] on <var11:HashMap[Variable, nullable MType]>*/;
2437 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)>*/;
2440 if (var_mtypes
== NULL
) {
2441 var16
= 1; /* is null */
2443 var16
= 0; /* arg is null but recv is not */
2449 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])>*/;
2451 { /* Inline kernel#Int#== (var17,var18) */
2452 var21
= var17
== var18
;
2455 RET_LABEL20
:(void)0;
2460 var22
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
2464 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])>*/;
2466 { /* Inline kernel#Int#== (var23,var24) */
2467 var27
= var23
== var24
;
2470 RET_LABEL26
:(void)0;
2473 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])>*/;
2477 var29
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(self
, var_node
, var_mtypes
) /* merge_types on <self:TypeVisitor>*/;
2480 if (var_res
== NULL
) {
2481 var31
= 1; /* is null */
2483 var31
= 0; /* arg is null but recv is not */
2486 var32
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
2498 /* method typing#TypeVisitor#get_variable for (self: Object, AExpr, Variable): nullable MType */
2499 val
* VIRTUAL_typing__TypeVisitor__get_variable(val
* self
, val
* p0
, val
* p1
) {
2500 val
* var
/* : nullable MType */;
2501 val
* var1
/* : nullable MType */;
2502 var1
= typing__TypeVisitor__get_variable(self
, p0
, p1
);
2507 /* method typing#TypeVisitor#set_variable for (self: TypeVisitor, AExpr, Variable, nullable MType) */
2508 void typing__TypeVisitor__set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2509 val
* var_node
/* var node: AExpr */;
2510 val
* var_variable
/* var variable: Variable */;
2511 val
* var_mtype
/* var mtype: nullable MType */;
2512 val
* var
/* : nullable FlowContext */;
2513 val
* var_flow
/* var flow: nullable FlowContext */;
2514 val
* var1
/* : null */;
2515 short int var2
/* : Bool */;
2519 var
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_node
) /* after_flow_context on <var_node:AExpr>*/;
2522 if (var_flow
== NULL
) {
2523 var2
= 0; /* is null */
2525 var2
= 1; /* arg is null and recv is not */
2528 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2529 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 355);
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]>*/;
2598 var8
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_col
) /* iterator on <var_col:Array[nullable MType]>*/;
2600 var9
= ((short int (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var8
) /* is_ok on <var8:Iterator[nullable Object]>*/;
2602 var10
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var8
) /* item on <var8:Iterator[nullable Object]>*/;
2605 if (var_t1
== NULL
) {
2606 var12
= 1; /* is null */
2608 var12
= 0; /* arg is null but recv is not */
2611 goto CONTINUE_label
;
2616 var14
= ((val
* (*)(val
*))(var_col
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_col
) /* iterator on <var_col:Array[nullable MType]>*/;
2618 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var14
) /* is_ok on <var14:Iterator[nullable Object]>*/;
2620 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var14
) /* item on <var14:Iterator[nullable Object]>*/;
2623 if (var_t2
== NULL
) {
2624 var18
= 1; /* is null */
2626 var18
= 0; /* arg is null but recv is not */
2629 goto CONTINUE_label19
;
2632 /* <var_t2:nullable MType(MType)> isa MNullableType */
2633 cltype
= type_model__MNullableType
.color
;
2634 idtype
= type_model__MNullableType
.id
;
2635 if(cltype
>= var_t2
->type
->table_size
) {
2638 var21
= var_t2
->type
->type_table
[cltype
] == idtype
;
2644 /* <var_t2:nullable MType(MType)> isa MNullType */
2645 cltype23
= type_model__MNullType
.color
;
2646 idtype24
= type_model__MNullType
.id
;
2647 if(cltype23
>= var_t2
->type
->table_size
) {
2650 var22
= var_t2
->type
->type_table
[cltype23
] == idtype24
;
2655 var25
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t1
) /* as_nullable on <var_t1:nullable MType(MType)>*/;
2659 var26
= ((short int (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(self
, var_t2
, var_t1
) /* is_subtype on <self:TypeVisitor>*/;
2666 CONTINUE_label19
: (void)0;
2667 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var14
) /* next on <var14:Iterator[nullable Object]>*/;
2669 BREAK_label19
: (void)0;
2675 CONTINUE_label
: (void)0;
2676 ((void (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var8
) /* next on <var8:Iterator[nullable Object]>*/;
2678 BREAK_label
: (void)0;
2685 /* method typing#TypeVisitor#merge_types for (self: Object, ANode, Array[nullable MType]): nullable MType */
2686 val
* VIRTUAL_typing__TypeVisitor__merge_types(val
* self
, val
* p0
, val
* p1
) {
2687 val
* var
/* : nullable MType */;
2688 val
* var1
/* : nullable MType */;
2689 var1
= typing__TypeVisitor__merge_types(self
, p0
, p1
);
2694 /* method typing#CallSite#node for (self: CallSite): ANode */
2695 val
* typing__CallSite__node(val
* self
) {
2696 val
* var
/* : ANode */;
2697 val
* var1
/* : ANode */;
2698 var1
= self
->attrs
[COLOR_typing__CallSite___64dnode
].val
; /* @node on <self:CallSite> */
2700 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @node");
2701 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 386);
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", "Uninitialized attribute @recv");
2734 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 389);
2741 /* method typing#CallSite#recv for (self: Object): MType */
2742 val
* VIRTUAL_typing__CallSite__recv(val
* self
) {
2743 val
* var
/* : MType */;
2744 val
* var1
/* : MType */;
2745 var1
= typing__CallSite__recv(self
);
2750 /* method typing#CallSite#recv= for (self: CallSite, MType) */
2751 void typing__CallSite__recv_61d(val
* self
, val
* p0
) {
2752 self
->attrs
[COLOR_typing__CallSite___64drecv
].val
= p0
; /* @recv on <self:CallSite> */
2755 /* method typing#CallSite#recv= for (self: Object, MType) */
2756 void VIRTUAL_typing__CallSite__recv_61d(val
* self
, val
* p0
) {
2757 typing__CallSite__recv_61d(self
, p0
);
2760 /* method typing#CallSite#recv_is_self for (self: CallSite): Bool */
2761 short int typing__CallSite__recv_is_self(val
* self
) {
2762 short int var
/* : Bool */;
2763 short int var1
/* : Bool */;
2764 var1
= self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
; /* @recv_is_self on <self:CallSite> */
2769 /* method typing#CallSite#recv_is_self for (self: Object): Bool */
2770 short int VIRTUAL_typing__CallSite__recv_is_self(val
* self
) {
2771 short int var
/* : Bool */;
2772 short int var1
/* : Bool */;
2773 var1
= typing__CallSite__recv_is_self(self
);
2778 /* method typing#CallSite#recv_is_self= for (self: CallSite, Bool) */
2779 void typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
2780 self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
= p0
; /* @recv_is_self on <self:CallSite> */
2783 /* method typing#CallSite#recv_is_self= for (self: Object, Bool) */
2784 void VIRTUAL_typing__CallSite__recv_is_self_61d(val
* self
, short int p0
) {
2785 typing__CallSite__recv_is_self_61d(self
, p0
);
2788 /* method typing#CallSite#mproperty for (self: CallSite): MMethod */
2789 val
* typing__CallSite__mproperty(val
* self
) {
2790 val
* var
/* : MMethod */;
2791 val
* var1
/* : MMethod */;
2792 var1
= self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
; /* @mproperty on <self:CallSite> */
2794 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperty");
2795 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 397);
2802 /* method typing#CallSite#mproperty for (self: Object): MMethod */
2803 val
* VIRTUAL_typing__CallSite__mproperty(val
* self
) {
2804 val
* var
/* : MMethod */;
2805 val
* var1
/* : MMethod */;
2806 var1
= typing__CallSite__mproperty(self
);
2811 /* method typing#CallSite#mproperty= for (self: CallSite, MMethod) */
2812 void typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
2813 self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
= p0
; /* @mproperty on <self:CallSite> */
2816 /* method typing#CallSite#mproperty= for (self: Object, MMethod) */
2817 void VIRTUAL_typing__CallSite__mproperty_61d(val
* self
, val
* p0
) {
2818 typing__CallSite__mproperty_61d(self
, p0
);
2821 /* method typing#CallSite#mpropdef for (self: CallSite): MMethodDef */
2822 val
* typing__CallSite__mpropdef(val
* self
) {
2823 val
* var
/* : MMethodDef */;
2824 val
* var1
/* : MMethodDef */;
2825 var1
= self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
; /* @mpropdef on <self:CallSite> */
2827 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdef");
2828 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 400);
2835 /* method typing#CallSite#mpropdef for (self: Object): MMethodDef */
2836 val
* VIRTUAL_typing__CallSite__mpropdef(val
* self
) {
2837 val
* var
/* : MMethodDef */;
2838 val
* var1
/* : MMethodDef */;
2839 var1
= typing__CallSite__mpropdef(self
);
2844 /* method typing#CallSite#mpropdef= for (self: CallSite, MMethodDef) */
2845 void typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
2846 self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
= p0
; /* @mpropdef on <self:CallSite> */
2849 /* method typing#CallSite#mpropdef= for (self: Object, MMethodDef) */
2850 void VIRTUAL_typing__CallSite__mpropdef_61d(val
* self
, val
* p0
) {
2851 typing__CallSite__mpropdef_61d(self
, p0
);
2854 /* method typing#CallSite#msignature for (self: CallSite): MSignature */
2855 val
* typing__CallSite__msignature(val
* self
) {
2856 val
* var
/* : MSignature */;
2857 val
* var1
/* : MSignature */;
2858 var1
= self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
; /* @msignature on <self:CallSite> */
2860 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @msignature");
2861 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 404);
2868 /* method typing#CallSite#msignature for (self: Object): MSignature */
2869 val
* VIRTUAL_typing__CallSite__msignature(val
* self
) {
2870 val
* var
/* : MSignature */;
2871 val
* var1
/* : MSignature */;
2872 var1
= typing__CallSite__msignature(self
);
2877 /* method typing#CallSite#msignature= for (self: CallSite, MSignature) */
2878 void typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
2879 self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
= p0
; /* @msignature on <self:CallSite> */
2882 /* method typing#CallSite#msignature= for (self: Object, MSignature) */
2883 void VIRTUAL_typing__CallSite__msignature_61d(val
* self
, val
* p0
) {
2884 typing__CallSite__msignature_61d(self
, p0
);
2887 /* method typing#CallSite#erasure_cast for (self: CallSite): Bool */
2888 short int typing__CallSite__erasure_cast(val
* self
) {
2889 short int var
/* : Bool */;
2890 short int var1
/* : Bool */;
2891 var1
= self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
; /* @erasure_cast on <self:CallSite> */
2896 /* method typing#CallSite#erasure_cast for (self: Object): Bool */
2897 short int VIRTUAL_typing__CallSite__erasure_cast(val
* self
) {
2898 short int var
/* : Bool */;
2899 short int var1
/* : Bool */;
2900 var1
= typing__CallSite__erasure_cast(self
);
2905 /* method typing#CallSite#erasure_cast= for (self: CallSite, Bool) */
2906 void typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
2907 self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
= p0
; /* @erasure_cast on <self:CallSite> */
2910 /* method typing#CallSite#erasure_cast= for (self: Object, Bool) */
2911 void VIRTUAL_typing__CallSite__erasure_cast_61d(val
* self
, short int p0
) {
2912 typing__CallSite__erasure_cast_61d(self
, p0
);
2915 /* method typing#CallSite#check_signature for (self: CallSite, TypeVisitor, Array[AExpr]): Bool */
2916 short int typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
2917 short int var
/* : Bool */;
2918 val
* var_v
/* var v: TypeVisitor */;
2919 val
* var_args
/* var args: Array[AExpr] */;
2920 val
* var1
/* : ANode */;
2921 val
* var2
/* : MMethod */;
2922 val
* var3
/* : String */;
2923 val
* var4
/* : MSignature */;
2924 short int var5
/* : Bool */;
2927 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__node
]))(self
) /* node on <self:CallSite>*/;
2928 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__mproperty
]))(self
) /* mproperty on <self:CallSite>*/;
2929 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MProperty__name
]))(var2
) /* name on <var2:MMethod>*/;
2930 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__CallSite__msignature
]))(self
) /* msignature on <self:CallSite>*/;
2931 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>*/;
2937 /* method typing#CallSite#check_signature for (self: Object, TypeVisitor, Array[AExpr]): Bool */
2938 short int VIRTUAL_typing__CallSite__check_signature(val
* self
, val
* p0
, val
* p1
) {
2939 short int var
/* : Bool */;
2940 short int var1
/* : Bool */;
2941 var1
= typing__CallSite__check_signature(self
, p0
, p1
);
2946 /* method typing#CallSite#init for (self: CallSite, ANode, MType, Bool, MMethod, MMethodDef, MSignature, Bool) */
2947 void typing__CallSite__init(val
* self
, val
* p0
, val
* p1
, short int p2
, val
* p3
, val
* p4
, val
* p5
, short int p6
) {
2948 self
->attrs
[COLOR_typing__CallSite___64dnode
].val
= p0
; /* @node on <self:CallSite> */
2949 self
->attrs
[COLOR_typing__CallSite___64drecv
].val
= p1
; /* @recv on <self:CallSite> */
2950 self
->attrs
[COLOR_typing__CallSite___64drecv_is_self
].s
= p2
; /* @recv_is_self on <self:CallSite> */
2951 self
->attrs
[COLOR_typing__CallSite___64dmproperty
].val
= p3
; /* @mproperty on <self:CallSite> */
2952 self
->attrs
[COLOR_typing__CallSite___64dmpropdef
].val
= p4
; /* @mpropdef on <self:CallSite> */
2953 self
->attrs
[COLOR_typing__CallSite___64dmsignature
].val
= p5
; /* @msignature on <self:CallSite> */
2954 self
->attrs
[COLOR_typing__CallSite___64derasure_cast
].s
= p6
; /* @erasure_cast on <self:CallSite> */
2957 /* method typing#CallSite#init for (self: Object, ANode, MType, Bool, MMethod, MMethodDef, MSignature, Bool) */
2958 void VIRTUAL_typing__CallSite__init(val
* self
, val
* p0
, val
* p1
, short int p2
, val
* p3
, val
* p4
, val
* p5
, short int p6
) {
2959 typing__CallSite__init(self
, p0
, p1
, p2
, p3
, p4
, p5
, p6
);
2962 /* method typing#Variable#declared_type for (self: Variable): nullable MType */
2963 val
* typing__Variable__declared_type(val
* self
) {
2964 val
* var
/* : nullable MType */;
2965 val
* var1
/* : nullable MType */;
2966 var1
= self
->attrs
[COLOR_typing__Variable___64ddeclared_type
].val
; /* @declared_type on <self:Variable> */
2971 /* method typing#Variable#declared_type for (self: Object): nullable MType */
2972 val
* VIRTUAL_typing__Variable__declared_type(val
* self
) {
2973 val
* var
/* : nullable MType */;
2974 val
* var1
/* : nullable MType */;
2975 var1
= typing__Variable__declared_type(self
);
2980 /* method typing#Variable#declared_type= for (self: Variable, nullable MType) */
2981 void typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
2982 self
->attrs
[COLOR_typing__Variable___64ddeclared_type
].val
= p0
; /* @declared_type on <self:Variable> */
2985 /* method typing#Variable#declared_type= for (self: Object, nullable MType) */
2986 void VIRTUAL_typing__Variable__declared_type_61d(val
* self
, val
* p0
) {
2987 typing__Variable__declared_type_61d(self
, p0
);
2990 /* method typing#FlowContext#vars for (self: FlowContext): HashMap[Variable, nullable MType] */
2991 val
* typing__FlowContext__vars(val
* self
) {
2992 val
* var
/* : HashMap[Variable, nullable MType] */;
2993 val
* var1
/* : HashMap[Variable, nullable MType] */;
2994 var1
= self
->attrs
[COLOR_typing__FlowContext___64dvars
].val
; /* @vars on <self:FlowContext> */
2996 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @vars");
2997 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 422);
3004 /* method typing#FlowContext#vars for (self: Object): HashMap[Variable, nullable MType] */
3005 val
* VIRTUAL_typing__FlowContext__vars(val
* self
) {
3006 val
* var
/* : HashMap[Variable, nullable MType] */;
3007 val
* var1
/* : HashMap[Variable, nullable MType] */;
3008 var1
= typing__FlowContext__vars(self
);
3013 /* method typing#FlowContext#vars= for (self: FlowContext, HashMap[Variable, nullable MType]) */
3014 void typing__FlowContext__vars_61d(val
* self
, val
* p0
) {
3015 self
->attrs
[COLOR_typing__FlowContext___64dvars
].val
= p0
; /* @vars on <self:FlowContext> */
3018 /* method typing#FlowContext#vars= for (self: Object, HashMap[Variable, nullable MType]) */
3019 void VIRTUAL_typing__FlowContext__vars_61d(val
* self
, val
* p0
) {
3020 typing__FlowContext__vars_61d(self
, p0
);
3023 /* method typing#FlowContext#cache for (self: FlowContext): HashMap[Variable, nullable Array[nullable MType]] */
3024 val
* typing__FlowContext__cache(val
* self
) {
3025 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3026 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3027 var1
= self
->attrs
[COLOR_typing__FlowContext___64dcache
].val
; /* @cache on <self:FlowContext> */
3029 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @cache");
3030 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 424);
3037 /* method typing#FlowContext#cache for (self: Object): HashMap[Variable, nullable Array[nullable MType]] */
3038 val
* VIRTUAL_typing__FlowContext__cache(val
* self
) {
3039 val
* var
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3040 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3041 var1
= typing__FlowContext__cache(self
);
3046 /* method typing#FlowContext#cache= for (self: FlowContext, HashMap[Variable, nullable Array[nullable MType]]) */
3047 void typing__FlowContext__cache_61d(val
* self
, val
* p0
) {
3048 self
->attrs
[COLOR_typing__FlowContext___64dcache
].val
= p0
; /* @cache on <self:FlowContext> */
3051 /* method typing#FlowContext#cache= for (self: Object, HashMap[Variable, nullable Array[nullable MType]]) */
3052 void VIRTUAL_typing__FlowContext__cache_61d(val
* self
, val
* p0
) {
3053 typing__FlowContext__cache_61d(self
, p0
);
3056 /* method typing#FlowContext#set_var for (self: FlowContext, Variable, nullable MType) */
3057 void typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
3058 val
* var_variable
/* var variable: Variable */;
3059 val
* var_mtype
/* var mtype: nullable MType */;
3060 val
* var
/* : HashMap[Variable, nullable MType] */;
3061 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3062 val
* var2
/* : Collection[Object] */;
3065 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3066 ((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]>*/;
3067 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3068 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__keys
]))(var1
) /* keys on <var1:HashMap[Variable, nullable Array[nullable MType]]>*/;
3069 ((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]])>*/;
3072 /* method typing#FlowContext#set_var for (self: Object, Variable, nullable MType) */
3073 void VIRTUAL_typing__FlowContext__set_var(val
* self
, val
* p0
, val
* p1
) {
3074 typing__FlowContext__set_var(self
, p0
, p1
);
3077 /* method typing#FlowContext#collect_types for (self: FlowContext, Variable): nullable Array[nullable MType] */
3078 val
* typing__FlowContext__collect_types(val
* self
, val
* p0
) {
3079 val
* var
/* : nullable Array[nullable MType] */;
3080 val
* var_variable
/* var variable: Variable */;
3081 val
* var1
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3082 short int var2
/* : Bool */;
3083 val
* var3
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3084 val
* var4
/* : nullable Object */;
3085 val
* var5
/* : null */;
3086 val
* var_res
/* var res: nullable Array[nullable MType] */;
3087 val
* var6
/* : HashMap[Variable, nullable MType] */;
3088 short int var7
/* : Bool */;
3089 val
* var8
/* : HashMap[Variable, nullable MType] */;
3090 val
* var9
/* : nullable Object */;
3091 val
* var_mtype
/* var mtype: nullable MType */;
3092 val
* var10
/* : Array[nullable MType] */;
3093 long var11
/* : Int */;
3094 val
* var_
/* var : Array[nullable MType] */;
3095 val
* var12
/* : Array[FlowContext] */;
3096 short int var13
/* : Bool */;
3097 val
* var14
/* : Array[nullable MType] */;
3098 long var15
/* : Int */;
3099 val
* var_16
/* var : Array[nullable MType] */;
3100 val
* var17
/* : nullable MType */;
3101 val
* var18
/* : Array[FlowContext] */;
3102 val
* var19
/* : Iterator[nullable Object] */;
3103 short int var20
/* : Bool */;
3104 val
* var21
/* : nullable Object */;
3105 val
* var_flow
/* var flow: FlowContext */;
3106 short int var22
/* : Bool */;
3107 val
* var23
/* : nullable Array[nullable MType] */;
3108 val
* var_r2
/* var r2: nullable Array[nullable MType] */;
3109 val
* var24
/* : null */;
3110 short int var25
/* : Bool */;
3111 val
* var26
/* : null */;
3112 short int var27
/* : Bool */;
3113 val
* var28
/* : Array[nullable Object] */;
3114 val
* var29
/* : Iterator[nullable Object] */;
3115 short int var30
/* : Bool */;
3116 val
* var31
/* : nullable Object */;
3117 val
* var_t
/* var t: nullable MType */;
3118 short int var32
/* : Bool */;
3119 short int var33
/* : Bool */;
3120 val
* var35
/* : HashMap[Variable, nullable Array[nullable MType]] */;
3122 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3123 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]]>*/;
3125 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3126 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_variable
) /* [] on <var3:HashMap[Variable, nullable Array[nullable MType]]>*/;
3133 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3134 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]>*/;
3136 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__vars
]))(self
) /* vars on <self:FlowContext>*/;
3137 var9
= ((val
* (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var8
, var_variable
) /* [] on <var8:HashMap[Variable, nullable MType]>*/;
3139 var10
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3141 ((void (*)(val
*, long))(var10
->class->vft
[COLOR_array__Array__with_capacity
]))(var10
, var11
) /* with_capacity on <var10:Array[nullable MType]>*/;
3143 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var_mtype
) /* push on <var_:Array[nullable MType]>*/;
3146 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
3147 var13
= ((short int (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var12
) /* is_empty on <var12:Array[FlowContext]>*/;
3149 var14
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
3151 ((void (*)(val
*, long))(var14
->class->vft
[COLOR_array__Array__with_capacity
]))(var14
, var15
) /* with_capacity on <var14:Array[nullable MType]>*/;
3153 var17
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:Variable>*/;
3154 ((void (*)(val
*, val
*))(var_16
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_16
, var17
) /* push on <var_16:Array[nullable MType]>*/;
3157 var18
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__FlowContext__previous
]))(self
) /* previous on <self:FlowContext>*/;
3158 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:Array[FlowContext]>*/;
3160 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[nullable Object]>*/;
3162 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[nullable Object]>*/;
3164 var22
= ((short int (*)(val
*))(var_flow
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var_flow
) /* is_unreachable on <var_flow:FlowContext>*/;
3166 goto CONTINUE_label
;
3169 var23
= ((val
* (*)(val
*, val
*))(var_flow
->class->vft
[COLOR_typing__FlowContext__collect_types
]))(var_flow
, var_variable
) /* collect_types on <var_flow:FlowContext>*/;
3172 if (var_r2
== NULL
) {
3173 var25
= 1; /* is null */
3175 var25
= 0; /* arg is null but recv is not */
3178 goto CONTINUE_label
;
3182 if (var_res
== NULL
) {
3183 var27
= 1; /* is null */
3185 var27
= 0; /* arg is null but recv is not */
3188 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])>*/;
3191 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])>*/;
3193 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var29
) /* is_ok on <var29:Iterator[nullable Object]>*/;
3195 var31
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var29
) /* item on <var29:Iterator[nullable Object]>*/;
3197 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])>*/;
3200 ((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])>*/;
3203 CONTINUE_label34
: (void)0;
3204 ((void (*)(val
*))(var29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var29
) /* next on <var29:Iterator[nullable Object]>*/;
3206 BREAK_label34
: (void)0;
3208 CONTINUE_label
: (void)0;
3209 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[nullable Object]>*/;
3211 BREAK_label
: (void)0;
3214 var35
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__FlowContext__cache
]))(self
) /* cache on <self:FlowContext>*/;
3215 ((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]]>*/;
3221 /* method typing#FlowContext#collect_types for (self: Object, Variable): nullable Array[nullable MType] */
3222 val
* VIRTUAL_typing__FlowContext__collect_types(val
* self
, val
* p0
) {
3223 val
* var
/* : nullable Array[nullable MType] */;
3224 val
* var1
/* : nullable Array[nullable MType] */;
3225 var1
= typing__FlowContext__collect_types(self
, p0
);
3230 /* method typing#APropdef#do_typing for (self: APropdef, ModelBuilder) */
3231 void typing__APropdef__do_typing(val
* self
, val
* p0
) {
3232 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3233 var_modelbuilder
= p0
;
3236 /* method typing#APropdef#do_typing for (self: Object, ModelBuilder) */
3237 void VIRTUAL_typing__APropdef__do_typing(val
* self
, val
* p0
) {
3238 typing__APropdef__do_typing(self
, p0
);
3241 /* method typing#APropdef#selfvariable for (self: APropdef): nullable Variable */
3242 val
* typing__APropdef__selfvariable(val
* self
) {
3243 val
* var
/* : nullable Variable */;
3244 val
* var1
/* : nullable Variable */;
3245 var1
= self
->attrs
[COLOR_typing__APropdef___64dselfvariable
].val
; /* @selfvariable on <self:APropdef> */
3250 /* method typing#APropdef#selfvariable for (self: Object): nullable Variable */
3251 val
* VIRTUAL_typing__APropdef__selfvariable(val
* self
) {
3252 val
* var
/* : nullable Variable */;
3253 val
* var1
/* : nullable Variable */;
3254 var1
= typing__APropdef__selfvariable(self
);
3259 /* method typing#APropdef#selfvariable= for (self: APropdef, nullable Variable) */
3260 void typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
3261 self
->attrs
[COLOR_typing__APropdef___64dselfvariable
].val
= p0
; /* @selfvariable on <self:APropdef> */
3264 /* method typing#APropdef#selfvariable= for (self: Object, nullable Variable) */
3265 void VIRTUAL_typing__APropdef__selfvariable_61d(val
* self
, val
* p0
) {
3266 typing__APropdef__selfvariable_61d(self
, p0
);
3269 /* method typing#AConcreteMethPropdef#do_typing for (self: AConcreteMethPropdef, ModelBuilder) */
3270 void typing__AConcreteMethPropdef__do_typing(val
* self
, val
* p0
) {
3271 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3272 val
* var
/* : nullable ANode */;
3273 short int var1
/* : Bool */;
3276 const char* var_class_name
;
3277 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3278 val
* var2
/* : nullable MPropDef */;
3279 val
* var_mpropdef
/* var mpropdef: MMethodDef */;
3280 val
* var3
/* : TypeVisitor */;
3281 val
* var_v
/* var v: TypeVisitor */;
3282 val
* var4
/* : Variable */;
3283 val
* var5
/* : nullable AExpr */;
3284 val
* var_nblock
/* var nblock: nullable AExpr */;
3285 val
* var6
/* : null */;
3286 short int var7
/* : Bool */;
3287 val
* var8
/* : nullable MPropDef */;
3288 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
3289 val
* var9
/* : Range[Int] */;
3290 long var10
/* : Int */;
3291 val
* var11
/* : nullable MSignature */;
3292 long var12
/* : Int */;
3293 val
* var13
/* : Discrete */;
3294 val
* var14
/* : Discrete */;
3295 val
* var15
/* : Iterator[nullable Object] */;
3296 short int var16
/* : Bool */;
3297 val
* var17
/* : nullable Object */;
3298 long var_i
/* var i: Int */;
3299 long var18
/* : Int */;
3300 val
* var19
/* : nullable MSignature */;
3301 val
* var20
/* : Array[MParameter] */;
3302 val
* var21
/* : nullable Object */;
3303 val
* var22
/* : MType */;
3304 val
* var_mtype
/* var mtype: MType */;
3305 val
* var23
/* : nullable MSignature */;
3306 long var24
/* : Int */;
3307 short int var25
/* : Bool */;
3308 short int var27
/* : Bool */;
3309 val
* var28
/* : nullable ASignature */;
3310 val
* var29
/* : ANodes[AParam] */;
3311 val
* var30
/* : nullable Object */;
3312 static val
* varonce
;
3313 val
* var31
/* : String */;
3314 char* var32
/* : NativeString */;
3315 long var33
/* : Int */;
3316 val
* var34
/* : String */;
3317 val
* var35
/* : nullable MClass */;
3318 val
* var_arrayclass
/* var arrayclass: nullable MClass */;
3319 val
* var36
/* : null */;
3320 short int var37
/* : Bool */;
3321 val
* var38
/* : Array[MType] */;
3322 long var39
/* : Int */;
3323 val
* var40
/* : NativeArray[MType] */;
3324 val
* var41
/* : MClassType */;
3325 val
* var42
/* : nullable ASignature */;
3326 val
* var43
/* : ANodes[AParam] */;
3327 val
* var44
/* : nullable Object */;
3328 val
* var45
/* : nullable Variable */;
3329 val
* var_variable
/* var variable: nullable Variable */;
3330 val
* var46
/* : null */;
3331 short int var47
/* : Bool */;
3332 short int var48
/* : Bool */;
3333 val
* var49
/* : nullable FlowContext */;
3334 short int var50
/* : Bool */;
3335 short int var51
/* : Bool */;
3336 short int var_
/* var : Bool */;
3337 val
* var52
/* : nullable MSignature */;
3338 val
* var53
/* : nullable MType */;
3339 val
* var54
/* : null */;
3340 short int var55
/* : Bool */;
3341 static val
* varonce56
;
3342 val
* var57
/* : String */;
3343 char* var58
/* : NativeString */;
3344 long var59
/* : Int */;
3345 val
* var60
/* : String */;
3346 var_modelbuilder
= p0
;
3347 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:AConcreteMethPropdef>*/;
3348 /* <var:nullable ANode> isa AClassdef */
3349 cltype
= type_parser_nodes__AClassdef
.color
;
3350 idtype
= type_parser_nodes__AClassdef
.id
;
3354 if(cltype
>= var
->type
->table_size
) {
3357 var1
= var
->type
->type_table
[cltype
] == idtype
;
3361 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
3362 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name
);
3363 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 479);
3366 var_nclassdef
= var
;
3367 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AConcreteMethPropdef>*/;
3369 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3370 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 480);
3373 var_mpropdef
= var2
;
3374 var3
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
3375 ((void (*)(val
*, val
*, val
*, val
*))(var3
->class->vft
[COLOR_typing__TypeVisitor__init
]))(var3
, var_modelbuilder
, var_nclassdef
, var_mpropdef
) /* init on <var3:TypeVisitor>*/;
3377 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
3378 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__APropdef__selfvariable_61d
]))(self
, var4
) /* selfvariable= on <self:AConcreteMethPropdef>*/;
3379 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AConcreteMethPropdef__n_block
]))(self
) /* n_block on <self:AConcreteMethPropdef>*/;
3382 if (var_nblock
== NULL
) {
3383 var7
= 1; /* is null */
3385 var7
= 0; /* arg is null but recv is not */
3391 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AConcreteMethPropdef>*/;
3393 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3394 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 487);
3397 var_mmethoddef
= var8
;
3398 var9
= NEW_range__Range(&type_range__Rangekernel__Int
);
3400 var11
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3401 if (var11
== NULL
) {
3402 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3403 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 488);
3406 var12
= ((long (*)(val
*))(var11
->class->vft
[COLOR_model__MSignature__arity
]))(var11
) /* arity on <var11:nullable MSignature>*/;
3408 var13
= BOX_kernel__Int(var10
); /* autobox from Int to Discrete */
3409 var14
= BOX_kernel__Int(var12
); /* autobox from Int to Discrete */
3410 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_range__Range__without_last
]))(var9
, var13
, var14
) /* without_last on <var9:Range[Int]>*/;
3411 var15
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Range[Int]>*/;
3413 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
3415 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
3416 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
3418 var19
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3419 if (var19
== NULL
) {
3420 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3421 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 489);
3424 var20
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_model__MSignature__mparameters
]))(var19
) /* mparameters on <var19:nullable MSignature>*/;
3426 var21
= ((val
* (*)(val
*, long))(var20
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var20
, var_i
) /* [] on <var20:Array[MParameter]>*/;
3427 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_model__MParameter__mtype
]))(var21
) /* mtype on <var21:nullable Object(MParameter)>*/;
3429 var23
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3430 if (var23
== NULL
) {
3431 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3432 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 490);
3435 var24
= ((long (*)(val
*))(var23
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var23
) /* vararg_rank on <var23:nullable MSignature>*/;
3437 { /* Inline kernel#Int#== (var24,var_i) */
3438 var27
= var24
== var_i
;
3441 RET_LABEL26
:(void)0;
3444 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3445 if (var28
== NULL
) {
3446 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3447 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 491);
3450 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_parser_nodes__ASignature__n_params
]))(var28
) /* n_params on <var28:nullable ASignature>*/;
3452 var30
= ((val
* (*)(val
*, long))(var29
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var29
, var_i
) /* [] on <var29:ANodes[AParam]>*/;
3458 var34
= string__NativeString__to_s_with_length(var32
, var33
);
3462 var35
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, var30
, var31
) /* get_mclass on <var_v:TypeVisitor>*/;
3463 var_arrayclass
= var35
;
3465 if (var_arrayclass
== NULL
) {
3466 var37
= 1; /* is null */
3468 var37
= 0; /* arg is null but recv is not */
3474 var38
= NEW_array__Array(&type_array__Arraymodel__MType
);
3475 { /* var38 = array_instance Array[MType] */
3477 var40
= NEW_array__NativeArray(var39
, &type_array__NativeArraymodel__MType
);
3478 ((struct instance_array__NativeArray
*)var40
)->values
[0] = (val
*) var_mtype
;
3479 ((void (*)(val
*, val
*, long))(var38
->class->vft
[COLOR_array__Array__with_native
]))(var38
, var40
, var39
) /* with_native on <var38:Array[MType]>*/;
3481 var41
= ((val
* (*)(val
*, val
*))(var_arrayclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_arrayclass
, var38
) /* get_mtype on <var_arrayclass:nullable MClass(MClass)>*/;
3485 var42
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AMethPropdef__n_signature
]))(self
) /* n_signature on <self:AConcreteMethPropdef>*/;
3486 if (var42
== NULL
) {
3487 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3488 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 495);
3491 var43
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_parser_nodes__ASignature__n_params
]))(var42
) /* n_params on <var42:nullable ASignature>*/;
3493 var44
= ((val
* (*)(val
*, long))(var43
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var43
, var_i
) /* [] on <var43:ANodes[AParam]>*/;
3494 var45
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_scope__AParam__variable
]))(var44
) /* variable on <var44:nullable Object(AParam)>*/;
3495 var_variable
= var45
;
3497 if (var_variable
== NULL
) {
3498 var47
= 0; /* is null */
3500 var47
= 1; /* arg is null and recv is not */
3503 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3504 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 496);
3507 ((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)>*/;
3508 CONTINUE_label
: (void)0;
3509 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
3511 BREAK_label
: (void)0;
3512 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var_nblock
) /* visit_stmt on <var_v:TypeVisitor>*/;
3513 var49
= ((val
* (*)(val
*))(var_nblock
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(var_nblock
) /* after_flow_context on <var_nblock:nullable AExpr(AExpr)>*/;
3514 if (var49
== NULL
) {
3515 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3516 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 501);
3519 var50
= ((short int (*)(val
*))(var49
->class->vft
[COLOR_flow__FlowContext__is_unreachable
]))(var49
) /* is_unreachable on <var49:nullable FlowContext>*/;
3524 var52
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
3525 if (var52
== NULL
) {
3526 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3527 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 501);
3530 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var52
) /* return_mtype on <var52:nullable MSignature>*/;
3533 if (var53
== NULL
) {
3534 var55
= 0; /* is null */
3536 var55
= 1; /* arg is null and recv is not */
3546 var58
= "Control error: Reached end of function (a \'return\' with a value was expected).";
3548 var60
= string__NativeString__to_s_with_length(var58
, var59
);
3552 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var57
) /* error on <var_v:TypeVisitor>*/;
3557 /* method typing#AConcreteMethPropdef#do_typing for (self: Object, ModelBuilder) */
3558 void VIRTUAL_typing__AConcreteMethPropdef__do_typing(val
* self
, val
* p0
) {
3559 typing__AConcreteMethPropdef__do_typing(self
, p0
);
3562 /* method typing#AAttrPropdef#do_typing for (self: AAttrPropdef, ModelBuilder) */
3563 void typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
3564 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
3565 val
* var
/* : nullable ANode */;
3566 short int var1
/* : Bool */;
3569 const char* var_class_name
;
3570 val
* var_nclassdef
/* var nclassdef: AClassdef */;
3571 val
* var2
/* : TypeVisitor */;
3572 val
* var3
/* : nullable MPropDef */;
3573 val
* var_v
/* var v: TypeVisitor */;
3574 val
* var4
/* : Variable */;
3575 val
* var5
/* : nullable AExpr */;
3576 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3577 val
* var6
/* : null */;
3578 short int var7
/* : Bool */;
3579 val
* var8
/* : nullable MPropDef */;
3580 val
* var9
/* : nullable MType */;
3581 val
* var_mtype
/* var mtype: nullable MType */;
3582 val
* var10
/* : nullable MType */;
3583 var_modelbuilder
= p0
;
3584 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANode__parent
]))(self
) /* parent on <self:AAttrPropdef>*/;
3585 /* <var:nullable ANode> isa AClassdef */
3586 cltype
= type_parser_nodes__AClassdef
.color
;
3587 idtype
= type_parser_nodes__AClassdef
.id
;
3591 if(cltype
>= var
->type
->table_size
) {
3594 var1
= var
->type
->type_table
[cltype
] == idtype
;
3598 var_class_name
= var
== NULL ?
"null" : var
->type
->name
;
3599 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AClassdef", var_class_name
);
3600 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 511);
3603 var_nclassdef
= var
;
3604 var2
= NEW_typing__TypeVisitor(&type_typing__TypeVisitor
);
3605 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AAttrPropdef>*/;
3607 fprintf(stderr
, "Runtime error: %s", "Cast failed");
3608 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 512);
3611 ((void (*)(val
*, val
*, val
*, val
*))(var2
->class->vft
[COLOR_typing__TypeVisitor__init
]))(var2
, var_modelbuilder
, var_nclassdef
, var3
) /* init on <var2:TypeVisitor>*/;
3613 var4
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
3614 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__APropdef__selfvariable_61d
]))(self
, var4
) /* selfvariable= on <self:AAttrPropdef>*/;
3615 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAttrPropdef__n_expr
]))(self
) /* n_expr on <self:AAttrPropdef>*/;
3618 if (var_nexpr
== NULL
) {
3619 var7
= 0; /* is null */
3621 var7
= 1; /* arg is null and recv is not */
3624 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_modelize_property__APropdef__mpropdef
]))(self
) /* mpropdef on <self:AAttrPropdef>*/;
3626 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
3627 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 517);
3630 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MAttributeDef__static_mtype
]))(var8
) /* static_mtype on <var8:nullable MPropDef(nullable MAttributeDef)>*/;
3633 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>*/;
3639 /* method typing#AAttrPropdef#do_typing for (self: Object, ModelBuilder) */
3640 void VIRTUAL_typing__AAttrPropdef__do_typing(val
* self
, val
* p0
) {
3641 typing__AAttrPropdef__do_typing(self
, p0
);
3644 /* method typing#AExpr#mtype for (self: AExpr): nullable MType */
3645 val
* typing__AExpr__mtype(val
* self
) {
3646 val
* var
/* : nullable MType */;
3647 val
* var1
/* : nullable MType */;
3648 var1
= self
->attrs
[COLOR_typing__AExpr___64dmtype
].val
; /* @mtype on <self:AExpr> */
3653 /* method typing#AExpr#mtype for (self: Object): nullable MType */
3654 val
* VIRTUAL_typing__AExpr__mtype(val
* self
) {
3655 val
* var
/* : nullable MType */;
3656 val
* var1
/* : nullable MType */;
3657 var1
= typing__AExpr__mtype(self
);
3662 /* method typing#AExpr#mtype= for (self: AExpr, nullable MType) */
3663 void typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
3664 self
->attrs
[COLOR_typing__AExpr___64dmtype
].val
= p0
; /* @mtype on <self:AExpr> */
3667 /* method typing#AExpr#mtype= for (self: Object, nullable MType) */
3668 void VIRTUAL_typing__AExpr__mtype_61d(val
* self
, val
* p0
) {
3669 typing__AExpr__mtype_61d(self
, p0
);
3672 /* method typing#AExpr#is_typed for (self: AExpr): Bool */
3673 short int typing__AExpr__is_typed(val
* self
) {
3674 short int var
/* : Bool */;
3675 short int var1
/* : Bool */;
3676 var1
= self
->attrs
[COLOR_typing__AExpr___64dis_typed
].s
; /* @is_typed on <self:AExpr> */
3681 /* method typing#AExpr#is_typed for (self: Object): Bool */
3682 short int VIRTUAL_typing__AExpr__is_typed(val
* self
) {
3683 short int var
/* : Bool */;
3684 short int var1
/* : Bool */;
3685 var1
= typing__AExpr__is_typed(self
);
3690 /* method typing#AExpr#is_typed= for (self: AExpr, Bool) */
3691 void typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
3692 self
->attrs
[COLOR_typing__AExpr___64dis_typed
].s
= p0
; /* @is_typed on <self:AExpr> */
3695 /* method typing#AExpr#is_typed= for (self: Object, Bool) */
3696 void VIRTUAL_typing__AExpr__is_typed_61d(val
* self
, short int p0
) {
3697 typing__AExpr__is_typed_61d(self
, p0
);
3700 /* method typing#AExpr#implicit_cast_to for (self: AExpr): nullable MType */
3701 val
* typing__AExpr__implicit_cast_to(val
* self
) {
3702 val
* var
/* : nullable MType */;
3703 val
* var1
/* : nullable MType */;
3704 var1
= self
->attrs
[COLOR_typing__AExpr___64dimplicit_cast_to
].val
; /* @implicit_cast_to on <self:AExpr> */
3709 /* method typing#AExpr#implicit_cast_to for (self: Object): nullable MType */
3710 val
* VIRTUAL_typing__AExpr__implicit_cast_to(val
* self
) {
3711 val
* var
/* : nullable MType */;
3712 val
* var1
/* : nullable MType */;
3713 var1
= typing__AExpr__implicit_cast_to(self
);
3718 /* method typing#AExpr#implicit_cast_to= for (self: AExpr, nullable MType) */
3719 void typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
3720 self
->attrs
[COLOR_typing__AExpr___64dimplicit_cast_to
].val
= p0
; /* @implicit_cast_to on <self:AExpr> */
3723 /* method typing#AExpr#implicit_cast_to= for (self: Object, nullable MType) */
3724 void VIRTUAL_typing__AExpr__implicit_cast_to_61d(val
* self
, val
* p0
) {
3725 typing__AExpr__implicit_cast_to_61d(self
, p0
);
3728 /* method typing#AExpr#its_variable for (self: AExpr): nullable Variable */
3729 val
* typing__AExpr__its_variable(val
* self
) {
3730 val
* var
/* : nullable Variable */;
3731 val
* var1
/* : null */;
3738 /* method typing#AExpr#its_variable for (self: Object): nullable Variable */
3739 val
* VIRTUAL_typing__AExpr__its_variable(val
* self
) {
3740 val
* var
/* : nullable Variable */;
3741 val
* var1
/* : nullable Variable */;
3742 var1
= typing__AExpr__its_variable(self
);
3747 /* method typing#AExpr#accept_typing for (self: AExpr, TypeVisitor) */
3748 void typing__AExpr__accept_typing(val
* self
, val
* p0
) {
3749 val
* var_v
/* var v: TypeVisitor */;
3750 static val
* varonce
;
3751 val
* var
/* : String */;
3752 char* var1
/* : NativeString */;
3753 long var2
/* : Int */;
3754 val
* var3
/* : String */;
3755 val
* var4
/* : String */;
3756 val
* var5
/* : Array[Object] */;
3757 long var6
/* : Int */;
3758 val
* var7
/* : NativeArray[Object] */;
3759 val
* var8
/* : String */;
3764 var1
= "no implemented accept_typing for ";
3766 var3
= string__NativeString__to_s_with_length(var1
, var2
);
3770 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__Object__class_name
]))(self
) /* class_name on <self:AExpr>*/;
3771 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
3772 { /* var5 = array_instance Array[Object] */
3774 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
3775 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var
;
3776 ((struct instance_array__NativeArray
*)var7
)->values
[1] = (val
*) var4
;
3777 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
3779 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
3780 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var8
) /* error on <var_v:TypeVisitor>*/;
3783 /* method typing#AExpr#accept_typing for (self: Object, TypeVisitor) */
3784 void VIRTUAL_typing__AExpr__accept_typing(val
* self
, val
* p0
) {
3785 typing__AExpr__accept_typing(self
, p0
);
3788 /* method typing#ABlockExpr#accept_typing for (self: ABlockExpr, TypeVisitor) */
3789 void typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
3790 val
* var_v
/* var v: TypeVisitor */;
3791 val
* var
/* : ANodes[AExpr] */;
3792 val
* var1
/* : Iterator[nullable Object] */;
3793 short int var2
/* : Bool */;
3794 val
* var3
/* : nullable Object */;
3795 val
* var_e
/* var e: AExpr */;
3796 short int var4
/* : Bool */;
3798 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3799 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var
) /* iterator on <var:ANodes[AExpr]>*/;
3801 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var1
) /* is_ok on <var1:Iterator[nullable Object]>*/;
3803 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var1
) /* item on <var1:Iterator[nullable Object]>*/;
3805 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var_e
) /* visit_stmt on <var_v:TypeVisitor>*/;
3806 CONTINUE_label
: (void)0;
3807 ((void (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var1
) /* next on <var1:Iterator[nullable Object]>*/;
3809 BREAK_label
: (void)0;
3811 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:ABlockExpr>*/;
3814 /* method typing#ABlockExpr#accept_typing for (self: Object, TypeVisitor) */
3815 void VIRTUAL_typing__ABlockExpr__accept_typing(val
* self
, val
* p0
) {
3816 typing__ABlockExpr__accept_typing(self
, p0
);
3819 /* method typing#ABlockExpr#mtype for (self: ABlockExpr): nullable MType */
3820 val
* typing__ABlockExpr__mtype(val
* self
) {
3821 val
* var
/* : nullable MType */;
3822 val
* var1
/* : ANodes[AExpr] */;
3823 short int var2
/* : Bool */;
3824 val
* var3
/* : null */;
3825 val
* var4
/* : ANodes[AExpr] */;
3826 val
* var5
/* : nullable Object */;
3827 val
* var6
/* : nullable MType */;
3828 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3829 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var1
) /* is_empty on <var1:ANodes[AExpr]>*/;
3836 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABlockExpr__n_expr
]))(self
) /* n_expr on <self:ABlockExpr>*/;
3837 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var4
) /* last on <var4:ANodes[AExpr]>*/;
3838 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_typing__AExpr__mtype
]))(var5
) /* mtype on <var5:nullable Object(AExpr)>*/;
3844 /* method typing#ABlockExpr#mtype for (self: Object): nullable MType */
3845 val
* VIRTUAL_typing__ABlockExpr__mtype(val
* self
) {
3846 val
* var
/* : nullable MType */;
3847 val
* var1
/* : nullable MType */;
3848 var1
= typing__ABlockExpr__mtype(self
);
3853 /* method typing#AVardeclExpr#accept_typing for (self: AVardeclExpr, TypeVisitor) */
3854 void typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
3855 val
* var_v
/* var v: TypeVisitor */;
3856 val
* var
/* : nullable Variable */;
3857 val
* var_variable
/* var variable: nullable Variable */;
3858 val
* var1
/* : null */;
3859 short int var2
/* : Bool */;
3860 val
* var3
/* : nullable AType */;
3861 val
* var_ntype
/* var ntype: nullable AType */;
3862 val
* var4
/* : null */;
3863 short int var5
/* : Bool */;
3864 val
* var6
/* : null */;
3865 val
* var_mtype
/* var mtype: nullable MType */;
3866 val
* var7
/* : nullable MType */;
3867 val
* var8
/* : null */;
3868 short int var9
/* : Bool */;
3869 val
* var10
/* : nullable AExpr */;
3870 val
* var_nexpr
/* var nexpr: nullable AExpr */;
3871 val
* var11
/* : null */;
3872 short int var12
/* : Bool */;
3873 val
* var13
/* : null */;
3874 short int var14
/* : Bool */;
3875 val
* var15
/* : nullable MType */;
3876 val
* var16
/* : nullable MType */;
3877 val
* var17
/* : null */;
3878 short int var18
/* : Bool */;
3879 val
* var_decltype
/* var decltype: nullable MType */;
3880 short int var19
/* : Bool */;
3881 val
* var20
/* : null */;
3882 short int var21
/* : Bool */;
3883 short int var_
/* var : Bool */;
3884 short int var22
/* : Bool */;
3887 static val
* varonce
;
3888 val
* var23
/* : String */;
3889 char* var24
/* : NativeString */;
3890 long var25
/* : Int */;
3891 val
* var26
/* : String */;
3892 val
* var27
/* : nullable MClass */;
3893 val
* var28
/* : MClassType */;
3894 val
* var29
/* : MType */;
3895 val
* var30
/* : null */;
3896 short int var31
/* : Bool */;
3897 short int var32
/* : Bool */;
3899 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVardeclExpr__variable
]))(self
) /* variable on <self:AVardeclExpr>*/;
3902 if (var_variable
== NULL
) {
3903 var2
= 1; /* is null */
3905 var2
= 0; /* arg is null but recv is not */
3911 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AVardeclExpr__n_type
]))(self
) /* n_type on <self:AVardeclExpr>*/;
3914 if (var_ntype
== NULL
) {
3915 var5
= 1; /* is null */
3917 var5
= 0; /* arg is null but recv is not */
3923 var7
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_mtype
]))(var_v
, var_ntype
) /* resolve_mtype on <var_v:TypeVisitor>*/;
3926 if (var_mtype
== NULL
) {
3927 var9
= 1; /* is null */
3929 var9
= 0; /* arg is null but recv is not */
3936 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AVardeclExpr__n_expr
]))(self
) /* n_expr on <self:AVardeclExpr>*/;
3939 if (var_nexpr
== NULL
) {
3940 var12
= 0; /* is null */
3942 var12
= 1; /* arg is null and recv is not */
3946 if (var_mtype
== NULL
) {
3947 var14
= 0; /* is null */
3949 var14
= 1; /* arg is null and recv is not */
3952 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>*/;
3955 var16
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
3958 if (var_mtype
== NULL
) {
3959 var18
= 1; /* is null */
3961 var18
= 0; /* arg is null but recv is not */
3970 var_decltype
= var_mtype
;
3972 if (var_mtype
== NULL
) {
3973 var21
= 1; /* is null */
3975 var21
= 0; /* arg is null but recv is not */
3981 /* <var_mtype:nullable MType(MType)> isa MNullType */
3982 cltype
= type_model__MNullType
.color
;
3983 idtype
= type_model__MNullType
.id
;
3984 if(cltype
>= var_mtype
->type
->table_size
) {
3987 var22
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3997 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4001 var27
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var23
) /* get_mclass on <var_v:TypeVisitor>*/;
4002 if (var27
== NULL
) {
4003 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4004 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 592);
4007 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_model__MClass__mclass_type
]))(var27
) /* mclass_type on <var27:nullable MClass>*/;
4009 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MType__as_nullable
]))(var28
) /* as_nullable on <var28:MClassType>*/;
4010 var_decltype
= var29
;
4012 if (var_mtype
== NULL
) {
4013 var31
= 1; /* is null */
4015 var31
= 0; /* arg is null but recv is not */
4018 var_mtype
= var_decltype
;
4023 ((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)>*/;
4024 ((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>*/;
4026 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var32
) /* is_typed= on <self:AVardeclExpr>*/;
4029 /* method typing#AVardeclExpr#accept_typing for (self: Object, TypeVisitor) */
4030 void VIRTUAL_typing__AVardeclExpr__accept_typing(val
* self
, val
* p0
) {
4031 typing__AVardeclExpr__accept_typing(self
, p0
);
4034 /* method typing#AVarExpr#its_variable for (self: AVarExpr): nullable Variable */
4035 val
* typing__AVarExpr__its_variable(val
* self
) {
4036 val
* var
/* : nullable Variable */;
4037 val
* var1
/* : nullable Variable */;
4038 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarExpr>*/;
4044 /* method typing#AVarExpr#its_variable for (self: Object): nullable Variable */
4045 val
* VIRTUAL_typing__AVarExpr__its_variable(val
* self
) {
4046 val
* var
/* : nullable Variable */;
4047 val
* var1
/* : nullable Variable */;
4048 var1
= typing__AVarExpr__its_variable(self
);
4053 /* method typing#AVarExpr#accept_typing for (self: AVarExpr, TypeVisitor) */
4054 void typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
4055 val
* var_v
/* var v: TypeVisitor */;
4056 val
* var
/* : nullable Variable */;
4057 val
* var_variable
/* var variable: nullable Variable */;
4058 val
* var1
/* : null */;
4059 short int var2
/* : Bool */;
4060 val
* var3
/* : nullable MType */;
4061 val
* var_mtype
/* var mtype: nullable MType */;
4062 val
* var4
/* : null */;
4063 short int var5
/* : Bool */;
4065 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarExpr>*/;
4068 if (var_variable
== NULL
) {
4069 var2
= 1; /* is null */
4071 var2
= 0; /* arg is null but recv is not */
4077 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>*/;
4080 if (var_mtype
== NULL
) {
4081 var5
= 0; /* is null */
4083 var5
= 1; /* arg is null and recv is not */
4088 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:AVarExpr>*/;
4091 /* method typing#AVarExpr#accept_typing for (self: Object, TypeVisitor) */
4092 void VIRTUAL_typing__AVarExpr__accept_typing(val
* self
, val
* p0
) {
4093 typing__AVarExpr__accept_typing(self
, p0
);
4096 /* method typing#AVarAssignExpr#accept_typing for (self: AVarAssignExpr, TypeVisitor) */
4097 void typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
4098 val
* var_v
/* var v: TypeVisitor */;
4099 val
* var
/* : nullable Variable */;
4100 val
* var_variable
/* var variable: nullable Variable */;
4101 val
* var1
/* : null */;
4102 short int var2
/* : Bool */;
4103 val
* var3
/* : AExpr */;
4104 val
* var4
/* : nullable MType */;
4105 val
* var5
/* : nullable MType */;
4106 val
* var_mtype
/* var mtype: nullable MType */;
4107 short int var6
/* : Bool */;
4109 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarAssignExpr>*/;
4112 if (var_variable
== NULL
) {
4113 var2
= 0; /* is null */
4115 var2
= 1; /* arg is null and recv is not */
4118 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4119 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 627);
4122 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:AVarAssignExpr>*/;
4123 var4
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
4124 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>*/;
4126 ((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>*/;
4128 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var6
) /* is_typed= on <self:AVarAssignExpr>*/;
4131 /* method typing#AVarAssignExpr#accept_typing for (self: Object, TypeVisitor) */
4132 void VIRTUAL_typing__AVarAssignExpr__accept_typing(val
* self
, val
* p0
) {
4133 typing__AVarAssignExpr__accept_typing(self
, p0
);
4136 /* method typing#AReassignFormExpr#reassign_callsite for (self: AReassignFormExpr): nullable CallSite */
4137 val
* typing__AReassignFormExpr__reassign_callsite(val
* self
) {
4138 val
* var
/* : nullable CallSite */;
4139 val
* var1
/* : nullable CallSite */;
4140 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___64dreassign_callsite
].val
; /* @reassign_callsite on <self:AReassignFormExpr> */
4145 /* method typing#AReassignFormExpr#reassign_callsite for (self: Object): nullable CallSite */
4146 val
* VIRTUAL_typing__AReassignFormExpr__reassign_callsite(val
* self
) {
4147 val
* var
/* : nullable CallSite */;
4148 val
* var1
/* : nullable CallSite */;
4149 var1
= typing__AReassignFormExpr__reassign_callsite(self
);
4154 /* method typing#AReassignFormExpr#reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */
4155 void typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
4156 self
->attrs
[COLOR_typing__AReassignFormExpr___64dreassign_callsite
].val
= p0
; /* @reassign_callsite on <self:AReassignFormExpr> */
4159 /* method typing#AReassignFormExpr#reassign_callsite= for (self: Object, nullable CallSite) */
4160 void VIRTUAL_typing__AReassignFormExpr__reassign_callsite_61d(val
* self
, val
* p0
) {
4161 typing__AReassignFormExpr__reassign_callsite_61d(self
, p0
);
4164 /* method typing#AReassignFormExpr#read_type for (self: AReassignFormExpr): nullable MType */
4165 val
* typing__AReassignFormExpr__read_type(val
* self
) {
4166 val
* var
/* : nullable MType */;
4167 val
* var1
/* : nullable MType */;
4168 var1
= self
->attrs
[COLOR_typing__AReassignFormExpr___64dread_type
].val
; /* @read_type on <self:AReassignFormExpr> */
4173 /* method typing#AReassignFormExpr#read_type for (self: Object): nullable MType */
4174 val
* VIRTUAL_typing__AReassignFormExpr__read_type(val
* self
) {
4175 val
* var
/* : nullable MType */;
4176 val
* var1
/* : nullable MType */;
4177 var1
= typing__AReassignFormExpr__read_type(self
);
4182 /* method typing#AReassignFormExpr#read_type= for (self: AReassignFormExpr, nullable MType) */
4183 void typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
4184 self
->attrs
[COLOR_typing__AReassignFormExpr___64dread_type
].val
= p0
; /* @read_type on <self:AReassignFormExpr> */
4187 /* method typing#AReassignFormExpr#read_type= for (self: Object, nullable MType) */
4188 void VIRTUAL_typing__AReassignFormExpr__read_type_61d(val
* self
, val
* p0
) {
4189 typing__AReassignFormExpr__read_type_61d(self
, p0
);
4192 /* method typing#AReassignFormExpr#resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */
4193 val
* typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4194 val
* var
/* : nullable MType */;
4195 val
* var_v
/* var v: TypeVisitor */;
4196 val
* var_readtype
/* var readtype: MType */;
4197 val
* var_writetype
/* var writetype: MType */;
4198 val
* var1
/* : AAssignOp */;
4199 short int var2
/* : Bool */;
4202 static val
* varonce
;
4203 val
* var3
/* : String */;
4204 char* var4
/* : NativeString */;
4205 long var5
/* : Int */;
4206 val
* var6
/* : String */;
4207 val
* var_reassign_name
/* var reassign_name: String */;
4208 val
* var7
/* : AAssignOp */;
4209 short int var8
/* : Bool */;
4212 static val
* varonce11
;
4213 val
* var12
/* : String */;
4214 char* var13
/* : NativeString */;
4215 long var14
/* : Int */;
4216 val
* var15
/* : String */;
4217 short int var16
/* : Bool */;
4220 static val
* varonce19
;
4221 val
* var20
/* : String */;
4222 char* var21
/* : NativeString */;
4223 long var22
/* : Int */;
4224 val
* var23
/* : String */;
4225 static val
* varonce24
;
4226 val
* var25
/* : String */;
4227 char* var26
/* : NativeString */;
4228 long var27
/* : Int */;
4229 val
* var28
/* : String */;
4230 val
* var29
/* : Array[Object] */;
4231 long var30
/* : Int */;
4232 val
* var31
/* : NativeArray[Object] */;
4233 val
* var32
/* : String */;
4234 val
* var33
/* : null */;
4235 short int var34
/* : Bool */;
4236 val
* var35
/* : nullable CallSite */;
4237 val
* var_callsite
/* var callsite: nullable CallSite */;
4238 val
* var36
/* : null */;
4239 short int var37
/* : Bool */;
4240 val
* var38
/* : null */;
4241 val
* var39
/* : MSignature */;
4242 val
* var_msignature
/* var msignature: MSignature */;
4243 val
* var40
/* : nullable MType */;
4244 val
* var_rettype
/* var rettype: nullable MType */;
4245 short int var41
/* : Bool */;
4246 long var42
/* : Int */;
4247 long var43
/* : Int */;
4248 short int var44
/* : Bool */;
4249 short int var46
/* : Bool */;
4250 short int var_
/* var : Bool */;
4251 val
* var47
/* : null */;
4252 short int var48
/* : Bool */;
4253 val
* var49
/* : AExpr */;
4254 val
* var50
/* : Array[MParameter] */;
4255 val
* var51
/* : nullable Object */;
4256 val
* var52
/* : MType */;
4257 val
* var53
/* : nullable MType */;
4258 val
* var_value_type
/* var value_type: nullable MType */;
4259 val
* var54
/* : null */;
4260 short int var55
/* : Bool */;
4261 val
* var56
/* : null */;
4262 val
* var57
/* : nullable MType */;
4266 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_assign_op
]))(self
) /* n_assign_op on <self:AReassignFormExpr>*/;
4267 /* <var1:AAssignOp> isa APlusAssignOp */
4268 cltype
= type_parser_nodes__APlusAssignOp
.color
;
4269 idtype
= type_parser_nodes__APlusAssignOp
.id
;
4270 if(cltype
>= var1
->type
->table_size
) {
4273 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4281 var6
= string__NativeString__to_s_with_length(var4
, var5
);
4285 var_reassign_name
= var3
;
4287 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_assign_op
]))(self
) /* n_assign_op on <self:AReassignFormExpr>*/;
4288 /* <var7:AAssignOp> isa AMinusAssignOp */
4289 cltype9
= type_parser_nodes__AMinusAssignOp
.color
;
4290 idtype10
= type_parser_nodes__AMinusAssignOp
.id
;
4291 if(cltype9
>= var7
->type
->table_size
) {
4294 var8
= var7
->type
->type_table
[cltype9
] == idtype10
;
4302 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4306 var_reassign_name
= var12
;
4308 fprintf(stderr
, "Runtime error: %s", "Aborted");
4309 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 656);
4313 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type_61d
]))(self
, var_readtype
) /* read_type= on <self:AReassignFormExpr>*/;
4314 /* <var_readtype:MType> isa MNullType */
4315 cltype17
= type_model__MNullType
.color
;
4316 idtype18
= type_model__MNullType
.id
;
4317 if(cltype17
>= var_readtype
->type
->table_size
) {
4320 var16
= var_readtype
->type
->type_table
[cltype17
] == idtype18
;
4326 var21
= "Error: Method \'";
4328 var23
= string__NativeString__to_s_with_length(var21
, var22
);
4335 var26
= "\' call on \'null\'.";
4337 var28
= string__NativeString__to_s_with_length(var26
, var27
);
4341 var29
= NEW_array__Array(&type_array__Arraykernel__Object
);
4342 { /* var29 = array_instance Array[Object] */
4344 var31
= NEW_array__NativeArray(var30
, &type_array__NativeArraykernel__Object
);
4345 ((struct instance_array__NativeArray
*)var31
)->values
[0] = (val
*) var20
;
4346 ((struct instance_array__NativeArray
*)var31
)->values
[1] = (val
*) var_reassign_name
;
4347 ((struct instance_array__NativeArray
*)var31
)->values
[2] = (val
*) var25
;
4348 ((void (*)(val
*, val
*, long))(var29
->class->vft
[COLOR_array__Array__with_native
]))(var29
, var31
, var30
) /* with_native on <var29:Array[Object]>*/;
4350 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_string__Object__to_s
]))(var29
) /* to_s on <var29:Array[Object]>*/;
4351 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var32
) /* error on <var_v:TypeVisitor>*/;
4358 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>*/;
4359 var_callsite
= var35
;
4361 if (var_callsite
== NULL
) {
4362 var37
= 1; /* is null */
4364 var37
= 0; /* arg is null but recv is not */
4372 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__reassign_callsite_61d
]))(self
, var_callsite
) /* reassign_callsite= on <self:AReassignFormExpr>*/;
4373 var39
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
4374 var_msignature
= var39
;
4375 var40
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
4376 var_rettype
= var40
;
4377 var42
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
4379 { /* Inline kernel#Int#== (var42,var43) */
4380 var46
= var42
== var43
;
4383 RET_LABEL45
:(void)0;
4388 if (var_rettype
== NULL
) {
4389 var48
= 0; /* is null */
4391 var48
= 1; /* arg is null and recv is not */
4398 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4399 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 672);
4402 var49
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:AReassignFormExpr>*/;
4403 var50
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
4404 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var50
) /* first on <var50:Array[MParameter]>*/;
4405 var52
= ((val
* (*)(val
*))(var51
->class->vft
[COLOR_model__MParameter__mtype
]))(var51
) /* mtype on <var51:nullable Object(MParameter)>*/;
4406 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>*/;
4407 var_value_type
= var53
;
4409 if (var_value_type
== NULL
) {
4410 var55
= 1; /* is null */
4412 var55
= 0; /* arg is null but recv is not */
4420 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>*/;
4427 /* method typing#AReassignFormExpr#resolve_reassignment for (self: Object, TypeVisitor, MType, MType): nullable MType */
4428 val
* VIRTUAL_typing__AReassignFormExpr__resolve_reassignment(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4429 val
* var
/* : nullable MType */;
4430 val
* var1
/* : nullable MType */;
4431 var1
= typing__AReassignFormExpr__resolve_reassignment(self
, p0
, p1
, p2
);
4436 /* method typing#AVarReassignExpr#accept_typing for (self: AVarReassignExpr, TypeVisitor) */
4437 void typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
4438 val
* var_v
/* var v: TypeVisitor */;
4439 val
* var
/* : nullable Variable */;
4440 val
* var_variable
/* var variable: nullable Variable */;
4441 val
* var1
/* : null */;
4442 short int var2
/* : Bool */;
4443 val
* var3
/* : nullable MType */;
4444 val
* var_readtype
/* var readtype: nullable MType */;
4445 val
* var4
/* : null */;
4446 short int var5
/* : Bool */;
4447 val
* var6
/* : nullable MType */;
4448 val
* var_writetype
/* var writetype: nullable MType */;
4449 val
* var7
/* : null */;
4450 short int var8
/* : Bool */;
4451 val
* var9
/* : nullable MType */;
4452 val
* var_rettype
/* var rettype: nullable MType */;
4453 short int var10
/* : Bool */;
4455 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AVarFormExpr__variable
]))(self
) /* variable on <self:AVarReassignExpr>*/;
4458 if (var_variable
== NULL
) {
4459 var2
= 0; /* is null */
4461 var2
= 1; /* arg is null and recv is not */
4464 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4465 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 686);
4468 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>*/;
4469 var_readtype
= var3
;
4471 if (var_readtype
== NULL
) {
4472 var5
= 1; /* is null */
4474 var5
= 0; /* arg is null but recv is not */
4480 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AReassignFormExpr__read_type_61d
]))(self
, var_readtype
) /* read_type= on <self:AVarReassignExpr>*/;
4481 var6
= ((val
* (*)(val
*))(var_variable
->class->vft
[COLOR_typing__Variable__declared_type
]))(var_variable
) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
4482 var_writetype
= var6
;
4484 if (var_writetype
== NULL
) {
4485 var8
= 1; /* is null */
4487 var8
= 0; /* arg is null but recv is not */
4493 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>*/;
4495 ((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>*/;
4497 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var10
) /* is_typed= on <self:AVarReassignExpr>*/;
4500 /* method typing#AVarReassignExpr#accept_typing for (self: Object, TypeVisitor) */
4501 void VIRTUAL_typing__AVarReassignExpr__accept_typing(val
* self
, val
* p0
) {
4502 typing__AVarReassignExpr__accept_typing(self
, p0
);
4505 /* method typing#AContinueExpr#accept_typing for (self: AContinueExpr, TypeVisitor) */
4506 void typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
4507 val
* var_v
/* var v: TypeVisitor */;
4508 val
* var
/* : nullable AExpr */;
4509 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4510 val
* var1
/* : null */;
4511 short int var2
/* : Bool */;
4512 val
* var3
/* : nullable MType */;
4513 val
* var_mtype
/* var mtype: nullable MType */;
4514 short int var4
/* : Bool */;
4516 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AContinueExpr__n_expr
]))(self
) /* n_expr on <self:AContinueExpr>*/;
4519 if (var_nexpr
== NULL
) {
4520 var2
= 0; /* is null */
4522 var2
= 1; /* arg is null and recv is not */
4525 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4530 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AContinueExpr>*/;
4533 /* method typing#AContinueExpr#accept_typing for (self: Object, TypeVisitor) */
4534 void VIRTUAL_typing__AContinueExpr__accept_typing(val
* self
, val
* p0
) {
4535 typing__AContinueExpr__accept_typing(self
, p0
);
4538 /* method typing#ABreakExpr#accept_typing for (self: ABreakExpr, TypeVisitor) */
4539 void typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
4540 val
* var_v
/* var v: TypeVisitor */;
4541 val
* var
/* : nullable AExpr */;
4542 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4543 val
* var1
/* : null */;
4544 short int var2
/* : Bool */;
4545 val
* var3
/* : nullable MType */;
4546 val
* var_mtype
/* var mtype: nullable MType */;
4547 short int var4
/* : Bool */;
4549 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABreakExpr__n_expr
]))(self
) /* n_expr on <self:ABreakExpr>*/;
4552 if (var_nexpr
== NULL
) {
4553 var2
= 0; /* is null */
4555 var2
= 1; /* arg is null and recv is not */
4558 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4563 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:ABreakExpr>*/;
4566 /* method typing#ABreakExpr#accept_typing for (self: Object, TypeVisitor) */
4567 void VIRTUAL_typing__ABreakExpr__accept_typing(val
* self
, val
* p0
) {
4568 typing__ABreakExpr__accept_typing(self
, p0
);
4571 /* method typing#AReturnExpr#accept_typing for (self: AReturnExpr, TypeVisitor) */
4572 void typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
4573 val
* var_v
/* var v: TypeVisitor */;
4574 val
* var
/* : nullable AExpr */;
4575 val
* var_nexpr
/* var nexpr: nullable AExpr */;
4576 val
* var1
/* : MPropDef */;
4577 short int var2
/* : Bool */;
4580 const char* var_class_name
;
4581 val
* var3
/* : nullable MSignature */;
4582 val
* var4
/* : nullable MType */;
4583 val
* var_ret_type
/* var ret_type: nullable MType */;
4584 val
* var5
/* : null */;
4585 short int var6
/* : Bool */;
4586 val
* var7
/* : null */;
4587 short int var8
/* : Bool */;
4588 val
* var9
/* : nullable MType */;
4589 val
* var_mtype
/* var mtype: nullable MType */;
4590 val
* var10
/* : nullable MType */;
4591 val
* var_mtype11
/* var mtype: nullable MType */;
4592 static val
* varonce
;
4593 val
* var12
/* : String */;
4594 char* var13
/* : NativeString */;
4595 long var14
/* : Int */;
4596 val
* var15
/* : String */;
4597 val
* var16
/* : null */;
4598 short int var17
/* : Bool */;
4599 static val
* varonce18
;
4600 val
* var19
/* : String */;
4601 char* var20
/* : NativeString */;
4602 long var21
/* : Int */;
4603 val
* var22
/* : String */;
4604 short int var23
/* : Bool */;
4606 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReturnExpr__n_expr
]))(self
) /* n_expr on <self:AReturnExpr>*/;
4608 var1
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
4609 /* <var1:MPropDef> isa MMethodDef */
4610 cltype
= type_model__MMethodDef
.color
;
4611 idtype
= type_model__MMethodDef
.id
;
4612 if(cltype
>= var1
->type
->table_size
) {
4615 var2
= var1
->type
->type_table
[cltype
] == idtype
;
4618 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
4619 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name
);
4620 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 731);
4623 var3
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var1
) /* msignature on <var1:MPropDef(MMethodDef)>*/;
4625 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
4626 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 731);
4629 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var3
) /* return_mtype on <var3:nullable MSignature>*/;
4631 var_ret_type
= var4
;
4633 if (var_nexpr
== NULL
) {
4634 var6
= 0; /* is null */
4636 var6
= 1; /* arg is null and recv is not */
4640 if (var_ret_type
== NULL
) {
4641 var8
= 0; /* is null */
4643 var8
= 1; /* arg is null and recv is not */
4646 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>*/;
4649 var10
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
4650 var_mtype11
= var10
;
4654 var13
= "Error: Return with value in a procedure.";
4656 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4660 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var12
) /* error on <var_v:TypeVisitor>*/;
4664 if (var_ret_type
== NULL
) {
4665 var17
= 0; /* is null */
4667 var17
= 1; /* arg is null and recv is not */
4673 var20
= "Error: Return without value in a function.";
4675 var22
= string__NativeString__to_s_with_length(var20
, var21
);
4679 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var19
) /* error on <var_v:TypeVisitor>*/;
4684 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var23
) /* is_typed= on <self:AReturnExpr>*/;
4687 /* method typing#AReturnExpr#accept_typing for (self: Object, TypeVisitor) */
4688 void VIRTUAL_typing__AReturnExpr__accept_typing(val
* self
, val
* p0
) {
4689 typing__AReturnExpr__accept_typing(self
, p0
);
4692 /* method typing#AAbortExpr#accept_typing for (self: AAbortExpr, TypeVisitor) */
4693 void typing__AAbortExpr__accept_typing(val
* self
, val
* p0
) {
4694 val
* var_v
/* var v: TypeVisitor */;
4695 short int var
/* : Bool */;
4698 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var
) /* is_typed= on <self:AAbortExpr>*/;
4701 /* method typing#AAbortExpr#accept_typing for (self: Object, TypeVisitor) */
4702 void VIRTUAL_typing__AAbortExpr__accept_typing(val
* self
, val
* p0
) {
4703 typing__AAbortExpr__accept_typing(self
, p0
);
4706 /* method typing#AIfExpr#accept_typing for (self: AIfExpr, TypeVisitor) */
4707 void typing__AIfExpr__accept_typing(val
* self
, val
* p0
) {
4708 val
* var_v
/* var v: TypeVisitor */;
4709 val
* var
/* : AExpr */;
4710 val
* var1
/* : nullable MType */;
4711 val
* var2
/* : nullable AExpr */;
4712 val
* var3
/* : nullable AExpr */;
4713 short int var4
/* : Bool */;
4715 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_expr
]))(self
) /* n_expr on <self:AIfExpr>*/;
4716 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4718 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_then
]))(self
) /* n_then on <self:AIfExpr>*/;
4719 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
4720 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfExpr__n_else
]))(self
) /* n_else on <self:AIfExpr>*/;
4721 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var3
) /* visit_stmt on <var_v:TypeVisitor>*/;
4723 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var4
) /* is_typed= on <self:AIfExpr>*/;
4726 /* method typing#AIfExpr#accept_typing for (self: Object, TypeVisitor) */
4727 void VIRTUAL_typing__AIfExpr__accept_typing(val
* self
, val
* p0
) {
4728 typing__AIfExpr__accept_typing(self
, p0
);
4731 /* method typing#AIfexprExpr#accept_typing for (self: AIfexprExpr, TypeVisitor) */
4732 void typing__AIfexprExpr__accept_typing(val
* self
, val
* p0
) {
4733 val
* var_v
/* var v: TypeVisitor */;
4734 val
* var
/* : AExpr */;
4735 val
* var1
/* : nullable MType */;
4736 val
* var2
/* : AExpr */;
4737 val
* var3
/* : nullable MType */;
4738 val
* var_t1
/* var t1: nullable MType */;
4739 val
* var4
/* : AExpr */;
4740 val
* var5
/* : nullable MType */;
4741 val
* var_t2
/* var t2: nullable MType */;
4742 short int var6
/* : Bool */;
4743 val
* var7
/* : null */;
4744 short int var8
/* : Bool */;
4745 short int var_
/* var : Bool */;
4746 val
* var9
/* : null */;
4747 short int var10
/* : Bool */;
4748 val
* var11
/* : Array[MType] */;
4749 long var12
/* : Int */;
4750 val
* var13
/* : NativeArray[MType] */;
4751 val
* var14
/* : nullable MType */;
4752 val
* var_t
/* var t: nullable MType */;
4753 val
* var15
/* : null */;
4754 short int var16
/* : Bool */;
4755 static val
* varonce
;
4756 val
* var17
/* : String */;
4757 char* var18
/* : NativeString */;
4758 long var19
/* : Int */;
4759 val
* var20
/* : String */;
4760 static val
* varonce21
;
4761 val
* var22
/* : String */;
4762 char* var23
/* : NativeString */;
4763 long var24
/* : Int */;
4764 val
* var25
/* : String */;
4765 val
* var26
/* : Array[Object] */;
4766 long var27
/* : Int */;
4767 val
* var28
/* : NativeArray[Object] */;
4768 val
* var29
/* : String */;
4770 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_expr
]))(self
) /* n_expr on <self:AIfexprExpr>*/;
4771 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4773 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_then
]))(self
) /* n_then on <self:AIfexprExpr>*/;
4774 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var2
) /* visit_expr on <var_v:TypeVisitor>*/;
4776 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIfexprExpr__n_else
]))(self
) /* n_else on <self:AIfexprExpr>*/;
4777 var5
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var4
) /* visit_expr on <var_v:TypeVisitor>*/;
4780 if (var_t1
== NULL
) {
4781 var8
= 1; /* is null */
4783 var8
= 0; /* arg is null but recv is not */
4790 if (var_t2
== NULL
) {
4791 var10
= 1; /* is null */
4793 var10
= 0; /* arg is null but recv is not */
4801 var11
= NEW_array__Array(&type_array__Arraymodel__MType
);
4802 { /* var11 = array_instance Array[MType] */
4804 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraymodel__MType
);
4805 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_t1
;
4806 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_t2
;
4807 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[MType]>*/;
4809 var14
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(var_v
, self
, var11
) /* merge_types on <var_v:TypeVisitor>*/;
4812 if (var_t
== NULL
) {
4813 var16
= 1; /* is null */
4815 var16
= 0; /* arg is null but recv is not */
4821 var18
= "Type Error: ambiguous type ";
4823 var20
= string__NativeString__to_s_with_length(var18
, var19
);
4832 var25
= string__NativeString__to_s_with_length(var23
, var24
);
4836 var26
= NEW_array__Array(&type_array__Arraykernel__Object
);
4837 { /* var26 = array_instance Array[Object] */
4839 var28
= NEW_array__NativeArray(var27
, &type_array__NativeArraykernel__Object
);
4840 ((struct instance_array__NativeArray
*)var28
)->values
[0] = (val
*) var17
;
4841 ((struct instance_array__NativeArray
*)var28
)->values
[1] = (val
*) var_t1
;
4842 ((struct instance_array__NativeArray
*)var28
)->values
[2] = (val
*) var22
;
4843 ((struct instance_array__NativeArray
*)var28
)->values
[3] = (val
*) var_t2
;
4844 ((void (*)(val
*, val
*, long))(var26
->class->vft
[COLOR_array__Array__with_native
]))(var26
, var28
, var27
) /* with_native on <var26:Array[Object]>*/;
4846 var29
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_string__Object__to_s
]))(var26
) /* to_s on <var26:Array[Object]>*/;
4847 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var29
) /* error on <var_v:TypeVisitor>*/;
4850 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_t
) /* mtype= on <self:AIfexprExpr>*/;
4853 /* method typing#AIfexprExpr#accept_typing for (self: Object, TypeVisitor) */
4854 void VIRTUAL_typing__AIfexprExpr__accept_typing(val
* self
, val
* p0
) {
4855 typing__AIfexprExpr__accept_typing(self
, p0
);
4858 /* method typing#ADoExpr#accept_typing for (self: ADoExpr, TypeVisitor) */
4859 void typing__ADoExpr__accept_typing(val
* self
, val
* p0
) {
4860 val
* var_v
/* var v: TypeVisitor */;
4861 val
* var
/* : nullable AExpr */;
4862 short int var1
/* : Bool */;
4864 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ADoExpr__n_block
]))(self
) /* n_block on <self:ADoExpr>*/;
4865 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var
) /* visit_stmt on <var_v:TypeVisitor>*/;
4867 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var1
) /* is_typed= on <self:ADoExpr>*/;
4870 /* method typing#ADoExpr#accept_typing for (self: Object, TypeVisitor) */
4871 void VIRTUAL_typing__ADoExpr__accept_typing(val
* self
, val
* p0
) {
4872 typing__ADoExpr__accept_typing(self
, p0
);
4875 /* method typing#AWhileExpr#accept_typing for (self: AWhileExpr, TypeVisitor) */
4876 void typing__AWhileExpr__accept_typing(val
* self
, val
* p0
) {
4877 val
* var_v
/* var v: TypeVisitor */;
4878 val
* var
/* : AExpr */;
4879 val
* var1
/* : nullable MType */;
4880 val
* var2
/* : nullable AExpr */;
4881 short int var3
/* : Bool */;
4883 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_expr
]))(self
) /* n_expr on <self:AWhileExpr>*/;
4884 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
4886 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AWhileExpr__n_block
]))(self
) /* n_block on <self:AWhileExpr>*/;
4887 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
4889 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AWhileExpr>*/;
4892 /* method typing#AWhileExpr#accept_typing for (self: Object, TypeVisitor) */
4893 void VIRTUAL_typing__AWhileExpr__accept_typing(val
* self
, val
* p0
) {
4894 typing__AWhileExpr__accept_typing(self
, p0
);
4897 /* method typing#ALoopExpr#accept_typing for (self: ALoopExpr, TypeVisitor) */
4898 void typing__ALoopExpr__accept_typing(val
* self
, val
* p0
) {
4899 val
* var_v
/* var v: TypeVisitor */;
4900 val
* var
/* : nullable AExpr */;
4901 short int var1
/* : Bool */;
4903 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ALoopExpr__n_block
]))(self
) /* n_block on <self:ALoopExpr>*/;
4904 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var
) /* visit_stmt on <var_v:TypeVisitor>*/;
4906 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var1
) /* is_typed= on <self:ALoopExpr>*/;
4909 /* method typing#ALoopExpr#accept_typing for (self: Object, TypeVisitor) */
4910 void VIRTUAL_typing__ALoopExpr__accept_typing(val
* self
, val
* p0
) {
4911 typing__ALoopExpr__accept_typing(self
, p0
);
4914 /* method typing#AForExpr#coltype for (self: AForExpr): nullable MClassType */
4915 val
* typing__AForExpr__coltype(val
* self
) {
4916 val
* var
/* : nullable MClassType */;
4917 val
* var1
/* : nullable MClassType */;
4918 var1
= self
->attrs
[COLOR_typing__AForExpr___64dcoltype
].val
; /* @coltype on <self:AForExpr> */
4923 /* method typing#AForExpr#coltype for (self: Object): nullable MClassType */
4924 val
* VIRTUAL_typing__AForExpr__coltype(val
* self
) {
4925 val
* var
/* : nullable MClassType */;
4926 val
* var1
/* : nullable MClassType */;
4927 var1
= typing__AForExpr__coltype(self
);
4932 /* method typing#AForExpr#coltype= for (self: AForExpr, nullable MClassType) */
4933 void typing__AForExpr__coltype_61d(val
* self
, val
* p0
) {
4934 self
->attrs
[COLOR_typing__AForExpr___64dcoltype
].val
= p0
; /* @coltype on <self:AForExpr> */
4937 /* method typing#AForExpr#coltype= for (self: Object, nullable MClassType) */
4938 void VIRTUAL_typing__AForExpr__coltype_61d(val
* self
, val
* p0
) {
4939 typing__AForExpr__coltype_61d(self
, p0
);
4942 /* method typing#AForExpr#method_iterator for (self: AForExpr): nullable MMethod */
4943 val
* typing__AForExpr__method_iterator(val
* self
) {
4944 val
* var
/* : nullable MMethod */;
4945 val
* var1
/* : nullable MMethod */;
4946 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_iterator
].val
; /* @method_iterator on <self:AForExpr> */
4951 /* method typing#AForExpr#method_iterator for (self: Object): nullable MMethod */
4952 val
* VIRTUAL_typing__AForExpr__method_iterator(val
* self
) {
4953 val
* var
/* : nullable MMethod */;
4954 val
* var1
/* : nullable MMethod */;
4955 var1
= typing__AForExpr__method_iterator(self
);
4960 /* method typing#AForExpr#method_iterator= for (self: AForExpr, nullable MMethod) */
4961 void typing__AForExpr__method_iterator_61d(val
* self
, val
* p0
) {
4962 self
->attrs
[COLOR_typing__AForExpr___64dmethod_iterator
].val
= p0
; /* @method_iterator on <self:AForExpr> */
4965 /* method typing#AForExpr#method_iterator= for (self: Object, nullable MMethod) */
4966 void VIRTUAL_typing__AForExpr__method_iterator_61d(val
* self
, val
* p0
) {
4967 typing__AForExpr__method_iterator_61d(self
, p0
);
4970 /* method typing#AForExpr#method_is_ok for (self: AForExpr): nullable MMethod */
4971 val
* typing__AForExpr__method_is_ok(val
* self
) {
4972 val
* var
/* : nullable MMethod */;
4973 val
* var1
/* : nullable MMethod */;
4974 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_is_ok
].val
; /* @method_is_ok on <self:AForExpr> */
4979 /* method typing#AForExpr#method_is_ok for (self: Object): nullable MMethod */
4980 val
* VIRTUAL_typing__AForExpr__method_is_ok(val
* self
) {
4981 val
* var
/* : nullable MMethod */;
4982 val
* var1
/* : nullable MMethod */;
4983 var1
= typing__AForExpr__method_is_ok(self
);
4988 /* method typing#AForExpr#method_is_ok= for (self: AForExpr, nullable MMethod) */
4989 void typing__AForExpr__method_is_ok_61d(val
* self
, val
* p0
) {
4990 self
->attrs
[COLOR_typing__AForExpr___64dmethod_is_ok
].val
= p0
; /* @method_is_ok on <self:AForExpr> */
4993 /* method typing#AForExpr#method_is_ok= for (self: Object, nullable MMethod) */
4994 void VIRTUAL_typing__AForExpr__method_is_ok_61d(val
* self
, val
* p0
) {
4995 typing__AForExpr__method_is_ok_61d(self
, p0
);
4998 /* method typing#AForExpr#method_item for (self: AForExpr): nullable MMethod */
4999 val
* typing__AForExpr__method_item(val
* self
) {
5000 val
* var
/* : nullable MMethod */;
5001 val
* var1
/* : nullable MMethod */;
5002 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_item
].val
; /* @method_item on <self:AForExpr> */
5007 /* method typing#AForExpr#method_item for (self: Object): nullable MMethod */
5008 val
* VIRTUAL_typing__AForExpr__method_item(val
* self
) {
5009 val
* var
/* : nullable MMethod */;
5010 val
* var1
/* : nullable MMethod */;
5011 var1
= typing__AForExpr__method_item(self
);
5016 /* method typing#AForExpr#method_item= for (self: AForExpr, nullable MMethod) */
5017 void typing__AForExpr__method_item_61d(val
* self
, val
* p0
) {
5018 self
->attrs
[COLOR_typing__AForExpr___64dmethod_item
].val
= p0
; /* @method_item on <self:AForExpr> */
5021 /* method typing#AForExpr#method_item= for (self: Object, nullable MMethod) */
5022 void VIRTUAL_typing__AForExpr__method_item_61d(val
* self
, val
* p0
) {
5023 typing__AForExpr__method_item_61d(self
, p0
);
5026 /* method typing#AForExpr#method_next for (self: AForExpr): nullable MMethod */
5027 val
* typing__AForExpr__method_next(val
* self
) {
5028 val
* var
/* : nullable MMethod */;
5029 val
* var1
/* : nullable MMethod */;
5030 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_next
].val
; /* @method_next on <self:AForExpr> */
5035 /* method typing#AForExpr#method_next for (self: Object): nullable MMethod */
5036 val
* VIRTUAL_typing__AForExpr__method_next(val
* self
) {
5037 val
* var
/* : nullable MMethod */;
5038 val
* var1
/* : nullable MMethod */;
5039 var1
= typing__AForExpr__method_next(self
);
5044 /* method typing#AForExpr#method_next= for (self: AForExpr, nullable MMethod) */
5045 void typing__AForExpr__method_next_61d(val
* self
, val
* p0
) {
5046 self
->attrs
[COLOR_typing__AForExpr___64dmethod_next
].val
= p0
; /* @method_next on <self:AForExpr> */
5049 /* method typing#AForExpr#method_next= for (self: Object, nullable MMethod) */
5050 void VIRTUAL_typing__AForExpr__method_next_61d(val
* self
, val
* p0
) {
5051 typing__AForExpr__method_next_61d(self
, p0
);
5054 /* method typing#AForExpr#method_key for (self: AForExpr): nullable MMethod */
5055 val
* typing__AForExpr__method_key(val
* self
) {
5056 val
* var
/* : nullable MMethod */;
5057 val
* var1
/* : nullable MMethod */;
5058 var1
= self
->attrs
[COLOR_typing__AForExpr___64dmethod_key
].val
; /* @method_key on <self:AForExpr> */
5063 /* method typing#AForExpr#method_key for (self: Object): nullable MMethod */
5064 val
* VIRTUAL_typing__AForExpr__method_key(val
* self
) {
5065 val
* var
/* : nullable MMethod */;
5066 val
* var1
/* : nullable MMethod */;
5067 var1
= typing__AForExpr__method_key(self
);
5072 /* method typing#AForExpr#method_key= for (self: AForExpr, nullable MMethod) */
5073 void typing__AForExpr__method_key_61d(val
* self
, val
* p0
) {
5074 self
->attrs
[COLOR_typing__AForExpr___64dmethod_key
].val
= p0
; /* @method_key on <self:AForExpr> */
5077 /* method typing#AForExpr#method_key= for (self: Object, nullable MMethod) */
5078 void VIRTUAL_typing__AForExpr__method_key_61d(val
* self
, val
* p0
) {
5079 typing__AForExpr__method_key_61d(self
, p0
);
5082 /* method typing#AForExpr#do_type_iterator for (self: AForExpr, TypeVisitor, MType) */
5083 void typing__AForExpr__do_type_iterator(val
* self
, val
* p0
, val
* p1
) {
5084 val
* var_v
/* var v: TypeVisitor */;
5085 val
* var_mtype
/* var mtype: MType */;
5086 short int var
/* : Bool */;
5089 static val
* varonce
;
5090 val
* var1
/* : String */;
5091 char* var2
/* : NativeString */;
5092 long var3
/* : Int */;
5093 val
* var4
/* : String */;
5094 static val
* varonce5
;
5095 val
* var6
/* : String */;
5096 char* var7
/* : NativeString */;
5097 long var8
/* : Int */;
5098 val
* var9
/* : String */;
5099 val
* var10
/* : nullable MClass */;
5100 val
* var_objcla
/* var objcla: nullable MClass */;
5101 val
* var11
/* : null */;
5102 short int var12
/* : Bool */;
5103 val
* var13
/* : MType */;
5104 val
* var_unsafe_type
/* var unsafe_type: MType */;
5105 static val
* varonce14
;
5106 val
* var15
/* : String */;
5107 char* var16
/* : NativeString */;
5108 long var17
/* : Int */;
5109 val
* var18
/* : String */;
5110 val
* var19
/* : nullable MProperty */;
5111 val
* var20
/* : null */;
5112 short int var21
/* : Bool */;
5113 static val
* varonce22
;
5114 val
* var23
/* : String */;
5115 char* var24
/* : NativeString */;
5116 long var25
/* : Int */;
5117 val
* var26
/* : String */;
5118 val
* var27
/* : nullable MProperty */;
5119 val
* var28
/* : null */;
5120 short int var29
/* : Bool */;
5121 static val
* varonce30
;
5122 val
* var31
/* : String */;
5123 char* var32
/* : NativeString */;
5124 long var33
/* : Int */;
5125 val
* var34
/* : String */;
5126 static val
* varonce35
;
5127 val
* var36
/* : String */;
5128 char* var37
/* : NativeString */;
5129 long var38
/* : Int */;
5130 val
* var39
/* : String */;
5131 val
* var40
/* : Array[Object] */;
5132 long var41
/* : Int */;
5133 val
* var42
/* : NativeArray[Object] */;
5134 val
* var43
/* : String */;
5135 val
* var44
/* : ModelBuilder */;
5136 static val
* varonce45
;
5137 val
* var46
/* : String */;
5138 char* var47
/* : NativeString */;
5139 long var48
/* : Int */;
5140 val
* var49
/* : String */;
5141 val
* var50
/* : Array[Object] */;
5142 long var51
/* : Int */;
5143 val
* var52
/* : NativeArray[Object] */;
5144 val
* var53
/* : String */;
5145 static val
* varonce54
;
5146 val
* var55
/* : String */;
5147 char* var56
/* : NativeString */;
5148 long var57
/* : Int */;
5149 val
* var58
/* : String */;
5150 short int var59
/* : Bool */;
5151 val
* var60
/* : nullable CallSite */;
5152 val
* var_itdef
/* var itdef: nullable CallSite */;
5153 val
* var61
/* : null */;
5154 short int var62
/* : Bool */;
5155 static val
* varonce63
;
5156 val
* var64
/* : String */;
5157 char* var65
/* : NativeString */;
5158 long var66
/* : Int */;
5159 val
* var67
/* : String */;
5160 static val
* varonce68
;
5161 val
* var69
/* : String */;
5162 char* var70
/* : NativeString */;
5163 long var71
/* : Int */;
5164 val
* var72
/* : String */;
5165 val
* var73
/* : Array[Object] */;
5166 long var74
/* : Int */;
5167 val
* var75
/* : NativeArray[Object] */;
5168 val
* var76
/* : String */;
5169 val
* var77
/* : MMethod */;
5170 val
* var78
/* : MSignature */;
5171 val
* var79
/* : nullable MType */;
5172 val
* var_ittype
/* var ittype: nullable MType */;
5173 val
* var80
/* : null */;
5174 short int var81
/* : Bool */;
5175 static val
* varonce82
;
5176 val
* var83
/* : String */;
5177 char* var84
/* : NativeString */;
5178 long var85
/* : Int */;
5179 val
* var86
/* : String */;
5180 static val
* varonce87
;
5181 val
* var88
/* : String */;
5182 char* var89
/* : NativeString */;
5183 long var90
/* : Int */;
5184 val
* var91
/* : String */;
5185 val
* var92
/* : nullable MClass */;
5186 val
* var_colit_cla
/* var colit_cla: nullable MClass */;
5187 static val
* varonce93
;
5188 val
* var94
/* : String */;
5189 char* var95
/* : NativeString */;
5190 long var96
/* : Int */;
5191 val
* var97
/* : String */;
5192 val
* var98
/* : nullable MClass */;
5193 val
* var_mapit_cla
/* var mapit_cla: nullable MClass */;
5194 short int var99
/* : Bool */;
5195 short int var_is_col
/* var is_col: Bool */;
5196 short int var100
/* : Bool */;
5197 short int var_is_map
/* var is_map: Bool */;
5198 short int var101
/* : Bool */;
5199 val
* var102
/* : null */;
5200 short int var103
/* : Bool */;
5201 short int var_
/* var : Bool */;
5202 val
* var104
/* : MClassType */;
5203 val
* var105
/* : MType */;
5204 val
* var106
/* : Array[MType] */;
5205 long var107
/* : Int */;
5206 val
* var108
/* : NativeArray[MType] */;
5207 val
* var109
/* : MClassType */;
5208 short int var110
/* : Bool */;
5209 val
* var111
/* : MModule */;
5210 val
* var112
/* : MClassType */;
5211 val
* var113
/* : MClassType */;
5212 val
* var_coltype
/* var coltype: MClassType */;
5213 val
* var114
/* : nullable Array[Variable] */;
5214 val
* var_variables
/* var variables: nullable Array[Variable] */;
5215 long var115
/* : Int */;
5216 long var116
/* : Int */;
5217 short int var117
/* : Bool */;
5218 short int var119
/* : Bool */;
5219 short int var120
/* : Bool */;
5220 static val
* varonce121
;
5221 val
* var122
/* : String */;
5222 char* var123
/* : NativeString */;
5223 long var124
/* : Int */;
5224 val
* var125
/* : String */;
5225 val
* var126
/* : nullable Object */;
5226 val
* var127
/* : Array[MType] */;
5227 val
* var128
/* : nullable Object */;
5228 short int var129
/* : Bool */;
5229 short int var130
/* : Bool */;
5230 val
* var131
/* : null */;
5231 short int var132
/* : Bool */;
5232 short int var_133
/* var : Bool */;
5233 val
* var134
/* : MClassType */;
5234 val
* var135
/* : MClassType */;
5235 val
* var136
/* : MType */;
5236 val
* var137
/* : Array[MType] */;
5237 long var138
/* : Int */;
5238 val
* var139
/* : NativeArray[MType] */;
5239 val
* var140
/* : MClassType */;
5240 short int var141
/* : Bool */;
5241 val
* var142
/* : MModule */;
5242 val
* var143
/* : MClassType */;
5243 val
* var144
/* : MClassType */;
5244 val
* var_coltype145
/* var coltype: MClassType */;
5245 val
* var146
/* : nullable Array[Variable] */;
5246 val
* var_variables147
/* var variables: nullable Array[Variable] */;
5247 long var148
/* : Int */;
5248 long var149
/* : Int */;
5249 short int var150
/* : Bool */;
5250 short int var152
/* : Bool */;
5251 short int var153
/* : Bool */;
5252 static val
* varonce154
;
5253 val
* var155
/* : String */;
5254 char* var156
/* : NativeString */;
5255 long var157
/* : Int */;
5256 val
* var158
/* : String */;
5257 long var159
/* : Int */;
5258 val
* var160
/* : nullable Object */;
5259 val
* var161
/* : Array[MType] */;
5260 long var162
/* : Int */;
5261 val
* var163
/* : nullable Object */;
5262 long var164
/* : Int */;
5263 val
* var165
/* : nullable Object */;
5264 val
* var166
/* : Array[MType] */;
5265 long var167
/* : Int */;
5266 val
* var168
/* : nullable Object */;
5267 short int var169
/* : Bool */;
5268 short int var170
/* : Bool */;
5269 short int var171
/* : Bool */;
5270 short int var_172
/* var : Bool */;
5271 short int var173
/* : Bool */;
5272 static val
* varonce174
;
5273 val
* var175
/* : String */;
5274 char* var176
/* : NativeString */;
5275 long var177
/* : Int */;
5276 val
* var178
/* : String */;
5277 short int var179
/* : Bool */;
5278 val
* var180
/* : MType */;
5279 short int var181
/* : Bool */;
5282 val
* var184
/* : MType */;
5283 short int var185
/* : Bool */;
5286 const char* var_class_name
;
5287 static val
* varonce188
;
5288 val
* var189
/* : String */;
5289 char* var190
/* : NativeString */;
5290 long var191
/* : Int */;
5291 val
* var192
/* : String */;
5292 short int var193
/* : Bool */;
5293 val
* var194
/* : nullable CallSite */;
5294 val
* var_ikdef
/* var ikdef: nullable CallSite */;
5295 val
* var195
/* : null */;
5296 short int var196
/* : Bool */;
5297 static val
* varonce197
;
5298 val
* var198
/* : String */;
5299 char* var199
/* : NativeString */;
5300 long var200
/* : Int */;
5301 val
* var201
/* : String */;
5302 static val
* varonce202
;
5303 val
* var203
/* : String */;
5304 char* var204
/* : NativeString */;
5305 long var205
/* : Int */;
5306 val
* var206
/* : String */;
5307 val
* var207
/* : Array[Object] */;
5308 long var208
/* : Int */;
5309 val
* var209
/* : NativeArray[Object] */;
5310 val
* var210
/* : String */;
5311 val
* var211
/* : MMethod */;
5312 static val
* varonce212
;
5313 val
* var213
/* : String */;
5314 char* var214
/* : NativeString */;
5315 long var215
/* : Int */;
5316 val
* var216
/* : String */;
5317 short int var217
/* : Bool */;
5318 val
* var218
/* : nullable CallSite */;
5319 val
* var_itemdef
/* var itemdef: nullable CallSite */;
5320 val
* var219
/* : null */;
5321 short int var220
/* : Bool */;
5322 static val
* varonce221
;
5323 val
* var222
/* : String */;
5324 char* var223
/* : NativeString */;
5325 long var224
/* : Int */;
5326 val
* var225
/* : String */;
5327 static val
* varonce226
;
5328 val
* var227
/* : String */;
5329 char* var228
/* : NativeString */;
5330 long var229
/* : Int */;
5331 val
* var230
/* : String */;
5332 val
* var231
/* : Array[Object] */;
5333 long var232
/* : Int */;
5334 val
* var233
/* : NativeArray[Object] */;
5335 val
* var234
/* : String */;
5336 val
* var235
/* : MMethod */;
5337 static val
* varonce236
;
5338 val
* var237
/* : String */;
5339 char* var238
/* : NativeString */;
5340 long var239
/* : Int */;
5341 val
* var240
/* : String */;
5342 short int var241
/* : Bool */;
5343 val
* var242
/* : nullable CallSite */;
5344 val
* var_nextdef
/* var nextdef: nullable CallSite */;
5345 val
* var243
/* : null */;
5346 short int var244
/* : Bool */;
5347 static val
* varonce245
;
5348 val
* var246
/* : String */;
5349 char* var247
/* : NativeString */;
5350 long var248
/* : Int */;
5351 val
* var249
/* : String */;
5352 static val
* varonce250
;
5353 val
* var251
/* : String */;
5354 char* var252
/* : NativeString */;
5355 long var253
/* : Int */;
5356 val
* var254
/* : String */;
5357 val
* var255
/* : Array[Object] */;
5358 long var256
/* : Int */;
5359 val
* var257
/* : NativeArray[Object] */;
5360 val
* var258
/* : String */;
5361 val
* var259
/* : MMethod */;
5362 static val
* varonce260
;
5363 val
* var261
/* : String */;
5364 char* var262
/* : NativeString */;
5365 long var263
/* : Int */;
5366 val
* var264
/* : String */;
5367 short int var265
/* : Bool */;
5368 val
* var266
/* : nullable CallSite */;
5369 val
* var_keydef
/* var keydef: nullable CallSite */;
5370 val
* var267
/* : null */;
5371 short int var268
/* : Bool */;
5372 static val
* varonce269
;
5373 val
* var270
/* : String */;
5374 char* var271
/* : NativeString */;
5375 long var272
/* : Int */;
5376 val
* var273
/* : String */;
5377 static val
* varonce274
;
5378 val
* var275
/* : String */;
5379 char* var276
/* : NativeString */;
5380 long var277
/* : Int */;
5381 val
* var278
/* : String */;
5382 val
* var279
/* : Array[Object] */;
5383 long var280
/* : Int */;
5384 val
* var281
/* : NativeArray[Object] */;
5385 val
* var282
/* : String */;
5386 val
* var283
/* : MMethod */;
5389 /* <var_mtype:MType> isa MNullType */
5390 cltype
= type_model__MNullType
.color
;
5391 idtype
= type_model__MNullType
.id
;
5392 if(cltype
>= var_mtype
->type
->table_size
) {
5395 var
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5401 var2
= "Type error: \'for\' cannot iterate over \'null\'";
5403 var4
= string__NativeString__to_s_with_length(var2
, var3
);
5407 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var1
) /* error on <var_v:TypeVisitor>*/;
5416 var9
= string__NativeString__to_s_with_length(var7
, var8
);
5420 var10
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var6
) /* get_mclass on <var_v:TypeVisitor>*/;
5423 if (var_objcla
== NULL
) {
5424 var12
= 1; /* is null */
5426 var12
= 0; /* arg is null but recv is not */
5432 var13
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
5433 var_unsafe_type
= var13
;
5439 var18
= string__NativeString__to_s_with_length(var16
, var17
);
5443 var19
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mproperty_by_name2
]))(var_v
, self
, var_unsafe_type
, var15
) /* try_get_mproperty_by_name2 on <var_v:TypeVisitor>*/;
5445 if (var19
== NULL
) {
5446 var21
= 1; /* is null */
5448 var21
= 0; /* arg is null but recv is not */
5456 var26
= string__NativeString__to_s_with_length(var24
, var25
);
5460 var27
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mproperty_by_name2
]))(var_v
, self
, var_unsafe_type
, var23
) /* try_get_mproperty_by_name2 on <var_v:TypeVisitor>*/;
5462 if (var27
== NULL
) {
5463 var29
= 1; /* is null */
5465 var29
= 0; /* arg is null but recv is not */
5471 var32
= "Type Error: \'for\' expects a type providing \'iterator\' method, got \'";
5473 var34
= string__NativeString__to_s_with_length(var32
, var33
);
5482 var39
= string__NativeString__to_s_with_length(var37
, var38
);
5486 var40
= NEW_array__Array(&type_array__Arraykernel__Object
);
5487 { /* var40 = array_instance Array[Object] */
5489 var42
= NEW_array__NativeArray(var41
, &type_array__NativeArraykernel__Object
);
5490 ((struct instance_array__NativeArray
*)var42
)->values
[0] = (val
*) var31
;
5491 ((struct instance_array__NativeArray
*)var42
)->values
[1] = (val
*) var_mtype
;
5492 ((struct instance_array__NativeArray
*)var42
)->values
[2] = (val
*) var36
;
5493 ((void (*)(val
*, val
*, long))(var40
->class->vft
[COLOR_array__Array__with_native
]))(var40
, var42
, var41
) /* with_native on <var40:Array[Object]>*/;
5495 var43
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_string__Object__to_s
]))(var40
) /* to_s on <var40:Array[Object]>*/;
5496 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var43
) /* error on <var_v:TypeVisitor>*/;
5498 var44
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__modelbuilder
]))(var_v
) /* modelbuilder on <var_v:TypeVisitor>*/;
5502 var47
= "NOT YET IMPLEMENTED: Do \'for\' on ";
5504 var49
= string__NativeString__to_s_with_length(var47
, var48
);
5508 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
5509 { /* var50 = array_instance Array[Object] */
5511 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
5512 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var46
;
5513 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var_mtype
;
5514 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
5516 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
5517 ((void (*)(val
*, val
*, val
*))(var44
->class->vft
[COLOR_modelbuilder__ModelBuilder__error
]))(var44
, self
, var53
) /* error on <var44:ModelBuilder>*/;
5527 var58
= string__NativeString__to_s_with_length(var56
, var57
);
5532 var60
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_mtype
, var55
, var59
) /* get_method on <var_v:TypeVisitor>*/;
5535 if (var_itdef
== NULL
) {
5536 var62
= 1; /* is null */
5538 var62
= 0; /* arg is null but recv is not */
5544 var65
= "Type Error: \'for\' expects a type providing \'iterator\' method, got \'";
5546 var67
= string__NativeString__to_s_with_length(var65
, var66
);
5555 var72
= string__NativeString__to_s_with_length(var70
, var71
);
5559 var73
= NEW_array__Array(&type_array__Arraykernel__Object
);
5560 { /* var73 = array_instance Array[Object] */
5562 var75
= NEW_array__NativeArray(var74
, &type_array__NativeArraykernel__Object
);
5563 ((struct instance_array__NativeArray
*)var75
)->values
[0] = (val
*) var64
;
5564 ((struct instance_array__NativeArray
*)var75
)->values
[1] = (val
*) var_mtype
;
5565 ((struct instance_array__NativeArray
*)var75
)->values
[2] = (val
*) var69
;
5566 ((void (*)(val
*, val
*, long))(var73
->class->vft
[COLOR_array__Array__with_native
]))(var73
, var75
, var74
) /* with_native on <var73:Array[Object]>*/;
5568 var76
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_string__Object__to_s
]))(var73
) /* to_s on <var73:Array[Object]>*/;
5569 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var76
) /* error on <var_v:TypeVisitor>*/;
5573 var77
= ((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
, var77
) /* method_iterator= on <self:AForExpr>*/;
5575 var78
= ((val
* (*)(val
*))(var_itdef
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_itdef
) /* msignature on <var_itdef:nullable CallSite(CallSite)>*/;
5576 var79
= ((val
* (*)(val
*))(var78
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var78
) /* return_mtype on <var78:MSignature>*/;
5579 if (var_ittype
== NULL
) {
5580 var81
= 1; /* is null */
5582 var81
= 0; /* arg is null but recv is not */
5588 var84
= "Type Error: \'for\' expects method \'iterator\' to return an \'Iterator\' or \'MapIterator\' type\'.";
5590 var86
= string__NativeString__to_s_with_length(var84
, var85
);
5594 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var83
) /* error on <var_v:TypeVisitor>*/;
5603 var91
= string__NativeString__to_s_with_length(var89
, var90
);
5607 var92
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mclass
]))(var_v
, self
, var88
) /* try_get_mclass on <var_v:TypeVisitor>*/;
5608 var_colit_cla
= var92
;
5612 var95
= "MapIterator";
5614 var97
= string__NativeString__to_s_with_length(var95
, var96
);
5618 var98
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__try_get_mclass
]))(var_v
, self
, var94
) /* try_get_mclass on <var_v:TypeVisitor>*/;
5619 var_mapit_cla
= var98
;
5623 var_is_map
= var100
;
5625 if (var_colit_cla
== NULL
) {
5626 var103
= 0; /* is null */
5628 var103
= 1; /* arg is null and recv is not */
5632 var104
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5633 var105
= ((val
* (*)(val
*))(var104
->class->vft
[COLOR_model__MType__as_nullable
]))(var104
) /* as_nullable on <var104:MClassType>*/;
5634 var106
= NEW_array__Array(&type_array__Arraymodel__MType
);
5635 { /* var106 = array_instance Array[MType] */
5637 var108
= NEW_array__NativeArray(var107
, &type_array__NativeArraymodel__MType
);
5638 ((struct instance_array__NativeArray
*)var108
)->values
[0] = (val
*) var105
;
5639 ((void (*)(val
*, val
*, long))(var106
->class->vft
[COLOR_array__Array__with_native
]))(var106
, var108
, var107
) /* with_native on <var106:Array[MType]>*/;
5641 var109
= ((val
* (*)(val
*, val
*))(var_colit_cla
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_colit_cla
, var106
) /* get_mtype on <var_colit_cla:nullable MClass(MClass)>*/;
5642 var110
= ((short int (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(var_v
, var_ittype
, var109
) /* is_subtype on <var_v:TypeVisitor>*/;
5648 var111
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
5649 var112
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor
]))(var_v
) /* anchor on <var_v:TypeVisitor>*/;
5650 var113
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_ittype
->class->vft
[COLOR_model__MType__supertype_to
]))(var_ittype
, var111
, var112
, var_colit_cla
) /* supertype_to on <var_ittype:nullable MType(MType)>*/;
5651 var_coltype
= var113
;
5652 var114
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
5653 var_variables
= var114
;
5654 if (var_variables
== NULL
) {
5655 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5656 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 865);
5659 var115
= ((long (*)(val
*))(var_variables
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_variables
) /* length on <var_variables:nullable Array[Variable]>*/;
5662 { /* Inline kernel#Int#!= (var115,var116) */
5663 var119
= var115
== var116
;
5667 RET_LABEL118
:(void)0;
5671 var122
= varonce121
;
5673 var123
= "Type Error: \'for\' expects only one variable when using \'Iterator\'.";
5675 var125
= string__NativeString__to_s_with_length(var123
, var124
);
5677 varonce121
= var122
;
5679 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var122
) /* error on <var_v:TypeVisitor>*/;
5681 if (var_variables
== NULL
) {
5682 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5683 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 868);
5686 var126
= ((val
* (*)(val
*))(var_variables
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_variables
) /* first on <var_variables:nullable Array[Variable]>*/;
5688 var127
= ((val
* (*)(val
*))(var_coltype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype
) /* arguments on <var_coltype:MClassType>*/;
5689 var128
= ((val
* (*)(val
*))(var127
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var127
) /* first on <var127:Array[MType]>*/;
5690 ((void (*)(val
*, val
*))(var126
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var126
, var128
) /* declared_type= on <var126:nullable Object(Variable)>*/;
5693 var_is_col
= var129
;
5697 if (var_mapit_cla
== NULL
) {
5698 var132
= 0; /* is null */
5700 var132
= 1; /* arg is null and recv is not */
5704 var134
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5705 var135
= ((val
* (*)(val
*))(var_objcla
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_objcla
) /* mclass_type on <var_objcla:nullable MClass(MClass)>*/;
5706 var136
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_model__MType__as_nullable
]))(var135
) /* as_nullable on <var135:MClassType>*/;
5707 var137
= NEW_array__Array(&type_array__Arraymodel__MType
);
5708 { /* var137 = array_instance Array[MType] */
5710 var139
= NEW_array__NativeArray(var138
, &type_array__NativeArraymodel__MType
);
5711 ((struct instance_array__NativeArray
*)var139
)->values
[0] = (val
*) var134
;
5712 ((struct instance_array__NativeArray
*)var139
)->values
[1] = (val
*) var136
;
5713 ((void (*)(val
*, val
*, long))(var137
->class->vft
[COLOR_array__Array__with_native
]))(var137
, var139
, var138
) /* with_native on <var137:Array[MType]>*/;
5715 var140
= ((val
* (*)(val
*, val
*))(var_mapit_cla
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mapit_cla
, var137
) /* get_mtype on <var_mapit_cla:nullable MClass(MClass)>*/;
5716 var141
= ((short int (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__is_subtype
]))(var_v
, var_ittype
, var140
) /* is_subtype on <var_v:TypeVisitor>*/;
5722 var142
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
5723 var143
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor
]))(var_v
) /* anchor on <var_v:TypeVisitor>*/;
5724 var144
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_ittype
->class->vft
[COLOR_model__MType__supertype_to
]))(var_ittype
, var142
, var143
, var_mapit_cla
) /* supertype_to on <var_ittype:nullable MType(MType)>*/;
5725 var_coltype145
= var144
;
5726 var146
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_scope__AForExpr__variables
]))(self
) /* variables on <self:AForExpr>*/;
5727 var_variables147
= var146
;
5728 if (var_variables147
== NULL
) {
5729 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5730 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 877);
5733 var148
= ((long (*)(val
*))(var_variables147
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_variables147
) /* length on <var_variables147:nullable Array[Variable]>*/;
5736 { /* Inline kernel#Int#!= (var148,var149) */
5737 var152
= var148
== var149
;
5741 RET_LABEL151
:(void)0;
5745 var155
= varonce154
;
5747 var156
= "Type Error: \'for\' expects two variables when using \'MapIterator\'.";
5749 var158
= string__NativeString__to_s_with_length(var156
, var157
);
5751 varonce154
= var155
;
5753 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var155
) /* error on <var_v:TypeVisitor>*/;
5756 if (var_variables147
== NULL
) {
5757 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5758 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 880);
5761 var160
= ((val
* (*)(val
*, long))(var_variables147
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_variables147
, var159
) /* [] on <var_variables147:nullable Array[Variable]>*/;
5763 var161
= ((val
* (*)(val
*))(var_coltype145
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype145
) /* arguments on <var_coltype145:MClassType>*/;
5765 var163
= ((val
* (*)(val
*, long))(var161
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var161
, var162
) /* [] on <var161:Array[MType]>*/;
5766 ((void (*)(val
*, val
*))(var160
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var160
, var163
) /* declared_type= on <var160:nullable Object(Variable)>*/;
5768 if (var_variables147
== NULL
) {
5769 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
5770 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 881);
5773 var165
= ((val
* (*)(val
*, long))(var_variables147
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_variables147
, var164
) /* [] on <var_variables147:nullable Array[Variable]>*/;
5775 var166
= ((val
* (*)(val
*))(var_coltype145
->class->vft
[COLOR_model__MClassType__arguments
]))(var_coltype145
) /* arguments on <var_coltype145:MClassType>*/;
5777 var168
= ((val
* (*)(val
*, long))(var166
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var166
, var167
) /* [] on <var166:Array[MType]>*/;
5778 ((void (*)(val
*, val
*))(var165
->class->vft
[COLOR_typing__Variable__declared_type_61d
]))(var165
, var168
) /* declared_type= on <var165:nullable Object(Variable)>*/;
5781 var_is_map
= var169
;
5784 var171
= !var_is_col
;
5787 var173
= !var_is_map
;
5794 var175
= varonce174
;
5796 var176
= "Type Error: \'for\' expects method \'iterator\' to return an \'Iterator\' or \'MapIterator\' type\'.";
5798 var178
= string__NativeString__to_s_with_length(var176
, var177
);
5800 varonce174
= var175
;
5802 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var175
) /* error on <var_v:TypeVisitor>*/;
5806 var179
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5808 var180
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__anchor_to
]))(var_v
, var_mtype
) /* anchor_to on <var_v:TypeVisitor>*/;
5812 /* <var_mtype:MType> isa MNullableType */
5813 cltype182
= type_model__MNullableType
.color
;
5814 idtype183
= type_model__MNullableType
.id
;
5815 if(cltype182
>= var_mtype
->type
->table_size
) {
5818 var181
= var_mtype
->type
->type_table
[cltype182
] == idtype183
;
5821 var184
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
5825 /* <var_mtype:MType> isa MClassType */
5826 cltype186
= type_model__MClassType
.color
;
5827 idtype187
= type_model__MClassType
.id
;
5828 if(cltype186
>= var_mtype
->type
->table_size
) {
5831 var185
= var_mtype
->type
->type_table
[cltype186
] == idtype187
;
5834 var_class_name
= var_mtype
== NULL ?
"null" : var_mtype
->type
->name
;
5835 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5836 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 895);
5839 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__coltype_61d
]))(self
, var_mtype
) /* coltype= on <self:AForExpr>*/;
5841 var189
= varonce188
;
5845 var192
= string__NativeString__to_s_with_length(var190
, var191
);
5847 varonce188
= var189
;
5850 var194
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_ittype
, var189
, var193
) /* get_method on <var_v:TypeVisitor>*/;
5853 if (var_ikdef
== NULL
) {
5854 var196
= 1; /* is null */
5856 var196
= 0; /* arg is null but recv is not */
5860 var198
= varonce197
;
5862 var199
= "Type Error: \'for\' expects a method \'is_ok\' in \'Iterator\' type ";
5864 var201
= string__NativeString__to_s_with_length(var199
, var200
);
5866 varonce197
= var198
;
5869 var203
= varonce202
;
5873 var206
= string__NativeString__to_s_with_length(var204
, var205
);
5875 varonce202
= var203
;
5877 var207
= NEW_array__Array(&type_array__Arraykernel__Object
);
5878 { /* var207 = array_instance Array[Object] */
5880 var209
= NEW_array__NativeArray(var208
, &type_array__NativeArraykernel__Object
);
5881 ((struct instance_array__NativeArray
*)var209
)->values
[0] = (val
*) var198
;
5882 ((struct instance_array__NativeArray
*)var209
)->values
[1] = (val
*) var_ittype
;
5883 ((struct instance_array__NativeArray
*)var209
)->values
[2] = (val
*) var203
;
5884 ((void (*)(val
*, val
*, long))(var207
->class->vft
[COLOR_array__Array__with_native
]))(var207
, var209
, var208
) /* with_native on <var207:Array[Object]>*/;
5886 var210
= ((val
* (*)(val
*))(var207
->class->vft
[COLOR_string__Object__to_s
]))(var207
) /* to_s on <var207:Array[Object]>*/;
5887 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var210
) /* error on <var_v:TypeVisitor>*/;
5891 var211
= ((val
* (*)(val
*))(var_ikdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_ikdef
) /* mproperty on <var_ikdef:nullable CallSite(CallSite)>*/;
5892 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_is_ok_61d
]))(self
, var211
) /* method_is_ok= on <self:AForExpr>*/;
5894 var213
= varonce212
;
5898 var216
= string__NativeString__to_s_with_length(var214
, var215
);
5900 varonce212
= var213
;
5903 var218
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_ittype
, var213
, var217
) /* get_method on <var_v:TypeVisitor>*/;
5904 var_itemdef
= var218
;
5906 if (var_itemdef
== NULL
) {
5907 var220
= 1; /* is null */
5909 var220
= 0; /* arg is null but recv is not */
5913 var222
= varonce221
;
5915 var223
= "Type Error: \'for\' expects a method \'item\' in \'Iterator\' type ";
5917 var225
= string__NativeString__to_s_with_length(var223
, var224
);
5919 varonce221
= var222
;
5922 var227
= varonce226
;
5926 var230
= string__NativeString__to_s_with_length(var228
, var229
);
5928 varonce226
= var227
;
5930 var231
= NEW_array__Array(&type_array__Arraykernel__Object
);
5931 { /* var231 = array_instance Array[Object] */
5933 var233
= NEW_array__NativeArray(var232
, &type_array__NativeArraykernel__Object
);
5934 ((struct instance_array__NativeArray
*)var233
)->values
[0] = (val
*) var222
;
5935 ((struct instance_array__NativeArray
*)var233
)->values
[1] = (val
*) var_ittype
;
5936 ((struct instance_array__NativeArray
*)var233
)->values
[2] = (val
*) var227
;
5937 ((void (*)(val
*, val
*, long))(var231
->class->vft
[COLOR_array__Array__with_native
]))(var231
, var233
, var232
) /* with_native on <var231:Array[Object]>*/;
5939 var234
= ((val
* (*)(val
*))(var231
->class->vft
[COLOR_string__Object__to_s
]))(var231
) /* to_s on <var231:Array[Object]>*/;
5940 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var234
) /* error on <var_v:TypeVisitor>*/;
5944 var235
= ((val
* (*)(val
*))(var_itemdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_itemdef
) /* mproperty on <var_itemdef:nullable CallSite(CallSite)>*/;
5945 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_item_61d
]))(self
, var235
) /* method_item= on <self:AForExpr>*/;
5947 var237
= varonce236
;
5951 var240
= string__NativeString__to_s_with_length(var238
, var239
);
5953 varonce236
= var237
;
5956 var242
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_ittype
, var237
, var241
) /* get_method on <var_v:TypeVisitor>*/;
5957 var_nextdef
= var242
;
5959 if (var_nextdef
== NULL
) {
5960 var244
= 1; /* is null */
5962 var244
= 0; /* arg is null but recv is not */
5966 var246
= varonce245
;
5968 var247
= "Type Error: \'for\' expects a method \'next\' in \'Iterator\' type ";
5970 var249
= string__NativeString__to_s_with_length(var247
, var248
);
5972 varonce245
= var246
;
5975 var251
= varonce250
;
5979 var254
= string__NativeString__to_s_with_length(var252
, var253
);
5981 varonce250
= var251
;
5983 var255
= NEW_array__Array(&type_array__Arraykernel__Object
);
5984 { /* var255 = array_instance Array[Object] */
5986 var257
= NEW_array__NativeArray(var256
, &type_array__NativeArraykernel__Object
);
5987 ((struct instance_array__NativeArray
*)var257
)->values
[0] = (val
*) var246
;
5988 ((struct instance_array__NativeArray
*)var257
)->values
[1] = (val
*) var_ittype
;
5989 ((struct instance_array__NativeArray
*)var257
)->values
[2] = (val
*) var251
;
5990 ((void (*)(val
*, val
*, long))(var255
->class->vft
[COLOR_array__Array__with_native
]))(var255
, var257
, var256
) /* with_native on <var255:Array[Object]>*/;
5992 var258
= ((val
* (*)(val
*))(var255
->class->vft
[COLOR_string__Object__to_s
]))(var255
) /* to_s on <var255:Array[Object]>*/;
5993 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var258
) /* error on <var_v:TypeVisitor>*/;
5997 var259
= ((val
* (*)(val
*))(var_nextdef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_nextdef
) /* mproperty on <var_nextdef:nullable CallSite(CallSite)>*/;
5998 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_next_61d
]))(self
, var259
) /* method_next= on <self:AForExpr>*/;
6001 var261
= varonce260
;
6005 var264
= string__NativeString__to_s_with_length(var262
, var263
);
6007 varonce260
= var261
;
6010 var266
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_method
]))(var_v
, self
, var_ittype
, var261
, var265
) /* get_method on <var_v:TypeVisitor>*/;
6011 var_keydef
= var266
;
6013 if (var_keydef
== NULL
) {
6014 var268
= 1; /* is null */
6016 var268
= 0; /* arg is null but recv is not */
6020 var270
= varonce269
;
6022 var271
= "Type Error: \'for\' expects a method \'key\' in \'Iterator\' type ";
6024 var273
= string__NativeString__to_s_with_length(var271
, var272
);
6026 varonce269
= var270
;
6029 var275
= varonce274
;
6033 var278
= string__NativeString__to_s_with_length(var276
, var277
);
6035 varonce274
= var275
;
6037 var279
= NEW_array__Array(&type_array__Arraykernel__Object
);
6038 { /* var279 = array_instance Array[Object] */
6040 var281
= NEW_array__NativeArray(var280
, &type_array__NativeArraykernel__Object
);
6041 ((struct instance_array__NativeArray
*)var281
)->values
[0] = (val
*) var270
;
6042 ((struct instance_array__NativeArray
*)var281
)->values
[1] = (val
*) var_ittype
;
6043 ((struct instance_array__NativeArray
*)var281
)->values
[2] = (val
*) var275
;
6044 ((void (*)(val
*, val
*, long))(var279
->class->vft
[COLOR_array__Array__with_native
]))(var279
, var281
, var280
) /* with_native on <var279:Array[Object]>*/;
6046 var282
= ((val
* (*)(val
*))(var279
->class->vft
[COLOR_string__Object__to_s
]))(var279
) /* to_s on <var279:Array[Object]>*/;
6047 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var282
) /* error on <var_v:TypeVisitor>*/;
6051 var283
= ((val
* (*)(val
*))(var_keydef
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_keydef
) /* mproperty on <var_keydef:nullable CallSite(CallSite)>*/;
6052 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__method_key_61d
]))(self
, var283
) /* method_key= on <self:AForExpr>*/;
6057 /* method typing#AForExpr#do_type_iterator for (self: Object, TypeVisitor, MType) */
6058 void VIRTUAL_typing__AForExpr__do_type_iterator(val
* self
, val
* p0
, val
* p1
) {
6059 typing__AForExpr__do_type_iterator(self
, p0
, p1
);
6062 /* method typing#AForExpr#accept_typing for (self: AForExpr, TypeVisitor) */
6063 void typing__AForExpr__accept_typing(val
* self
, val
* p0
) {
6064 val
* var_v
/* var v: TypeVisitor */;
6065 val
* var
/* : AExpr */;
6066 val
* var1
/* : nullable MType */;
6067 val
* var_mtype
/* var mtype: nullable MType */;
6068 val
* var2
/* : null */;
6069 short int var3
/* : Bool */;
6070 val
* var4
/* : nullable AExpr */;
6071 short int var5
/* : Bool */;
6073 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_expr
]))(self
) /* n_expr on <self:AForExpr>*/;
6074 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
6077 if (var_mtype
== NULL
) {
6078 var3
= 1; /* is null */
6080 var3
= 0; /* arg is null but recv is not */
6086 ((void (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_typing__AForExpr__do_type_iterator
]))(self
, var_v
, var_mtype
) /* do_type_iterator on <self:AForExpr>*/;
6087 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AForExpr__n_block
]))(self
) /* n_block on <self:AForExpr>*/;
6088 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var4
) /* visit_stmt on <var_v:TypeVisitor>*/;
6090 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var5
) /* is_typed= on <self:AForExpr>*/;
6093 /* method typing#AForExpr#accept_typing for (self: Object, TypeVisitor) */
6094 void VIRTUAL_typing__AForExpr__accept_typing(val
* self
, val
* p0
) {
6095 typing__AForExpr__accept_typing(self
, p0
);
6098 /* method typing#AAssertExpr#accept_typing for (self: AAssertExpr, TypeVisitor) */
6099 void typing__AAssertExpr__accept_typing(val
* self
, val
* p0
) {
6100 val
* var_v
/* var v: TypeVisitor */;
6101 val
* var
/* : AExpr */;
6102 val
* var1
/* : nullable MType */;
6103 val
* var2
/* : nullable AExpr */;
6104 short int var3
/* : Bool */;
6106 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_expr
]))(self
) /* n_expr on <self:AAssertExpr>*/;
6107 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6109 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssertExpr__n_else
]))(self
) /* n_else on <self:AAssertExpr>*/;
6110 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_stmt
]))(var_v
, var2
) /* visit_stmt on <var_v:TypeVisitor>*/;
6112 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var3
) /* is_typed= on <self:AAssertExpr>*/;
6115 /* method typing#AAssertExpr#accept_typing for (self: Object, TypeVisitor) */
6116 void VIRTUAL_typing__AAssertExpr__accept_typing(val
* self
, val
* p0
) {
6117 typing__AAssertExpr__accept_typing(self
, p0
);
6120 /* method typing#AOrExpr#accept_typing for (self: AOrExpr, TypeVisitor) */
6121 void typing__AOrExpr__accept_typing(val
* self
, val
* p0
) {
6122 val
* var_v
/* var v: TypeVisitor */;
6123 val
* var
/* : AExpr */;
6124 val
* var1
/* : nullable MType */;
6125 val
* var2
/* : AExpr */;
6126 val
* var3
/* : nullable MType */;
6127 val
* var4
/* : nullable MType */;
6129 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr
]))(self
) /* n_expr on <self:AOrExpr>*/;
6130 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6132 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrExpr>*/;
6133 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6135 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6136 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AOrExpr>*/;
6139 /* method typing#AOrExpr#accept_typing for (self: Object, TypeVisitor) */
6140 void VIRTUAL_typing__AOrExpr__accept_typing(val
* self
, val
* p0
) {
6141 typing__AOrExpr__accept_typing(self
, p0
);
6144 /* method typing#AImpliesExpr#accept_typing for (self: AImpliesExpr, TypeVisitor) */
6145 void typing__AImpliesExpr__accept_typing(val
* self
, val
* p0
) {
6146 val
* var_v
/* var v: TypeVisitor */;
6147 val
* var
/* : AExpr */;
6148 val
* var1
/* : nullable MType */;
6149 val
* var2
/* : AExpr */;
6150 val
* var3
/* : nullable MType */;
6151 val
* var4
/* : nullable MType */;
6153 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr
]))(self
) /* n_expr on <self:AImpliesExpr>*/;
6154 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6156 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AImpliesExpr__n_expr2
]))(self
) /* n_expr2 on <self:AImpliesExpr>*/;
6157 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6159 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6160 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AImpliesExpr>*/;
6163 /* method typing#AImpliesExpr#accept_typing for (self: Object, TypeVisitor) */
6164 void VIRTUAL_typing__AImpliesExpr__accept_typing(val
* self
, val
* p0
) {
6165 typing__AImpliesExpr__accept_typing(self
, p0
);
6168 /* method typing#AAndExpr#accept_typing for (self: AAndExpr, TypeVisitor) */
6169 void typing__AAndExpr__accept_typing(val
* self
, val
* p0
) {
6170 val
* var_v
/* var v: TypeVisitor */;
6171 val
* var
/* : AExpr */;
6172 val
* var1
/* : nullable MType */;
6173 val
* var2
/* : AExpr */;
6174 val
* var3
/* : nullable MType */;
6175 val
* var4
/* : nullable MType */;
6177 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr
]))(self
) /* n_expr on <self:AAndExpr>*/;
6178 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6180 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAndExpr__n_expr2
]))(self
) /* n_expr2 on <self:AAndExpr>*/;
6181 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var2
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6183 var4
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6184 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var4
) /* mtype= on <self:AAndExpr>*/;
6187 /* method typing#AAndExpr#accept_typing for (self: Object, TypeVisitor) */
6188 void VIRTUAL_typing__AAndExpr__accept_typing(val
* self
, val
* p0
) {
6189 typing__AAndExpr__accept_typing(self
, p0
);
6192 /* method typing#ANotExpr#accept_typing for (self: ANotExpr, TypeVisitor) */
6193 void typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
6194 val
* var_v
/* var v: TypeVisitor */;
6195 val
* var
/* : AExpr */;
6196 val
* var1
/* : nullable MType */;
6197 val
* var2
/* : nullable MType */;
6199 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ANotExpr__n_expr
]))(self
) /* n_expr on <self:ANotExpr>*/;
6200 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr_bool
]))(var_v
, var
) /* visit_expr_bool on <var_v:TypeVisitor>*/;
6202 var2
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6203 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:ANotExpr>*/;
6206 /* method typing#ANotExpr#accept_typing for (self: Object, TypeVisitor) */
6207 void VIRTUAL_typing__ANotExpr__accept_typing(val
* self
, val
* p0
) {
6208 typing__ANotExpr__accept_typing(self
, p0
);
6211 /* method typing#AOrElseExpr#accept_typing for (self: AOrElseExpr, TypeVisitor) */
6212 void typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
6213 val
* var_v
/* var v: TypeVisitor */;
6214 val
* var
/* : AExpr */;
6215 val
* var1
/* : nullable MType */;
6216 val
* var_t1
/* var t1: nullable MType */;
6217 val
* var2
/* : AExpr */;
6218 val
* var3
/* : nullable MType */;
6219 val
* var_t2
/* var t2: nullable MType */;
6220 short int var4
/* : Bool */;
6221 val
* var5
/* : null */;
6222 short int var6
/* : Bool */;
6223 short int var_
/* var : Bool */;
6224 val
* var7
/* : null */;
6225 short int var8
/* : Bool */;
6226 short int var9
/* : Bool */;
6229 val
* var10
/* : MType */;
6230 val
* var11
/* : Array[MType] */;
6231 long var12
/* : Int */;
6232 val
* var13
/* : NativeArray[MType] */;
6233 val
* var14
/* : nullable MType */;
6234 val
* var_t
/* var t: nullable MType */;
6235 val
* var15
/* : null */;
6236 short int var16
/* : Bool */;
6237 val
* var17
/* : MModule */;
6238 val
* var18
/* : MClassType */;
6239 short int var19
/* : Bool */;
6242 val
* var22
/* : MType */;
6244 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrElseExpr__n_expr
]))(self
) /* n_expr on <self:AOrElseExpr>*/;
6245 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
6247 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AOrElseExpr__n_expr2
]))(self
) /* n_expr2 on <self:AOrElseExpr>*/;
6248 var3
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var2
) /* visit_expr on <var_v:TypeVisitor>*/;
6251 if (var_t1
== NULL
) {
6252 var6
= 1; /* is null */
6254 var6
= 0; /* arg is null but recv is not */
6261 if (var_t2
== NULL
) {
6262 var8
= 1; /* is null */
6264 var8
= 0; /* arg is null but recv is not */
6272 /* <var_t1:nullable MType(MType)> isa MNullableType */
6273 cltype
= type_model__MNullableType
.color
;
6274 idtype
= type_model__MNullableType
.id
;
6275 if(cltype
>= var_t1
->type
->table_size
) {
6278 var9
= var_t1
->type
->type_table
[cltype
] == idtype
;
6281 var10
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_t1
) /* mtype on <var_t1:nullable MType(MNullableType)>*/;
6285 var11
= NEW_array__Array(&type_array__Arraymodel__MType
);
6286 { /* var11 = array_instance Array[MType] */
6288 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraymodel__MType
);
6289 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var_t1
;
6290 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var_t2
;
6291 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[MType]>*/;
6293 var14
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__merge_types
]))(var_v
, self
, var11
) /* merge_types on <var_v:TypeVisitor>*/;
6296 if (var_t
== NULL
) {
6297 var16
= 1; /* is null */
6299 var16
= 0; /* arg is null but recv is not */
6302 var17
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
6303 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MModule__object_type
]))(var17
) /* object_type on <var17:MModule>*/;
6305 /* <var_t2:nullable MType(MType)> isa MNullableType */
6306 cltype20
= type_model__MNullableType
.color
;
6307 idtype21
= type_model__MNullableType
.id
;
6308 if(cltype20
>= var_t2
->type
->table_size
) {
6311 var19
= var_t2
->type
->type_table
[cltype20
] == idtype21
;
6314 var22
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__as_nullable
]))(var_t
) /* as_nullable on <var_t:nullable MType(MClassType)>*/;
6320 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_t
) /* mtype= on <self:AOrElseExpr>*/;
6323 /* method typing#AOrElseExpr#accept_typing for (self: Object, TypeVisitor) */
6324 void VIRTUAL_typing__AOrElseExpr__accept_typing(val
* self
, val
* p0
) {
6325 typing__AOrElseExpr__accept_typing(self
, p0
);
6328 /* method typing#ATrueExpr#accept_typing for (self: ATrueExpr, TypeVisitor) */
6329 void typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
6330 val
* var_v
/* var v: TypeVisitor */;
6331 val
* var
/* : nullable MType */;
6333 var
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6334 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:ATrueExpr>*/;
6337 /* method typing#ATrueExpr#accept_typing for (self: Object, TypeVisitor) */
6338 void VIRTUAL_typing__ATrueExpr__accept_typing(val
* self
, val
* p0
) {
6339 typing__ATrueExpr__accept_typing(self
, p0
);
6342 /* method typing#AFalseExpr#accept_typing for (self: AFalseExpr, TypeVisitor) */
6343 void typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
6344 val
* var_v
/* var v: TypeVisitor */;
6345 val
* var
/* : nullable MType */;
6347 var
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
6348 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var
) /* mtype= on <self:AFalseExpr>*/;
6351 /* method typing#AFalseExpr#accept_typing for (self: Object, TypeVisitor) */
6352 void VIRTUAL_typing__AFalseExpr__accept_typing(val
* self
, val
* p0
) {
6353 typing__AFalseExpr__accept_typing(self
, p0
);
6356 /* method typing#AIntExpr#accept_typing for (self: AIntExpr, TypeVisitor) */
6357 void typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
6358 val
* var_v
/* var v: TypeVisitor */;
6359 static val
* varonce
;
6360 val
* var
/* : String */;
6361 char* var1
/* : NativeString */;
6362 long var2
/* : Int */;
6363 val
* var3
/* : String */;
6364 val
* var4
/* : nullable MClass */;
6365 val
* var_mclass
/* var mclass: nullable MClass */;
6366 val
* var5
/* : null */;
6367 short int var6
/* : Bool */;
6368 val
* var7
/* : MClassType */;
6375 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6379 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6382 if (var_mclass
== NULL
) {
6383 var6
= 1; /* is null */
6385 var6
= 0; /* arg is null but recv is not */
6391 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6392 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AIntExpr>*/;
6395 /* method typing#AIntExpr#accept_typing for (self: Object, TypeVisitor) */
6396 void VIRTUAL_typing__AIntExpr__accept_typing(val
* self
, val
* p0
) {
6397 typing__AIntExpr__accept_typing(self
, p0
);
6400 /* method typing#AFloatExpr#accept_typing for (self: AFloatExpr, TypeVisitor) */
6401 void typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
6402 val
* var_v
/* var v: TypeVisitor */;
6403 static val
* varonce
;
6404 val
* var
/* : String */;
6405 char* var1
/* : NativeString */;
6406 long var2
/* : Int */;
6407 val
* var3
/* : String */;
6408 val
* var4
/* : nullable MClass */;
6409 val
* var_mclass
/* var mclass: nullable MClass */;
6410 val
* var5
/* : null */;
6411 short int var6
/* : Bool */;
6412 val
* var7
/* : MClassType */;
6419 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6423 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6426 if (var_mclass
== NULL
) {
6427 var6
= 1; /* is null */
6429 var6
= 0; /* arg is null but recv is not */
6435 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6436 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AFloatExpr>*/;
6439 /* method typing#AFloatExpr#accept_typing for (self: Object, TypeVisitor) */
6440 void VIRTUAL_typing__AFloatExpr__accept_typing(val
* self
, val
* p0
) {
6441 typing__AFloatExpr__accept_typing(self
, p0
);
6444 /* method typing#ACharExpr#accept_typing for (self: ACharExpr, TypeVisitor) */
6445 void typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
6446 val
* var_v
/* var v: TypeVisitor */;
6447 static val
* varonce
;
6448 val
* var
/* : String */;
6449 char* var1
/* : NativeString */;
6450 long var2
/* : Int */;
6451 val
* var3
/* : String */;
6452 val
* var4
/* : nullable MClass */;
6453 val
* var_mclass
/* var mclass: nullable MClass */;
6454 val
* var5
/* : null */;
6455 short int var6
/* : Bool */;
6456 val
* var7
/* : MClassType */;
6463 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6467 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6470 if (var_mclass
== NULL
) {
6471 var6
= 1; /* is null */
6473 var6
= 0; /* arg is null but recv is not */
6479 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6480 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:ACharExpr>*/;
6483 /* method typing#ACharExpr#accept_typing for (self: Object, TypeVisitor) */
6484 void VIRTUAL_typing__ACharExpr__accept_typing(val
* self
, val
* p0
) {
6485 typing__ACharExpr__accept_typing(self
, p0
);
6488 /* method typing#AStringFormExpr#accept_typing for (self: AStringFormExpr, TypeVisitor) */
6489 void typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
6490 val
* var_v
/* var v: TypeVisitor */;
6491 static val
* varonce
;
6492 val
* var
/* : String */;
6493 char* var1
/* : NativeString */;
6494 long var2
/* : Int */;
6495 val
* var3
/* : String */;
6496 val
* var4
/* : nullable MClass */;
6497 val
* var_mclass
/* var mclass: nullable MClass */;
6498 val
* var5
/* : null */;
6499 short int var6
/* : Bool */;
6500 val
* var7
/* : MClassType */;
6507 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6511 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6514 if (var_mclass
== NULL
) {
6515 var6
= 1; /* is null */
6517 var6
= 0; /* arg is null but recv is not */
6523 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6524 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:AStringFormExpr>*/;
6527 /* method typing#AStringFormExpr#accept_typing for (self: Object, TypeVisitor) */
6528 void VIRTUAL_typing__AStringFormExpr__accept_typing(val
* self
, val
* p0
) {
6529 typing__AStringFormExpr__accept_typing(self
, p0
);
6532 /* method typing#ASuperstringExpr#accept_typing for (self: ASuperstringExpr, TypeVisitor) */
6533 void typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
6534 val
* var_v
/* var v: TypeVisitor */;
6535 static val
* varonce
;
6536 val
* var
/* : String */;
6537 char* var1
/* : NativeString */;
6538 long var2
/* : Int */;
6539 val
* var3
/* : String */;
6540 val
* var4
/* : nullable MClass */;
6541 val
* var_mclass
/* var mclass: nullable MClass */;
6542 val
* var5
/* : null */;
6543 short int var6
/* : Bool */;
6544 val
* var7
/* : MClassType */;
6545 val
* var8
/* : ANodes[AExpr] */;
6546 val
* var9
/* : Iterator[nullable Object] */;
6547 short int var10
/* : Bool */;
6548 val
* var11
/* : nullable Object */;
6549 val
* var_nexpr
/* var nexpr: AExpr */;
6550 val
* var12
/* : nullable MType */;
6551 val
* var_t
/* var t: nullable MType */;
6558 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6562 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6565 if (var_mclass
== NULL
) {
6566 var6
= 1; /* is null */
6568 var6
= 0; /* arg is null but recv is not */
6574 var7
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:nullable MClass(MClass)>*/;
6575 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var7
) /* mtype= on <self:ASuperstringExpr>*/;
6576 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperstringExpr__n_exprs
]))(self
) /* n_exprs on <self:ASuperstringExpr>*/;
6577 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var8
) /* iterator on <var8:ANodes[AExpr]>*/;
6579 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
6581 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
6583 var12
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_nexpr
) /* visit_expr on <var_v:TypeVisitor>*/;
6585 CONTINUE_label
: (void)0;
6586 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
6588 BREAK_label
: (void)0;
6591 /* method typing#ASuperstringExpr#accept_typing for (self: Object, TypeVisitor) */
6592 void VIRTUAL_typing__ASuperstringExpr__accept_typing(val
* self
, val
* p0
) {
6593 typing__ASuperstringExpr__accept_typing(self
, p0
);
6596 /* method typing#AArrayExpr#accept_typing for (self: AArrayExpr, TypeVisitor) */
6597 void typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
6598 val
* var_v
/* var v: TypeVisitor */;
6599 val
* var
/* : Array[nullable MType] */;
6600 val
* var_mtypes
/* var mtypes: Array[nullable MType] */;
6601 val
* var1
/* : AExprs */;
6602 val
* var2
/* : ANodes[AExpr] */;
6603 val
* var3
/* : Iterator[nullable Object] */;
6604 short int var4
/* : Bool */;
6605 val
* var5
/* : nullable Object */;
6606 val
* var_e
/* var e: AExpr */;
6607 val
* var6
/* : nullable MType */;
6608 val
* var_t
/* var t: nullable MType */;
6609 val
* var7
/* : null */;
6610 short int var8
/* : Bool */;
6611 val
* var9
/* : nullable MType */;
6612 val
* var_mtype
/* var mtype: nullable MType */;
6613 val
* var10
/* : null */;
6614 short int var11
/* : Bool */;
6615 static val
* varonce
;
6616 val
* var12
/* : String */;
6617 char* var13
/* : NativeString */;
6618 long var14
/* : Int */;
6619 val
* var15
/* : String */;
6620 static val
* varonce16
;
6621 val
* var17
/* : String */;
6622 char* var18
/* : NativeString */;
6623 long var19
/* : Int */;
6624 val
* var20
/* : String */;
6625 val
* var21
/* : String */;
6626 val
* var22
/* : Array[Object] */;
6627 long var23
/* : Int */;
6628 val
* var24
/* : NativeArray[Object] */;
6629 val
* var25
/* : String */;
6630 static val
* varonce26
;
6631 val
* var27
/* : String */;
6632 char* var28
/* : NativeString */;
6633 long var29
/* : Int */;
6634 val
* var30
/* : String */;
6635 val
* var31
/* : nullable MClass */;
6636 val
* var_mclass
/* var mclass: nullable MClass */;
6637 val
* var32
/* : null */;
6638 short int var33
/* : Bool */;
6639 val
* var34
/* : Array[MType] */;
6640 long var35
/* : Int */;
6641 val
* var36
/* : NativeArray[MType] */;
6642 val
* var37
/* : MClassType */;
6644 var
= NEW_array__Array(&type_array__Arraynullable_model__MType
);
6645 ((void (*)(val
*))(var
->class->vft
[COLOR_array__Array__init
]))(var
) /* init on <var:Array[nullable MType]>*/;
6647 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AArrayExpr__n_exprs
]))(self
) /* n_exprs on <self:AArrayExpr>*/;
6648 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(var1
) /* n_exprs on <var1:AExprs>*/;
6649 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:ANodes[AExpr]>*/;
6651 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
6653 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
6655 var6
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var_e
) /* visit_expr on <var_v:TypeVisitor>*/;
6658 if (var_t
== NULL
) {
6659 var8
= 1; /* is null */
6661 var8
= 0; /* arg is null but recv is not */
6667 ((void (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mtypes
, var_t
) /* add on <var_mtypes:Array[nullable MType]>*/;
6668 CONTINUE_label
: (void)0;
6669 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
6671 BREAK_label
: (void)0;
6672 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>*/;
6675 if (var_mtype
== NULL
) {
6676 var11
= 1; /* is null */
6678 var11
= 0; /* arg is null but recv is not */
6684 var13
= "Type Error: ambiguous array type ";
6686 var15
= string__NativeString__to_s_with_length(var13
, var14
);
6695 var20
= string__NativeString__to_s_with_length(var18
, var19
);
6699 var21
= ((val
* (*)(val
*, val
*))(var_mtypes
->class->vft
[COLOR_string__Collection__join
]))(var_mtypes
, var17
) /* join on <var_mtypes:Array[nullable MType]>*/;
6700 var22
= NEW_array__Array(&type_array__Arraykernel__Object
);
6701 { /* var22 = array_instance Array[Object] */
6703 var24
= NEW_array__NativeArray(var23
, &type_array__NativeArraykernel__Object
);
6704 ((struct instance_array__NativeArray
*)var24
)->values
[0] = (val
*) var12
;
6705 ((struct instance_array__NativeArray
*)var24
)->values
[1] = (val
*) var21
;
6706 ((void (*)(val
*, val
*, long))(var22
->class->vft
[COLOR_array__Array__with_native
]))(var22
, var24
, var23
) /* with_native on <var22:Array[Object]>*/;
6708 var25
= ((val
* (*)(val
*))(var22
->class->vft
[COLOR_string__Object__to_s
]))(var22
) /* to_s on <var22:Array[Object]>*/;
6709 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var25
) /* error on <var_v:TypeVisitor>*/;
6718 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6722 var31
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var27
) /* get_mclass on <var_v:TypeVisitor>*/;
6725 if (var_mclass
== NULL
) {
6726 var33
= 1; /* is null */
6728 var33
= 0; /* arg is null but recv is not */
6734 var34
= NEW_array__Array(&type_array__Arraymodel__MType
);
6735 { /* var34 = array_instance Array[MType] */
6737 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraymodel__MType
);
6738 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var_mtype
;
6739 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[MType]>*/;
6741 var37
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var34
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6742 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var37
) /* mtype= on <self:AArrayExpr>*/;
6745 /* method typing#AArrayExpr#accept_typing for (self: Object, TypeVisitor) */
6746 void VIRTUAL_typing__AArrayExpr__accept_typing(val
* self
, val
* p0
) {
6747 typing__AArrayExpr__accept_typing(self
, p0
);
6750 /* method typing#ARangeExpr#accept_typing for (self: ARangeExpr, TypeVisitor) */
6751 void typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
6752 val
* var_v
/* var v: TypeVisitor */;
6753 static val
* varonce
;
6754 val
* var
/* : String */;
6755 char* var1
/* : NativeString */;
6756 long var2
/* : Int */;
6757 val
* var3
/* : String */;
6758 val
* var4
/* : nullable MClass */;
6759 val
* var_discrete_class
/* var discrete_class: nullable MClass */;
6760 val
* var5
/* : null */;
6761 short int var6
/* : Bool */;
6762 val
* var7
/* : MClassDef */;
6763 val
* var8
/* : MClassType */;
6764 val
* var_discrete_type
/* var discrete_type: MClassType */;
6765 val
* var9
/* : AExpr */;
6766 val
* var10
/* : nullable MType */;
6767 val
* var_t1
/* var t1: nullable MType */;
6768 val
* var11
/* : AExpr */;
6769 val
* var12
/* : nullable MType */;
6770 val
* var_t2
/* var t2: nullable MType */;
6771 short int var13
/* : Bool */;
6772 val
* var14
/* : null */;
6773 short int var15
/* : Bool */;
6774 short int var_
/* var : Bool */;
6775 val
* var16
/* : null */;
6776 short int var17
/* : Bool */;
6777 static val
* varonce18
;
6778 val
* var19
/* : String */;
6779 char* var20
/* : NativeString */;
6780 long var21
/* : Int */;
6781 val
* var22
/* : String */;
6782 val
* var23
/* : nullable MClass */;
6783 val
* var_mclass
/* var mclass: nullable MClass */;
6784 val
* var24
/* : null */;
6785 short int var25
/* : Bool */;
6786 short int var26
/* : Bool */;
6787 val
* var27
/* : Array[MType] */;
6788 long var28
/* : Int */;
6789 val
* var29
/* : NativeArray[MType] */;
6790 val
* var30
/* : MClassType */;
6791 short int var31
/* : Bool */;
6792 val
* var32
/* : Array[MType] */;
6793 long var33
/* : Int */;
6794 val
* var34
/* : NativeArray[MType] */;
6795 val
* var35
/* : MClassType */;
6796 static val
* varonce36
;
6797 val
* var37
/* : String */;
6798 char* var38
/* : NativeString */;
6799 long var39
/* : Int */;
6800 val
* var40
/* : String */;
6801 static val
* varonce41
;
6802 val
* var42
/* : String */;
6803 char* var43
/* : NativeString */;
6804 long var44
/* : Int */;
6805 val
* var45
/* : String */;
6806 val
* var46
/* : Array[Object] */;
6807 long var47
/* : Int */;
6808 val
* var48
/* : NativeArray[Object] */;
6809 val
* var49
/* : String */;
6816 var3
= string__NativeString__to_s_with_length(var1
, var2
);
6820 var4
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var
) /* get_mclass on <var_v:TypeVisitor>*/;
6821 var_discrete_class
= var4
;
6823 if (var_discrete_class
== NULL
) {
6824 var6
= 1; /* is null */
6826 var6
= 0; /* arg is null but recv is not */
6832 var7
= ((val
* (*)(val
*))(var_discrete_class
->class->vft
[COLOR_model__MClass__intro
]))(var_discrete_class
) /* intro on <var_discrete_class:nullable MClass(MClass)>*/;
6833 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var7
) /* bound_mtype on <var7:MClassDef>*/;
6834 var_discrete_type
= var8
;
6835 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ARangeExpr__n_expr
]))(self
) /* n_expr on <self:ARangeExpr>*/;
6836 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>*/;
6838 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ARangeExpr__n_expr2
]))(self
) /* n_expr2 on <self:ARangeExpr>*/;
6839 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>*/;
6842 if (var_t1
== NULL
) {
6843 var15
= 1; /* is null */
6845 var15
= 0; /* arg is null but recv is not */
6852 if (var_t2
== NULL
) {
6853 var17
= 1; /* is null */
6855 var17
= 0; /* arg is null but recv is not */
6868 var22
= string__NativeString__to_s_with_length(var20
, var21
);
6872 var23
= ((val
* (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__get_mclass
]))(var_v
, self
, var19
) /* get_mclass on <var_v:TypeVisitor>*/;
6875 if (var_mclass
== NULL
) {
6876 var25
= 1; /* is null */
6878 var25
= 0; /* arg is null but recv is not */
6884 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>*/;
6886 var27
= NEW_array__Array(&type_array__Arraymodel__MType
);
6887 { /* var27 = array_instance Array[MType] */
6889 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraymodel__MType
);
6890 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var_t2
;
6891 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[MType]>*/;
6893 var30
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var27
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6894 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var30
) /* mtype= on <self:ARangeExpr>*/;
6896 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>*/;
6898 var32
= NEW_array__Array(&type_array__Arraymodel__MType
);
6899 { /* var32 = array_instance Array[MType] */
6901 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraymodel__MType
);
6902 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var_t1
;
6903 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[MType]>*/;
6905 var35
= ((val
* (*)(val
*, val
*))(var_mclass
->class->vft
[COLOR_model__MClass__get_mtype
]))(var_mclass
, var32
) /* get_mtype on <var_mclass:nullable MClass(MClass)>*/;
6906 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var35
) /* mtype= on <self:ARangeExpr>*/;
6911 var38
= "Type Error: Cannot create range: ";
6913 var40
= string__NativeString__to_s_with_length(var38
, var39
);
6922 var45
= string__NativeString__to_s_with_length(var43
, var44
);
6926 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
6927 { /* var46 = array_instance Array[Object] */
6929 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
6930 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var37
;
6931 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var_t1
;
6932 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var42
;
6933 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var_t2
;
6934 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
6936 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
6937 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var49
) /* error on <var_v:TypeVisitor>*/;
6942 /* method typing#ARangeExpr#accept_typing for (self: Object, TypeVisitor) */
6943 void VIRTUAL_typing__ARangeExpr__accept_typing(val
* self
, val
* p0
) {
6944 typing__ARangeExpr__accept_typing(self
, p0
);
6947 /* method typing#ANullExpr#accept_typing for (self: ANullExpr, TypeVisitor) */
6948 void typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
6949 val
* var_v
/* var v: TypeVisitor */;
6950 val
* var
/* : MModule */;
6951 val
* var1
/* : Model */;
6952 val
* var2
/* : MNullType */;
6954 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
6955 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_mmodule__MModule__model
]))(var
) /* model on <var:MModule>*/;
6956 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__Model__null_type
]))(var1
) /* null_type on <var1:Model>*/;
6957 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:ANullExpr>*/;
6960 /* method typing#ANullExpr#accept_typing for (self: Object, TypeVisitor) */
6961 void VIRTUAL_typing__ANullExpr__accept_typing(val
* self
, val
* p0
) {
6962 typing__ANullExpr__accept_typing(self
, p0
);
6965 /* method typing#AIsaExpr#cast_type for (self: AIsaExpr): nullable MType */
6966 val
* typing__AIsaExpr__cast_type(val
* self
) {
6967 val
* var
/* : nullable MType */;
6968 val
* var1
/* : nullable MType */;
6969 var1
= self
->attrs
[COLOR_typing__AIsaExpr___64dcast_type
].val
; /* @cast_type on <self:AIsaExpr> */
6974 /* method typing#AIsaExpr#cast_type for (self: Object): nullable MType */
6975 val
* VIRTUAL_typing__AIsaExpr__cast_type(val
* self
) {
6976 val
* var
/* : nullable MType */;
6977 val
* var1
/* : nullable MType */;
6978 var1
= typing__AIsaExpr__cast_type(self
);
6983 /* method typing#AIsaExpr#cast_type= for (self: AIsaExpr, nullable MType) */
6984 void typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
6985 self
->attrs
[COLOR_typing__AIsaExpr___64dcast_type
].val
= p0
; /* @cast_type on <self:AIsaExpr> */
6988 /* method typing#AIsaExpr#cast_type= for (self: Object, nullable MType) */
6989 void VIRTUAL_typing__AIsaExpr__cast_type_61d(val
* self
, val
* p0
) {
6990 typing__AIsaExpr__cast_type_61d(self
, p0
);
6993 /* method typing#AIsaExpr#accept_typing for (self: AIsaExpr, TypeVisitor) */
6994 void typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
6995 val
* var_v
/* var v: TypeVisitor */;
6996 val
* var
/* : AExpr */;
6997 val
* var1
/* : AType */;
6998 val
* var2
/* : nullable MType */;
6999 val
* var_mtype
/* var mtype: nullable MType */;
7000 val
* var3
/* : AExpr */;
7001 val
* var4
/* : nullable Variable */;
7002 val
* var_variable
/* var variable: nullable Variable */;
7003 val
* var5
/* : null */;
7004 short int var6
/* : Bool */;
7005 val
* var7
/* : AExpr */;
7006 val
* var8
/* : nullable MType */;
7007 val
* var_orig
/* var orig: nullable MType */;
7008 val
* var9
/* : String */;
7009 val
* var10
/* : null */;
7010 short int var11
/* : Bool */;
7011 val
* var12
/* : String */;
7012 static val
* varonce
;
7013 val
* var13
/* : String */;
7014 char* var14
/* : NativeString */;
7015 long var15
/* : Int */;
7016 val
* var16
/* : String */;
7017 val
* var_from
/* var from: String */;
7018 val
* var17
/* : String */;
7019 val
* var18
/* : null */;
7020 short int var19
/* : Bool */;
7021 val
* var20
/* : String */;
7022 static val
* varonce21
;
7023 val
* var22
/* : String */;
7024 char* var23
/* : NativeString */;
7025 long var24
/* : Int */;
7026 val
* var25
/* : String */;
7027 val
* var_to
/* var to: String */;
7028 val
* var26
/* : nullable FlowContext */;
7029 val
* var27
/* : FlowContext */;
7030 val
* var28
/* : nullable MType */;
7032 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
7033 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_type
]))(self
) /* n_type on <self:AIsaExpr>*/;
7034 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>*/;
7036 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AIsaExpr__cast_type_61d
]))(self
, var_mtype
) /* cast_type= on <self:AIsaExpr>*/;
7037 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
7038 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var3
) /* its_variable on <var3:AExpr>*/;
7039 var_variable
= var4
;
7041 if (var_variable
== NULL
) {
7042 var6
= 0; /* is null */
7044 var6
= 1; /* arg is null and recv is not */
7047 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AIsaExpr__n_expr
]))(self
) /* n_expr on <self:AIsaExpr>*/;
7048 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_typing__AExpr__mtype
]))(var7
) /* mtype on <var7:AExpr>*/;
7051 if (var_orig
== NULL
) {
7052 var11
= 0; /* is null */
7054 var11
= 1; /* arg is null and recv is not */
7057 var12
= ((val
* (*)(val
*))(var_orig
->class->vft
[COLOR_string__Object__to_s
]))(var_orig
) /* to_s on <var_orig:nullable MType(MType)>*/;
7065 var16
= string__NativeString__to_s_with_length(var14
, var15
);
7073 if (var_mtype
== NULL
) {
7074 var19
= 0; /* is null */
7076 var19
= 1; /* arg is null and recv is not */
7079 var20
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_string__Object__to_s
]))(var_mtype
) /* to_s on <var_mtype:nullable MType(MType)>*/;
7087 var25
= string__NativeString__to_s_with_length(var23
, var24
);
7094 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AIsaExpr>*/;
7095 if (var26
== NULL
) {
7096 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
7097 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1140);
7100 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var26
) /* when_true on <var26:nullable FlowContext>*/;
7102 ((void (*)(val
*, val
*, val
*))(var27
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var27
, var_variable
, var_mtype
) /* set_var on <var27:FlowContext>*/;
7105 var28
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__type_bool
]))(var_v
, self
) /* type_bool on <var_v:TypeVisitor>*/;
7106 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var28
) /* mtype= on <self:AIsaExpr>*/;
7109 /* method typing#AIsaExpr#accept_typing for (self: Object, TypeVisitor) */
7110 void VIRTUAL_typing__AIsaExpr__accept_typing(val
* self
, val
* p0
) {
7111 typing__AIsaExpr__accept_typing(self
, p0
);
7114 /* method typing#AAsCastExpr#accept_typing for (self: AAsCastExpr, TypeVisitor) */
7115 void typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
7116 val
* var_v
/* var v: TypeVisitor */;
7117 val
* var
/* : AExpr */;
7118 val
* var1
/* : AType */;
7119 val
* var2
/* : nullable MType */;
7121 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsCastExpr__n_expr
]))(self
) /* n_expr on <self:AAsCastExpr>*/;
7122 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsCastExpr__n_type
]))(self
) /* n_type on <self:AAsCastExpr>*/;
7123 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>*/;
7124 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var2
) /* mtype= on <self:AAsCastExpr>*/;
7127 /* method typing#AAsCastExpr#accept_typing for (self: Object, TypeVisitor) */
7128 void VIRTUAL_typing__AAsCastExpr__accept_typing(val
* self
, val
* p0
) {
7129 typing__AAsCastExpr__accept_typing(self
, p0
);
7132 /* method typing#AAsNotnullExpr#accept_typing for (self: AAsNotnullExpr, TypeVisitor) */
7133 void typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
7134 val
* var_v
/* var v: TypeVisitor */;
7135 val
* var
/* : AExpr */;
7136 val
* var1
/* : nullable MType */;
7137 val
* var_mtype
/* var mtype: nullable MType */;
7138 short int var2
/* : Bool */;
7141 static val
* varonce
;
7142 val
* var3
/* : String */;
7143 char* var4
/* : NativeString */;
7144 long var5
/* : Int */;
7145 val
* var6
/* : String */;
7146 short int var7
/* : Bool */;
7149 val
* var10
/* : MType */;
7151 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAsNotnullExpr__n_expr
]))(self
) /* n_expr on <self:AAsNotnullExpr>*/;
7152 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7154 /* <var_mtype:nullable MType> isa MNullType */
7155 cltype
= type_model__MNullType
.color
;
7156 idtype
= type_model__MNullType
.id
;
7157 if(var_mtype
== NULL
) {
7160 if(cltype
>= var_mtype
->type
->table_size
) {
7163 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7170 var4
= "Type error: as(not null) on null";
7172 var6
= string__NativeString__to_s_with_length(var4
, var5
);
7176 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var3
) /* error on <var_v:TypeVisitor>*/;
7180 /* <var_mtype:nullable MType> isa MNullableType */
7181 cltype8
= type_model__MNullableType
.color
;
7182 idtype9
= type_model__MNullableType
.id
;
7183 if(var_mtype
== NULL
) {
7186 if(cltype8
>= var_mtype
->type
->table_size
) {
7189 var7
= var_mtype
->type
->type_table
[cltype8
] == idtype9
;
7193 var10
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:nullable MType(MNullableType)>*/;
7194 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var10
) /* mtype= on <self:AAsNotnullExpr>*/;
7198 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:AAsNotnullExpr>*/;
7201 /* method typing#AAsNotnullExpr#accept_typing for (self: Object, TypeVisitor) */
7202 void VIRTUAL_typing__AAsNotnullExpr__accept_typing(val
* self
, val
* p0
) {
7203 typing__AAsNotnullExpr__accept_typing(self
, p0
);
7206 /* method typing#AProxyExpr#accept_typing for (self: AProxyExpr, TypeVisitor) */
7207 void typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
7208 val
* var_v
/* var v: TypeVisitor */;
7209 val
* var
/* : AExpr */;
7210 val
* var1
/* : nullable MType */;
7212 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AProxyExpr__n_expr
]))(self
) /* n_expr on <self:AProxyExpr>*/;
7213 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7214 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var1
) /* mtype= on <self:AProxyExpr>*/;
7217 /* method typing#AProxyExpr#accept_typing for (self: Object, TypeVisitor) */
7218 void VIRTUAL_typing__AProxyExpr__accept_typing(val
* self
, val
* p0
) {
7219 typing__AProxyExpr__accept_typing(self
, p0
);
7222 /* method typing#ASelfExpr#its_variable for (self: ASelfExpr): nullable Variable */
7223 val
* typing__ASelfExpr__its_variable(val
* self
) {
7224 val
* var
/* : nullable Variable */;
7225 val
* var1
/* : nullable Variable */;
7226 var1
= self
->attrs
[COLOR_typing__ASelfExpr___64dits_variable
].val
; /* @its_variable on <self:ASelfExpr> */
7231 /* method typing#ASelfExpr#its_variable for (self: Object): nullable Variable */
7232 val
* VIRTUAL_typing__ASelfExpr__its_variable(val
* self
) {
7233 val
* var
/* : nullable Variable */;
7234 val
* var1
/* : nullable Variable */;
7235 var1
= typing__ASelfExpr__its_variable(self
);
7240 /* method typing#ASelfExpr#its_variable= for (self: ASelfExpr, nullable Variable) */
7241 void typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
7242 self
->attrs
[COLOR_typing__ASelfExpr___64dits_variable
].val
= p0
; /* @its_variable on <self:ASelfExpr> */
7245 /* method typing#ASelfExpr#its_variable= for (self: Object, nullable Variable) */
7246 void VIRTUAL_typing__ASelfExpr__its_variable_61d(val
* self
, val
* p0
) {
7247 typing__ASelfExpr__its_variable_61d(self
, p0
);
7250 /* method typing#ASelfExpr#accept_typing for (self: ASelfExpr, TypeVisitor) */
7251 void typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
7252 val
* var_v
/* var v: TypeVisitor */;
7253 val
* var
/* : Variable */;
7254 val
* var_variable
/* var variable: Variable */;
7255 val
* var1
/* : nullable MType */;
7257 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__selfvariable
]))(var_v
) /* selfvariable on <var_v:TypeVisitor>*/;
7259 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASelfExpr__its_variable_61d
]))(self
, var_variable
) /* its_variable= on <self:ASelfExpr>*/;
7260 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>*/;
7261 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var1
) /* mtype= on <self:ASelfExpr>*/;
7264 /* method typing#ASelfExpr#accept_typing for (self: Object, TypeVisitor) */
7265 void VIRTUAL_typing__ASelfExpr__accept_typing(val
* self
, val
* p0
) {
7266 typing__ASelfExpr__accept_typing(self
, p0
);
7269 /* method typing#ASendExpr#callsite for (self: ASendExpr): nullable CallSite */
7270 val
* typing__ASendExpr__callsite(val
* self
) {
7271 val
* var
/* : nullable CallSite */;
7272 val
* var1
/* : nullable CallSite */;
7273 var1
= self
->attrs
[COLOR_typing__ASendExpr___64dcallsite
].val
; /* @callsite on <self:ASendExpr> */
7278 /* method typing#ASendExpr#callsite for (self: Object): nullable CallSite */
7279 val
* VIRTUAL_typing__ASendExpr__callsite(val
* self
) {
7280 val
* var
/* : nullable CallSite */;
7281 val
* var1
/* : nullable CallSite */;
7282 var1
= typing__ASendExpr__callsite(self
);
7287 /* method typing#ASendExpr#callsite= for (self: ASendExpr, nullable CallSite) */
7288 void typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
7289 self
->attrs
[COLOR_typing__ASendExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ASendExpr> */
7292 /* method typing#ASendExpr#callsite= for (self: Object, nullable CallSite) */
7293 void VIRTUAL_typing__ASendExpr__callsite_61d(val
* self
, val
* p0
) {
7294 typing__ASendExpr__callsite_61d(self
, p0
);
7297 /* method typing#ASendExpr#accept_typing for (self: ASendExpr, TypeVisitor) */
7298 void typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
7299 val
* var_v
/* var v: TypeVisitor */;
7300 val
* var
/* : AExpr */;
7301 val
* var1
/* : nullable MType */;
7302 val
* var_recvtype
/* var recvtype: nullable MType */;
7303 val
* var2
/* : String */;
7304 val
* var_name
/* var name: String */;
7305 val
* var3
/* : null */;
7306 short int var4
/* : Bool */;
7307 short int var5
/* : Bool */;
7310 static val
* varonce
;
7311 val
* var6
/* : String */;
7312 char* var7
/* : NativeString */;
7313 long var8
/* : Int */;
7314 val
* var9
/* : String */;
7315 static val
* varonce10
;
7316 val
* var11
/* : String */;
7317 char* var12
/* : NativeString */;
7318 long var13
/* : Int */;
7319 val
* var14
/* : String */;
7320 val
* var15
/* : Array[Object] */;
7321 long var16
/* : Int */;
7322 val
* var17
/* : NativeArray[Object] */;
7323 val
* var18
/* : String */;
7324 val
* var19
/* : AExpr */;
7325 short int var20
/* : Bool */;
7328 val
* var23
/* : nullable CallSite */;
7329 val
* var_callsite
/* var callsite: nullable CallSite */;
7330 val
* var24
/* : null */;
7331 short int var25
/* : Bool */;
7332 val
* var26
/* : MSignature */;
7333 val
* var_msignature
/* var msignature: MSignature */;
7334 val
* var27
/* : Array[AExpr] */;
7335 val
* var_args
/* var args: Array[AExpr] */;
7336 short int var28
/* : Bool */;
7337 val
* var29
/* : MMethod */;
7338 short int var30
/* : Bool */;
7339 val
* var31
/* : MPropDef */;
7340 val
* var_vmpropdef
/* var vmpropdef: MPropDef */;
7341 short int var32
/* : Bool */;
7342 short int var33
/* : Bool */;
7345 short int var_
/* var : Bool */;
7346 val
* var36
/* : MProperty */;
7347 short int var37
/* : Bool */;
7348 short int var38
/* : Bool */;
7349 static val
* varonce39
;
7350 val
* var40
/* : String */;
7351 char* var41
/* : NativeString */;
7352 long var42
/* : Int */;
7353 val
* var43
/* : String */;
7354 val
* var44
/* : nullable MType */;
7355 val
* var_ret
/* var ret: nullable MType */;
7356 val
* var45
/* : null */;
7357 short int var46
/* : Bool */;
7358 short int var47
/* : Bool */;
7360 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
7361 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
7362 var_recvtype
= var1
;
7363 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendExpr>*/;
7366 if (var_recvtype
== NULL
) {
7367 var4
= 1; /* is null */
7369 var4
= 0; /* arg is null but recv is not */
7375 /* <var_recvtype:nullable MType(MType)> isa MNullType */
7376 cltype
= type_model__MNullType
.color
;
7377 idtype
= type_model__MNullType
.id
;
7378 if(cltype
>= var_recvtype
->type
->table_size
) {
7381 var5
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
7387 var7
= "Error: Method \'";
7389 var9
= string__NativeString__to_s_with_length(var7
, var8
);
7396 var12
= "\' call on \'null\'.";
7398 var14
= string__NativeString__to_s_with_length(var12
, var13
);
7402 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
7403 { /* var15 = array_instance Array[Object] */
7405 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
7406 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var6
;
7407 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_name
;
7408 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var11
;
7409 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
7411 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
7412 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var18
) /* error on <var_v:TypeVisitor>*/;
7416 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendExpr>*/;
7417 /* <var19:AExpr> isa ASelfExpr */
7418 cltype21
= type_parser_nodes__ASelfExpr
.color
;
7419 idtype22
= type_parser_nodes__ASelfExpr
.id
;
7420 if(cltype21
>= var19
->type
->table_size
) {
7423 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
7425 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>*/;
7426 var_callsite
= var23
;
7428 if (var_callsite
== NULL
) {
7429 var25
= 1; /* is null */
7431 var25
= 0; /* arg is null but recv is not */
7437 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASendExpr>*/;
7438 var26
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
7439 var_msignature
= var26
;
7440 var27
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendExpr>*/;
7442 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments_61d
]))(self
, var_args
) /* raw_arguments= on <self:ASendExpr>*/;
7443 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)>*/;
7445 var29
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__mproperty
]))(var_callsite
) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
7446 var30
= ((short int (*)(val
*))(var29
->class->vft
[COLOR_model__MMethod__is_init
]))(var29
) /* is_init on <var29:MMethod>*/;
7448 var31
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
7449 var_vmpropdef
= var31
;
7450 /* <var_vmpropdef:MPropDef> isa MMethodDef */
7451 cltype34
= type_model__MMethodDef
.color
;
7452 idtype35
= type_model__MMethodDef
.id
;
7453 if(cltype34
>= var_vmpropdef
->type
->table_size
) {
7456 var33
= var_vmpropdef
->type
->type_table
[cltype34
] == idtype35
;
7460 var36
= ((val
* (*)(val
*))(var_vmpropdef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_vmpropdef
) /* mproperty on <var_vmpropdef:MPropDef(MMethodDef)>*/;
7461 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_model__MMethod__is_init
]))(var36
) /* is_init on <var36:MProperty(MMethod)>*/;
7471 var41
= "Can call a init only in another init";
7473 var43
= string__NativeString__to_s_with_length(var41
, var42
);
7477 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var40
) /* error on <var_v:TypeVisitor>*/;
7482 var44
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
7485 if (var_ret
== NULL
) {
7486 var46
= 0; /* is null */
7488 var46
= 1; /* arg is null and recv is not */
7491 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var_ret
) /* mtype= on <self:ASendExpr>*/;
7494 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var47
) /* is_typed= on <self:ASendExpr>*/;
7498 /* method typing#ASendExpr#accept_typing for (self: Object, TypeVisitor) */
7499 void VIRTUAL_typing__ASendExpr__accept_typing(val
* self
, val
* p0
) {
7500 typing__ASendExpr__accept_typing(self
, p0
);
7503 /* method typing#ASendExpr#property_name for (self: ASendExpr): String */
7504 val
* typing__ASendExpr__property_name(val
* self
) {
7505 val
* var
/* : String */;
7506 const char* var_class_name
;
7507 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
7508 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "property_name", var_class_name
);
7509 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1230);
7514 /* method typing#ASendExpr#property_name for (self: Object): String */
7515 val
* VIRTUAL_typing__ASendExpr__property_name(val
* self
) {
7516 val
* var
/* : String */;
7517 val
* var1
/* : String */;
7518 var1
= typing__ASendExpr__property_name(self
);
7523 /* method typing#ASendExpr#raw_arguments for (self: ASendExpr): nullable Array[AExpr] */
7524 val
* typing__ASendExpr__raw_arguments(val
* self
) {
7525 val
* var
/* : nullable Array[AExpr] */;
7526 val
* var1
/* : nullable Array[AExpr] */;
7527 var1
= self
->attrs
[COLOR_typing__ASendExpr___64draw_arguments
].val
; /* @raw_arguments on <self:ASendExpr> */
7532 /* method typing#ASendExpr#raw_arguments for (self: Object): nullable Array[AExpr] */
7533 val
* VIRTUAL_typing__ASendExpr__raw_arguments(val
* self
) {
7534 val
* var
/* : nullable Array[AExpr] */;
7535 val
* var1
/* : nullable Array[AExpr] */;
7536 var1
= typing__ASendExpr__raw_arguments(self
);
7541 /* method typing#ASendExpr#raw_arguments= for (self: ASendExpr, nullable Array[AExpr]) */
7542 void typing__ASendExpr__raw_arguments_61d(val
* self
, val
* p0
) {
7543 self
->attrs
[COLOR_typing__ASendExpr___64draw_arguments
].val
= p0
; /* @raw_arguments on <self:ASendExpr> */
7546 /* method typing#ASendExpr#raw_arguments= for (self: Object, nullable Array[AExpr]) */
7547 void VIRTUAL_typing__ASendExpr__raw_arguments_61d(val
* self
, val
* p0
) {
7548 typing__ASendExpr__raw_arguments_61d(self
, p0
);
7551 /* method typing#ASendExpr#compute_raw_arguments for (self: ASendExpr): Array[AExpr] */
7552 val
* typing__ASendExpr__compute_raw_arguments(val
* self
) {
7553 val
* var
/* : Array[AExpr] */;
7554 const char* var_class_name
;
7555 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
7556 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "compute_raw_arguments", var_class_name
);
7557 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1237);
7562 /* method typing#ASendExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
7563 val
* VIRTUAL_typing__ASendExpr__compute_raw_arguments(val
* self
) {
7564 val
* var
/* : Array[AExpr] */;
7565 val
* var1
/* : Array[AExpr] */;
7566 var1
= typing__ASendExpr__compute_raw_arguments(self
);
7571 /* method typing#ABinopExpr#compute_raw_arguments for (self: ABinopExpr): Array[AExpr] */
7572 val
* typing__ABinopExpr__compute_raw_arguments(val
* self
) {
7573 val
* var
/* : Array[AExpr] */;
7574 val
* var1
/* : Array[AExpr] */;
7575 long var2
/* : Int */;
7576 val
* var_
/* var : Array[AExpr] */;
7577 val
* var3
/* : AExpr */;
7578 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
7580 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[AExpr]>*/;
7582 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:ABinopExpr>*/;
7583 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var3
) /* push on <var_:Array[AExpr]>*/;
7589 /* method typing#ABinopExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
7590 val
* VIRTUAL_typing__ABinopExpr__compute_raw_arguments(val
* self
) {
7591 val
* var
/* : Array[AExpr] */;
7592 val
* var1
/* : Array[AExpr] */;
7593 var1
= typing__ABinopExpr__compute_raw_arguments(self
);
7598 /* method typing#AEqExpr#property_name for (self: AEqExpr): String */
7599 val
* typing__AEqExpr__property_name(val
* self
) {
7600 val
* var
/* : String */;
7601 static val
* varonce
;
7602 val
* var1
/* : String */;
7603 char* var2
/* : NativeString */;
7604 long var3
/* : Int */;
7605 val
* var4
/* : String */;
7611 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7620 /* method typing#AEqExpr#property_name for (self: Object): String */
7621 val
* VIRTUAL_typing__AEqExpr__property_name(val
* self
) {
7622 val
* var
/* : String */;
7623 val
* var1
/* : String */;
7624 var1
= typing__AEqExpr__property_name(self
);
7629 /* method typing#AEqExpr#accept_typing for (self: AEqExpr, TypeVisitor) */
7630 void typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
7631 val
* var_v
/* var v: TypeVisitor */;
7632 val
* var
/* : AExpr */;
7633 val
* var1
/* : nullable Variable */;
7634 val
* var_variable
/* var variable: nullable Variable */;
7635 val
* var2
/* : null */;
7636 short int var3
/* : Bool */;
7637 val
* var4
/* : AExpr */;
7638 val
* var5
/* : nullable MType */;
7639 val
* var_mtype
/* var mtype: nullable MType */;
7640 short int var6
/* : Bool */;
7643 short int var7
/* : Bool */;
7644 val
* var8
/* : nullable MType */;
7645 val
* var_vartype
/* var vartype: nullable MType */;
7646 short int var9
/* : Bool */;
7649 short int var12
/* : Bool */;
7650 val
* var13
/* : nullable FlowContext */;
7651 val
* var14
/* : FlowContext */;
7652 val
* var15
/* : nullable FlowContext */;
7653 val
* var16
/* : FlowContext */;
7654 val
* var17
/* : MType */;
7656 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AEqExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:AEqExpr>*/;
7657 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:AEqExpr>*/;
7658 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
7659 var_variable
= var1
;
7661 if (var_variable
== NULL
) {
7662 var3
= 1; /* is null */
7664 var3
= 0; /* arg is null but recv is not */
7670 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:AEqExpr>*/;
7671 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
7673 /* <var_mtype:nullable MType> isa MNullType */
7674 cltype
= type_model__MNullType
.color
;
7675 idtype
= type_model__MNullType
.id
;
7676 if(var_mtype
== NULL
) {
7679 if(cltype
>= var_mtype
->type
->table_size
) {
7682 var6
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7690 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>*/;
7692 /* <var_vartype:nullable MType> isa MNullableType */
7693 cltype10
= type_model__MNullableType
.color
;
7694 idtype11
= type_model__MNullableType
.id
;
7695 if(var_vartype
== NULL
) {
7698 if(cltype10
>= var_vartype
->type
->table_size
) {
7701 var9
= var_vartype
->type
->type_table
[cltype10
] == idtype11
;
7709 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AEqExpr>*/;
7710 if (var13
== NULL
) {
7711 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
7712 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1255);
7715 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var13
) /* when_true on <var13:nullable FlowContext>*/;
7717 ((void (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var14
, var_variable
, var_mtype
) /* set_var on <var14:FlowContext>*/;
7718 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:AEqExpr>*/;
7719 if (var15
== NULL
) {
7720 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
7721 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1256);
7724 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var15
) /* when_false on <var15:nullable FlowContext>*/;
7726 var17
= ((val
* (*)(val
*))(var_vartype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_vartype
) /* mtype on <var_vartype:nullable MType(MNullableType)>*/;
7727 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var16
, var_variable
, var17
) /* set_var on <var16:FlowContext>*/;
7730 /* method typing#AEqExpr#accept_typing for (self: Object, TypeVisitor) */
7731 void VIRTUAL_typing__AEqExpr__accept_typing(val
* self
, val
* p0
) {
7732 typing__AEqExpr__accept_typing(self
, p0
);
7735 /* method typing#ANeExpr#property_name for (self: ANeExpr): String */
7736 val
* typing__ANeExpr__property_name(val
* self
) {
7737 val
* var
/* : String */;
7738 static val
* varonce
;
7739 val
* var1
/* : String */;
7740 char* var2
/* : NativeString */;
7741 long var3
/* : Int */;
7742 val
* var4
/* : String */;
7748 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7757 /* method typing#ANeExpr#property_name for (self: Object): String */
7758 val
* VIRTUAL_typing__ANeExpr__property_name(val
* self
) {
7759 val
* var
/* : String */;
7760 val
* var1
/* : String */;
7761 var1
= typing__ANeExpr__property_name(self
);
7766 /* method typing#ANeExpr#accept_typing for (self: ANeExpr, TypeVisitor) */
7767 void typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
7768 val
* var_v
/* var v: TypeVisitor */;
7769 val
* var
/* : AExpr */;
7770 val
* var1
/* : nullable Variable */;
7771 val
* var_variable
/* var variable: nullable Variable */;
7772 val
* var2
/* : null */;
7773 short int var3
/* : Bool */;
7774 val
* var4
/* : AExpr */;
7775 val
* var5
/* : nullable MType */;
7776 val
* var_mtype
/* var mtype: nullable MType */;
7777 short int var6
/* : Bool */;
7780 short int var7
/* : Bool */;
7781 val
* var8
/* : nullable MType */;
7782 val
* var_vartype
/* var vartype: nullable MType */;
7783 short int var9
/* : Bool */;
7786 short int var12
/* : Bool */;
7787 val
* var13
/* : nullable FlowContext */;
7788 val
* var14
/* : FlowContext */;
7789 val
* var15
/* : nullable FlowContext */;
7790 val
* var16
/* : FlowContext */;
7791 val
* var17
/* : MType */;
7793 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ANeExpr__accept_typing
]))(self
, p0
) /* accept_typing on <self:ANeExpr>*/;
7794 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ANeExpr>*/;
7795 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_typing__AExpr__its_variable
]))(var
) /* its_variable on <var:AExpr>*/;
7796 var_variable
= var1
;
7798 if (var_variable
== NULL
) {
7799 var3
= 1; /* is null */
7801 var3
= 0; /* arg is null but recv is not */
7807 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABinopExpr__n_expr2
]))(self
) /* n_expr2 on <self:ANeExpr>*/;
7808 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_typing__AExpr__mtype
]))(var4
) /* mtype on <var4:AExpr>*/;
7810 /* <var_mtype:nullable MType> isa MNullType */
7811 cltype
= type_model__MNullType
.color
;
7812 idtype
= type_model__MNullType
.id
;
7813 if(var_mtype
== NULL
) {
7816 if(cltype
>= var_mtype
->type
->table_size
) {
7819 var6
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7827 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>*/;
7829 /* <var_vartype:nullable MType> isa MNullableType */
7830 cltype10
= type_model__MNullableType
.color
;
7831 idtype11
= type_model__MNullableType
.id
;
7832 if(var_vartype
== NULL
) {
7835 if(cltype10
>= var_vartype
->type
->table_size
) {
7838 var9
= var_vartype
->type
->type_table
[cltype10
] == idtype11
;
7846 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ANeExpr>*/;
7847 if (var13
== NULL
) {
7848 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
7849 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1272);
7852 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_flow__FlowContext__when_false
]))(var13
) /* when_false on <var13:nullable FlowContext>*/;
7854 ((void (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var14
, var_variable
, var_mtype
) /* set_var on <var14:FlowContext>*/;
7855 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_flow__AExpr__after_flow_context
]))(self
) /* after_flow_context on <self:ANeExpr>*/;
7856 if (var15
== NULL
) {
7857 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
7858 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1273);
7861 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_flow__FlowContext__when_true
]))(var15
) /* when_true on <var15:nullable FlowContext>*/;
7863 var17
= ((val
* (*)(val
*))(var_vartype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_vartype
) /* mtype on <var_vartype:nullable MType(MNullableType)>*/;
7864 ((void (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_typing__FlowContext__set_var
]))(var16
, var_variable
, var17
) /* set_var on <var16:FlowContext>*/;
7867 /* method typing#ANeExpr#accept_typing for (self: Object, TypeVisitor) */
7868 void VIRTUAL_typing__ANeExpr__accept_typing(val
* self
, val
* p0
) {
7869 typing__ANeExpr__accept_typing(self
, p0
);
7872 /* method typing#ALtExpr#property_name for (self: ALtExpr): String */
7873 val
* typing__ALtExpr__property_name(val
* self
) {
7874 val
* var
/* : String */;
7875 static val
* varonce
;
7876 val
* var1
/* : String */;
7877 char* var2
/* : NativeString */;
7878 long var3
/* : Int */;
7879 val
* var4
/* : String */;
7885 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7894 /* method typing#ALtExpr#property_name for (self: Object): String */
7895 val
* VIRTUAL_typing__ALtExpr__property_name(val
* self
) {
7896 val
* var
/* : String */;
7897 val
* var1
/* : String */;
7898 var1
= typing__ALtExpr__property_name(self
);
7903 /* method typing#ALeExpr#property_name for (self: ALeExpr): String */
7904 val
* typing__ALeExpr__property_name(val
* self
) {
7905 val
* var
/* : String */;
7906 static val
* varonce
;
7907 val
* var1
/* : String */;
7908 char* var2
/* : NativeString */;
7909 long var3
/* : Int */;
7910 val
* var4
/* : String */;
7916 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7925 /* method typing#ALeExpr#property_name for (self: Object): String */
7926 val
* VIRTUAL_typing__ALeExpr__property_name(val
* self
) {
7927 val
* var
/* : String */;
7928 val
* var1
/* : String */;
7929 var1
= typing__ALeExpr__property_name(self
);
7934 /* method typing#ALlExpr#property_name for (self: ALlExpr): String */
7935 val
* typing__ALlExpr__property_name(val
* self
) {
7936 val
* var
/* : String */;
7937 static val
* varonce
;
7938 val
* var1
/* : String */;
7939 char* var2
/* : NativeString */;
7940 long var3
/* : Int */;
7941 val
* var4
/* : String */;
7947 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7956 /* method typing#ALlExpr#property_name for (self: Object): String */
7957 val
* VIRTUAL_typing__ALlExpr__property_name(val
* self
) {
7958 val
* var
/* : String */;
7959 val
* var1
/* : String */;
7960 var1
= typing__ALlExpr__property_name(self
);
7965 /* method typing#AGtExpr#property_name for (self: AGtExpr): String */
7966 val
* typing__AGtExpr__property_name(val
* self
) {
7967 val
* var
/* : String */;
7968 static val
* varonce
;
7969 val
* var1
/* : String */;
7970 char* var2
/* : NativeString */;
7971 long var3
/* : Int */;
7972 val
* var4
/* : String */;
7978 var4
= string__NativeString__to_s_with_length(var2
, var3
);
7987 /* method typing#AGtExpr#property_name for (self: Object): String */
7988 val
* VIRTUAL_typing__AGtExpr__property_name(val
* self
) {
7989 val
* var
/* : String */;
7990 val
* var1
/* : String */;
7991 var1
= typing__AGtExpr__property_name(self
);
7996 /* method typing#AGeExpr#property_name for (self: AGeExpr): String */
7997 val
* typing__AGeExpr__property_name(val
* self
) {
7998 val
* var
/* : String */;
7999 static val
* varonce
;
8000 val
* var1
/* : String */;
8001 char* var2
/* : NativeString */;
8002 long var3
/* : Int */;
8003 val
* var4
/* : String */;
8009 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8018 /* method typing#AGeExpr#property_name for (self: Object): String */
8019 val
* VIRTUAL_typing__AGeExpr__property_name(val
* self
) {
8020 val
* var
/* : String */;
8021 val
* var1
/* : String */;
8022 var1
= typing__AGeExpr__property_name(self
);
8027 /* method typing#AGgExpr#property_name for (self: AGgExpr): String */
8028 val
* typing__AGgExpr__property_name(val
* self
) {
8029 val
* var
/* : String */;
8030 static val
* varonce
;
8031 val
* var1
/* : String */;
8032 char* var2
/* : NativeString */;
8033 long var3
/* : Int */;
8034 val
* var4
/* : String */;
8040 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8049 /* method typing#AGgExpr#property_name for (self: Object): String */
8050 val
* VIRTUAL_typing__AGgExpr__property_name(val
* self
) {
8051 val
* var
/* : String */;
8052 val
* var1
/* : String */;
8053 var1
= typing__AGgExpr__property_name(self
);
8058 /* method typing#APlusExpr#property_name for (self: APlusExpr): String */
8059 val
* typing__APlusExpr__property_name(val
* self
) {
8060 val
* var
/* : String */;
8061 static val
* varonce
;
8062 val
* var1
/* : String */;
8063 char* var2
/* : NativeString */;
8064 long var3
/* : Int */;
8065 val
* var4
/* : String */;
8071 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8080 /* method typing#APlusExpr#property_name for (self: Object): String */
8081 val
* VIRTUAL_typing__APlusExpr__property_name(val
* self
) {
8082 val
* var
/* : String */;
8083 val
* var1
/* : String */;
8084 var1
= typing__APlusExpr__property_name(self
);
8089 /* method typing#AMinusExpr#property_name for (self: AMinusExpr): String */
8090 val
* typing__AMinusExpr__property_name(val
* self
) {
8091 val
* var
/* : String */;
8092 static val
* varonce
;
8093 val
* var1
/* : String */;
8094 char* var2
/* : NativeString */;
8095 long var3
/* : Int */;
8096 val
* var4
/* : String */;
8102 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8111 /* method typing#AMinusExpr#property_name for (self: Object): String */
8112 val
* VIRTUAL_typing__AMinusExpr__property_name(val
* self
) {
8113 val
* var
/* : String */;
8114 val
* var1
/* : String */;
8115 var1
= typing__AMinusExpr__property_name(self
);
8120 /* method typing#AStarshipExpr#property_name for (self: AStarshipExpr): String */
8121 val
* typing__AStarshipExpr__property_name(val
* self
) {
8122 val
* var
/* : String */;
8123 static val
* varonce
;
8124 val
* var1
/* : String */;
8125 char* var2
/* : NativeString */;
8126 long var3
/* : Int */;
8127 val
* var4
/* : String */;
8133 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8142 /* method typing#AStarshipExpr#property_name for (self: Object): String */
8143 val
* VIRTUAL_typing__AStarshipExpr__property_name(val
* self
) {
8144 val
* var
/* : String */;
8145 val
* var1
/* : String */;
8146 var1
= typing__AStarshipExpr__property_name(self
);
8151 /* method typing#AStarExpr#property_name for (self: AStarExpr): String */
8152 val
* typing__AStarExpr__property_name(val
* self
) {
8153 val
* var
/* : String */;
8154 static val
* varonce
;
8155 val
* var1
/* : String */;
8156 char* var2
/* : NativeString */;
8157 long var3
/* : Int */;
8158 val
* var4
/* : String */;
8164 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8173 /* method typing#AStarExpr#property_name for (self: Object): String */
8174 val
* VIRTUAL_typing__AStarExpr__property_name(val
* self
) {
8175 val
* var
/* : String */;
8176 val
* var1
/* : String */;
8177 var1
= typing__AStarExpr__property_name(self
);
8182 /* method typing#ASlashExpr#property_name for (self: ASlashExpr): String */
8183 val
* typing__ASlashExpr__property_name(val
* self
) {
8184 val
* var
/* : String */;
8185 static val
* varonce
;
8186 val
* var1
/* : String */;
8187 char* var2
/* : NativeString */;
8188 long var3
/* : Int */;
8189 val
* var4
/* : String */;
8195 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8204 /* method typing#ASlashExpr#property_name for (self: Object): String */
8205 val
* VIRTUAL_typing__ASlashExpr__property_name(val
* self
) {
8206 val
* var
/* : String */;
8207 val
* var1
/* : String */;
8208 var1
= typing__ASlashExpr__property_name(self
);
8213 /* method typing#APercentExpr#property_name for (self: APercentExpr): String */
8214 val
* typing__APercentExpr__property_name(val
* self
) {
8215 val
* var
/* : String */;
8216 static val
* varonce
;
8217 val
* var1
/* : String */;
8218 char* var2
/* : NativeString */;
8219 long var3
/* : Int */;
8220 val
* var4
/* : String */;
8226 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8235 /* method typing#APercentExpr#property_name for (self: Object): String */
8236 val
* VIRTUAL_typing__APercentExpr__property_name(val
* self
) {
8237 val
* var
/* : String */;
8238 val
* var1
/* : String */;
8239 var1
= typing__APercentExpr__property_name(self
);
8244 /* method typing#AUminusExpr#property_name for (self: AUminusExpr): String */
8245 val
* typing__AUminusExpr__property_name(val
* self
) {
8246 val
* var
/* : String */;
8247 static val
* varonce
;
8248 val
* var1
/* : String */;
8249 char* var2
/* : NativeString */;
8250 long var3
/* : Int */;
8251 val
* var4
/* : String */;
8257 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8266 /* method typing#AUminusExpr#property_name for (self: Object): String */
8267 val
* VIRTUAL_typing__AUminusExpr__property_name(val
* self
) {
8268 val
* var
/* : String */;
8269 val
* var1
/* : String */;
8270 var1
= typing__AUminusExpr__property_name(self
);
8275 /* method typing#AUminusExpr#compute_raw_arguments for (self: AUminusExpr): Array[AExpr] */
8276 val
* typing__AUminusExpr__compute_raw_arguments(val
* self
) {
8277 val
* var
/* : Array[AExpr] */;
8278 val
* var1
/* : Array[AExpr] */;
8279 var1
= NEW_array__Array(&type_array__Arrayparser_nodes__AExpr
);
8280 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[AExpr]>*/;
8286 /* method typing#AUminusExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8287 val
* VIRTUAL_typing__AUminusExpr__compute_raw_arguments(val
* self
) {
8288 val
* var
/* : Array[AExpr] */;
8289 val
* var1
/* : Array[AExpr] */;
8290 var1
= typing__AUminusExpr__compute_raw_arguments(self
);
8295 /* method typing#ACallExpr#property_name for (self: ACallExpr): String */
8296 val
* typing__ACallExpr__property_name(val
* self
) {
8297 val
* var
/* : String */;
8298 val
* var1
/* : TId */;
8299 val
* var2
/* : String */;
8300 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallExpr>*/;
8301 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8307 /* method typing#ACallExpr#property_name for (self: Object): String */
8308 val
* VIRTUAL_typing__ACallExpr__property_name(val
* self
) {
8309 val
* var
/* : String */;
8310 val
* var1
/* : String */;
8311 var1
= typing__ACallExpr__property_name(self
);
8316 /* method typing#ACallExpr#compute_raw_arguments for (self: ACallExpr): Array[AExpr] */
8317 val
* typing__ACallExpr__compute_raw_arguments(val
* self
) {
8318 val
* var
/* : Array[AExpr] */;
8319 val
* var1
/* : AExprs */;
8320 val
* var2
/* : Array[AExpr] */;
8321 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallExpr>*/;
8322 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8328 /* method typing#ACallExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8329 val
* VIRTUAL_typing__ACallExpr__compute_raw_arguments(val
* self
) {
8330 val
* var
/* : Array[AExpr] */;
8331 val
* var1
/* : Array[AExpr] */;
8332 var1
= typing__ACallExpr__compute_raw_arguments(self
);
8337 /* method typing#ACallAssignExpr#property_name for (self: ACallAssignExpr): String */
8338 val
* typing__ACallAssignExpr__property_name(val
* self
) {
8339 val
* var
/* : String */;
8340 val
* var1
/* : TId */;
8341 val
* var2
/* : String */;
8342 static val
* varonce
;
8343 val
* var3
/* : String */;
8344 char* var4
/* : NativeString */;
8345 long var5
/* : Int */;
8346 val
* var6
/* : String */;
8347 val
* var7
/* : String */;
8348 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallAssignExpr>*/;
8349 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8355 var6
= string__NativeString__to_s_with_length(var4
, var5
);
8359 var7
= ((val
* (*)(val
*, val
*))(var2
->class->vft
[COLOR_string__String___43d
]))(var2
, var3
) /* + on <var2:String>*/;
8365 /* method typing#ACallAssignExpr#property_name for (self: Object): String */
8366 val
* VIRTUAL_typing__ACallAssignExpr__property_name(val
* self
) {
8367 val
* var
/* : String */;
8368 val
* var1
/* : String */;
8369 var1
= typing__ACallAssignExpr__property_name(self
);
8374 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: ACallAssignExpr): Array[AExpr] */
8375 val
* typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
8376 val
* var
/* : Array[AExpr] */;
8377 val
* var1
/* : AExprs */;
8378 val
* var2
/* : Array[AExpr] */;
8379 val
* var_res
/* var res: Array[AExpr] */;
8380 val
* var3
/* : AExpr */;
8381 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallAssignExpr>*/;
8382 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8384 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:ACallAssignExpr>*/;
8385 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var3
) /* add on <var_res:Array[AExpr]>*/;
8391 /* method typing#ACallAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8392 val
* VIRTUAL_typing__ACallAssignExpr__compute_raw_arguments(val
* self
) {
8393 val
* var
/* : Array[AExpr] */;
8394 val
* var1
/* : Array[AExpr] */;
8395 var1
= typing__ACallAssignExpr__compute_raw_arguments(self
);
8400 /* method typing#ABraExpr#property_name for (self: ABraExpr): String */
8401 val
* typing__ABraExpr__property_name(val
* self
) {
8402 val
* var
/* : String */;
8403 static val
* varonce
;
8404 val
* var1
/* : String */;
8405 char* var2
/* : NativeString */;
8406 long var3
/* : Int */;
8407 val
* var4
/* : String */;
8413 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8422 /* method typing#ABraExpr#property_name for (self: Object): String */
8423 val
* VIRTUAL_typing__ABraExpr__property_name(val
* self
) {
8424 val
* var
/* : String */;
8425 val
* var1
/* : String */;
8426 var1
= typing__ABraExpr__property_name(self
);
8431 /* method typing#ABraExpr#compute_raw_arguments for (self: ABraExpr): Array[AExpr] */
8432 val
* typing__ABraExpr__compute_raw_arguments(val
* self
) {
8433 val
* var
/* : Array[AExpr] */;
8434 val
* var1
/* : AExprs */;
8435 val
* var2
/* : Array[AExpr] */;
8436 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraExpr>*/;
8437 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8443 /* method typing#ABraExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8444 val
* VIRTUAL_typing__ABraExpr__compute_raw_arguments(val
* self
) {
8445 val
* var
/* : Array[AExpr] */;
8446 val
* var1
/* : Array[AExpr] */;
8447 var1
= typing__ABraExpr__compute_raw_arguments(self
);
8452 /* method typing#ABraAssignExpr#property_name for (self: ABraAssignExpr): String */
8453 val
* typing__ABraAssignExpr__property_name(val
* self
) {
8454 val
* var
/* : String */;
8455 static val
* varonce
;
8456 val
* var1
/* : String */;
8457 char* var2
/* : NativeString */;
8458 long var3
/* : Int */;
8459 val
* var4
/* : String */;
8465 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8474 /* method typing#ABraAssignExpr#property_name for (self: Object): String */
8475 val
* VIRTUAL_typing__ABraAssignExpr__property_name(val
* self
) {
8476 val
* var
/* : String */;
8477 val
* var1
/* : String */;
8478 var1
= typing__ABraAssignExpr__property_name(self
);
8483 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: ABraAssignExpr): Array[AExpr] */
8484 val
* typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
8485 val
* var
/* : Array[AExpr] */;
8486 val
* var1
/* : AExprs */;
8487 val
* var2
/* : Array[AExpr] */;
8488 val
* var_res
/* var res: Array[AExpr] */;
8489 val
* var3
/* : AExpr */;
8490 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraAssignExpr>*/;
8491 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8493 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AAssignFormExpr__n_value
]))(self
) /* n_value on <self:ABraAssignExpr>*/;
8494 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var3
) /* add on <var_res:Array[AExpr]>*/;
8500 /* method typing#ABraAssignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8501 val
* VIRTUAL_typing__ABraAssignExpr__compute_raw_arguments(val
* self
) {
8502 val
* var
/* : Array[AExpr] */;
8503 val
* var1
/* : Array[AExpr] */;
8504 var1
= typing__ABraAssignExpr__compute_raw_arguments(self
);
8509 /* method typing#ASendReassignFormExpr#write_callsite for (self: ASendReassignFormExpr): nullable CallSite */
8510 val
* typing__ASendReassignFormExpr__write_callsite(val
* self
) {
8511 val
* var
/* : nullable CallSite */;
8512 val
* var1
/* : nullable CallSite */;
8513 var1
= self
->attrs
[COLOR_typing__ASendReassignFormExpr___64dwrite_callsite
].val
; /* @write_callsite on <self:ASendReassignFormExpr> */
8518 /* method typing#ASendReassignFormExpr#write_callsite for (self: Object): nullable CallSite */
8519 val
* VIRTUAL_typing__ASendReassignFormExpr__write_callsite(val
* self
) {
8520 val
* var
/* : nullable CallSite */;
8521 val
* var1
/* : nullable CallSite */;
8522 var1
= typing__ASendReassignFormExpr__write_callsite(self
);
8527 /* method typing#ASendReassignFormExpr#write_callsite= for (self: ASendReassignFormExpr, nullable CallSite) */
8528 void typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
8529 self
->attrs
[COLOR_typing__ASendReassignFormExpr___64dwrite_callsite
].val
= p0
; /* @write_callsite on <self:ASendReassignFormExpr> */
8532 /* method typing#ASendReassignFormExpr#write_callsite= for (self: Object, nullable CallSite) */
8533 void VIRTUAL_typing__ASendReassignFormExpr__write_callsite_61d(val
* self
, val
* p0
) {
8534 typing__ASendReassignFormExpr__write_callsite_61d(self
, p0
);
8537 /* method typing#ASendReassignFormExpr#accept_typing for (self: ASendReassignFormExpr, TypeVisitor) */
8538 void typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
8539 val
* var_v
/* var v: TypeVisitor */;
8540 val
* var
/* : AExpr */;
8541 val
* var1
/* : nullable MType */;
8542 val
* var_recvtype
/* var recvtype: nullable MType */;
8543 val
* var2
/* : String */;
8544 val
* var_name
/* var name: String */;
8545 val
* var3
/* : null */;
8546 short int var4
/* : Bool */;
8547 short int var5
/* : Bool */;
8550 static val
* varonce
;
8551 val
* var6
/* : String */;
8552 char* var7
/* : NativeString */;
8553 long var8
/* : Int */;
8554 val
* var9
/* : String */;
8555 static val
* varonce10
;
8556 val
* var11
/* : String */;
8557 char* var12
/* : NativeString */;
8558 long var13
/* : Int */;
8559 val
* var14
/* : String */;
8560 val
* var15
/* : Array[Object] */;
8561 long var16
/* : Int */;
8562 val
* var17
/* : NativeArray[Object] */;
8563 val
* var18
/* : String */;
8564 val
* var19
/* : AExpr */;
8565 short int var20
/* : Bool */;
8568 short int var_for_self
/* var for_self: Bool */;
8569 val
* var23
/* : nullable CallSite */;
8570 val
* var_callsite
/* var callsite: nullable CallSite */;
8571 val
* var24
/* : null */;
8572 short int var25
/* : Bool */;
8573 val
* var26
/* : Array[AExpr] */;
8574 val
* var_args
/* var args: Array[AExpr] */;
8575 short int var27
/* : Bool */;
8576 val
* var28
/* : MSignature */;
8577 val
* var29
/* : nullable MType */;
8578 val
* var_readtype
/* var readtype: nullable MType */;
8579 val
* var30
/* : null */;
8580 short int var31
/* : Bool */;
8581 static val
* varonce32
;
8582 val
* var33
/* : String */;
8583 char* var34
/* : NativeString */;
8584 long var35
/* : Int */;
8585 val
* var36
/* : String */;
8586 static val
* varonce37
;
8587 val
* var38
/* : String */;
8588 char* var39
/* : NativeString */;
8589 long var40
/* : Int */;
8590 val
* var41
/* : String */;
8591 val
* var42
/* : Array[Object] */;
8592 long var43
/* : Int */;
8593 val
* var44
/* : NativeArray[Object] */;
8594 val
* var45
/* : String */;
8595 static val
* varonce46
;
8596 val
* var47
/* : String */;
8597 char* var48
/* : NativeString */;
8598 long var49
/* : Int */;
8599 val
* var50
/* : String */;
8600 val
* var51
/* : String */;
8601 val
* var52
/* : AExpr */;
8602 short int var53
/* : Bool */;
8605 val
* var56
/* : nullable CallSite */;
8606 val
* var_wcallsite
/* var wcallsite: nullable CallSite */;
8607 val
* var57
/* : null */;
8608 short int var58
/* : Bool */;
8609 val
* var59
/* : MSignature */;
8610 val
* var60
/* : Array[MParameter] */;
8611 val
* var61
/* : nullable Object */;
8612 val
* var62
/* : MType */;
8613 val
* var63
/* : nullable MType */;
8614 val
* var_wtype
/* var wtype: nullable MType */;
8615 val
* var64
/* : null */;
8616 short int var65
/* : Bool */;
8617 val
* var66
/* : Array[nullable Object] */;
8618 val
* var67
/* : AExpr */;
8619 short int var68
/* : Bool */;
8620 short int var69
/* : Bool */;
8622 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8623 var1
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__visit_expr
]))(var_v
, var
) /* visit_expr on <var_v:TypeVisitor>*/;
8624 var_recvtype
= var1
;
8625 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__property_name
]))(self
) /* property_name on <self:ASendReassignFormExpr>*/;
8628 if (var_recvtype
== NULL
) {
8629 var4
= 1; /* is null */
8631 var4
= 0; /* arg is null but recv is not */
8637 /* <var_recvtype:nullable MType(MType)> isa MNullType */
8638 cltype
= type_model__MNullType
.color
;
8639 idtype
= type_model__MNullType
.id
;
8640 if(cltype
>= var_recvtype
->type
->table_size
) {
8643 var5
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
8649 var7
= "Error: Method \'";
8651 var9
= string__NativeString__to_s_with_length(var7
, var8
);
8658 var12
= "\' call on \'null\'.";
8660 var14
= string__NativeString__to_s_with_length(var12
, var13
);
8664 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
8665 { /* var15 = array_instance Array[Object] */
8667 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
8668 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var6
;
8669 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var_name
;
8670 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var11
;
8671 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
8673 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
8674 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var18
) /* error on <var_v:TypeVisitor>*/;
8678 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8679 /* <var19:AExpr> isa ASelfExpr */
8680 cltype21
= type_parser_nodes__ASelfExpr
.color
;
8681 idtype22
= type_parser_nodes__ASelfExpr
.id
;
8682 if(cltype21
>= var19
->type
->table_size
) {
8685 var20
= var19
->type
->type_table
[cltype21
] == idtype22
;
8687 var_for_self
= var20
;
8688 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>*/;
8689 var_callsite
= var23
;
8691 if (var_callsite
== NULL
) {
8692 var25
= 1; /* is null */
8694 var25
= 0; /* arg is null but recv is not */
8700 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__callsite_61d
]))(self
, var_callsite
) /* callsite= on <self:ASendReassignFormExpr>*/;
8701 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_typing__ASendExpr__compute_raw_arguments
]))(self
) /* compute_raw_arguments on <self:ASendReassignFormExpr>*/;
8703 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendExpr__raw_arguments_61d
]))(self
, var_args
) /* raw_arguments= on <self:ASendReassignFormExpr>*/;
8704 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)>*/;
8706 var28
= ((val
* (*)(val
*))(var_callsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_callsite
) /* msignature on <var_callsite:nullable CallSite(CallSite)>*/;
8707 var29
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var28
) /* return_mtype on <var28:MSignature>*/;
8708 var_readtype
= var29
;
8710 if (var_readtype
== NULL
) {
8711 var31
= 1; /* is null */
8713 var31
= 0; /* arg is null but recv is not */
8721 var36
= string__NativeString__to_s_with_length(var34
, var35
);
8728 var39
= " is not a function";
8730 var41
= string__NativeString__to_s_with_length(var39
, var40
);
8734 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
8735 { /* var42 = array_instance Array[Object] */
8737 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
8738 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var33
;
8739 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var_name
;
8740 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var38
;
8741 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
8743 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
8744 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var45
) /* error on <var_v:TypeVisitor>*/;
8753 var50
= string__NativeString__to_s_with_length(var48
, var49
);
8757 var51
= ((val
* (*)(val
*, val
*))(var_name
->class->vft
[COLOR_string__String___43d
]))(var_name
, var47
) /* + on <var_name:String>*/;
8758 var52
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASendExpr__n_expr
]))(self
) /* n_expr on <self:ASendReassignFormExpr>*/;
8759 /* <var52:AExpr> isa ASelfExpr */
8760 cltype54
= type_parser_nodes__ASelfExpr
.color
;
8761 idtype55
= type_parser_nodes__ASelfExpr
.id
;
8762 if(cltype54
>= var52
->type
->table_size
) {
8765 var53
= var52
->type
->type_table
[cltype54
] == idtype55
;
8767 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>*/;
8768 var_wcallsite
= var56
;
8770 if (var_wcallsite
== NULL
) {
8771 var58
= 1; /* is null */
8773 var58
= 0; /* arg is null but recv is not */
8779 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASendReassignFormExpr__write_callsite_61d
]))(self
, var_wcallsite
) /* write_callsite= on <self:ASendReassignFormExpr>*/;
8780 var59
= ((val
* (*)(val
*))(var_wcallsite
->class->vft
[COLOR_typing__CallSite__msignature
]))(var_wcallsite
) /* msignature on <var_wcallsite:nullable CallSite(CallSite)>*/;
8781 var60
= ((val
* (*)(val
*))(var59
->class->vft
[COLOR_model__MSignature__mparameters
]))(var59
) /* mparameters on <var59:MSignature>*/;
8782 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var60
) /* last on <var60:Array[MParameter]>*/;
8783 var62
= ((val
* (*)(val
*))(var61
->class->vft
[COLOR_model__MParameter__mtype
]))(var61
) /* mtype on <var61:nullable Object(MParameter)>*/;
8784 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>*/;
8787 if (var_wtype
== NULL
) {
8788 var65
= 1; /* is null */
8790 var65
= 0; /* arg is null but recv is not */
8796 var66
= ((val
* (*)(val
*))(var_args
->class->vft
[COLOR_array__Collection__to_a
]))(var_args
) /* to_a on <var_args:Array[AExpr]>*/;
8798 var67
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AReassignFormExpr__n_value
]))(self
) /* n_value on <self:ASendReassignFormExpr>*/;
8799 ((void (*)(val
*, val
*))(var_args
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_args
, var67
) /* add on <var_args:Array[AExpr]>*/;
8800 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)>*/;
8803 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var69
) /* is_typed= on <self:ASendReassignFormExpr>*/;
8806 /* method typing#ASendReassignFormExpr#accept_typing for (self: Object, TypeVisitor) */
8807 void VIRTUAL_typing__ASendReassignFormExpr__accept_typing(val
* self
, val
* p0
) {
8808 typing__ASendReassignFormExpr__accept_typing(self
, p0
);
8811 /* method typing#ACallReassignExpr#property_name for (self: ACallReassignExpr): String */
8812 val
* typing__ACallReassignExpr__property_name(val
* self
) {
8813 val
* var
/* : String */;
8814 val
* var1
/* : TId */;
8815 val
* var2
/* : String */;
8816 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_id
]))(self
) /* n_id on <self:ACallReassignExpr>*/;
8817 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_parser_nodes__Token__text
]))(var1
) /* text on <var1:TId>*/;
8823 /* method typing#ACallReassignExpr#property_name for (self: Object): String */
8824 val
* VIRTUAL_typing__ACallReassignExpr__property_name(val
* self
) {
8825 val
* var
/* : String */;
8826 val
* var1
/* : String */;
8827 var1
= typing__ACallReassignExpr__property_name(self
);
8832 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: ACallReassignExpr): Array[AExpr] */
8833 val
* typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
8834 val
* var
/* : Array[AExpr] */;
8835 val
* var1
/* : AExprs */;
8836 val
* var2
/* : Array[AExpr] */;
8837 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ACallFormExpr__n_args
]))(self
) /* n_args on <self:ACallReassignExpr>*/;
8838 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8844 /* method typing#ACallReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8845 val
* VIRTUAL_typing__ACallReassignExpr__compute_raw_arguments(val
* self
) {
8846 val
* var
/* : Array[AExpr] */;
8847 val
* var1
/* : Array[AExpr] */;
8848 var1
= typing__ACallReassignExpr__compute_raw_arguments(self
);
8853 /* method typing#ABraReassignExpr#property_name for (self: ABraReassignExpr): String */
8854 val
* typing__ABraReassignExpr__property_name(val
* self
) {
8855 val
* var
/* : String */;
8856 static val
* varonce
;
8857 val
* var1
/* : String */;
8858 char* var2
/* : NativeString */;
8859 long var3
/* : Int */;
8860 val
* var4
/* : String */;
8866 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8875 /* method typing#ABraReassignExpr#property_name for (self: Object): String */
8876 val
* VIRTUAL_typing__ABraReassignExpr__property_name(val
* self
) {
8877 val
* var
/* : String */;
8878 val
* var1
/* : String */;
8879 var1
= typing__ABraReassignExpr__property_name(self
);
8884 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: ABraReassignExpr): Array[AExpr] */
8885 val
* typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
8886 val
* var
/* : Array[AExpr] */;
8887 val
* var1
/* : AExprs */;
8888 val
* var2
/* : Array[AExpr] */;
8889 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ABraFormExpr__n_args
]))(self
) /* n_args on <self:ABraReassignExpr>*/;
8890 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8896 /* method typing#ABraReassignExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8897 val
* VIRTUAL_typing__ABraReassignExpr__compute_raw_arguments(val
* self
) {
8898 val
* var
/* : Array[AExpr] */;
8899 val
* var1
/* : Array[AExpr] */;
8900 var1
= typing__ABraReassignExpr__compute_raw_arguments(self
);
8905 /* method typing#AInitExpr#property_name for (self: AInitExpr): String */
8906 val
* typing__AInitExpr__property_name(val
* self
) {
8907 val
* var
/* : String */;
8908 static val
* varonce
;
8909 val
* var1
/* : String */;
8910 char* var2
/* : NativeString */;
8911 long var3
/* : Int */;
8912 val
* var4
/* : String */;
8918 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8927 /* method typing#AInitExpr#property_name for (self: Object): String */
8928 val
* VIRTUAL_typing__AInitExpr__property_name(val
* self
) {
8929 val
* var
/* : String */;
8930 val
* var1
/* : String */;
8931 var1
= typing__AInitExpr__property_name(self
);
8936 /* method typing#AInitExpr#compute_raw_arguments for (self: AInitExpr): Array[AExpr] */
8937 val
* typing__AInitExpr__compute_raw_arguments(val
* self
) {
8938 val
* var
/* : Array[AExpr] */;
8939 val
* var1
/* : AExprs */;
8940 val
* var2
/* : Array[AExpr] */;
8941 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AInitExpr__n_args
]))(self
) /* n_args on <self:AInitExpr>*/;
8942 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_typing__AExprs__to_a
]))(var1
) /* to_a on <var1:AExprs>*/;
8948 /* method typing#AInitExpr#compute_raw_arguments for (self: Object): Array[AExpr] */
8949 val
* VIRTUAL_typing__AInitExpr__compute_raw_arguments(val
* self
) {
8950 val
* var
/* : Array[AExpr] */;
8951 val
* var1
/* : Array[AExpr] */;
8952 var1
= typing__AInitExpr__compute_raw_arguments(self
);
8957 /* method typing#AExprs#to_a for (self: AExprs): Array[AExpr] */
8958 val
* typing__AExprs__to_a(val
* self
) {
8959 val
* var
/* : Array[AExpr] */;
8960 val
* var1
/* : ANodes[AExpr] */;
8961 val
* var2
/* : Array[nullable Object] */;
8962 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__AExprs__n_exprs
]))(self
) /* n_exprs on <self:AExprs>*/;
8963 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_array__Collection__to_a
]))(var1
) /* to_a on <var1:ANodes[AExpr]>*/;
8969 /* method typing#AExprs#to_a for (self: Object): Array[AExpr] */
8970 val
* VIRTUAL_typing__AExprs__to_a(val
* self
) {
8971 val
* var
/* : Array[AExpr] */;
8972 val
* var1
/* : Array[AExpr] */;
8973 var1
= typing__AExprs__to_a(self
);
8978 /* method typing#ASuperExpr#callsite for (self: ASuperExpr): nullable CallSite */
8979 val
* typing__ASuperExpr__callsite(val
* self
) {
8980 val
* var
/* : nullable CallSite */;
8981 val
* var1
/* : nullable CallSite */;
8982 var1
= self
->attrs
[COLOR_typing__ASuperExpr___64dcallsite
].val
; /* @callsite on <self:ASuperExpr> */
8987 /* method typing#ASuperExpr#callsite for (self: Object): nullable CallSite */
8988 val
* VIRTUAL_typing__ASuperExpr__callsite(val
* self
) {
8989 val
* var
/* : nullable CallSite */;
8990 val
* var1
/* : nullable CallSite */;
8991 var1
= typing__ASuperExpr__callsite(self
);
8996 /* method typing#ASuperExpr#callsite= for (self: ASuperExpr, nullable CallSite) */
8997 void typing__ASuperExpr__callsite_61d(val
* self
, val
* p0
) {
8998 self
->attrs
[COLOR_typing__ASuperExpr___64dcallsite
].val
= p0
; /* @callsite on <self:ASuperExpr> */
9001 /* method typing#ASuperExpr#callsite= for (self: Object, nullable CallSite) */
9002 void VIRTUAL_typing__ASuperExpr__callsite_61d(val
* self
, val
* p0
) {
9003 typing__ASuperExpr__callsite_61d(self
, p0
);
9006 /* method typing#ASuperExpr#mpropdef for (self: ASuperExpr): nullable MMethodDef */
9007 val
* typing__ASuperExpr__mpropdef(val
* self
) {
9008 val
* var
/* : nullable MMethodDef */;
9009 val
* var1
/* : nullable MMethodDef */;
9010 var1
= self
->attrs
[COLOR_typing__ASuperExpr___64dmpropdef
].val
; /* @mpropdef on <self:ASuperExpr> */
9015 /* method typing#ASuperExpr#mpropdef for (self: Object): nullable MMethodDef */
9016 val
* VIRTUAL_typing__ASuperExpr__mpropdef(val
* self
) {
9017 val
* var
/* : nullable MMethodDef */;
9018 val
* var1
/* : nullable MMethodDef */;
9019 var1
= typing__ASuperExpr__mpropdef(self
);
9024 /* method typing#ASuperExpr#mpropdef= for (self: ASuperExpr, nullable MMethodDef) */
9025 void typing__ASuperExpr__mpropdef_61d(val
* self
, val
* p0
) {
9026 self
->attrs
[COLOR_typing__ASuperExpr___64dmpropdef
].val
= p0
; /* @mpropdef on <self:ASuperExpr> */
9029 /* method typing#ASuperExpr#mpropdef= for (self: Object, nullable MMethodDef) */
9030 void VIRTUAL_typing__ASuperExpr__mpropdef_61d(val
* self
, val
* p0
) {
9031 typing__ASuperExpr__mpropdef_61d(self
, p0
);
9034 /* method typing#ASuperExpr#accept_typing for (self: ASuperExpr, TypeVisitor) */
9035 void typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
9036 val
* var_v
/* var v: TypeVisitor */;
9037 val
* var
/* : AClassdef */;
9038 val
* var1
/* : nullable MClassDef */;
9039 val
* var2
/* : MClassType */;
9040 val
* var_recvtype
/* var recvtype: MClassType */;
9041 val
* var3
/* : MPropDef */;
9042 val
* var4
/* : MProperty */;
9043 val
* var_mproperty
/* var mproperty: MProperty */;
9044 short int var5
/* : Bool */;
9047 short int var6
/* : Bool */;
9048 static val
* varonce
;
9049 val
* var7
/* : String */;
9050 char* var8
/* : NativeString */;
9051 long var9
/* : Int */;
9052 val
* var10
/* : String */;
9053 val
* var11
/* : MModule */;
9054 val
* var12
/* : Array[MPropDef] */;
9055 val
* var_superprops
/* var superprops: Array[MMethodDef] */;
9056 long var13
/* : Int */;
9057 long var14
/* : Int */;
9058 short int var15
/* : Bool */;
9059 short int var17
/* : Bool */;
9060 short int var18
/* : Bool */;
9061 short int var19
/* : Bool */;
9062 short int var_
/* var : Bool */;
9063 val
* var20
/* : MPropDef */;
9064 short int var21
/* : Bool */;
9065 static val
* varonce22
;
9066 val
* var23
/* : String */;
9067 char* var24
/* : NativeString */;
9068 long var25
/* : Int */;
9069 val
* var26
/* : String */;
9070 static val
* varonce27
;
9071 val
* var28
/* : String */;
9072 char* var29
/* : NativeString */;
9073 long var30
/* : Int */;
9074 val
* var31
/* : String */;
9075 val
* var32
/* : Array[Object] */;
9076 long var33
/* : Int */;
9077 val
* var34
/* : NativeArray[Object] */;
9078 val
* var35
/* : String */;
9079 val
* var36
/* : nullable Object */;
9080 val
* var_superprop
/* var superprop: MMethodDef */;
9081 short int var37
/* : Bool */;
9082 val
* var38
/* : MSignature */;
9083 val
* var_msignature
/* var msignature: MSignature */;
9084 val
* var39
/* : AExprs */;
9085 val
* var40
/* : Array[AExpr] */;
9086 val
* var_args
/* var args: Array[AExpr] */;
9087 long var41
/* : Int */;
9088 long var42
/* : Int */;
9089 short int var43
/* : Bool */;
9090 short int var45
/* : Bool */;
9093 const char* var_class_name
;
9094 short int var48
/* : Bool */;
9095 val
* var49
/* : String */;
9096 short int var50
/* : Bool */;
9097 val
* var51
/* : nullable MType */;
9098 short int var52
/* : Bool */;
9099 val
* var53
/* : MPropDef */;
9100 short int var54
/* : Bool */;
9101 val
* var55
/* : MPropDef */;
9102 short int var56
/* : Bool */;
9105 const char* var_class_name59
;
9107 var
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__nclassdef
]))(var_v
) /* nclassdef on <var_v:TypeVisitor>*/;
9108 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_modelize_class__AClassdef__mclassdef
]))(var
) /* mclassdef on <var:AClassdef>*/;
9110 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
9111 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1429);
9114 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var1
) /* bound_mtype on <var1:nullable MClassDef>*/;
9116 var_recvtype
= var2
;
9117 var3
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9118 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var3
) /* mproperty on <var3:MPropDef>*/;
9119 var_mproperty
= var4
;
9120 /* <var_mproperty:MProperty> isa MMethod */
9121 cltype
= type_model__MMethod
.color
;
9122 idtype
= type_model__MMethod
.id
;
9123 if(cltype
>= var_mproperty
->type
->table_size
) {
9126 var5
= var_mproperty
->type
->type_table
[cltype
] == idtype
;
9133 var8
= "Error: super only usable in a method";
9135 var10
= string__NativeString__to_s_with_length(var8
, var9
);
9139 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var7
) /* error on <var_v:TypeVisitor>*/;
9143 var11
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mmodule
]))(var_v
) /* mmodule on <var_v:TypeVisitor>*/;
9144 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)>*/;
9145 var_superprops
= var12
;
9146 var13
= ((long (*)(val
*))(var_superprops
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_superprops
) /* length on <var_superprops:Array[MMethodDef]>*/;
9148 { /* Inline kernel#Int#== (var13,var14) */
9149 var17
= var13
== var14
;
9152 RET_LABEL16
:(void)0;
9155 var19
= ((short int (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MMethod__is_init
]))(var_mproperty
) /* is_init on <var_mproperty:MProperty(MMethod)>*/;
9158 var20
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9159 var21
= ((short int (*)(val
*))(var20
->class->vft
[COLOR_model__MPropDef__is_intro
]))(var20
) /* is_intro on <var20:MPropDef>*/;
9165 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__process_superinit
]))(self
, var_v
) /* process_superinit on <self:ASuperExpr>*/;
9172 var24
= "Error: No super method to call for ";
9174 var26
= string__NativeString__to_s_with_length(var24
, var25
);
9183 var31
= string__NativeString__to_s_with_length(var29
, var30
);
9187 var32
= NEW_array__Array(&type_array__Arraykernel__Object
);
9188 { /* var32 = array_instance Array[Object] */
9190 var34
= NEW_array__NativeArray(var33
, &type_array__NativeArraykernel__Object
);
9191 ((struct instance_array__NativeArray
*)var34
)->values
[0] = (val
*) var23
;
9192 ((struct instance_array__NativeArray
*)var34
)->values
[1] = (val
*) var_mproperty
;
9193 ((struct instance_array__NativeArray
*)var34
)->values
[2] = (val
*) var28
;
9194 ((void (*)(val
*, val
*, long))(var32
->class->vft
[COLOR_array__Array__with_native
]))(var32
, var34
, var33
) /* with_native on <var32:Array[Object]>*/;
9196 var35
= ((val
* (*)(val
*))(var32
->class->vft
[COLOR_string__Object__to_s
]))(var32
) /* to_s on <var32:Array[Object]>*/;
9197 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__error
]))(var_v
, self
, var35
) /* error on <var_v:TypeVisitor>*/;
9201 var36
= ((val
* (*)(val
*))(var_superprops
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_superprops
) /* first on <var_superprops:Array[MMethodDef]>*/;
9202 var_superprop
= var36
;
9204 var38
= ((val
* (*)(val
*, val
*, val
*, short int))(var_v
->class->vft
[COLOR_typing__TypeVisitor__resolve_signature_for
]))(var_v
, var_superprop
, var_recvtype
, var37
) /* resolve_signature_for on <var_v:TypeVisitor>*/;
9205 var_msignature
= var38
;
9206 var39
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_parser_nodes__ASuperExpr__n_args
]))(self
) /* n_args on <self:ASuperExpr>*/;
9207 var40
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_typing__AExprs__to_a
]))(var39
) /* to_a on <var39:AExprs>*/;
9209 var41
= ((long (*)(val
*))(var_args
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_args
) /* length on <var_args:Array[AExpr]>*/;
9211 { /* Inline kernel#Int#> (var41,var42) */
9212 /* Covariant cast for argument 0 (i) <var42:Int> isa OTHER */
9213 /* <var42:Int> isa OTHER */
9214 var45
= 1; /* easy <var42:Int> isa OTHER*/
9216 var_class_name
= type_kernel__Int
.name
;
9217 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
9218 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
9221 var48
= var41
> var42
;
9224 RET_LABEL44
:(void)0;
9227 var49
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__name
]))(var_mproperty
) /* name on <var_mproperty:MProperty(MMethod)>*/;
9228 var50
= ((short int (*)(val
*, val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__check_signature
]))(var_v
, self
, var_args
, var49
, var_msignature
) /* check_signature on <var_v:TypeVisitor>*/;
9232 var51
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
9233 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__AExpr__mtype_61d
]))(self
, var51
) /* mtype= on <self:ASuperExpr>*/;
9235 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_typing__AExpr__is_typed_61d
]))(self
, var52
) /* is_typed= on <self:ASuperExpr>*/;
9236 var53
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9238 ((void (*)(val
*, short int))(var53
->class->vft
[COLOR_modelize_property__MPropDef__has_supercall_61d
]))(var53
, var54
) /* has_supercall= on <var53:MPropDef>*/;
9239 var55
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_typing__TypeVisitor__mpropdef
]))(var_v
) /* mpropdef on <var_v:TypeVisitor>*/;
9240 /* <var55:MPropDef> isa MMethodDef */
9241 cltype57
= type_model__MMethodDef
.color
;
9242 idtype58
= type_model__MMethodDef
.id
;
9243 if(cltype57
>= var55
->type
->table_size
) {
9246 var56
= var55
->type
->type_table
[cltype57
] == idtype58
;
9249 var_class_name59
= var55
== NULL ?
"null" : var55
->type
->name
;
9250 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name59
);
9251 fprintf(stderr
, " (%s:%d)\n", "src/typing.nit", 1455);
9254 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_typing__ASuperExpr__mpropdef_61d
]))(self
, var55
) /* mpropdef= on <self:ASuperExpr>*/;
9257 /* method typing#ASuperExpr#accept_typing for (self: Object, TypeVisitor) */
9258 void VIRTUAL_typing__ASuperExpr__accept_typing(val
* self
, val
* p0
) {
9259 typing__ASuperExpr__accept_typing(self
, p0
);