1 #include "model.sep.0.h"
2 /* method model#Model#mclasses for (self: Model): Array[MClass] */
3 val
* model__Model__mclasses(val
* self
) {
4 val
* var
/* : Array[MClass] */;
5 val
* var1
/* : Array[MClass] */;
6 var1
= self
->attrs
[COLOR_model__Model___64dmclasses
].val
; /* @mclasses on <self:Model> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclasses");
9 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 38);
16 /* method model#Model#mclasses for (self: Object): Array[MClass] */
17 val
* VIRTUAL_model__Model__mclasses(val
* self
) {
18 val
* var
/* : Array[MClass] */;
19 val
* var1
/* : Array[MClass] */;
20 var1
= model__Model__mclasses(self
);
25 /* method model#Model#mclasses= for (self: Model, Array[MClass]) */
26 void model__Model__mclasses_61d(val
* self
, val
* p0
) {
27 self
->attrs
[COLOR_model__Model___64dmclasses
].val
= p0
; /* @mclasses on <self:Model> */
30 /* method model#Model#mclasses= for (self: Object, Array[MClass]) */
31 void VIRTUAL_model__Model__mclasses_61d(val
* self
, val
* p0
) {
32 model__Model__mclasses_61d(self
, p0
);
35 /* method model#Model#mproperties for (self: Model): Array[MProperty] */
36 val
* model__Model__mproperties(val
* self
) {
37 val
* var
/* : Array[MProperty] */;
38 val
* var1
/* : Array[MProperty] */;
39 var1
= self
->attrs
[COLOR_model__Model___64dmproperties
].val
; /* @mproperties on <self:Model> */
41 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperties");
42 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 41);
49 /* method model#Model#mproperties for (self: Object): Array[MProperty] */
50 val
* VIRTUAL_model__Model__mproperties(val
* self
) {
51 val
* var
/* : Array[MProperty] */;
52 val
* var1
/* : Array[MProperty] */;
53 var1
= model__Model__mproperties(self
);
58 /* method model#Model#mproperties= for (self: Model, Array[MProperty]) */
59 void model__Model__mproperties_61d(val
* self
, val
* p0
) {
60 self
->attrs
[COLOR_model__Model___64dmproperties
].val
= p0
; /* @mproperties on <self:Model> */
63 /* method model#Model#mproperties= for (self: Object, Array[MProperty]) */
64 void VIRTUAL_model__Model__mproperties_61d(val
* self
, val
* p0
) {
65 model__Model__mproperties_61d(self
, p0
);
68 /* method model#Model#mclassdef_hierarchy for (self: Model): POSet[MClassDef] */
69 val
* model__Model__mclassdef_hierarchy(val
* self
) {
70 val
* var
/* : POSet[MClassDef] */;
71 val
* var1
/* : POSet[MClassDef] */;
72 var1
= self
->attrs
[COLOR_model__Model___64dmclassdef_hierarchy
].val
; /* @mclassdef_hierarchy on <self:Model> */
74 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclassdef_hierarchy");
75 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 44);
82 /* method model#Model#mclassdef_hierarchy for (self: Object): POSet[MClassDef] */
83 val
* VIRTUAL_model__Model__mclassdef_hierarchy(val
* self
) {
84 val
* var
/* : POSet[MClassDef] */;
85 val
* var1
/* : POSet[MClassDef] */;
86 var1
= model__Model__mclassdef_hierarchy(self
);
91 /* method model#Model#mclassdef_hierarchy= for (self: Model, POSet[MClassDef]) */
92 void model__Model__mclassdef_hierarchy_61d(val
* self
, val
* p0
) {
93 self
->attrs
[COLOR_model__Model___64dmclassdef_hierarchy
].val
= p0
; /* @mclassdef_hierarchy on <self:Model> */
96 /* method model#Model#mclassdef_hierarchy= for (self: Object, POSet[MClassDef]) */
97 void VIRTUAL_model__Model__mclassdef_hierarchy_61d(val
* self
, val
* p0
) {
98 model__Model__mclassdef_hierarchy_61d(self
, p0
);
101 /* method model#Model#intro_mtype_specialization_hierarchy for (self: Model): POSet[MClassType] */
102 val
* model__Model__intro_mtype_specialization_hierarchy(val
* self
) {
103 val
* var
/* : POSet[MClassType] */;
104 val
* var1
/* : POSet[MClassType] */;
105 var1
= self
->attrs
[COLOR_model__Model___64dintro_mtype_specialization_hierarchy
].val
; /* @intro_mtype_specialization_hierarchy on <self:Model> */
107 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @intro_mtype_specialization_hierarchy");
108 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 50);
115 /* method model#Model#intro_mtype_specialization_hierarchy for (self: Object): POSet[MClassType] */
116 val
* VIRTUAL_model__Model__intro_mtype_specialization_hierarchy(val
* self
) {
117 val
* var
/* : POSet[MClassType] */;
118 val
* var1
/* : POSet[MClassType] */;
119 var1
= model__Model__intro_mtype_specialization_hierarchy(self
);
124 /* method model#Model#intro_mtype_specialization_hierarchy= for (self: Model, POSet[MClassType]) */
125 void model__Model__intro_mtype_specialization_hierarchy_61d(val
* self
, val
* p0
) {
126 self
->attrs
[COLOR_model__Model___64dintro_mtype_specialization_hierarchy
].val
= p0
; /* @intro_mtype_specialization_hierarchy on <self:Model> */
129 /* method model#Model#intro_mtype_specialization_hierarchy= for (self: Object, POSet[MClassType]) */
130 void VIRTUAL_model__Model__intro_mtype_specialization_hierarchy_61d(val
* self
, val
* p0
) {
131 model__Model__intro_mtype_specialization_hierarchy_61d(self
, p0
);
134 /* method model#Model#full_mtype_specialization_hierarchy for (self: Model): POSet[MClassType] */
135 val
* model__Model__full_mtype_specialization_hierarchy(val
* self
) {
136 val
* var
/* : POSet[MClassType] */;
137 val
* var1
/* : POSet[MClassType] */;
138 var1
= self
->attrs
[COLOR_model__Model___64dfull_mtype_specialization_hierarchy
].val
; /* @full_mtype_specialization_hierarchy on <self:Model> */
140 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @full_mtype_specialization_hierarchy");
141 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 61);
148 /* method model#Model#full_mtype_specialization_hierarchy for (self: Object): POSet[MClassType] */
149 val
* VIRTUAL_model__Model__full_mtype_specialization_hierarchy(val
* self
) {
150 val
* var
/* : POSet[MClassType] */;
151 val
* var1
/* : POSet[MClassType] */;
152 var1
= model__Model__full_mtype_specialization_hierarchy(self
);
157 /* method model#Model#full_mtype_specialization_hierarchy= for (self: Model, POSet[MClassType]) */
158 void model__Model__full_mtype_specialization_hierarchy_61d(val
* self
, val
* p0
) {
159 self
->attrs
[COLOR_model__Model___64dfull_mtype_specialization_hierarchy
].val
= p0
; /* @full_mtype_specialization_hierarchy on <self:Model> */
162 /* method model#Model#full_mtype_specialization_hierarchy= for (self: Object, POSet[MClassType]) */
163 void VIRTUAL_model__Model__full_mtype_specialization_hierarchy_61d(val
* self
, val
* p0
) {
164 model__Model__full_mtype_specialization_hierarchy_61d(self
, p0
);
167 /* method model#Model#mclasses_by_name for (self: Model): MultiHashMap[String, MClass] */
168 val
* model__Model__mclasses_by_name(val
* self
) {
169 val
* var
/* : MultiHashMap[String, MClass] */;
170 val
* var1
/* : MultiHashMap[String, MClass] */;
171 var1
= self
->attrs
[COLOR_model__Model___64dmclasses_by_name
].val
; /* @mclasses_by_name on <self:Model> */
173 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclasses_by_name");
174 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 70);
181 /* method model#Model#mclasses_by_name for (self: Object): MultiHashMap[String, MClass] */
182 val
* VIRTUAL_model__Model__mclasses_by_name(val
* self
) {
183 val
* var
/* : MultiHashMap[String, MClass] */;
184 val
* var1
/* : MultiHashMap[String, MClass] */;
185 var1
= model__Model__mclasses_by_name(self
);
190 /* method model#Model#mclasses_by_name= for (self: Model, MultiHashMap[String, MClass]) */
191 void model__Model__mclasses_by_name_61d(val
* self
, val
* p0
) {
192 self
->attrs
[COLOR_model__Model___64dmclasses_by_name
].val
= p0
; /* @mclasses_by_name on <self:Model> */
195 /* method model#Model#mclasses_by_name= for (self: Object, MultiHashMap[String, MClass]) */
196 void VIRTUAL_model__Model__mclasses_by_name_61d(val
* self
, val
* p0
) {
197 model__Model__mclasses_by_name_61d(self
, p0
);
200 /* method model#Model#get_mclasses_by_name for (self: Model, String): nullable Array[MClass] */
201 val
* model__Model__get_mclasses_by_name(val
* self
, val
* p0
) {
202 val
* var
/* : nullable Array[MClass] */;
203 val
* var_name
/* var name: String */;
204 val
* var1
/* : MultiHashMap[String, MClass] */;
205 short int var2
/* : Bool */;
206 val
* var3
/* : MultiHashMap[String, MClass] */;
207 val
* var4
/* : nullable Object */;
208 val
* var5
/* : null */;
210 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Model__mclasses_by_name
]))(self
) /* mclasses_by_name on <self:Model>*/;
211 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_name
) /* has_key on <var1:MultiHashMap[String, MClass]>*/;
213 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Model__mclasses_by_name
]))(self
) /* mclasses_by_name on <self:Model>*/;
214 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var3
, var_name
) /* [] on <var3:MultiHashMap[String, MClass]>*/;
225 /* method model#Model#get_mclasses_by_name for (self: Object, String): nullable Array[MClass] */
226 val
* VIRTUAL_model__Model__get_mclasses_by_name(val
* self
, val
* p0
) {
227 val
* var
/* : nullable Array[MClass] */;
228 val
* var1
/* : nullable Array[MClass] */;
229 var1
= model__Model__get_mclasses_by_name(self
, p0
);
234 /* method model#Model#mproperties_by_name for (self: Model): MultiHashMap[String, MProperty] */
235 val
* model__Model__mproperties_by_name(val
* self
) {
236 val
* var
/* : MultiHashMap[String, MProperty] */;
237 val
* var1
/* : MultiHashMap[String, MProperty] */;
238 var1
= self
->attrs
[COLOR_model__Model___64dmproperties_by_name
].val
; /* @mproperties_by_name on <self:Model> */
240 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperties_by_name");
241 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 88);
248 /* method model#Model#mproperties_by_name for (self: Object): MultiHashMap[String, MProperty] */
249 val
* VIRTUAL_model__Model__mproperties_by_name(val
* self
) {
250 val
* var
/* : MultiHashMap[String, MProperty] */;
251 val
* var1
/* : MultiHashMap[String, MProperty] */;
252 var1
= model__Model__mproperties_by_name(self
);
257 /* method model#Model#mproperties_by_name= for (self: Model, MultiHashMap[String, MProperty]) */
258 void model__Model__mproperties_by_name_61d(val
* self
, val
* p0
) {
259 self
->attrs
[COLOR_model__Model___64dmproperties_by_name
].val
= p0
; /* @mproperties_by_name on <self:Model> */
262 /* method model#Model#mproperties_by_name= for (self: Object, MultiHashMap[String, MProperty]) */
263 void VIRTUAL_model__Model__mproperties_by_name_61d(val
* self
, val
* p0
) {
264 model__Model__mproperties_by_name_61d(self
, p0
);
267 /* method model#Model#get_mproperties_by_name for (self: Model, String): nullable Array[MProperty] */
268 val
* model__Model__get_mproperties_by_name(val
* self
, val
* p0
) {
269 val
* var
/* : nullable Array[MProperty] */;
270 val
* var_name
/* var name: String */;
271 val
* var1
/* : MultiHashMap[String, MProperty] */;
272 short int var2
/* : Bool */;
273 short int var3
/* : Bool */;
274 val
* var4
/* : null */;
275 val
* var5
/* : MultiHashMap[String, MProperty] */;
276 val
* var6
/* : nullable Object */;
278 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Model__mproperties_by_name
]))(self
) /* mproperties_by_name on <self:Model>*/;
279 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_name
) /* has_key on <var1:MultiHashMap[String, MProperty]>*/;
286 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Model__mproperties_by_name
]))(self
) /* mproperties_by_name on <self:Model>*/;
287 var6
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var5
, var_name
) /* [] on <var5:MultiHashMap[String, MProperty]>*/;
294 /* method model#Model#get_mproperties_by_name for (self: Object, String): nullable Array[MProperty] */
295 val
* VIRTUAL_model__Model__get_mproperties_by_name(val
* self
, val
* p0
) {
296 val
* var
/* : nullable Array[MProperty] */;
297 val
* var1
/* : nullable Array[MProperty] */;
298 var1
= model__Model__get_mproperties_by_name(self
, p0
);
303 /* method model#Model#null_type for (self: Model): MNullType */
304 val
* model__Model__null_type(val
* self
) {
305 val
* var
/* : MNullType */;
306 val
* var1
/* : MNullType */;
307 var1
= self
->attrs
[COLOR_model__Model___64dnull_type
].val
; /* @null_type on <self:Model> */
309 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @null_type");
310 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 106);
317 /* method model#Model#null_type for (self: Object): MNullType */
318 val
* VIRTUAL_model__Model__null_type(val
* self
) {
319 val
* var
/* : MNullType */;
320 val
* var1
/* : MNullType */;
321 var1
= model__Model__null_type(self
);
326 /* method model#Model#null_type= for (self: Model, MNullType) */
327 void model__Model__null_type_61d(val
* self
, val
* p0
) {
328 self
->attrs
[COLOR_model__Model___64dnull_type
].val
= p0
; /* @null_type on <self:Model> */
331 /* method model#Model#null_type= for (self: Object, MNullType) */
332 void VIRTUAL_model__Model__null_type_61d(val
* self
, val
* p0
) {
333 model__Model__null_type_61d(self
, p0
);
336 /* method model#MModule#intro_mclasses for (self: MModule): Array[MClass] */
337 val
* model__MModule__intro_mclasses(val
* self
) {
338 val
* var
/* : Array[MClass] */;
339 val
* var1
/* : Array[MClass] */;
340 var1
= self
->attrs
[COLOR_model__MModule___64dintro_mclasses
].val
; /* @intro_mclasses on <self:MModule> */
342 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @intro_mclasses");
343 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 111);
350 /* method model#MModule#intro_mclasses for (self: Object): Array[MClass] */
351 val
* VIRTUAL_model__MModule__intro_mclasses(val
* self
) {
352 val
* var
/* : Array[MClass] */;
353 val
* var1
/* : Array[MClass] */;
354 var1
= model__MModule__intro_mclasses(self
);
359 /* method model#MModule#intro_mclasses= for (self: MModule, Array[MClass]) */
360 void model__MModule__intro_mclasses_61d(val
* self
, val
* p0
) {
361 self
->attrs
[COLOR_model__MModule___64dintro_mclasses
].val
= p0
; /* @intro_mclasses on <self:MModule> */
364 /* method model#MModule#intro_mclasses= for (self: Object, Array[MClass]) */
365 void VIRTUAL_model__MModule__intro_mclasses_61d(val
* self
, val
* p0
) {
366 model__MModule__intro_mclasses_61d(self
, p0
);
369 /* method model#MModule#mclassdefs for (self: MModule): Array[MClassDef] */
370 val
* model__MModule__mclassdefs(val
* self
) {
371 val
* var
/* : Array[MClassDef] */;
372 val
* var1
/* : Array[MClassDef] */;
373 var1
= self
->attrs
[COLOR_model__MModule___64dmclassdefs
].val
; /* @mclassdefs on <self:MModule> */
375 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclassdefs");
376 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 114);
383 /* method model#MModule#mclassdefs for (self: Object): Array[MClassDef] */
384 val
* VIRTUAL_model__MModule__mclassdefs(val
* self
) {
385 val
* var
/* : Array[MClassDef] */;
386 val
* var1
/* : Array[MClassDef] */;
387 var1
= model__MModule__mclassdefs(self
);
392 /* method model#MModule#mclassdefs= for (self: MModule, Array[MClassDef]) */
393 void model__MModule__mclassdefs_61d(val
* self
, val
* p0
) {
394 self
->attrs
[COLOR_model__MModule___64dmclassdefs
].val
= p0
; /* @mclassdefs on <self:MModule> */
397 /* method model#MModule#mclassdefs= for (self: Object, Array[MClassDef]) */
398 void VIRTUAL_model__MModule__mclassdefs_61d(val
* self
, val
* p0
) {
399 model__MModule__mclassdefs_61d(self
, p0
);
402 /* method model#MModule#has_mclass for (self: MModule, MClass): Bool */
403 short int model__MModule__has_mclass(val
* self
, val
* p0
) {
404 short int var
/* : Bool */;
405 val
* var_mclass
/* var mclass: MClass */;
406 val
* var1
/* : POSetElement[MModule] */;
407 val
* var2
/* : MModule */;
408 short int var3
/* : Bool */;
410 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__MModule__in_importation
]))(self
) /* in_importation on <self:MModule>*/;
411 var2
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var_mclass
) /* intro_mmodule on <var_mclass:MClass>*/;
412 var3
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var1
, var2
) /* <= on <var1:POSetElement[MModule]>*/;
418 /* method model#MModule#has_mclass for (self: Object, MClass): Bool */
419 short int VIRTUAL_model__MModule__has_mclass(val
* self
, val
* p0
) {
420 short int var
/* : Bool */;
421 short int var1
/* : Bool */;
422 var1
= model__MModule__has_mclass(self
, p0
);
427 /* method model#MModule#flatten_mclass_hierarchy for (self: MModule): POSet[MClass] */
428 val
* model__MModule__flatten_mclass_hierarchy(val
* self
) {
429 val
* var
/* : POSet[MClass] */;
430 val
* var1
/* : nullable POSet[MClass] */;
431 val
* var_res
/* var res: nullable POSet[MClass] */;
432 val
* var2
/* : null */;
433 short int var3
/* : Bool */;
434 val
* var4
/* : POSet[MClass] */;
435 val
* var5
/* : POSetElement[MModule] */;
436 val
* var6
/* : Collection[Object] */;
437 val
* var7
/* : Iterator[nullable Object] */;
438 short int var8
/* : Bool */;
439 val
* var9
/* : nullable Object */;
440 val
* var_m
/* var m: MModule */;
441 val
* var10
/* : Array[MClassDef] */;
442 val
* var11
/* : Iterator[nullable Object] */;
443 short int var12
/* : Bool */;
444 val
* var13
/* : nullable Object */;
445 val
* var_cd
/* var cd: MClassDef */;
446 val
* var14
/* : MClass */;
447 val
* var_c
/* var c: MClass */;
448 val
* var15
/* : POSetElement[Object] */;
449 val
* var16
/* : Array[MClassType] */;
450 val
* var17
/* : Iterator[nullable Object] */;
451 short int var18
/* : Bool */;
452 val
* var19
/* : nullable Object */;
453 val
* var_s
/* var s: MClassType */;
454 val
* var20
/* : MClass */;
455 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy_cache
]))(self
) /* flatten_mclass_hierarchy_cache on <self:MModule>*/;
458 if (var_res
== NULL
) {
459 var3
= 0; /* is null */
461 var3
= 1; /* arg is null and recv is not */
468 var4
= NEW_poset__POSet(&type_poset__POSetmodel__MClass
);
469 ((void (*)(val
*))(var4
->class->vft
[COLOR_poset__POSet__init
]))(var4
) /* init on <var4:POSet[MClass]>*/;
470 CHECK_NEW_poset__POSet(var4
);
472 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__MModule__in_importation
]))(self
) /* in_importation on <self:MModule>*/;
473 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var5
) /* greaters on <var5:POSetElement[MModule]>*/;
474 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Collection[Object](Collection[MModule])>*/;
476 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
478 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
480 var10
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_m
) /* mclassdefs on <var_m:MModule>*/;
481 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[MClassDef]>*/;
483 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
485 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
487 var14
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd
) /* mclass on <var_cd:MClassDef>*/;
489 var15
= ((val
* (*)(val
*, val
*))(var_res
->class->vft
[COLOR_poset__POSet__add_node
]))(var_res
, var_c
) /* add_node on <var_res:nullable POSet[MClass](POSet[MClass])>*/;
491 var16
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var_cd
) /* supertypes on <var_cd:MClassDef>*/;
492 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var16
) /* iterator on <var16:Array[MClassType]>*/;
494 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var17
) /* is_ok on <var17:Iterator[nullable Object]>*/;
496 var19
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var17
) /* item on <var17:Iterator[nullable Object]>*/;
498 var20
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_model__MClassType__mclass
]))(var_s
) /* mclass on <var_s:MClassType>*/;
499 ((void (*)(val
*, val
*, val
*))(var_res
->class->vft
[COLOR_poset__POSet__add_edge
]))(var_res
, var_c
, var20
) /* add_edge on <var_res:nullable POSet[MClass](POSet[MClass])>*/;
500 CONTINUE_label
: (void)0;
501 ((void (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var17
) /* next on <var17:Iterator[nullable Object]>*/;
503 BREAK_label
: (void)0;
504 CONTINUE_label21
: (void)0;
505 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
507 BREAK_label21
: (void)0;
508 CONTINUE_label22
: (void)0;
509 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
511 BREAK_label22
: (void)0;
512 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy_cache_61d
]))(self
, var_res
) /* flatten_mclass_hierarchy_cache= on <self:MModule>*/;
518 /* method model#MModule#flatten_mclass_hierarchy for (self: Object): POSet[MClass] */
519 val
* VIRTUAL_model__MModule__flatten_mclass_hierarchy(val
* self
) {
520 val
* var
/* : POSet[MClass] */;
521 val
* var1
/* : POSet[MClass] */;
522 var1
= model__MModule__flatten_mclass_hierarchy(self
);
527 /* method model#MModule#linearize_mclasses for (self: MModule, Array[MClass]) */
528 void model__MModule__linearize_mclasses(val
* self
, val
* p0
) {
529 val
* var_mclasses
/* var mclasses: Array[MClass] */;
530 val
* var
/* : POSet[MClass] */;
532 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(self
) /* flatten_mclass_hierarchy on <self:MModule>*/;
533 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var
, var_mclasses
) /* sort on <var:POSet[MClass]>*/;
536 /* method model#MModule#linearize_mclasses for (self: Object, Array[MClass]) */
537 void VIRTUAL_model__MModule__linearize_mclasses(val
* self
, val
* p0
) {
538 model__MModule__linearize_mclasses(self
, p0
);
541 /* method model#MModule#linearize_mclassdefs for (self: MModule, Array[MClassDef]) */
542 void model__MModule__linearize_mclassdefs(val
* self
, val
* p0
) {
543 val
* var_mclassdefs
/* var mclassdefs: Array[MClassDef] */;
544 val
* var
/* : MClassDefSorter */;
545 val
* var_sorter
/* var sorter: MClassDefSorter */;
547 var
= NEW_model__MClassDefSorter(&type_model__MClassDefSorter
);
548 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_model__MClassDefSorter__init
]))(var
, self
) /* init on <var:MClassDefSorter>*/;
549 CHECK_NEW_model__MClassDefSorter(var
);
551 ((void (*)(val
*, val
*))(var_sorter
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var_sorter
, var_mclassdefs
) /* sort on <var_sorter:MClassDefSorter>*/;
554 /* method model#MModule#linearize_mclassdefs for (self: Object, Array[MClassDef]) */
555 void VIRTUAL_model__MModule__linearize_mclassdefs(val
* self
, val
* p0
) {
556 model__MModule__linearize_mclassdefs(self
, p0
);
559 /* method model#MModule#linearize_mpropdefs for (self: MModule, Array[MPropDef]) */
560 void model__MModule__linearize_mpropdefs(val
* self
, val
* p0
) {
561 val
* var_mpropdefs
/* var mpropdefs: Array[MPropDef] */;
562 val
* var
/* : MPropDefSorter */;
563 val
* var_sorter
/* var sorter: MPropDefSorter */;
565 var
= NEW_model__MPropDefSorter(&type_model__MPropDefSorter
);
566 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_model__MPropDefSorter__init
]))(var
, self
) /* init on <var:MPropDefSorter>*/;
567 CHECK_NEW_model__MPropDefSorter(var
);
569 ((void (*)(val
*, val
*))(var_sorter
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var_sorter
, var_mpropdefs
) /* sort on <var_sorter:MPropDefSorter>*/;
572 /* method model#MModule#linearize_mpropdefs for (self: Object, Array[MPropDef]) */
573 void VIRTUAL_model__MModule__linearize_mpropdefs(val
* self
, val
* p0
) {
574 model__MModule__linearize_mpropdefs(self
, p0
);
577 /* method model#MModule#flatten_mclass_hierarchy_cache for (self: MModule): nullable POSet[MClass] */
578 val
* model__MModule__flatten_mclass_hierarchy_cache(val
* self
) {
579 val
* var
/* : nullable POSet[MClass] */;
580 val
* var1
/* : nullable POSet[MClass] */;
581 var1
= self
->attrs
[COLOR_model__MModule___64dflatten_mclass_hierarchy_cache
].val
; /* @flatten_mclass_hierarchy_cache on <self:MModule> */
586 /* method model#MModule#flatten_mclass_hierarchy_cache for (self: Object): nullable POSet[MClass] */
587 val
* VIRTUAL_model__MModule__flatten_mclass_hierarchy_cache(val
* self
) {
588 val
* var
/* : nullable POSet[MClass] */;
589 val
* var1
/* : nullable POSet[MClass] */;
590 var1
= model__MModule__flatten_mclass_hierarchy_cache(self
);
595 /* method model#MModule#flatten_mclass_hierarchy_cache= for (self: MModule, nullable POSet[MClass]) */
596 void model__MModule__flatten_mclass_hierarchy_cache_61d(val
* self
, val
* p0
) {
597 self
->attrs
[COLOR_model__MModule___64dflatten_mclass_hierarchy_cache
].val
= p0
; /* @flatten_mclass_hierarchy_cache on <self:MModule> */
600 /* method model#MModule#flatten_mclass_hierarchy_cache= for (self: Object, nullable POSet[MClass]) */
601 void VIRTUAL_model__MModule__flatten_mclass_hierarchy_cache_61d(val
* self
, val
* p0
) {
602 model__MModule__flatten_mclass_hierarchy_cache_61d(self
, p0
);
605 /* method model#MModule#object_type for (self: MModule): MClassType */
606 val
* model__MModule__object_type(val
* self
) {
607 val
* var
/* : MClassType */;
608 val
* var1
/* : nullable MClassType */;
609 val
* var_res
/* var res: nullable MClassType */;
610 val
* var2
/* : null */;
611 short int var3
/* : Bool */;
613 val
* var4
/* : String */;
614 char* var5
/* : NativeString */;
615 long var6
/* : Int */;
616 val
* var7
/* : String */;
617 val
* var8
/* : MClass */;
618 val
* var9
/* : MClassType */;
619 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MModule__object_type_cache
]))(self
) /* object_type_cache on <self:MModule>*/;
622 if (var_res
== NULL
) {
623 var3
= 0; /* is null */
625 var3
= 1; /* arg is null and recv is not */
637 var7
= string__NativeString__to_s_with_length(var5
, var6
);
641 var8
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(self
, var4
) /* get_primitive_class on <self:MModule>*/;
642 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MClass__mclass_type
]))(var8
) /* mclass_type on <var8:MClass>*/;
644 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__object_type_cache_61d
]))(self
, var_res
) /* object_type_cache= on <self:MModule>*/;
650 /* method model#MModule#object_type for (self: Object): MClassType */
651 val
* VIRTUAL_model__MModule__object_type(val
* self
) {
652 val
* var
/* : MClassType */;
653 val
* var1
/* : MClassType */;
654 var1
= model__MModule__object_type(self
);
659 /* method model#MModule#object_type_cache for (self: MModule): nullable MClassType */
660 val
* model__MModule__object_type_cache(val
* self
) {
661 val
* var
/* : nullable MClassType */;
662 val
* var1
/* : nullable MClassType */;
663 var1
= self
->attrs
[COLOR_model__MModule___64dobject_type_cache
].val
; /* @object_type_cache on <self:MModule> */
668 /* method model#MModule#object_type_cache for (self: Object): nullable MClassType */
669 val
* VIRTUAL_model__MModule__object_type_cache(val
* self
) {
670 val
* var
/* : nullable MClassType */;
671 val
* var1
/* : nullable MClassType */;
672 var1
= model__MModule__object_type_cache(self
);
677 /* method model#MModule#object_type_cache= for (self: MModule, nullable MClassType) */
678 void model__MModule__object_type_cache_61d(val
* self
, val
* p0
) {
679 self
->attrs
[COLOR_model__MModule___64dobject_type_cache
].val
= p0
; /* @object_type_cache on <self:MModule> */
682 /* method model#MModule#object_type_cache= for (self: Object, nullable MClassType) */
683 void VIRTUAL_model__MModule__object_type_cache_61d(val
* self
, val
* p0
) {
684 model__MModule__object_type_cache_61d(self
, p0
);
687 /* method model#MModule#bool_type for (self: MModule): MClassType */
688 val
* model__MModule__bool_type(val
* self
) {
689 val
* var
/* : MClassType */;
690 val
* var1
/* : nullable MClassType */;
691 val
* var_res
/* var res: nullable MClassType */;
692 val
* var2
/* : null */;
693 short int var3
/* : Bool */;
695 val
* var4
/* : String */;
696 char* var5
/* : NativeString */;
697 long var6
/* : Int */;
698 val
* var7
/* : String */;
699 val
* var8
/* : MClass */;
700 val
* var9
/* : MClassType */;
701 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MModule__bool_type_cache
]))(self
) /* bool_type_cache on <self:MModule>*/;
704 if (var_res
== NULL
) {
705 var3
= 0; /* is null */
707 var3
= 1; /* arg is null and recv is not */
719 var7
= string__NativeString__to_s_with_length(var5
, var6
);
723 var8
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(self
, var4
) /* get_primitive_class on <self:MModule>*/;
724 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MClass__mclass_type
]))(var8
) /* mclass_type on <var8:MClass>*/;
726 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__bool_type_cache_61d
]))(self
, var_res
) /* bool_type_cache= on <self:MModule>*/;
732 /* method model#MModule#bool_type for (self: Object): MClassType */
733 val
* VIRTUAL_model__MModule__bool_type(val
* self
) {
734 val
* var
/* : MClassType */;
735 val
* var1
/* : MClassType */;
736 var1
= model__MModule__bool_type(self
);
741 /* method model#MModule#bool_type_cache for (self: MModule): nullable MClassType */
742 val
* model__MModule__bool_type_cache(val
* self
) {
743 val
* var
/* : nullable MClassType */;
744 val
* var1
/* : nullable MClassType */;
745 var1
= self
->attrs
[COLOR_model__MModule___64dbool_type_cache
].val
; /* @bool_type_cache on <self:MModule> */
750 /* method model#MModule#bool_type_cache for (self: Object): nullable MClassType */
751 val
* VIRTUAL_model__MModule__bool_type_cache(val
* self
) {
752 val
* var
/* : nullable MClassType */;
753 val
* var1
/* : nullable MClassType */;
754 var1
= model__MModule__bool_type_cache(self
);
759 /* method model#MModule#bool_type_cache= for (self: MModule, nullable MClassType) */
760 void model__MModule__bool_type_cache_61d(val
* self
, val
* p0
) {
761 self
->attrs
[COLOR_model__MModule___64dbool_type_cache
].val
= p0
; /* @bool_type_cache on <self:MModule> */
764 /* method model#MModule#bool_type_cache= for (self: Object, nullable MClassType) */
765 void VIRTUAL_model__MModule__bool_type_cache_61d(val
* self
, val
* p0
) {
766 model__MModule__bool_type_cache_61d(self
, p0
);
769 /* method model#MModule#sys_type for (self: MModule): nullable MClassType */
770 val
* model__MModule__sys_type(val
* self
) {
771 val
* var
/* : nullable MClassType */;
772 val
* var1
/* : Model */;
774 val
* var2
/* : String */;
775 char* var3
/* : NativeString */;
776 long var4
/* : Int */;
777 val
* var5
/* : String */;
778 val
* var6
/* : nullable Array[MClass] */;
779 val
* var_clas
/* var clas: nullable Array[MClass] */;
780 val
* var7
/* : null */;
781 short int var8
/* : Bool */;
782 val
* var9
/* : null */;
783 static val
* varonce10
;
784 val
* var11
/* : String */;
785 char* var12
/* : NativeString */;
786 long var13
/* : Int */;
787 val
* var14
/* : String */;
788 val
* var15
/* : MClass */;
789 val
* var16
/* : MClassType */;
790 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__MModule__model
]))(self
) /* model on <self:MModule>*/;
796 var5
= string__NativeString__to_s_with_length(var3
, var4
);
800 var6
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var1
, var2
) /* get_mclasses_by_name on <var1:Model>*/;
803 if (var_clas
== NULL
) {
804 var8
= 1; /* is null */
806 var8
= 0; /* arg is null but recv is not */
819 var14
= string__NativeString__to_s_with_length(var12
, var13
);
823 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(self
, var11
) /* get_primitive_class on <self:MModule>*/;
824 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClass__mclass_type
]))(var15
) /* mclass_type on <var15:MClass>*/;
830 /* method model#MModule#sys_type for (self: Object): nullable MClassType */
831 val
* VIRTUAL_model__MModule__sys_type(val
* self
) {
832 val
* var
/* : nullable MClassType */;
833 val
* var1
/* : nullable MClassType */;
834 var1
= model__MModule__sys_type(self
);
839 /* method model#MModule#get_primitive_class for (self: MModule, String): MClass */
840 val
* model__MModule__get_primitive_class(val
* self
, val
* p0
) {
841 val
* var
/* : MClass */;
842 val
* var_name
/* var name: String */;
843 val
* var1
/* : Model */;
844 val
* var2
/* : nullable Array[MClass] */;
845 val
* var_cla
/* var cla: nullable Array[MClass] */;
846 val
* var3
/* : null */;
847 short int var4
/* : Bool */;
849 val
* var5
/* : String */;
850 char* var6
/* : NativeString */;
851 long var7
/* : Int */;
852 val
* var8
/* : String */;
853 short int var9
/* : Bool */;
854 val
* var10
/* : MClass */;
855 long var11
/* : Int */;
856 val
* var12
/* : MClassKind */;
857 val
* var13
/* : MVisibility */;
858 val
* var_c
/* var c: MClass */;
859 val
* var14
/* : MClassDef */;
860 val
* var15
/* : MClassType */;
861 val
* var16
/* : Location */;
862 val
* var17
/* : null */;
863 long var18
/* : Int */;
864 long var19
/* : Int */;
865 long var20
/* : Int */;
866 long var21
/* : Int */;
867 val
* var22
/* : Array[String] */;
868 val
* var_cladef
/* var cladef: MClassDef */;
869 static val
* varonce23
;
870 val
* var24
/* : String */;
871 char* var25
/* : NativeString */;
872 long var26
/* : Int */;
873 val
* var27
/* : String */;
874 val
* var28
/* : Array[Object] */;
875 long var29
/* : Int */;
876 val
* var30
/* : NativeArray[Object] */;
877 val
* var31
/* : String */;
878 long var32
/* : Int */;
879 long var33
/* : Int */;
880 long var34
/* : Int */;
881 short int var35
/* : Bool */;
882 short int var37
/* : Bool */;
883 static val
* varonce38
;
884 val
* var39
/* : String */;
885 char* var40
/* : NativeString */;
886 long var41
/* : Int */;
887 val
* var42
/* : String */;
888 val
* var43
/* : String */;
889 val
* var44
/* : nullable Object */;
891 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__MModule__model
]))(self
) /* model on <self:MModule>*/;
892 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var1
, var_name
) /* get_mclasses_by_name on <var1:Model>*/;
895 if (var_cla
== NULL
) {
896 var4
= 1; /* is null */
898 var4
= 0; /* arg is null but recv is not */
906 var8
= string__NativeString__to_s_with_length(var6
, var7
);
910 var9
= ((short int (*)(val
*, val
*))(var_name
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_name
, var5
) /* == on <var_name:String>*/;
912 var10
= NEW_model__MClass(&type_model__MClass
);
914 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__enum_kind
]))(self
) /* enum_kind on <self:MModule>*/;
915 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__public_visibility
]))(self
) /* public_visibility on <self:MModule>*/;
916 ((void (*)(val
*, val
*, val
*, long, val
*, val
*))(var10
->class->vft
[COLOR_model__MClass__init
]))(var10
, self
, var_name
, var11
, var12
, var13
) /* init on <var10:MClass>*/;
917 CHECK_NEW_model__MClass(var10
);
919 var14
= NEW_model__MClassDef(&type_model__MClassDef
);
920 var15
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
921 var16
= NEW_location__Location(&type_location__Location
);
927 ((void (*)(val
*, val
*, long, long, long, long))(var16
->class->vft
[COLOR_location__Location__init
]))(var16
, var17
, var18
, var19
, var20
, var21
) /* init on <var16:Location>*/;
928 CHECK_NEW_location__Location(var16
);
929 var22
= NEW_array__Array(&type_array__Arraystring__String
);
930 ((void (*)(val
*))(var22
->class->vft
[COLOR_array__Array__init
]))(var22
) /* init on <var22:Array[String]>*/;
931 CHECK_NEW_array__Array(var22
);
932 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var14
->class->vft
[COLOR_model__MClassDef__init
]))(var14
, self
, var15
, var16
, var22
) /* init on <var14:MClassDef>*/;
933 CHECK_NEW_model__MClassDef(var14
);
942 var25
= "Fatal Error: no primitive class ";
944 var27
= string__NativeString__to_s_with_length(var25
, var26
);
948 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
949 { /* var28 = array_instance Array[Object] */
951 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
952 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var24
;
953 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var_name
;
954 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
955 CHECK_NEW_array__Array(var28
);
957 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
958 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var31
) /* print on <self:MModule>*/;
960 ((void (*)(val
*, long))(self
->class->vft
[COLOR_kernel__Object__exit
]))(self
, var32
) /* exit on <self:MModule>*/;
963 if (var_cla
== NULL
) {
964 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
965 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 225);
968 var33
= ((long (*)(val
*))(var_cla
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_cla
) /* length on <var_cla:nullable Array[MClass]>*/;
971 { /* Inline kernel#Int#== (var33,var34) */
972 var37
= var33
== var34
;
983 var42
= string__NativeString__to_s_with_length(var40
, var41
);
987 if (var_cla
== NULL
) {
988 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
989 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 225);
992 var43
= ((val
* (*)(val
*, val
*))(var_cla
->class->vft
[COLOR_string__Collection__join
]))(var_cla
, var39
) /* join on <var_cla:nullable Array[MClass]>*/;
994 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var43
) /* print on <self:MModule>*/;
995 fprintf(stderr
, "Runtime error: %s", "Assert failed");
996 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 225);
999 if (var_cla
== NULL
) {
1000 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1001 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 226);
1004 var44
= ((val
* (*)(val
*))(var_cla
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_cla
) /* first on <var_cla:nullable Array[MClass]>*/;
1011 /* method model#MModule#get_primitive_class for (self: Object, String): MClass */
1012 val
* VIRTUAL_model__MModule__get_primitive_class(val
* self
, val
* p0
) {
1013 val
* var
/* : MClass */;
1014 val
* var1
/* : MClass */;
1015 var1
= model__MModule__get_primitive_class(self
, p0
);
1020 /* method model#MModule#try_get_primitive_method for (self: MModule, String, MClass): nullable MMethod */
1021 val
* model__MModule__try_get_primitive_method(val
* self
, val
* p0
, val
* p1
) {
1022 val
* var
/* : nullable MMethod */;
1023 val
* var_name
/* var name: String */;
1024 val
* var_recv
/* var recv: MClass */;
1025 val
* var1
/* : Model */;
1026 val
* var2
/* : nullable Array[MProperty] */;
1027 val
* var_props
/* var props: nullable Array[MProperty] */;
1028 val
* var3
/* : null */;
1029 short int var4
/* : Bool */;
1030 val
* var5
/* : null */;
1031 val
* var6
/* : null */;
1032 val
* var_res
/* var res: nullable MMethod */;
1033 val
* var7
/* : Iterator[nullable Object] */;
1034 short int var8
/* : Bool */;
1035 val
* var9
/* : nullable Object */;
1036 val
* var_mprop
/* var mprop: MProperty */;
1037 short int var10
/* : Bool */;
1040 val
* var11
/* : MClassDef */;
1041 val
* var_intro
/* var intro: MClassDef */;
1042 val
* var12
/* : Array[MClassDef] */;
1043 val
* var13
/* : Iterator[nullable Object] */;
1044 short int var14
/* : Bool */;
1045 val
* var15
/* : nullable Object */;
1046 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1047 val
* var16
/* : POSetElement[MModule] */;
1048 val
* var17
/* : Collection[Object] */;
1049 val
* var18
/* : MModule */;
1050 short int var19
/* : Bool */;
1051 short int var20
/* : Bool */;
1052 val
* var21
/* : nullable POSetElement[MClassDef] */;
1053 val
* var22
/* : Collection[Object] */;
1054 short int var23
/* : Bool */;
1055 short int var24
/* : Bool */;
1056 val
* var25
/* : null */;
1057 short int var26
/* : Bool */;
1058 short int var27
/* : Bool */;
1059 static val
* varonce
;
1060 val
* var28
/* : String */;
1061 char* var29
/* : NativeString */;
1062 long var30
/* : Int */;
1063 val
* var31
/* : String */;
1064 static val
* varonce32
;
1065 val
* var33
/* : String */;
1066 char* var34
/* : NativeString */;
1067 long var35
/* : Int */;
1068 val
* var36
/* : String */;
1069 val
* var37
/* : String */;
1070 static val
* varonce38
;
1071 val
* var39
/* : String */;
1072 char* var40
/* : NativeString */;
1073 long var41
/* : Int */;
1074 val
* var42
/* : String */;
1075 val
* var43
/* : String */;
1076 val
* var44
/* : Array[Object] */;
1077 long var45
/* : Int */;
1078 val
* var46
/* : NativeArray[Object] */;
1079 val
* var47
/* : String */;
1082 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__MModule__model
]))(self
) /* model on <self:MModule>*/;
1083 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model__Model__get_mproperties_by_name
]))(var1
, var_name
) /* get_mproperties_by_name on <var1:Model>*/;
1086 if (var_props
== NULL
) {
1087 var4
= 1; /* is null */
1089 var4
= 0; /* arg is null but recv is not */
1099 var7
= ((val
* (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_props
) /* iterator on <var_props:nullable Array[MProperty](Array[MProperty])>*/;
1101 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
1103 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
1105 /* <var_mprop:MProperty> isa MMethod */
1106 cltype
= type_model__MMethod
.color
;
1107 idtype
= type_model__MMethod
.id
;
1108 if(cltype
>= var_mprop
->type
->table_size
) {
1111 var10
= var_mprop
->type
->type_table
[cltype
] == idtype
;
1114 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1115 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 236);
1118 var11
= ((val
* (*)(val
*))(var_mprop
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mprop
) /* intro_mclassdef on <var_mprop:MProperty(MMethod)>*/;
1120 var12
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_recv
) /* mclassdefs on <var_recv:MClass>*/;
1121 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:Array[MClassDef]>*/;
1123 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
1125 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
1126 var_mclassdef
= var15
;
1127 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__MModule__in_importation
]))(self
) /* in_importation on <self:MModule>*/;
1128 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var16
) /* greaters on <var16:POSetElement[MModule]>*/;
1129 var18
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_mclassdef
) /* mmodule on <var_mclassdef:MClassDef>*/;
1130 var19
= ((short int (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var17
, var18
) /* has on <var17:Collection[Object](Collection[MModule])>*/;
1133 goto CONTINUE_label
;
1136 var21
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__in_hierarchy
]))(var_mclassdef
) /* in_hierarchy on <var_mclassdef:MClassDef>*/;
1137 if (var21
== NULL
) {
1138 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1139 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 240);
1142 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var21
) /* greaters on <var21:nullable POSetElement[MClassDef]>*/;
1144 var23
= ((short int (*)(val
*, val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var22
, var_intro
) /* has on <var22:Collection[Object](Collection[MClassDef])>*/;
1147 goto CONTINUE_label
;
1151 if (var_res
== NULL
) {
1152 var26
= 1; /* is null */
1154 var26
= 0; /* arg is null but recv is not */
1157 var_res
= var_mprop
;
1159 var27
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_res
, var_mprop
) /* != on <var_res:nullable MMethod(MMethod)>*/;
1164 var29
= "Fatal Error: ambigous property name \'";
1166 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1173 var34
= "\'; conflict between ";
1175 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1179 var37
= ((val
* (*)(val
*))(var_mprop
->class->vft
[COLOR_model__MProperty__full_name
]))(var_mprop
) /* full_name on <var_mprop:MProperty(MMethod)>*/;
1185 var42
= string__NativeString__to_s_with_length(var40
, var41
);
1189 var43
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MProperty__full_name
]))(var_res
) /* full_name on <var_res:nullable MMethod(MMethod)>*/;
1190 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
1191 { /* var44 = array_instance Array[Object] */
1193 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
1194 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var28
;
1195 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var_name
;
1196 ((struct instance_array__NativeArray
*)var46
)->values
[2] = (val
*) var33
;
1197 ((struct instance_array__NativeArray
*)var46
)->values
[3] = (val
*) var37
;
1198 ((struct instance_array__NativeArray
*)var46
)->values
[4] = (val
*) var39
;
1199 ((struct instance_array__NativeArray
*)var46
)->values
[5] = (val
*) var43
;
1200 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
1201 CHECK_NEW_array__Array(var44
);
1203 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
1204 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var47
) /* print on <self:MModule>*/;
1205 fprintf(stderr
, "Runtime error: %s", "Aborted");
1206 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 245);
1211 CONTINUE_label
: (void)0;
1212 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
1214 BREAK_label
: (void)0;
1215 CONTINUE_label48
: (void)0;
1216 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
1218 BREAK_label48
: (void)0;
1224 /* method model#MModule#try_get_primitive_method for (self: Object, String, MClass): nullable MMethod */
1225 val
* VIRTUAL_model__MModule__try_get_primitive_method(val
* self
, val
* p0
, val
* p1
) {
1226 val
* var
/* : nullable MMethod */;
1227 val
* var1
/* : nullable MMethod */;
1228 var1
= model__MModule__try_get_primitive_method(self
, p0
, p1
);
1233 /* method model#MClassDefSorter#mmodule for (self: MClassDefSorter): MModule */
1234 val
* model__MClassDefSorter__mmodule(val
* self
) {
1235 val
* var
/* : MModule */;
1236 val
* var1
/* : MModule */;
1237 var1
= self
->attrs
[COLOR_model__MClassDefSorter___64dmmodule
].val
; /* @mmodule on <self:MClassDefSorter> */
1239 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
1240 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 255);
1247 /* method model#MClassDefSorter#mmodule for (self: Object): MModule */
1248 val
* VIRTUAL_model__MClassDefSorter__mmodule(val
* self
) {
1249 val
* var
/* : MModule */;
1250 val
* var1
/* : MModule */;
1251 var1
= model__MClassDefSorter__mmodule(self
);
1256 /* method model#MClassDefSorter#mmodule= for (self: MClassDefSorter, MModule) */
1257 void model__MClassDefSorter__mmodule_61d(val
* self
, val
* p0
) {
1258 self
->attrs
[COLOR_model__MClassDefSorter___64dmmodule
].val
= p0
; /* @mmodule on <self:MClassDefSorter> */
1261 /* method model#MClassDefSorter#mmodule= for (self: Object, MModule) */
1262 void VIRTUAL_model__MClassDefSorter__mmodule_61d(val
* self
, val
* p0
) {
1263 model__MClassDefSorter__mmodule_61d(self
, p0
);
1266 /* method model#MClassDefSorter#compare for (self: MClassDefSorter, MClassDef, MClassDef): Int */
1267 long model__MClassDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1268 long var
/* : Int */;
1269 short int var1
/* : Bool */;
1272 const char* var_class_name
;
1273 short int var2
/* : Bool */;
1276 const char* var_class_name5
;
1277 val
* var_a
/* var a: MClassDef */;
1278 val
* var_b
/* var b: MClassDef */;
1279 val
* var6
/* : MClass */;
1280 val
* var_ca
/* var ca: MClass */;
1281 val
* var7
/* : MClass */;
1282 val
* var_cb
/* var cb: MClass */;
1283 short int var8
/* : Bool */;
1284 val
* var9
/* : MModule */;
1285 val
* var10
/* : POSet[MClass] */;
1286 long var11
/* : Int */;
1287 val
* var12
/* : MModule */;
1288 val
* var13
/* : Model */;
1289 val
* var14
/* : POSet[MClassDef] */;
1290 long var15
/* : Int */;
1291 /* Covariant cast for argument 0 (a) <p0:MClassDef> isa AbstractSorter#0 */
1292 /* <p0:MClassDef> isa AbstractSorter#0 */
1293 var1
= 1; /* easy <p0:MClassDef> isa AbstractSorter#0*/
1295 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1296 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name
);
1297 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 256);
1300 /* Covariant cast for argument 1 (b) <p1:MClassDef> isa AbstractSorter#0 */
1301 /* <p1:MClassDef> isa AbstractSorter#0 */
1302 var2
= 1; /* easy <p1:MClassDef> isa AbstractSorter#0*/
1304 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
1305 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name5
);
1306 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 256);
1311 var6
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_a
) /* mclass on <var_a:MClassDef>*/;
1313 var7
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_b
) /* mclass on <var_b:MClassDef>*/;
1315 var8
= ((short int (*)(val
*, val
*))(var_ca
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ca
, var_cb
) /* != on <var_ca:MClass>*/;
1317 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDefSorter__mmodule
]))(self
) /* mmodule on <self:MClassDefSorter>*/;
1318 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var9
) /* flatten_mclass_hierarchy on <var9:MModule>*/;
1319 var11
= ((long (*)(val
*, val
*, val
*))(var10
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(var10
, var_ca
, var_cb
) /* compare on <var10:POSet[MClass]>*/;
1324 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDefSorter__mmodule
]))(self
) /* mmodule on <self:MClassDefSorter>*/;
1325 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model_base__MModule__model
]))(var12
) /* model on <var12:MModule>*/;
1326 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__Model__mclassdef_hierarchy
]))(var13
) /* mclassdef_hierarchy on <var13:Model>*/;
1327 var15
= ((long (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(var14
, var_a
, var_b
) /* compare on <var14:POSet[MClassDef]>*/;
1333 /* method model#MClassDefSorter#compare for (self: Object, nullable Object, nullable Object): Int */
1334 long VIRTUAL_model__MClassDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1335 long var
/* : Int */;
1336 long var1
/* : Int */;
1337 var1
= model__MClassDefSorter__compare(self
, p0
, p1
);
1342 /* method model#MClassDefSorter#init for (self: MClassDefSorter, MModule) */
1343 void model__MClassDefSorter__init(val
* self
, val
* p0
) {
1344 self
->attrs
[COLOR_model__MClassDefSorter___64dmmodule
].val
= p0
; /* @mmodule on <self:MClassDefSorter> */
1347 /* method model#MClassDefSorter#init for (self: Object, MModule) */
1348 void VIRTUAL_model__MClassDefSorter__init(val
* self
, val
* p0
) {
1349 model__MClassDefSorter__init(self
, p0
);
1352 /* method model#MPropDefSorter#mmodule for (self: MPropDefSorter): MModule */
1353 val
* model__MPropDefSorter__mmodule(val
* self
) {
1354 val
* var
/* : MModule */;
1355 val
* var1
/* : MModule */;
1356 var1
= self
->attrs
[COLOR_model__MPropDefSorter___64dmmodule
].val
; /* @mmodule on <self:MPropDefSorter> */
1358 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
1359 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 267);
1366 /* method model#MPropDefSorter#mmodule for (self: Object): MModule */
1367 val
* VIRTUAL_model__MPropDefSorter__mmodule(val
* self
) {
1368 val
* var
/* : MModule */;
1369 val
* var1
/* : MModule */;
1370 var1
= model__MPropDefSorter__mmodule(self
);
1375 /* method model#MPropDefSorter#mmodule= for (self: MPropDefSorter, MModule) */
1376 void model__MPropDefSorter__mmodule_61d(val
* self
, val
* p0
) {
1377 self
->attrs
[COLOR_model__MPropDefSorter___64dmmodule
].val
= p0
; /* @mmodule on <self:MPropDefSorter> */
1380 /* method model#MPropDefSorter#mmodule= for (self: Object, MModule) */
1381 void VIRTUAL_model__MPropDefSorter__mmodule_61d(val
* self
, val
* p0
) {
1382 model__MPropDefSorter__mmodule_61d(self
, p0
);
1385 /* method model#MPropDefSorter#compare for (self: MPropDefSorter, MPropDef, MPropDef): Int */
1386 long model__MPropDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1387 long var
/* : Int */;
1388 short int var1
/* : Bool */;
1391 const char* var_class_name
;
1392 short int var2
/* : Bool */;
1395 const char* var_class_name5
;
1396 val
* var_pa
/* var pa: MPropDef */;
1397 val
* var_pb
/* var pb: MPropDef */;
1398 val
* var6
/* : MClassDef */;
1399 val
* var_a
/* var a: MClassDef */;
1400 val
* var7
/* : MClassDef */;
1401 val
* var_b
/* var b: MClassDef */;
1402 val
* var8
/* : MClass */;
1403 val
* var_ca
/* var ca: MClass */;
1404 val
* var9
/* : MClass */;
1405 val
* var_cb
/* var cb: MClass */;
1406 short int var10
/* : Bool */;
1407 val
* var11
/* : MModule */;
1408 val
* var12
/* : POSet[MClass] */;
1409 long var13
/* : Int */;
1410 val
* var14
/* : MModule */;
1411 val
* var15
/* : Model */;
1412 val
* var16
/* : POSet[MClassDef] */;
1413 long var17
/* : Int */;
1414 /* Covariant cast for argument 0 (pa) <p0:MPropDef> isa AbstractSorter#0 */
1415 /* <p0:MPropDef> isa AbstractSorter#0 */
1416 var1
= 1; /* easy <p0:MPropDef> isa AbstractSorter#0*/
1418 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1419 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name
);
1420 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 268);
1423 /* Covariant cast for argument 1 (pb) <p1:MPropDef> isa AbstractSorter#0 */
1424 /* <p1:MPropDef> isa AbstractSorter#0 */
1425 var2
= 1; /* easy <p1:MPropDef> isa AbstractSorter#0*/
1427 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
1428 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name5
);
1429 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 268);
1434 var6
= ((val
* (*)(val
*))(var_pa
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pa
) /* mclassdef on <var_pa:MPropDef>*/;
1436 var7
= ((val
* (*)(val
*))(var_pb
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pb
) /* mclassdef on <var_pb:MPropDef>*/;
1438 var8
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_a
) /* mclass on <var_a:MClassDef>*/;
1440 var9
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_b
) /* mclass on <var_b:MClassDef>*/;
1442 var10
= ((short int (*)(val
*, val
*))(var_ca
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ca
, var_cb
) /* != on <var_ca:MClass>*/;
1444 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MPropDefSorter__mmodule
]))(self
) /* mmodule on <self:MPropDefSorter>*/;
1445 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var11
) /* flatten_mclass_hierarchy on <var11:MModule>*/;
1446 var13
= ((long (*)(val
*, val
*, val
*))(var12
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(var12
, var_ca
, var_cb
) /* compare on <var12:POSet[MClass]>*/;
1451 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MPropDefSorter__mmodule
]))(self
) /* mmodule on <self:MPropDefSorter>*/;
1452 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_model_base__MModule__model
]))(var14
) /* model on <var14:MModule>*/;
1453 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__Model__mclassdef_hierarchy
]))(var15
) /* mclassdef_hierarchy on <var15:Model>*/;
1454 var17
= ((long (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(var16
, var_a
, var_b
) /* compare on <var16:POSet[MClassDef]>*/;
1460 /* method model#MPropDefSorter#compare for (self: Object, nullable Object, nullable Object): Int */
1461 long VIRTUAL_model__MPropDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1462 long var
/* : Int */;
1463 long var1
/* : Int */;
1464 var1
= model__MPropDefSorter__compare(self
, p0
, p1
);
1469 /* method model#MPropDefSorter#init for (self: MPropDefSorter, MModule) */
1470 void model__MPropDefSorter__init(val
* self
, val
* p0
) {
1471 self
->attrs
[COLOR_model__MPropDefSorter___64dmmodule
].val
= p0
; /* @mmodule on <self:MPropDefSorter> */
1474 /* method model#MPropDefSorter#init for (self: Object, MModule) */
1475 void VIRTUAL_model__MPropDefSorter__init(val
* self
, val
* p0
) {
1476 model__MPropDefSorter__init(self
, p0
);
1479 /* method model#MClass#intro_mmodule for (self: MClass): MModule */
1480 val
* model__MClass__intro_mmodule(val
* self
) {
1481 val
* var
/* : MModule */;
1482 val
* var1
/* : MModule */;
1483 var1
= self
->attrs
[COLOR_model__MClass___64dintro_mmodule
].val
; /* @intro_mmodule on <self:MClass> */
1485 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @intro_mmodule");
1486 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 290);
1493 /* method model#MClass#intro_mmodule for (self: Object): MModule */
1494 val
* VIRTUAL_model__MClass__intro_mmodule(val
* self
) {
1495 val
* var
/* : MModule */;
1496 val
* var1
/* : MModule */;
1497 var1
= model__MClass__intro_mmodule(self
);
1502 /* method model#MClass#intro_mmodule= for (self: MClass, MModule) */
1503 void model__MClass__intro_mmodule_61d(val
* self
, val
* p0
) {
1504 self
->attrs
[COLOR_model__MClass___64dintro_mmodule
].val
= p0
; /* @intro_mmodule on <self:MClass> */
1507 /* method model#MClass#intro_mmodule= for (self: Object, MModule) */
1508 void VIRTUAL_model__MClass__intro_mmodule_61d(val
* self
, val
* p0
) {
1509 model__MClass__intro_mmodule_61d(self
, p0
);
1512 /* method model#MClass#name for (self: MClass): String */
1513 val
* model__MClass__name(val
* self
) {
1514 val
* var
/* : String */;
1515 val
* var1
/* : String */;
1516 var1
= self
->attrs
[COLOR_model__MClass___64dname
].val
; /* @name on <self:MClass> */
1518 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @name");
1519 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 295);
1526 /* method model#MClass#name for (self: Object): String */
1527 val
* VIRTUAL_model__MClass__name(val
* self
) {
1528 val
* var
/* : String */;
1529 val
* var1
/* : String */;
1530 var1
= model__MClass__name(self
);
1535 /* method model#MClass#name= for (self: MClass, String) */
1536 void model__MClass__name_61d(val
* self
, val
* p0
) {
1537 self
->attrs
[COLOR_model__MClass___64dname
].val
= p0
; /* @name on <self:MClass> */
1540 /* method model#MClass#name= for (self: Object, String) */
1541 void VIRTUAL_model__MClass__name_61d(val
* self
, val
* p0
) {
1542 model__MClass__name_61d(self
, p0
);
1545 /* method model#MClass#full_name for (self: MClass): String */
1546 val
* model__MClass__full_name(val
* self
) {
1547 val
* var
/* : String */;
1548 val
* var1
/* : Array[Object] */;
1549 long var2
/* : Int */;
1550 val
* var_
/* var : Array[Object] */;
1551 static val
* varonce
;
1552 val
* var3
/* : String */;
1553 char* var4
/* : NativeString */;
1554 long var5
/* : Int */;
1555 val
* var6
/* : String */;
1556 val
* var7
/* : MModule */;
1557 val
* var8
/* : String */;
1558 static val
* varonce9
;
1559 val
* var10
/* : String */;
1560 char* var11
/* : NativeString */;
1561 long var12
/* : Int */;
1562 val
* var13
/* : String */;
1563 val
* var14
/* : String */;
1564 static val
* varonce15
;
1565 val
* var16
/* : String */;
1566 char* var17
/* : NativeString */;
1567 long var18
/* : Int */;
1568 val
* var19
/* : String */;
1569 val
* var20
/* : String */;
1570 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
1572 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
1573 CHECK_NEW_array__Array(var1
);
1580 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1584 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
1585 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(self
) /* intro_mmodule on <self:MClass>*/;
1586 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model_base__MModule__full_name
]))(var7
) /* full_name on <var7:MModule>*/;
1587 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var8
) /* add on <var_:Array[Object]>*/;
1593 var13
= string__NativeString__to_s_with_length(var11
, var12
);
1597 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var10
) /* add on <var_:Array[Object]>*/;
1598 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__name
]))(self
) /* name on <self:MClass>*/;
1599 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var14
) /* add on <var_:Array[Object]>*/;
1605 var19
= string__NativeString__to_s_with_length(var17
, var18
);
1609 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var16
) /* add on <var_:Array[Object]>*/;
1610 var20
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
1616 /* method model#MClass#full_name for (self: Object): String */
1617 val
* VIRTUAL_model__MClass__full_name(val
* self
) {
1618 val
* var
/* : String */;
1619 val
* var1
/* : String */;
1620 var1
= model__MClass__full_name(self
);
1625 /* method model#MClass#arity for (self: MClass): Int */
1626 long model__MClass__arity(val
* self
) {
1627 long var
/* : Int */;
1628 long var1
/* : Int */;
1629 var1
= self
->attrs
[COLOR_model__MClass___64darity
].l
; /* @arity on <self:MClass> */
1634 /* method model#MClass#arity for (self: Object): Int */
1635 long VIRTUAL_model__MClass__arity(val
* self
) {
1636 long var
/* : Int */;
1637 long var1
/* : Int */;
1638 var1
= model__MClass__arity(self
);
1643 /* method model#MClass#arity= for (self: MClass, Int) */
1644 void model__MClass__arity_61d(val
* self
, long p0
) {
1645 self
->attrs
[COLOR_model__MClass___64darity
].l
= p0
; /* @arity on <self:MClass> */
1648 /* method model#MClass#arity= for (self: Object, Int) */
1649 void VIRTUAL_model__MClass__arity_61d(val
* self
, long p0
) {
1650 model__MClass__arity_61d(self
, p0
);
1653 /* method model#MClass#kind for (self: MClass): MClassKind */
1654 val
* model__MClass__kind(val
* self
) {
1655 val
* var
/* : MClassKind */;
1656 val
* var1
/* : MClassKind */;
1657 var1
= self
->attrs
[COLOR_model__MClass___64dkind
].val
; /* @kind on <self:MClass> */
1659 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @kind");
1660 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 310);
1667 /* method model#MClass#kind for (self: Object): MClassKind */
1668 val
* VIRTUAL_model__MClass__kind(val
* self
) {
1669 val
* var
/* : MClassKind */;
1670 val
* var1
/* : MClassKind */;
1671 var1
= model__MClass__kind(self
);
1676 /* method model#MClass#kind= for (self: MClass, MClassKind) */
1677 void model__MClass__kind_61d(val
* self
, val
* p0
) {
1678 self
->attrs
[COLOR_model__MClass___64dkind
].val
= p0
; /* @kind on <self:MClass> */
1681 /* method model#MClass#kind= for (self: Object, MClassKind) */
1682 void VIRTUAL_model__MClass__kind_61d(val
* self
, val
* p0
) {
1683 model__MClass__kind_61d(self
, p0
);
1686 /* method model#MClass#visibility for (self: MClass): MVisibility */
1687 val
* model__MClass__visibility(val
* self
) {
1688 val
* var
/* : MVisibility */;
1689 val
* var1
/* : MVisibility */;
1690 var1
= self
->attrs
[COLOR_model__MClass___64dvisibility
].val
; /* @visibility on <self:MClass> */
1692 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @visibility");
1693 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 314);
1700 /* method model#MClass#visibility for (self: Object): MVisibility */
1701 val
* VIRTUAL_model__MClass__visibility(val
* self
) {
1702 val
* var
/* : MVisibility */;
1703 val
* var1
/* : MVisibility */;
1704 var1
= model__MClass__visibility(self
);
1709 /* method model#MClass#visibility= for (self: MClass, MVisibility) */
1710 void model__MClass__visibility_61d(val
* self
, val
* p0
) {
1711 self
->attrs
[COLOR_model__MClass___64dvisibility
].val
= p0
; /* @visibility on <self:MClass> */
1714 /* method model#MClass#visibility= for (self: Object, MVisibility) */
1715 void VIRTUAL_model__MClass__visibility_61d(val
* self
, val
* p0
) {
1716 model__MClass__visibility_61d(self
, p0
);
1719 /* method model#MClass#init for (self: MClass, MModule, String, Int, MClassKind, MVisibility) */
1720 void model__MClass__init(val
* self
, val
* p0
, val
* p1
, long p2
, val
* p3
, val
* p4
) {
1721 val
* var_intro_mmodule
/* var intro_mmodule: MModule */;
1722 val
* var_name
/* var name: String */;
1723 long var_arity
/* var arity: Int */;
1724 val
* var_kind
/* var kind: MClassKind */;
1725 val
* var_visibility
/* var visibility: MVisibility */;
1726 val
* var
/* : Array[MClass] */;
1727 val
* var1
/* : Model */;
1728 val
* var_model
/* var model: Model */;
1729 val
* var2
/* : MultiHashMap[String, MClass] */;
1730 val
* var3
/* : Array[MClass] */;
1731 long var4
/* : Int */;
1732 short int var5
/* : Bool */;
1733 short int var7
/* : Bool */;
1736 const char* var_class_name
;
1737 short int var8
/* : Bool */;
1738 val
* var9
/* : Array[MParameterType] */;
1739 val
* var_mparametertypes
/* var mparametertypes: Array[MParameterType] */;
1740 val
* var10
/* : Range[Int] */;
1741 long var11
/* : Int */;
1742 val
* var12
/* : Discrete */;
1743 val
* var13
/* : Discrete */;
1744 val
* var14
/* : Iterator[nullable Object] */;
1745 short int var15
/* : Bool */;
1746 val
* var16
/* : nullable Object */;
1747 long var_i
/* var i: Int */;
1748 long var17
/* : Int */;
1749 val
* var18
/* : MParameterType */;
1750 val
* var_mparametertype
/* var mparametertype: MParameterType */;
1751 val
* var19
/* : MGenericType */;
1752 val
* var_mclass_type
/* var mclass_type: MGenericType */;
1753 val
* var20
/* : Array[MGenericType] */;
1754 val
* var21
/* : MClassType */;
1755 var_intro_mmodule
= p0
;
1759 var_visibility
= p4
;
1760 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__intro_mmodule_61d
]))(self
, var_intro_mmodule
) /* intro_mmodule= on <self:MClass>*/;
1761 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__name_61d
]))(self
, var_name
) /* name= on <self:MClass>*/;
1762 ((void (*)(val
*, long))(self
->class->vft
[COLOR_model__MClass__arity_61d
]))(self
, var_arity
) /* arity= on <self:MClass>*/;
1763 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__kind_61d
]))(self
, var_kind
) /* kind= on <self:MClass>*/;
1764 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__visibility_61d
]))(self
, var_visibility
) /* visibility= on <self:MClass>*/;
1765 var
= ((val
* (*)(val
*))(var_intro_mmodule
->class->vft
[COLOR_model__MModule__intro_mclasses
]))(var_intro_mmodule
) /* intro_mclasses on <var_intro_mmodule:MModule>*/;
1766 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var
, self
) /* add on <var:Array[MClass]>*/;
1767 var1
= ((val
* (*)(val
*))(var_intro_mmodule
->class->vft
[COLOR_model_base__MModule__model
]))(var_intro_mmodule
) /* model on <var_intro_mmodule:MModule>*/;
1769 var2
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mclasses_by_name
]))(var_model
) /* mclasses_by_name on <var_model:Model>*/;
1770 ((void (*)(val
*, val
*, val
*))(var2
->class->vft
[COLOR_more_collections__MultiHashMap__add_one
]))(var2
, var_name
, self
) /* add_one on <var2:MultiHashMap[String, MClass]>*/;
1771 var3
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mclasses
]))(var_model
) /* mclasses on <var_model:Model>*/;
1772 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, self
) /* add on <var3:Array[MClass]>*/;
1774 { /* Inline kernel#Int#> (var_arity,var4) */
1775 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1776 /* <var4:Int> isa OTHER */
1777 var7
= 1; /* easy <var4:Int> isa OTHER*/
1779 var_class_name
= type_kernel__Int
.name
;
1780 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1781 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
1784 var8
= var_arity
> var4
;
1790 var9
= NEW_array__Array(&type_array__Arraymodel__MParameterType
);
1791 ((void (*)(val
*))(var9
->class->vft
[COLOR_array__Array__init
]))(var9
) /* init on <var9:Array[MParameterType]>*/;
1792 CHECK_NEW_array__Array(var9
);
1793 var_mparametertypes
= var9
;
1794 var10
= NEW_range__Range(&type_range__Rangekernel__Int
);
1796 var12
= BOX_kernel__Int(var11
); /* autobox from Int to Discrete */
1797 var13
= BOX_kernel__Int(var_arity
); /* autobox from Int to Discrete */
1798 ((void (*)(val
*, val
*, val
*))(var10
->class->vft
[COLOR_range__Range__without_last
]))(var10
, var12
, var13
) /* without_last on <var10:Range[Int]>*/;
1799 CHECK_NEW_range__Range(var10
);
1800 var14
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Range[Int]>*/;
1802 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var14
) /* is_ok on <var14:Iterator[nullable Object]>*/;
1804 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var14
) /* item on <var14:Iterator[nullable Object]>*/;
1805 var17
= ((struct instance_kernel__Int
*)var16
)->value
; /* autounbox from nullable Object to Int */;
1807 var18
= NEW_model__MParameterType(&type_model__MParameterType
);
1808 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_model__MParameterType__init
]))(var18
, self
, var_i
) /* init on <var18:MParameterType>*/;
1809 CHECK_NEW_model__MParameterType(var18
);
1810 var_mparametertype
= var18
;
1811 ((void (*)(val
*, val
*))(var_mparametertypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mparametertypes
, var_mparametertype
) /* add on <var_mparametertypes:Array[MParameterType]>*/;
1812 CONTINUE_label
: (void)0;
1813 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var14
) /* next on <var14:Iterator[nullable Object]>*/;
1815 BREAK_label
: (void)0;
1816 var19
= NEW_model__MGenericType(&type_model__MGenericType
);
1817 ((void (*)(val
*, val
*, val
*))(var19
->class->vft
[COLOR_model__MGenericType__init
]))(var19
, self
, var_mparametertypes
) /* init on <var19:MGenericType>*/;
1818 CHECK_NEW_model__MGenericType(var19
);
1819 var_mclass_type
= var19
;
1820 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__mclass_type_61d
]))(self
, var_mclass_type
) /* mclass_type= on <self:MClass>*/;
1821 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__get_mtype_cache
]))(self
) /* get_mtype_cache on <self:MClass>*/;
1822 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var20
, var_mclass_type
) /* add on <var20:Array[MGenericType]>*/;
1824 var21
= NEW_model__MClassType(&type_model__MClassType
);
1825 ((void (*)(val
*, val
*))(var21
->class->vft
[COLOR_model__MClassType__init
]))(var21
, self
) /* init on <var21:MClassType>*/;
1826 CHECK_NEW_model__MClassType(var21
);
1827 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__mclass_type_61d
]))(self
, var21
) /* mclass_type= on <self:MClass>*/;
1831 /* method model#MClass#init for (self: Object, MModule, String, Int, MClassKind, MVisibility) */
1832 void VIRTUAL_model__MClass__init(val
* self
, val
* p0
, val
* p1
, long p2
, val
* p3
, val
* p4
) {
1833 model__MClass__init(self
, p0
, p1
, p2
, p3
, p4
);
1836 /* method model#MClass#mclassdefs for (self: MClass): Array[MClassDef] */
1837 val
* model__MClass__mclassdefs(val
* self
) {
1838 val
* var
/* : Array[MClassDef] */;
1839 val
* var1
/* : Array[MClassDef] */;
1840 var1
= self
->attrs
[COLOR_model__MClass___64dmclassdefs
].val
; /* @mclassdefs on <self:MClass> */
1842 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclassdefs");
1843 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 345);
1850 /* method model#MClass#mclassdefs for (self: Object): Array[MClassDef] */
1851 val
* VIRTUAL_model__MClass__mclassdefs(val
* self
) {
1852 val
* var
/* : Array[MClassDef] */;
1853 val
* var1
/* : Array[MClassDef] */;
1854 var1
= model__MClass__mclassdefs(self
);
1859 /* method model#MClass#mclassdefs= for (self: MClass, Array[MClassDef]) */
1860 void model__MClass__mclassdefs_61d(val
* self
, val
* p0
) {
1861 self
->attrs
[COLOR_model__MClass___64dmclassdefs
].val
= p0
; /* @mclassdefs on <self:MClass> */
1864 /* method model#MClass#mclassdefs= for (self: Object, Array[MClassDef]) */
1865 void VIRTUAL_model__MClass__mclassdefs_61d(val
* self
, val
* p0
) {
1866 model__MClass__mclassdefs_61d(self
, p0
);
1869 /* method model#MClass#to_s for (self: MClass): String */
1870 val
* model__MClass__to_s(val
* self
) {
1871 val
* var
/* : String */;
1872 val
* var1
/* : String */;
1873 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__name
]))(self
) /* name on <self:MClass>*/;
1879 /* method model#MClass#to_s for (self: Object): String */
1880 val
* VIRTUAL_model__MClass__to_s(val
* self
) {
1881 val
* var
/* : String */;
1882 val
* var1
/* : String */;
1883 var1
= model__MClass__to_s(self
);
1888 /* method model#MClass#intro for (self: MClass): MClassDef */
1889 val
* model__MClass__intro(val
* self
) {
1890 val
* var
/* : MClassDef */;
1891 val
* var1
/* : Array[MClassDef] */;
1892 short int var2
/* : Bool */;
1893 short int var3
/* : Bool */;
1894 val
* var4
/* : Array[MClassDef] */;
1895 val
* var5
/* : nullable Object */;
1896 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__mclassdefs
]))(self
) /* mclassdefs on <self:MClass>*/;
1897 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var1
) /* is_empty on <var1:Array[MClassDef]>*/;
1900 fprintf(stderr
, "Runtime error: %s", "Assert \'has_a_first_definition\' failed");
1901 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 357);
1904 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__mclassdefs
]))(self
) /* mclassdefs on <self:MClass>*/;
1905 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var4
) /* first on <var4:Array[MClassDef]>*/;
1911 /* method model#MClass#intro for (self: Object): MClassDef */
1912 val
* VIRTUAL_model__MClass__intro(val
* self
) {
1913 val
* var
/* : MClassDef */;
1914 val
* var1
/* : MClassDef */;
1915 var1
= model__MClass__intro(self
);
1920 /* method model#MClass#in_hierarchy for (self: MClass, MModule): POSetElement[MClass] */
1921 val
* model__MClass__in_hierarchy(val
* self
, val
* p0
) {
1922 val
* var
/* : POSetElement[MClass] */;
1923 val
* var_mmodule
/* var mmodule: MModule */;
1924 val
* var1
/* : POSet[MClass] */;
1925 val
* var2
/* : POSetElement[Object] */;
1927 var1
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var_mmodule
) /* flatten_mclass_hierarchy on <var_mmodule:MModule>*/;
1928 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var1
, self
) /* [] on <var1:POSet[MClass]>*/;
1934 /* method model#MClass#in_hierarchy for (self: Object, MModule): POSetElement[MClass] */
1935 val
* VIRTUAL_model__MClass__in_hierarchy(val
* self
, val
* p0
) {
1936 val
* var
/* : POSetElement[MClass] */;
1937 val
* var1
/* : POSetElement[MClass] */;
1938 var1
= model__MClass__in_hierarchy(self
, p0
);
1943 /* method model#MClass#mclass_type for (self: MClass): MClassType */
1944 val
* model__MClass__mclass_type(val
* self
) {
1945 val
* var
/* : MClassType */;
1946 val
* var1
/* : MClassType */;
1947 var1
= self
->attrs
[COLOR_model__MClass___64dmclass_type
].val
; /* @mclass_type on <self:MClass> */
1949 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass_type");
1950 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 370);
1957 /* method model#MClass#mclass_type for (self: Object): MClassType */
1958 val
* VIRTUAL_model__MClass__mclass_type(val
* self
) {
1959 val
* var
/* : MClassType */;
1960 val
* var1
/* : MClassType */;
1961 var1
= model__MClass__mclass_type(self
);
1966 /* method model#MClass#mclass_type= for (self: MClass, MClassType) */
1967 void model__MClass__mclass_type_61d(val
* self
, val
* p0
) {
1968 self
->attrs
[COLOR_model__MClass___64dmclass_type
].val
= p0
; /* @mclass_type on <self:MClass> */
1971 /* method model#MClass#mclass_type= for (self: Object, MClassType) */
1972 void VIRTUAL_model__MClass__mclass_type_61d(val
* self
, val
* p0
) {
1973 model__MClass__mclass_type_61d(self
, p0
);
1976 /* method model#MClass#get_mtype for (self: MClass, Array[MType]): MClassType */
1977 val
* model__MClass__get_mtype(val
* self
, val
* p0
) {
1978 val
* var
/* : MClassType */;
1979 val
* var_mtype_arguments
/* var mtype_arguments: Array[MType] */;
1980 long var1
/* : Int */;
1981 long var2
/* : Int */;
1982 short int var3
/* : Bool */;
1983 short int var5
/* : Bool */;
1984 long var6
/* : Int */;
1985 long var7
/* : Int */;
1986 short int var8
/* : Bool */;
1987 short int var10
/* : Bool */;
1988 val
* var11
/* : MClassType */;
1989 val
* var12
/* : Array[MGenericType] */;
1990 val
* var13
/* : Iterator[nullable Object] */;
1991 short int var14
/* : Bool */;
1992 val
* var15
/* : nullable Object */;
1993 val
* var_t
/* var t: MGenericType */;
1994 val
* var16
/* : Array[MType] */;
1995 short int var17
/* : Bool */;
1996 val
* var18
/* : MGenericType */;
1997 val
* var_res
/* var res: MGenericType */;
1998 val
* var19
/* : Array[MGenericType] */;
1999 var_mtype_arguments
= p0
;
2000 var1
= ((long (*)(val
*))(var_mtype_arguments
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mtype_arguments
) /* length on <var_mtype_arguments:Array[MType]>*/;
2001 var2
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MClass__arity
]))(self
) /* arity on <self:MClass>*/;
2002 { /* Inline kernel#Int#== (var1,var2) */
2003 var5
= var1
== var2
;
2009 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2010 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 393);
2013 var6
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MClass__arity
]))(self
) /* arity on <self:MClass>*/;
2015 { /* Inline kernel#Int#== (var6,var7) */
2016 var10
= var6
== var7
;
2022 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__mclass_type
]))(self
) /* mclass_type on <self:MClass>*/;
2027 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__get_mtype_cache
]))(self
) /* get_mtype_cache on <self:MClass>*/;
2028 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:Array[MGenericType]>*/;
2030 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
2032 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
2034 var16
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MClassType__arguments
]))(var_t
) /* arguments on <var_t:MGenericType>*/;
2035 var17
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var16
, var_mtype_arguments
) /* == on <var16:Array[MType]>*/;
2041 CONTINUE_label
: (void)0;
2042 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
2044 BREAK_label
: (void)0;
2045 var18
= NEW_model__MGenericType(&type_model__MGenericType
);
2046 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_model__MGenericType__init
]))(var18
, self
, var_mtype_arguments
) /* init on <var18:MGenericType>*/;
2047 CHECK_NEW_model__MGenericType(var18
);
2049 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__get_mtype_cache
]))(self
) /* get_mtype_cache on <self:MClass>*/;
2050 ((void (*)(val
*, val
*))(var19
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var19
, var_res
) /* add on <var19:Array[MGenericType]>*/;
2056 /* method model#MClass#get_mtype for (self: Object, Array[MType]): MClassType */
2057 val
* VIRTUAL_model__MClass__get_mtype(val
* self
, val
* p0
) {
2058 val
* var
/* : MClassType */;
2059 val
* var1
/* : MClassType */;
2060 var1
= model__MClass__get_mtype(self
, p0
);
2065 /* method model#MClass#get_mtype_cache for (self: MClass): Array[MGenericType] */
2066 val
* model__MClass__get_mtype_cache(val
* self
) {
2067 val
* var
/* : Array[MGenericType] */;
2068 val
* var1
/* : Array[MGenericType] */;
2069 var1
= self
->attrs
[COLOR_model__MClass___64dget_mtype_cache
].val
; /* @get_mtype_cache on <self:MClass> */
2071 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @get_mtype_cache");
2072 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 405);
2079 /* method model#MClass#get_mtype_cache for (self: Object): Array[MGenericType] */
2080 val
* VIRTUAL_model__MClass__get_mtype_cache(val
* self
) {
2081 val
* var
/* : Array[MGenericType] */;
2082 val
* var1
/* : Array[MGenericType] */;
2083 var1
= model__MClass__get_mtype_cache(self
);
2088 /* method model#MClass#get_mtype_cache= for (self: MClass, Array[MGenericType]) */
2089 void model__MClass__get_mtype_cache_61d(val
* self
, val
* p0
) {
2090 self
->attrs
[COLOR_model__MClass___64dget_mtype_cache
].val
= p0
; /* @get_mtype_cache on <self:MClass> */
2093 /* method model#MClass#get_mtype_cache= for (self: Object, Array[MGenericType]) */
2094 void VIRTUAL_model__MClass__get_mtype_cache_61d(val
* self
, val
* p0
) {
2095 model__MClass__get_mtype_cache_61d(self
, p0
);
2098 /* method model#MClassDef#mmodule for (self: MClassDef): MModule */
2099 val
* model__MClassDef__mmodule(val
* self
) {
2100 val
* var
/* : MModule */;
2101 val
* var1
/* : MModule */;
2102 var1
= self
->attrs
[COLOR_model__MClassDef___64dmmodule
].val
; /* @mmodule on <self:MClassDef> */
2104 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
2105 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 415);
2112 /* method model#MClassDef#mmodule for (self: Object): MModule */
2113 val
* VIRTUAL_model__MClassDef__mmodule(val
* self
) {
2114 val
* var
/* : MModule */;
2115 val
* var1
/* : MModule */;
2116 var1
= model__MClassDef__mmodule(self
);
2121 /* method model#MClassDef#mmodule= for (self: MClassDef, MModule) */
2122 void model__MClassDef__mmodule_61d(val
* self
, val
* p0
) {
2123 self
->attrs
[COLOR_model__MClassDef___64dmmodule
].val
= p0
; /* @mmodule on <self:MClassDef> */
2126 /* method model#MClassDef#mmodule= for (self: Object, MModule) */
2127 void VIRTUAL_model__MClassDef__mmodule_61d(val
* self
, val
* p0
) {
2128 model__MClassDef__mmodule_61d(self
, p0
);
2131 /* method model#MClassDef#mclass for (self: MClassDef): MClass */
2132 val
* model__MClassDef__mclass(val
* self
) {
2133 val
* var
/* : MClass */;
2134 val
* var1
/* : MClass */;
2135 var1
= self
->attrs
[COLOR_model__MClassDef___64dmclass
].val
; /* @mclass on <self:MClassDef> */
2137 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass");
2138 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 418);
2145 /* method model#MClassDef#mclass for (self: Object): MClass */
2146 val
* VIRTUAL_model__MClassDef__mclass(val
* self
) {
2147 val
* var
/* : MClass */;
2148 val
* var1
/* : MClass */;
2149 var1
= model__MClassDef__mclass(self
);
2154 /* method model#MClassDef#mclass= for (self: MClassDef, MClass) */
2155 void model__MClassDef__mclass_61d(val
* self
, val
* p0
) {
2156 self
->attrs
[COLOR_model__MClassDef___64dmclass
].val
= p0
; /* @mclass on <self:MClassDef> */
2159 /* method model#MClassDef#mclass= for (self: Object, MClass) */
2160 void VIRTUAL_model__MClassDef__mclass_61d(val
* self
, val
* p0
) {
2161 model__MClassDef__mclass_61d(self
, p0
);
2164 /* method model#MClassDef#bound_mtype for (self: MClassDef): MClassType */
2165 val
* model__MClassDef__bound_mtype(val
* self
) {
2166 val
* var
/* : MClassType */;
2167 val
* var1
/* : MClassType */;
2168 var1
= self
->attrs
[COLOR_model__MClassDef___64dbound_mtype
].val
; /* @bound_mtype on <self:MClassDef> */
2170 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @bound_mtype");
2171 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 421);
2178 /* method model#MClassDef#bound_mtype for (self: Object): MClassType */
2179 val
* VIRTUAL_model__MClassDef__bound_mtype(val
* self
) {
2180 val
* var
/* : MClassType */;
2181 val
* var1
/* : MClassType */;
2182 var1
= model__MClassDef__bound_mtype(self
);
2187 /* method model#MClassDef#bound_mtype= for (self: MClassDef, MClassType) */
2188 void model__MClassDef__bound_mtype_61d(val
* self
, val
* p0
) {
2189 self
->attrs
[COLOR_model__MClassDef___64dbound_mtype
].val
= p0
; /* @bound_mtype on <self:MClassDef> */
2192 /* method model#MClassDef#bound_mtype= for (self: Object, MClassType) */
2193 void VIRTUAL_model__MClassDef__bound_mtype_61d(val
* self
, val
* p0
) {
2194 model__MClassDef__bound_mtype_61d(self
, p0
);
2197 /* method model#MClassDef#parameter_names for (self: MClassDef): Array[String] */
2198 val
* model__MClassDef__parameter_names(val
* self
) {
2199 val
* var
/* : Array[String] */;
2200 val
* var1
/* : Array[String] */;
2201 var1
= self
->attrs
[COLOR_model__MClassDef___64dparameter_names
].val
; /* @parameter_names on <self:MClassDef> */
2203 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @parameter_names");
2204 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 433);
2211 /* method model#MClassDef#parameter_names for (self: Object): Array[String] */
2212 val
* VIRTUAL_model__MClassDef__parameter_names(val
* self
) {
2213 val
* var
/* : Array[String] */;
2214 val
* var1
/* : Array[String] */;
2215 var1
= model__MClassDef__parameter_names(self
);
2220 /* method model#MClassDef#parameter_names= for (self: MClassDef, Array[String]) */
2221 void model__MClassDef__parameter_names_61d(val
* self
, val
* p0
) {
2222 self
->attrs
[COLOR_model__MClassDef___64dparameter_names
].val
= p0
; /* @parameter_names on <self:MClassDef> */
2225 /* method model#MClassDef#parameter_names= for (self: Object, Array[String]) */
2226 void VIRTUAL_model__MClassDef__parameter_names_61d(val
* self
, val
* p0
) {
2227 model__MClassDef__parameter_names_61d(self
, p0
);
2230 /* method model#MClassDef#location for (self: MClassDef): Location */
2231 val
* model__MClassDef__location(val
* self
) {
2232 val
* var
/* : Location */;
2233 val
* var1
/* : Location */;
2234 var1
= self
->attrs
[COLOR_model__MClassDef___64dlocation
].val
; /* @location on <self:MClassDef> */
2236 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @location");
2237 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 436);
2244 /* method model#MClassDef#location for (self: Object): Location */
2245 val
* VIRTUAL_model__MClassDef__location(val
* self
) {
2246 val
* var
/* : Location */;
2247 val
* var1
/* : Location */;
2248 var1
= model__MClassDef__location(self
);
2253 /* method model#MClassDef#location= for (self: MClassDef, Location) */
2254 void model__MClassDef__location_61d(val
* self
, val
* p0
) {
2255 self
->attrs
[COLOR_model__MClassDef___64dlocation
].val
= p0
; /* @location on <self:MClassDef> */
2258 /* method model#MClassDef#location= for (self: Object, Location) */
2259 void VIRTUAL_model__MClassDef__location_61d(val
* self
, val
* p0
) {
2260 model__MClassDef__location_61d(self
, p0
);
2263 /* method model#MClassDef#to_s for (self: MClassDef): String */
2264 val
* model__MClassDef__to_s(val
* self
) {
2265 val
* var
/* : String */;
2266 val
* var1
/* : String */;
2267 var1
= self
->attrs
[COLOR_model__MClassDef___64dto_s
].val
; /* @to_s on <self:MClassDef> */
2269 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
2270 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 439);
2277 /* method model#MClassDef#to_s for (self: Object): String */
2278 val
* VIRTUAL_model__MClassDef__to_s(val
* self
) {
2279 val
* var
/* : String */;
2280 val
* var1
/* : String */;
2281 var1
= model__MClassDef__to_s(self
);
2286 /* method model#MClassDef#to_s= for (self: MClassDef, String) */
2287 void model__MClassDef__to_s_61d(val
* self
, val
* p0
) {
2288 self
->attrs
[COLOR_model__MClassDef___64dto_s
].val
= p0
; /* @to_s on <self:MClassDef> */
2291 /* method model#MClassDef#to_s= for (self: Object, String) */
2292 void VIRTUAL_model__MClassDef__to_s_61d(val
* self
, val
* p0
) {
2293 model__MClassDef__to_s_61d(self
, p0
);
2296 /* method model#MClassDef#init for (self: MClassDef, MModule, MClassType, Location, Array[String]) */
2297 void model__MClassDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2298 val
* var_mmodule
/* var mmodule: MModule */;
2299 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
2300 val
* var_location
/* var location: Location */;
2301 val
* var_parameter_names
/* var parameter_names: Array[String] */;
2302 val
* var
/* : MClass */;
2303 long var1
/* : Int */;
2304 long var2
/* : Int */;
2305 short int var3
/* : Bool */;
2306 short int var5
/* : Bool */;
2307 val
* var6
/* : MClass */;
2308 val
* var7
/* : Array[MClassDef] */;
2309 val
* var8
/* : MClass */;
2310 val
* var9
/* : Array[MClassDef] */;
2311 static val
* varonce
;
2312 val
* var10
/* : String */;
2313 char* var11
/* : NativeString */;
2314 long var12
/* : Int */;
2315 val
* var13
/* : String */;
2316 val
* var14
/* : MClass */;
2317 val
* var15
/* : Array[Object] */;
2318 long var16
/* : Int */;
2319 val
* var17
/* : NativeArray[Object] */;
2320 val
* var18
/* : String */;
2322 var_bound_mtype
= p1
;
2324 var_parameter_names
= p3
;
2325 var
= ((val
* (*)(val
*))(var_bound_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_bound_mtype
) /* mclass on <var_bound_mtype:MClassType>*/;
2326 var1
= ((long (*)(val
*))(var
->class->vft
[COLOR_model__MClass__arity
]))(var
) /* arity on <var:MClass>*/;
2327 var2
= ((long (*)(val
*))(var_parameter_names
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_parameter_names
) /* length on <var_parameter_names:Array[String]>*/;
2328 { /* Inline kernel#Int#== (var1,var2) */
2329 var5
= var1
== var2
;
2335 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2336 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 445);
2339 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__bound_mtype_61d
]))(self
, var_bound_mtype
) /* bound_mtype= on <self:MClassDef>*/;
2340 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:MClassDef>*/;
2341 var6
= ((val
* (*)(val
*))(var_bound_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_bound_mtype
) /* mclass on <var_bound_mtype:MClassType>*/;
2342 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass_61d
]))(self
, var6
) /* mclass= on <self:MClassDef>*/;
2343 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__location_61d
]))(self
, var_location
) /* location= on <self:MClassDef>*/;
2344 var7
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_mmodule
) /* mclassdefs on <var_mmodule:MModule>*/;
2345 ((void (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var7
, self
) /* add on <var7:Array[MClassDef]>*/;
2346 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass
]))(self
) /* mclass on <self:MClassDef>*/;
2347 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var8
) /* mclassdefs on <var8:MClass>*/;
2348 ((void (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var9
, self
) /* add on <var9:Array[MClassDef]>*/;
2349 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__parameter_names_61d
]))(self
, var_parameter_names
) /* parameter_names= on <self:MClassDef>*/;
2355 var13
= string__NativeString__to_s_with_length(var11
, var12
);
2359 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass
]))(self
) /* mclass on <self:MClassDef>*/;
2360 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
2361 { /* var15 = array_instance Array[Object] */
2363 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
2364 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var_mmodule
;
2365 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var10
;
2366 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var14
;
2367 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
2368 CHECK_NEW_array__Array(var15
);
2370 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
2371 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__to_s_61d
]))(self
, var18
) /* to_s= on <self:MClassDef>*/;
2374 /* method model#MClassDef#init for (self: Object, MModule, MClassType, Location, Array[String]) */
2375 void VIRTUAL_model__MClassDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2376 model__MClassDef__init(self
, p0
, p1
, p2
, p3
);
2379 /* method model#MClassDef#supertypes for (self: MClassDef): Array[MClassType] */
2380 val
* model__MClassDef__supertypes(val
* self
) {
2381 val
* var
/* : Array[MClassType] */;
2382 val
* var1
/* : Array[MClassType] */;
2383 var1
= self
->attrs
[COLOR_model__MClassDef___64dsupertypes
].val
; /* @supertypes on <self:MClassDef> */
2385 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @supertypes");
2386 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 456);
2393 /* method model#MClassDef#supertypes for (self: Object): Array[MClassType] */
2394 val
* VIRTUAL_model__MClassDef__supertypes(val
* self
) {
2395 val
* var
/* : Array[MClassType] */;
2396 val
* var1
/* : Array[MClassType] */;
2397 var1
= model__MClassDef__supertypes(self
);
2402 /* method model#MClassDef#supertypes= for (self: MClassDef, Array[MClassType]) */
2403 void model__MClassDef__supertypes_61d(val
* self
, val
* p0
) {
2404 self
->attrs
[COLOR_model__MClassDef___64dsupertypes
].val
= p0
; /* @supertypes on <self:MClassDef> */
2407 /* method model#MClassDef#supertypes= for (self: Object, Array[MClassType]) */
2408 void VIRTUAL_model__MClassDef__supertypes_61d(val
* self
, val
* p0
) {
2409 model__MClassDef__supertypes_61d(self
, p0
);
2412 /* method model#MClassDef#set_supertypes for (self: MClassDef, Array[MClassType]) */
2413 void model__MClassDef__set_supertypes(val
* self
, val
* p0
) {
2414 val
* var_supertypes
/* var supertypes: Array[MClassType] */;
2415 val
* var
/* : nullable POSetElement[MClassDef] */;
2416 val
* var1
/* : null */;
2417 short int var2
/* : Bool */;
2418 val
* var3
/* : MModule */;
2419 val
* var_mmodule
/* var mmodule: MModule */;
2420 val
* var4
/* : Model */;
2421 val
* var_model
/* var model: Model */;
2422 val
* var5
/* : MClassType */;
2423 val
* var_mtype
/* var mtype: MClassType */;
2424 val
* var6
/* : Iterator[nullable Object] */;
2425 short int var7
/* : Bool */;
2426 val
* var8
/* : nullable Object */;
2427 val
* var_supertype
/* var supertype: MClassType */;
2428 val
* var9
/* : Array[MClassType] */;
2429 val
* var10
/* : POSet[MClassType] */;
2430 short int var11
/* : Bool */;
2431 val
* var12
/* : MClass */;
2432 val
* var13
/* : MModule */;
2433 short int var14
/* : Bool */;
2434 short int var_
/* var : Bool */;
2435 val
* var15
/* : MClass */;
2436 val
* var16
/* : MModule */;
2437 short int var17
/* : Bool */;
2438 val
* var18
/* : POSet[MClassType] */;
2439 var_supertypes
= p0
;
2440 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__in_hierarchy
]))(self
) /* in_hierarchy on <self:MClassDef>*/;
2443 var2
= 1; /* is null */
2445 var2
= 0; /* arg is null but recv is not */
2448 fprintf(stderr
, "Runtime error: %s", "Assert \'unique_invocation\' failed");
2449 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 466);
2452 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mmodule
]))(self
) /* mmodule on <self:MClassDef>*/;
2454 var4
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__model
]))(var_mmodule
) /* model on <var_mmodule:MModule>*/;
2456 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(self
) /* bound_mtype on <self:MClassDef>*/;
2458 var6
= ((val
* (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supertypes
) /* iterator on <var_supertypes:Array[MClassType]>*/;
2460 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
2462 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
2463 var_supertype
= var8
;
2464 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__supertypes
]))(self
) /* supertypes on <self:MClassDef>*/;
2465 ((void (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var9
, var_supertype
) /* add on <var9:Array[MClassType]>*/;
2466 var10
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__full_mtype_specialization_hierarchy
]))(var_model
) /* full_mtype_specialization_hierarchy on <var_model:Model>*/;
2467 ((void (*)(val
*, val
*, val
*))(var10
->class->vft
[COLOR_poset__POSet__add_edge
]))(var10
, var_mtype
, var_supertype
) /* add_edge on <var10:POSet[MClassType]>*/;
2468 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass
]))(self
) /* mclass on <self:MClassDef>*/;
2469 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var12
) /* intro_mmodule on <var12:MClass>*/;
2470 var14
= ((short int (*)(val
*, val
*))(var13
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var13
, var_mmodule
) /* == on <var13:MModule>*/;
2473 var15
= ((val
* (*)(val
*))(var_supertype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_supertype
) /* mclass on <var_supertype:MClassType>*/;
2474 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var15
) /* intro_mmodule on <var15:MClass>*/;
2475 var17
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var16
, var_mmodule
) /* == on <var16:MModule>*/;
2481 var18
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__intro_mtype_specialization_hierarchy
]))(var_model
) /* intro_mtype_specialization_hierarchy on <var_model:Model>*/;
2482 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_poset__POSet__add_edge
]))(var18
, var_mtype
, var_supertype
) /* add_edge on <var18:POSet[MClassType]>*/;
2485 CONTINUE_label
: (void)0;
2486 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
2488 BREAK_label
: (void)0;
2491 /* method model#MClassDef#set_supertypes for (self: Object, Array[MClassType]) */
2492 void VIRTUAL_model__MClassDef__set_supertypes(val
* self
, val
* p0
) {
2493 model__MClassDef__set_supertypes(self
, p0
);
2496 /* method model#MClassDef#add_in_hierarchy for (self: MClassDef) */
2497 void model__MClassDef__add_in_hierarchy(val
* self
) {
2498 val
* var
/* : nullable POSetElement[MClassDef] */;
2499 val
* var1
/* : null */;
2500 short int var2
/* : Bool */;
2501 val
* var3
/* : MModule */;
2502 val
* var4
/* : Model */;
2503 val
* var_model
/* var model: Model */;
2504 val
* var5
/* : POSet[MClassDef] */;
2505 val
* var6
/* : POSetElement[Object] */;
2506 val
* var_res
/* var res: POSetElement[MClassDef] */;
2507 val
* var7
/* : MClassType */;
2508 val
* var_mtype
/* var mtype: MClassType */;
2509 val
* var8
/* : MModule */;
2510 val
* var9
/* : Set[MClassDef] */;
2511 val
* var10
/* : Iterator[nullable Object] */;
2512 short int var11
/* : Bool */;
2513 val
* var12
/* : nullable Object */;
2514 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2515 val
* var13
/* : POSet[Object] */;
2516 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__in_hierarchy
]))(self
) /* in_hierarchy on <self:MClassDef>*/;
2519 var2
= 1; /* is null */
2521 var2
= 0; /* arg is null but recv is not */
2524 fprintf(stderr
, "Runtime error: %s", "Assert \'unique_invocation\' failed");
2525 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 491);
2528 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mmodule
]))(self
) /* mmodule on <self:MClassDef>*/;
2529 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model_base__MModule__model
]))(var3
) /* model on <var3:MModule>*/;
2531 var5
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mclassdef_hierarchy
]))(var_model
) /* mclassdef_hierarchy on <var_model:Model>*/;
2532 var6
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_poset__POSet__add_node
]))(var5
, self
) /* add_node on <var5:POSet[MClassDef]>*/;
2534 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__in_hierarchy_61d
]))(self
, var_res
) /* in_hierarchy= on <self:MClassDef>*/;
2535 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(self
) /* bound_mtype on <self:MClassDef>*/;
2537 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mmodule
]))(self
) /* mmodule on <self:MClassDef>*/;
2538 var9
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var8
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
2539 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Set[MClassDef]>*/;
2541 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[nullable Object]>*/;
2543 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[nullable Object]>*/;
2544 var_mclassdef
= var12
;
2545 var13
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_poset__POSetElement__poset
]))(var_res
) /* poset on <var_res:POSetElement[MClassDef]>*/;
2546 ((void (*)(val
*, val
*, val
*))(var13
->class->vft
[COLOR_poset__POSet__add_edge
]))(var13
, self
, var_mclassdef
) /* add_edge on <var13:POSet[Object](POSet[MClassDef])>*/;
2547 CONTINUE_label
: (void)0;
2548 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[nullable Object]>*/;
2550 BREAK_label
: (void)0;
2553 /* method model#MClassDef#add_in_hierarchy for (self: Object) */
2554 void VIRTUAL_model__MClassDef__add_in_hierarchy(val
* self
) {
2555 model__MClassDef__add_in_hierarchy(self
);
2558 /* method model#MClassDef#in_hierarchy for (self: MClassDef): nullable POSetElement[MClassDef] */
2559 val
* model__MClassDef__in_hierarchy(val
* self
) {
2560 val
* var
/* : nullable POSetElement[MClassDef] */;
2561 val
* var1
/* : nullable POSetElement[MClassDef] */;
2562 var1
= self
->attrs
[COLOR_model__MClassDef___64din_hierarchy
].val
; /* @in_hierarchy on <self:MClassDef> */
2567 /* method model#MClassDef#in_hierarchy for (self: Object): nullable POSetElement[MClassDef] */
2568 val
* VIRTUAL_model__MClassDef__in_hierarchy(val
* self
) {
2569 val
* var
/* : nullable POSetElement[MClassDef] */;
2570 val
* var1
/* : nullable POSetElement[MClassDef] */;
2571 var1
= model__MClassDef__in_hierarchy(self
);
2576 /* method model#MClassDef#in_hierarchy= for (self: MClassDef, nullable POSetElement[MClassDef]) */
2577 void model__MClassDef__in_hierarchy_61d(val
* self
, val
* p0
) {
2578 self
->attrs
[COLOR_model__MClassDef___64din_hierarchy
].val
= p0
; /* @in_hierarchy on <self:MClassDef> */
2581 /* method model#MClassDef#in_hierarchy= for (self: Object, nullable POSetElement[MClassDef]) */
2582 void VIRTUAL_model__MClassDef__in_hierarchy_61d(val
* self
, val
* p0
) {
2583 model__MClassDef__in_hierarchy_61d(self
, p0
);
2586 /* method model#MClassDef#is_intro for (self: MClassDef): Bool */
2587 short int model__MClassDef__is_intro(val
* self
) {
2588 short int var
/* : Bool */;
2589 val
* var1
/* : MClass */;
2590 val
* var2
/* : MClassDef */;
2591 short int var3
/* : Bool */;
2592 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass
]))(self
) /* mclass on <self:MClassDef>*/;
2593 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClass__intro
]))(var1
) /* intro on <var1:MClass>*/;
2594 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var2
, self
) /* == on <var2:MClassDef>*/;
2600 /* method model#MClassDef#is_intro for (self: Object): Bool */
2601 short int VIRTUAL_model__MClassDef__is_intro(val
* self
) {
2602 short int var
/* : Bool */;
2603 short int var1
/* : Bool */;
2604 var1
= model__MClassDef__is_intro(self
);
2609 /* method model#MClassDef#intro_mproperties for (self: MClassDef): Array[MProperty] */
2610 val
* model__MClassDef__intro_mproperties(val
* self
) {
2611 val
* var
/* : Array[MProperty] */;
2612 val
* var1
/* : Array[MProperty] */;
2613 var1
= self
->attrs
[COLOR_model__MClassDef___64dintro_mproperties
].val
; /* @intro_mproperties on <self:MClassDef> */
2615 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @intro_mproperties");
2616 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 510);
2623 /* method model#MClassDef#intro_mproperties for (self: Object): Array[MProperty] */
2624 val
* VIRTUAL_model__MClassDef__intro_mproperties(val
* self
) {
2625 val
* var
/* : Array[MProperty] */;
2626 val
* var1
/* : Array[MProperty] */;
2627 var1
= model__MClassDef__intro_mproperties(self
);
2632 /* method model#MClassDef#intro_mproperties= for (self: MClassDef, Array[MProperty]) */
2633 void model__MClassDef__intro_mproperties_61d(val
* self
, val
* p0
) {
2634 self
->attrs
[COLOR_model__MClassDef___64dintro_mproperties
].val
= p0
; /* @intro_mproperties on <self:MClassDef> */
2637 /* method model#MClassDef#intro_mproperties= for (self: Object, Array[MProperty]) */
2638 void VIRTUAL_model__MClassDef__intro_mproperties_61d(val
* self
, val
* p0
) {
2639 model__MClassDef__intro_mproperties_61d(self
, p0
);
2642 /* method model#MClassDef#mpropdefs for (self: MClassDef): Array[MPropDef] */
2643 val
* model__MClassDef__mpropdefs(val
* self
) {
2644 val
* var
/* : Array[MPropDef] */;
2645 val
* var1
/* : Array[MPropDef] */;
2646 var1
= self
->attrs
[COLOR_model__MClassDef___64dmpropdefs
].val
; /* @mpropdefs on <self:MClassDef> */
2648 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdefs");
2649 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 513);
2656 /* method model#MClassDef#mpropdefs for (self: Object): Array[MPropDef] */
2657 val
* VIRTUAL_model__MClassDef__mpropdefs(val
* self
) {
2658 val
* var
/* : Array[MPropDef] */;
2659 val
* var1
/* : Array[MPropDef] */;
2660 var1
= model__MClassDef__mpropdefs(self
);
2665 /* method model#MClassDef#mpropdefs= for (self: MClassDef, Array[MPropDef]) */
2666 void model__MClassDef__mpropdefs_61d(val
* self
, val
* p0
) {
2667 self
->attrs
[COLOR_model__MClassDef___64dmpropdefs
].val
= p0
; /* @mpropdefs on <self:MClassDef> */
2670 /* method model#MClassDef#mpropdefs= for (self: Object, Array[MPropDef]) */
2671 void VIRTUAL_model__MClassDef__mpropdefs_61d(val
* self
, val
* p0
) {
2672 model__MClassDef__mpropdefs_61d(self
, p0
);
2675 /* method model#MType#model for (self: MType): Model */
2676 val
* model__MType__model(val
* self
) {
2677 val
* var
/* : Model */;
2678 const char* var_class_name
;
2679 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
2680 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "model", var_class_name
);
2681 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 546);
2686 /* method model#MType#model for (self: Object): Model */
2687 val
* VIRTUAL_model__MType__model(val
* self
) {
2688 val
* var
/* : Model */;
2689 val
* var1
/* : Model */;
2690 var1
= model__MType__model(self
);
2695 /* method model#MType#is_subtype for (self: MType, MModule, nullable MClassType, MType): Bool */
2696 short int model__MType__is_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2697 short int var
/* : Bool */;
2698 val
* var_mmodule
/* var mmodule: MModule */;
2699 val
* var_anchor
/* var anchor: nullable MClassType */;
2700 val
* var_sup
/* var sup: MType */;
2701 val
* var_sub
/* var sub: MType */;
2702 short int var1
/* : Bool */;
2703 short int var2
/* : Bool */;
2704 val
* var3
/* : null */;
2705 short int var4
/* : Bool */;
2706 short int var5
/* : Bool */;
2707 short int var6
/* : Bool */;
2708 short int var7
/* : Bool */;
2709 short int var8
/* : Bool */;
2710 val
* var9
/* : null */;
2711 short int var10
/* : Bool */;
2712 val
* var11
/* : null */;
2713 short int var12
/* : Bool */;
2714 short int var13
/* : Bool */;
2715 short int var14
/* : Bool */;
2718 short int var_
/* var : Bool */;
2719 short int var15
/* : Bool */;
2722 val
* var18
/* : null */;
2723 short int var19
/* : Bool */;
2724 val
* var20
/* : MClass */;
2725 val
* var21
/* : MClassType */;
2726 short int var22
/* : Bool */;
2727 val
* var23
/* : MType */;
2728 short int var24
/* : Bool */;
2729 short int var25
/* : Bool */;
2732 short int var_28
/* var : Bool */;
2733 short int var29
/* : Bool */;
2736 val
* var32
/* : null */;
2737 short int var33
/* : Bool */;
2738 val
* var34
/* : MClass */;
2739 val
* var35
/* : MClassType */;
2740 short int var36
/* : Bool */;
2741 val
* var37
/* : MType */;
2742 short int var38
/* : Bool */;
2743 short int var_sup_accept_null
/* var sup_accept_null: Bool */;
2744 short int var39
/* : Bool */;
2747 short int var42
/* : Bool */;
2748 val
* var43
/* : MType */;
2749 short int var44
/* : Bool */;
2752 short int var47
/* : Bool */;
2753 short int var48
/* : Bool */;
2756 short int var51
/* : Bool */;
2757 short int var52
/* : Bool */;
2758 val
* var53
/* : MType */;
2759 short int var54
/* : Bool */;
2762 short int var57
/* : Bool */;
2763 short int var58
/* : Bool */;
2766 short int var_61
/* var : Bool */;
2767 short int var62
/* : Bool */;
2770 short int var65
/* : Bool */;
2771 short int var66
/* : Bool */;
2772 short int var67
/* : Bool */;
2775 short int var_70
/* var : Bool */;
2776 short int var71
/* : Bool */;
2779 val
* var74
/* : null */;
2780 short int var75
/* : Bool */;
2781 val
* var76
/* : MType */;
2782 short int var77
/* : Bool */;
2785 short int var80
/* : Bool */;
2786 short int var81
/* : Bool */;
2787 val
* var82
/* : MType */;
2788 short int var83
/* : Bool */;
2791 short int var86
/* : Bool */;
2794 short int var89
/* : Bool */;
2797 short int var92
/* : Bool */;
2798 short int var93
/* : Bool */;
2801 short int var96
/* : Bool */;
2802 short int var97
/* : Bool */;
2803 val
* var98
/* : null */;
2804 short int var99
/* : Bool */;
2805 val
* var100
/* : MType */;
2806 val
* var_resolved_sub
/* var resolved_sub: MClassType */;
2807 val
* var101
/* : Set[MClass] */;
2808 val
* var102
/* : MClass */;
2809 short int var103
/* : Bool */;
2810 short int var_res
/* var res: Bool */;
2811 short int var104
/* : Bool */;
2812 short int var105
/* : Bool */;
2813 short int var107
/* : Bool */;
2814 short int var108
/* : Bool */;
2815 short int var109
/* : Bool */;
2818 short int var112
/* : Bool */;
2819 short int var113
/* : Bool */;
2820 val
* var114
/* : MClass */;
2821 val
* var115
/* : MClassType */;
2822 val
* var_sub2
/* var sub2: MClassType */;
2823 val
* var116
/* : MClass */;
2824 val
* var117
/* : MClass */;
2825 short int var118
/* : Bool */;
2826 val
* var119
/* : Range[Int] */;
2827 long var120
/* : Int */;
2828 val
* var121
/* : MClass */;
2829 long var122
/* : Int */;
2830 val
* var123
/* : Discrete */;
2831 val
* var124
/* : Discrete */;
2832 val
* var125
/* : Iterator[nullable Object] */;
2833 short int var126
/* : Bool */;
2834 val
* var127
/* : nullable Object */;
2835 long var_i
/* var i: Int */;
2836 long var128
/* : Int */;
2837 val
* var129
/* : Array[MType] */;
2838 val
* var130
/* : nullable Object */;
2839 val
* var_sub_arg
/* var sub_arg: MType */;
2840 val
* var131
/* : Array[MType] */;
2841 val
* var132
/* : nullable Object */;
2842 val
* var_sup_arg
/* var sup_arg: MType */;
2843 short int var133
/* : Bool */;
2844 short int var134
/* : Bool */;
2845 short int var135
/* : Bool */;
2846 short int var137
/* : Bool */;
2847 short int var138
/* : Bool */;
2848 short int var139
/* : Bool */;
2853 var1
= ((short int (*)(val
*, val
*))(var_sub
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sub
, var_sup
) /* == on <var_sub:MType>*/;
2861 if (var_anchor
== NULL
) {
2862 var4
= 1; /* is null */
2864 var4
= 0; /* arg is null but recv is not */
2867 var5
= ((short int (*)(val
*))(var_sub
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sub
) /* need_anchor on <var_sub:MType>*/;
2870 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2871 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 559);
2874 var7
= ((short int (*)(val
*))(var_sup
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sup
) /* need_anchor on <var_sup:MType>*/;
2877 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2878 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 560);
2883 var10
= ((short int (*)(val
*, val
*, val
*, val
*))(var_sub
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_sub
, var_anchor
, var9
, var_mmodule
) /* can_resolve_for on <var_sub:MType>*/;
2885 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2886 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 562);
2890 var12
= ((short int (*)(val
*, val
*, val
*, val
*))(var_sup
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_sup
, var_anchor
, var11
, var_mmodule
) /* can_resolve_for on <var_sup:MType>*/;
2892 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2893 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 563);
2897 /* <var_sub:MType> isa MParameterType */
2898 cltype
= type_model__MParameterType
.color
;
2899 idtype
= type_model__MParameterType
.id
;
2900 if(cltype
>= var_sub
->type
->table_size
) {
2903 var14
= var_sub
->type
->type_table
[cltype
] == idtype
;
2909 /* <var_sub:MType> isa MVirtualType */
2910 cltype16
= type_model__MVirtualType
.color
;
2911 idtype17
= type_model__MVirtualType
.id
;
2912 if(cltype16
>= var_sub
->type
->table_size
) {
2915 var15
= var_sub
->type
->type_table
[cltype16
] == idtype17
;
2921 if (var_anchor
== NULL
) {
2922 var19
= 0; /* is null */
2924 var19
= 1; /* arg is null and recv is not */
2927 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2928 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 570);
2931 var20
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__mclass
]))(var_anchor
) /* mclass on <var_anchor:nullable MClassType(MClassType)>*/;
2932 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_model__MClass__mclass_type
]))(var20
) /* mclass_type on <var20:MClass>*/;
2934 var23
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_sub
->class->vft
[COLOR_model__MType__resolve_for
]))(var_sub
, var21
, var_anchor
, var_mmodule
, var22
) /* resolve_for on <var_sub:MType>*/;
2938 /* <var_sup:MType> isa MParameterType */
2939 cltype26
= type_model__MParameterType
.color
;
2940 idtype27
= type_model__MParameterType
.id
;
2941 if(cltype26
>= var_sup
->type
->table_size
) {
2944 var25
= var_sup
->type
->type_table
[cltype26
] == idtype27
;
2950 /* <var_sup:MType> isa MVirtualType */
2951 cltype30
= type_model__MVirtualType
.color
;
2952 idtype31
= type_model__MVirtualType
.id
;
2953 if(cltype30
>= var_sup
->type
->table_size
) {
2956 var29
= var_sup
->type
->type_table
[cltype30
] == idtype31
;
2962 if (var_anchor
== NULL
) {
2963 var33
= 0; /* is null */
2965 var33
= 1; /* arg is null and recv is not */
2968 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2969 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 574);
2972 var34
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__mclass
]))(var_anchor
) /* mclass on <var_anchor:nullable MClassType(MClassType)>*/;
2973 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_model__MClass__mclass_type
]))(var34
) /* mclass_type on <var34:MClass>*/;
2975 var37
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_sup
->class->vft
[COLOR_model__MType__resolve_for
]))(var_sup
, var35
, var_anchor
, var_mmodule
, var36
) /* resolve_for on <var_sup:MType>*/;
2980 var_sup_accept_null
= var38
;
2981 /* <var_sup:MType> isa MNullableType */
2982 cltype40
= type_model__MNullableType
.color
;
2983 idtype41
= type_model__MNullableType
.id
;
2984 if(cltype40
>= var_sup
->type
->table_size
) {
2987 var39
= var_sup
->type
->type_table
[cltype40
] == idtype41
;
2991 var_sup_accept_null
= var42
;
2992 var43
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_sup
) /* mtype on <var_sup:MType(MNullableType)>*/;
2995 /* <var_sup:MType> isa MNullType */
2996 cltype45
= type_model__MNullType
.color
;
2997 idtype46
= type_model__MNullType
.id
;
2998 if(cltype45
>= var_sup
->type
->table_size
) {
3001 var44
= var_sup
->type
->type_table
[cltype45
] == idtype46
;
3005 var_sup_accept_null
= var47
;
3009 /* <var_sub:MType> isa MNullableType */
3010 cltype49
= type_model__MNullableType
.color
;
3011 idtype50
= type_model__MNullableType
.id
;
3012 if(cltype49
>= var_sub
->type
->table_size
) {
3015 var48
= var_sub
->type
->type_table
[cltype49
] == idtype50
;
3018 var51
= !var_sup_accept_null
;
3025 var53
= ((val
* (*)(val
*))(var_sub
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_sub
) /* mtype on <var_sub:MType(MNullableType)>*/;
3028 /* <var_sub:MType> isa MNullType */
3029 cltype55
= type_model__MNullType
.color
;
3030 idtype56
= type_model__MNullType
.id
;
3031 if(cltype55
>= var_sub
->type
->table_size
) {
3034 var54
= var_sub
->type
->type_table
[cltype55
] == idtype56
;
3037 var
= var_sup_accept_null
;
3042 /* <var_sup:MType> isa MParameterType */
3043 cltype59
= type_model__MParameterType
.color
;
3044 idtype60
= type_model__MParameterType
.id
;
3045 if(cltype59
>= var_sup
->type
->table_size
) {
3048 var58
= var_sup
->type
->type_table
[cltype59
] == idtype60
;
3054 /* <var_sup:MType> isa MVirtualType */
3055 cltype63
= type_model__MVirtualType
.color
;
3056 idtype64
= type_model__MVirtualType
.id
;
3057 if(cltype63
>= var_sup
->type
->table_size
) {
3060 var62
= var_sup
->type
->type_table
[cltype63
] == idtype64
;
3065 var65
= ((short int (*)(val
*, val
*))(var_sub
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sub
, var_sup
) /* == on <var_sub:MType>*/;
3070 /* <var_sub:MType> isa MParameterType */
3071 cltype68
= type_model__MParameterType
.color
;
3072 idtype69
= type_model__MParameterType
.id
;
3073 if(cltype68
>= var_sub
->type
->table_size
) {
3076 var67
= var_sub
->type
->type_table
[cltype68
] == idtype69
;
3082 /* <var_sub:MType> isa MVirtualType */
3083 cltype72
= type_model__MVirtualType
.color
;
3084 idtype73
= type_model__MVirtualType
.id
;
3085 if(cltype72
>= var_sub
->type
->table_size
) {
3088 var71
= var_sub
->type
->type_table
[cltype72
] == idtype73
;
3094 if (var_anchor
== NULL
) {
3095 var75
= 0; /* is null */
3097 var75
= 1; /* arg is null and recv is not */
3100 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3101 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 606);
3104 var76
= ((val
* (*)(val
*, val
*, val
*))(var_sub
->class->vft
[COLOR_model__MType__anchor_to
]))(var_sub
, var_mmodule
, var_anchor
) /* anchor_to on <var_sub:MType>*/;
3106 /* <var_sub:MType> isa MNullableType */
3107 cltype78
= type_model__MNullableType
.color
;
3108 idtype79
= type_model__MNullableType
.id
;
3109 if(cltype78
>= var_sub
->type
->table_size
) {
3112 var77
= var_sub
->type
->type_table
[cltype78
] == idtype79
;
3115 var80
= !var_sup_accept_null
;
3122 var82
= ((val
* (*)(val
*))(var_sub
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_sub
) /* mtype on <var_sub:MType(MNullableType)>*/;
3125 /* <var_sub:MType> isa MNullType */
3126 cltype84
= type_model__MNullType
.color
;
3127 idtype85
= type_model__MNullType
.id
;
3128 if(cltype84
>= var_sub
->type
->table_size
) {
3131 var83
= var_sub
->type
->type_table
[cltype84
] == idtype85
;
3134 var
= var_sup_accept_null
;
3141 /* <var_sub:MType> isa MClassType */
3142 cltype87
= type_model__MClassType
.color
;
3143 idtype88
= type_model__MClassType
.id
;
3144 if(cltype87
>= var_sub
->type
->table_size
) {
3147 var86
= var_sub
->type
->type_table
[cltype87
] == idtype88
;
3150 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3151 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 618);
3154 /* <var_sup:MType> isa MNullType */
3155 cltype90
= type_model__MNullType
.color
;
3156 idtype91
= type_model__MNullType
.id
;
3157 if(cltype90
>= var_sup
->type
->table_size
) {
3160 var89
= var_sup
->type
->type_table
[cltype90
] == idtype91
;
3168 /* <var_sup:MType> isa MClassType */
3169 cltype94
= type_model__MClassType
.color
;
3170 idtype95
= type_model__MClassType
.id
;
3171 if(cltype94
>= var_sup
->type
->table_size
) {
3174 var93
= var_sup
->type
->type_table
[cltype94
] == idtype95
;
3177 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3178 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 625);
3181 var96
= ((short int (*)(val
*, val
*))(var_sub
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sub
, var_sup
) /* == on <var_sub:MType(MClassType)>*/;
3189 if (var_anchor
== NULL
) {
3190 var99
= 1; /* is null */
3192 var99
= 0; /* arg is null but recv is not */
3195 var_anchor
= var_sub
;
3198 var100
= ((val
* (*)(val
*, val
*, val
*))(var_sub
->class->vft
[COLOR_model__MType__anchor_to
]))(var_sub
, var_mmodule
, var_anchor
) /* anchor_to on <var_sub:MType(MClassType)>*/;
3199 var_resolved_sub
= var100
;
3200 var101
= ((val
* (*)(val
*, val
*))(var_resolved_sub
->class->vft
[COLOR_model__MType__collect_mclasses
]))(var_resolved_sub
, var_mmodule
) /* collect_mclasses on <var_resolved_sub:MClassType>*/;
3201 var102
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sup
) /* mclass on <var_sup:MType(MClassType)>*/;
3202 var103
= ((short int (*)(val
*, val
*))(var101
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var101
, var102
) /* has on <var101:Set[MClass]>*/;
3205 { /* Inline kernel#Bool#== (var_res,var104) */
3206 var107
= var_res
== var104
;
3209 RET_LABEL106
:(void)0;
3217 /* <var_sup:MType(MClassType)> isa MGenericType */
3218 cltype110
= type_model__MGenericType
.color
;
3219 idtype111
= type_model__MGenericType
.id
;
3220 if(cltype110
>= var_sup
->type
->table_size
) {
3223 var109
= var_sup
->type
->type_table
[cltype110
] == idtype111
;
3232 var114
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sup
) /* mclass on <var_sup:MType(MGenericType)>*/;
3233 var115
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_sub
->class->vft
[COLOR_model__MType__supertype_to
]))(var_sub
, var_mmodule
, var_anchor
, var114
) /* supertype_to on <var_sub:MType(MClassType)>*/;
3235 var116
= ((val
* (*)(val
*))(var_sub2
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sub2
) /* mclass on <var_sub2:MClassType>*/;
3236 var117
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sup
) /* mclass on <var_sup:MType(MGenericType)>*/;
3237 var118
= ((short int (*)(val
*, val
*))(var116
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var116
, var117
) /* == on <var116:MClass>*/;
3239 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3240 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 637);
3243 var119
= NEW_range__Range(&type_range__Rangekernel__Int
);
3245 var121
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sup
) /* mclass on <var_sup:MType(MGenericType)>*/;
3246 var122
= ((long (*)(val
*))(var121
->class->vft
[COLOR_model__MClass__arity
]))(var121
) /* arity on <var121:MClass>*/;
3247 var123
= BOX_kernel__Int(var120
); /* autobox from Int to Discrete */
3248 var124
= BOX_kernel__Int(var122
); /* autobox from Int to Discrete */
3249 ((void (*)(val
*, val
*, val
*))(var119
->class->vft
[COLOR_range__Range__without_last
]))(var119
, var123
, var124
) /* without_last on <var119:Range[Int]>*/;
3250 CHECK_NEW_range__Range(var119
);
3251 var125
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var119
) /* iterator on <var119:Range[Int]>*/;
3253 var126
= ((short int (*)(val
*))(var125
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var125
) /* is_ok on <var125:Iterator[nullable Object]>*/;
3255 var127
= ((val
* (*)(val
*))(var125
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var125
) /* item on <var125:Iterator[nullable Object]>*/;
3256 var128
= ((struct instance_kernel__Int
*)var127
)->value
; /* autounbox from nullable Object to Int */;
3258 var129
= ((val
* (*)(val
*))(var_sub2
->class->vft
[COLOR_model__MClassType__arguments
]))(var_sub2
) /* arguments on <var_sub2:MClassType>*/;
3259 var130
= ((val
* (*)(val
*, long))(var129
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var129
, var_i
) /* [] on <var129:Array[MType]>*/;
3260 var_sub_arg
= var130
;
3261 var131
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__arguments
]))(var_sup
) /* arguments on <var_sup:MType(MGenericType)>*/;
3262 var132
= ((val
* (*)(val
*, long))(var131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var131
, var_i
) /* [] on <var131:Array[MType]>*/;
3263 var_sup_arg
= var132
;
3264 var133
= ((short int (*)(val
*, val
*, val
*, val
*))(var_sub_arg
->class->vft
[COLOR_model__MType__is_subtype
]))(var_sub_arg
, var_mmodule
, var_anchor
, var_sup_arg
) /* is_subtype on <var_sub_arg:MType>*/;
3267 { /* Inline kernel#Bool#== (var_res,var134) */
3268 var137
= var_res
== var134
;
3271 RET_LABEL136
:(void)0;
3279 CONTINUE_label
: (void)0;
3280 ((void (*)(val
*))(var125
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var125
) /* next on <var125:Iterator[nullable Object]>*/;
3282 BREAK_label
: (void)0;
3289 /* method model#MType#is_subtype for (self: Object, MModule, nullable MClassType, MType): Bool */
3290 short int VIRTUAL_model__MType__is_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3291 short int var
/* : Bool */;
3292 short int var1
/* : Bool */;
3293 var1
= model__MType__is_subtype(self
, p0
, p1
, p2
);
3298 /* method model#MType#anchor_to for (self: MType, MModule, MClassType): MType */
3299 val
* model__MType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
3300 val
* var
/* : MType */;
3301 val
* var_mmodule
/* var mmodule: MModule */;
3302 val
* var_anchor
/* var anchor: MClassType */;
3303 short int var1
/* : Bool */;
3304 short int var2
/* : Bool */;
3305 short int var3
/* : Bool */;
3306 short int var4
/* : Bool */;
3307 val
* var5
/* : null */;
3308 short int var6
/* : Bool */;
3309 val
* var7
/* : MType */;
3310 val
* var_res
/* var res: MType */;
3311 short int var8
/* : Bool */;
3312 short int var9
/* : Bool */;
3315 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
3322 var3
= ((short int (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MType__need_anchor
]))(var_anchor
) /* need_anchor on <var_anchor:MClassType>*/;
3325 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3326 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 682);
3331 var7
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(self
->class->vft
[COLOR_model__MType__resolve_for
]))(self
, var_anchor
, var5
, var_mmodule
, var6
) /* resolve_for on <self:MType>*/;
3333 var8
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__need_anchor
]))(var_res
) /* need_anchor on <var_res:MType>*/;
3336 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3337 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 685);
3345 /* method model#MType#anchor_to for (self: Object, MModule, MClassType): MType */
3346 val
* VIRTUAL_model__MType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
3347 val
* var
/* : MType */;
3348 val
* var1
/* : MType */;
3349 var1
= model__MType__anchor_to(self
, p0
, p1
);
3354 /* method model#MType#need_anchor for (self: MType): Bool */
3355 short int model__MType__need_anchor(val
* self
) {
3356 short int var
/* : Bool */;
3357 short int var1
/* : Bool */;
3364 /* method model#MType#need_anchor for (self: Object): Bool */
3365 short int VIRTUAL_model__MType__need_anchor(val
* self
) {
3366 short int var
/* : Bool */;
3367 short int var1
/* : Bool */;
3368 var1
= model__MType__need_anchor(self
);
3373 /* method model#MType#supertype_to for (self: MType, MModule, nullable MClassType, MClass): MClassType */
3374 val
* model__MType__supertype_to(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3375 val
* var
/* : MClassType */;
3376 val
* var_mmodule
/* var mmodule: MModule */;
3377 val
* var_anchor
/* var anchor: nullable MClassType */;
3378 val
* var_super_mclass
/* var super_mclass: MClass */;
3379 long var1
/* : Int */;
3380 long var2
/* : Int */;
3381 short int var3
/* : Bool */;
3382 short int var5
/* : Bool */;
3383 val
* var6
/* : MClassType */;
3384 short int var7
/* : Bool */;
3385 short int var8
/* : Bool */;
3388 short int var_
/* var : Bool */;
3389 val
* var9
/* : MClass */;
3390 short int var10
/* : Bool */;
3391 short int var11
/* : Bool */;
3392 val
* var12
/* : null */;
3393 short int var13
/* : Bool */;
3394 val
* var14
/* : MType */;
3395 val
* var_resolved_self
/* var resolved_self: nullable Object */;
3396 val
* var15
/* : Set[MClassType] */;
3397 val
* var_supertypes
/* var supertypes: Set[MClassType] */;
3398 val
* var16
/* : Iterator[nullable Object] */;
3399 short int var17
/* : Bool */;
3400 val
* var18
/* : nullable Object */;
3401 val
* var_supertype
/* var supertype: MClassType */;
3402 val
* var19
/* : MClass */;
3403 short int var20
/* : Bool */;
3404 short int var21
/* : Bool */;
3405 val
* var22
/* : MType */;
3408 var_super_mclass
= p2
;
3409 var1
= ((long (*)(val
*))(var_super_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_super_mclass
) /* arity on <var_super_mclass:MClass>*/;
3411 { /* Inline kernel#Int#== (var1,var2) */
3412 var5
= var1
== var2
;
3418 var6
= ((val
* (*)(val
*))(var_super_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_super_mclass
) /* mclass_type on <var_super_mclass:MClass>*/;
3423 /* <self:MType> isa MClassType */
3424 cltype
= type_model__MClassType
.color
;
3425 idtype
= type_model__MClassType
.id
;
3426 if(cltype
>= self
->type
->table_size
) {
3429 var8
= self
->type
->type_table
[cltype
] == idtype
;
3433 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MType(MClassType)>*/;
3434 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var9
, var_super_mclass
) /* == on <var9:MClass>*/;
3444 var11
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
3447 if (var_anchor
== NULL
) {
3448 var13
= 0; /* is null */
3450 var13
= 1; /* arg is null and recv is not */
3453 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3454 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 711);
3457 var14
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MType__anchor_to
]))(self
, var_mmodule
, var_anchor
) /* anchor_to on <self:MType>*/;
3458 var_resolved_self
= var14
;
3460 var_resolved_self
= self
;
3462 var15
= ((val
* (*)(val
*, val
*))(var_resolved_self
->class->vft
[COLOR_model__MType__collect_mtypes
]))(var_resolved_self
, var_mmodule
) /* collect_mtypes on <var_resolved_self:nullable Object(MType)>*/;
3463 var_supertypes
= var15
;
3464 var16
= ((val
* (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supertypes
) /* iterator on <var_supertypes:Set[MClassType]>*/;
3466 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
3468 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
3469 var_supertype
= var18
;
3470 var19
= ((val
* (*)(val
*))(var_supertype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_supertype
) /* mclass on <var_supertype:MClassType>*/;
3471 var20
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var_super_mclass
) /* == on <var19:MClass>*/;
3474 var22
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_supertype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_supertype
, self
, var_anchor
, var_mmodule
, var21
) /* resolve_for on <var_supertype:MClassType>*/;
3479 CONTINUE_label
: (void)0;
3480 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
3482 BREAK_label
: (void)0;
3483 fprintf(stderr
, "Runtime error: %s", "Aborted");
3484 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 723);
3489 /* method model#MType#supertype_to for (self: Object, MModule, nullable MClassType, MClass): MClassType */
3490 val
* VIRTUAL_model__MType__supertype_to(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3491 val
* var
/* : MClassType */;
3492 val
* var1
/* : MClassType */;
3493 var1
= model__MType__supertype_to(self
, p0
, p1
, p2
);
3498 /* method model#MType#resolve_for for (self: MType, MType, nullable MClassType, MModule, Bool): MType */
3499 val
* model__MType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3500 val
* var
/* : MType */;
3501 const char* var_class_name
;
3502 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3503 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "resolve_for", var_class_name
);
3504 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 726);
3509 /* method model#MType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
3510 val
* VIRTUAL_model__MType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3511 val
* var
/* : MType */;
3512 val
* var1
/* : MType */;
3513 var1
= model__MType__resolve_for(self
, p0
, p1
, p2
, p3
);
3518 /* method model#MType#can_resolve_for for (self: MType, MType, nullable MClassType, MModule): Bool */
3519 short int model__MType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3520 short int var
/* : Bool */;
3521 const char* var_class_name
;
3522 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3523 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name
);
3524 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 798);
3529 /* method model#MType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
3530 short int VIRTUAL_model__MType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3531 short int var
/* : Bool */;
3532 short int var1
/* : Bool */;
3533 var1
= model__MType__can_resolve_for(self
, p0
, p1
, p2
);
3538 /* method model#MType#as_nullable for (self: MType): MType */
3539 val
* model__MType__as_nullable(val
* self
) {
3540 val
* var
/* : MType */;
3541 val
* var1
/* : nullable MType */;
3542 val
* var_res
/* var res: nullable MType */;
3543 val
* var2
/* : null */;
3544 short int var3
/* : Bool */;
3545 val
* var4
/* : MNullableType */;
3546 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MType__as_nullable_cache
]))(self
) /* as_nullable_cache on <self:MType>*/;
3549 if (var_res
== NULL
) {
3550 var3
= 0; /* is null */
3552 var3
= 1; /* arg is null and recv is not */
3559 var4
= NEW_model__MNullableType(&type_model__MNullableType
);
3560 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_model__MNullableType__init
]))(var4
, self
) /* init on <var4:MNullableType>*/;
3561 CHECK_NEW_model__MNullableType(var4
);
3563 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MType__as_nullable_cache_61d
]))(self
, var_res
) /* as_nullable_cache= on <self:MType>*/;
3569 /* method model#MType#as_nullable for (self: Object): MType */
3570 val
* VIRTUAL_model__MType__as_nullable(val
* self
) {
3571 val
* var
/* : MType */;
3572 val
* var1
/* : MType */;
3573 var1
= model__MType__as_nullable(self
);
3578 /* method model#MType#as_nullable_cache for (self: MType): nullable MType */
3579 val
* model__MType__as_nullable_cache(val
* self
) {
3580 val
* var
/* : nullable MType */;
3581 val
* var1
/* : nullable MType */;
3582 var1
= self
->attrs
[COLOR_model__MType___64das_nullable_cache
].val
; /* @as_nullable_cache on <self:MType> */
3587 /* method model#MType#as_nullable_cache for (self: Object): nullable MType */
3588 val
* VIRTUAL_model__MType__as_nullable_cache(val
* self
) {
3589 val
* var
/* : nullable MType */;
3590 val
* var1
/* : nullable MType */;
3591 var1
= model__MType__as_nullable_cache(self
);
3596 /* method model#MType#as_nullable_cache= for (self: MType, nullable MType) */
3597 void model__MType__as_nullable_cache_61d(val
* self
, val
* p0
) {
3598 self
->attrs
[COLOR_model__MType___64das_nullable_cache
].val
= p0
; /* @as_nullable_cache on <self:MType> */
3601 /* method model#MType#as_nullable_cache= for (self: Object, nullable MType) */
3602 void VIRTUAL_model__MType__as_nullable_cache_61d(val
* self
, val
* p0
) {
3603 model__MType__as_nullable_cache_61d(self
, p0
);
3606 /* method model#MType#depth for (self: MType): Int */
3607 long model__MType__depth(val
* self
) {
3608 long var
/* : Int */;
3609 long var1
/* : Int */;
3616 /* method model#MType#depth for (self: Object): Int */
3617 long VIRTUAL_model__MType__depth(val
* self
) {
3618 long var
/* : Int */;
3619 long var1
/* : Int */;
3620 var1
= model__MType__depth(self
);
3625 /* method model#MType#length for (self: MType): Int */
3626 long model__MType__length(val
* self
) {
3627 long var
/* : Int */;
3628 long var1
/* : Int */;
3635 /* method model#MType#length for (self: Object): Int */
3636 long VIRTUAL_model__MType__length(val
* self
) {
3637 long var
/* : Int */;
3638 long var1
/* : Int */;
3639 var1
= model__MType__length(self
);
3644 /* method model#MType#collect_mclassdefs for (self: MType, MModule): Set[MClassDef] */
3645 val
* model__MType__collect_mclassdefs(val
* self
, val
* p0
) {
3646 val
* var
/* : Set[MClassDef] */;
3647 const char* var_class_name
;
3648 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3649 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name
);
3650 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 860);
3655 /* method model#MType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
3656 val
* VIRTUAL_model__MType__collect_mclassdefs(val
* self
, val
* p0
) {
3657 val
* var
/* : Set[MClassDef] */;
3658 val
* var1
/* : Set[MClassDef] */;
3659 var1
= model__MType__collect_mclassdefs(self
, p0
);
3664 /* method model#MType#collect_mclasses for (self: MType, MModule): Set[MClass] */
3665 val
* model__MType__collect_mclasses(val
* self
, val
* p0
) {
3666 val
* var
/* : Set[MClass] */;
3667 const char* var_class_name
;
3668 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3669 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name
);
3670 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 870);
3675 /* method model#MType#collect_mclasses for (self: Object, MModule): Set[MClass] */
3676 val
* VIRTUAL_model__MType__collect_mclasses(val
* self
, val
* p0
) {
3677 val
* var
/* : Set[MClass] */;
3678 val
* var1
/* : Set[MClass] */;
3679 var1
= model__MType__collect_mclasses(self
, p0
);
3684 /* method model#MType#collect_mtypes for (self: MType, MModule): Set[MClassType] */
3685 val
* model__MType__collect_mtypes(val
* self
, val
* p0
) {
3686 val
* var
/* : Set[MClassType] */;
3687 const char* var_class_name
;
3688 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3689 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name
);
3690 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 876);
3695 /* method model#MType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
3696 val
* VIRTUAL_model__MType__collect_mtypes(val
* self
, val
* p0
) {
3697 val
* var
/* : Set[MClassType] */;
3698 val
* var1
/* : Set[MClassType] */;
3699 var1
= model__MType__collect_mtypes(self
, p0
);
3704 /* method model#MType#has_mproperty for (self: MType, MModule, MProperty): Bool */
3705 short int model__MType__has_mproperty(val
* self
, val
* p0
, val
* p1
) {
3706 short int var
/* : Bool */;
3707 val
* var_mmodule
/* var mmodule: MModule */;
3708 val
* var_mproperty
/* var mproperty: MProperty */;
3709 short int var1
/* : Bool */;
3710 short int var2
/* : Bool */;
3711 val
* var3
/* : Set[MClassDef] */;
3712 val
* var4
/* : MClassDef */;
3713 short int var5
/* : Bool */;
3716 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
3719 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3720 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 889);
3723 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(self
, var_mmodule
) /* collect_mclassdefs on <self:MType>*/;
3724 var4
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:MProperty>*/;
3725 var5
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var4
) /* has on <var3:Set[MClassDef]>*/;
3731 /* method model#MType#has_mproperty for (self: Object, MModule, MProperty): Bool */
3732 short int VIRTUAL_model__MType__has_mproperty(val
* self
, val
* p0
, val
* p1
) {
3733 short int var
/* : Bool */;
3734 short int var1
/* : Bool */;
3735 var1
= model__MType__has_mproperty(self
, p0
, p1
);
3740 /* method model#MType#init for (self: MType) */
3741 void model__MType__init(val
* self
) {
3744 /* method model#MType#init for (self: Object) */
3745 void VIRTUAL_model__MType__init(val
* self
) {
3746 model__MType__init(self
);
3749 /* method model#MClassType#mclass for (self: MClassType): MClass */
3750 val
* model__MClassType__mclass(val
* self
) {
3751 val
* var
/* : MClass */;
3752 val
* var1
/* : MClass */;
3753 var1
= self
->attrs
[COLOR_model__MClassType___64dmclass
].val
; /* @mclass on <self:MClassType> */
3755 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass");
3756 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 900);
3763 /* method model#MClassType#mclass for (self: Object): MClass */
3764 val
* VIRTUAL_model__MClassType__mclass(val
* self
) {
3765 val
* var
/* : MClass */;
3766 val
* var1
/* : MClass */;
3767 var1
= model__MClassType__mclass(self
);
3772 /* method model#MClassType#mclass= for (self: MClassType, MClass) */
3773 void model__MClassType__mclass_61d(val
* self
, val
* p0
) {
3774 self
->attrs
[COLOR_model__MClassType___64dmclass
].val
= p0
; /* @mclass on <self:MClassType> */
3777 /* method model#MClassType#mclass= for (self: Object, MClass) */
3778 void VIRTUAL_model__MClassType__mclass_61d(val
* self
, val
* p0
) {
3779 model__MClassType__mclass_61d(self
, p0
);
3782 /* method model#MClassType#model for (self: MClassType): Model */
3783 val
* model__MClassType__model(val
* self
) {
3784 val
* var
/* : Model */;
3785 val
* var1
/* : MClass */;
3786 val
* var2
/* : MModule */;
3787 val
* var3
/* : Model */;
3788 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
3789 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var1
) /* intro_mmodule on <var1:MClass>*/;
3790 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model_base__MModule__model
]))(var2
) /* model on <var2:MModule>*/;
3796 /* method model#MClassType#model for (self: Object): Model */
3797 val
* VIRTUAL_model__MClassType__model(val
* self
) {
3798 val
* var
/* : Model */;
3799 val
* var1
/* : Model */;
3800 var1
= model__MClassType__model(self
);
3805 /* method model#MClassType#init for (self: MClassType, MClass) */
3806 void model__MClassType__init(val
* self
, val
* p0
) {
3807 val
* var_mclass
/* var mclass: MClass */;
3809 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MClassType>*/;
3810 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__mclass_61d
]))(self
, var_mclass
) /* mclass= on <self:MClassType>*/;
3813 /* method model#MClassType#init for (self: Object, MClass) */
3814 void VIRTUAL_model__MClassType__init(val
* self
, val
* p0
) {
3815 model__MClassType__init(self
, p0
);
3818 /* method model#MClassType#arguments for (self: MClassType): Array[MType] */
3819 val
* model__MClassType__arguments(val
* self
) {
3820 val
* var
/* : Array[MType] */;
3821 val
* var1
/* : Array[MType] */;
3822 var1
= self
->attrs
[COLOR_model__MClassType___64darguments
].val
; /* @arguments on <self:MClassType> */
3824 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @arguments");
3825 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 910);
3832 /* method model#MClassType#arguments for (self: Object): Array[MType] */
3833 val
* VIRTUAL_model__MClassType__arguments(val
* self
) {
3834 val
* var
/* : Array[MType] */;
3835 val
* var1
/* : Array[MType] */;
3836 var1
= model__MClassType__arguments(self
);
3841 /* method model#MClassType#arguments= for (self: MClassType, Array[MType]) */
3842 void model__MClassType__arguments_61d(val
* self
, val
* p0
) {
3843 self
->attrs
[COLOR_model__MClassType___64darguments
].val
= p0
; /* @arguments on <self:MClassType> */
3846 /* method model#MClassType#arguments= for (self: Object, Array[MType]) */
3847 void VIRTUAL_model__MClassType__arguments_61d(val
* self
, val
* p0
) {
3848 model__MClassType__arguments_61d(self
, p0
);
3851 /* method model#MClassType#to_s for (self: MClassType): String */
3852 val
* model__MClassType__to_s(val
* self
) {
3853 val
* var
/* : String */;
3854 val
* var1
/* : MClass */;
3855 val
* var2
/* : String */;
3856 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
3857 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__Object__to_s
]))(var1
) /* to_s on <var1:MClass>*/;
3863 /* method model#MClassType#to_s for (self: Object): String */
3864 val
* VIRTUAL_model__MClassType__to_s(val
* self
) {
3865 val
* var
/* : String */;
3866 val
* var1
/* : String */;
3867 var1
= model__MClassType__to_s(self
);
3872 /* method model#MClassType#need_anchor for (self: MClassType): Bool */
3873 short int model__MClassType__need_anchor(val
* self
) {
3874 short int var
/* : Bool */;
3875 short int var1
/* : Bool */;
3882 /* method model#MClassType#need_anchor for (self: Object): Bool */
3883 short int VIRTUAL_model__MClassType__need_anchor(val
* self
) {
3884 short int var
/* : Bool */;
3885 short int var1
/* : Bool */;
3886 var1
= model__MClassType__need_anchor(self
);
3891 /* method model#MClassType#anchor_to for (self: MClassType, MModule, MClassType): MClassType */
3892 val
* model__MClassType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
3893 val
* var
/* : MClassType */;
3894 val
* var_mmodule
/* var mmodule: MModule */;
3895 val
* var_anchor
/* var anchor: MClassType */;
3896 val
* var1
/* : MType */;
3897 short int var2
/* : Bool */;
3900 const char* var_class_name
;
3903 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__anchor_to
]))(self
, p0
, p1
) /* anchor_to on <self:MClassType>*/;
3904 /* <var1:MType> isa MClassType */
3905 cltype
= type_model__MClassType
.color
;
3906 idtype
= type_model__MClassType
.id
;
3907 if(cltype
>= var1
->type
->table_size
) {
3910 var2
= var1
->type
->type_table
[cltype
] == idtype
;
3913 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
3914 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
3915 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 920);
3923 /* method model#MClassType#anchor_to for (self: Object, MModule, MClassType): MType */
3924 val
* VIRTUAL_model__MClassType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
3925 val
* var
/* : MType */;
3926 val
* var1
/* : MClassType */;
3927 var1
= model__MClassType__anchor_to(self
, p0
, p1
);
3932 /* method model#MClassType#resolve_for for (self: MClassType, MType, nullable MClassType, MModule, Bool): MClassType */
3933 val
* model__MClassType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3934 val
* var
/* : MClassType */;
3935 val
* var_mtype
/* var mtype: MType */;
3936 val
* var_anchor
/* var anchor: nullable MClassType */;
3937 val
* var_mmodule
/* var mmodule: MModule */;
3938 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
3942 var_cleanup_virtual
= p3
;
3948 /* method model#MClassType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
3949 val
* VIRTUAL_model__MClassType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3950 val
* var
/* : MType */;
3951 val
* var1
/* : MClassType */;
3952 var1
= model__MClassType__resolve_for(self
, p0
, p1
, p2
, p3
);
3957 /* method model#MClassType#can_resolve_for for (self: MClassType, MType, nullable MClassType, MModule): Bool */
3958 short int model__MClassType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3959 short int var
/* : Bool */;
3960 val
* var_mtype
/* var mtype: MType */;
3961 val
* var_anchor
/* var anchor: nullable MClassType */;
3962 val
* var_mmodule
/* var mmodule: MModule */;
3963 short int var1
/* : Bool */;
3973 /* method model#MClassType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
3974 short int VIRTUAL_model__MClassType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3975 short int var
/* : Bool */;
3976 short int var1
/* : Bool */;
3977 var1
= model__MClassType__can_resolve_for(self
, p0
, p1
, p2
);
3982 /* method model#MClassType#collect_mclassdefs for (self: MClassType, MModule): Set[MClassDef] */
3983 val
* model__MClassType__collect_mclassdefs(val
* self
, val
* p0
) {
3984 val
* var
/* : Set[MClassDef] */;
3985 val
* var_mmodule
/* var mmodule: MModule */;
3986 short int var1
/* : Bool */;
3987 short int var2
/* : Bool */;
3988 val
* var3
/* : HashMap[MModule, Set[MClassDef]] */;
3989 val
* var_cache
/* var cache: HashMap[MModule, Set[MClassDef]] */;
3990 short int var4
/* : Bool */;
3991 short int var5
/* : Bool */;
3992 val
* var6
/* : nullable Object */;
3994 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
3997 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3998 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 929);
4001 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mclassdefs_cache
]))(self
) /* collect_mclassdefs_cache on <self:MClassType>*/;
4003 var4
= ((short int (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_cache
, var_mmodule
) /* has_key on <var_cache:HashMap[MModule, Set[MClassDef]]>*/;
4006 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__collect_things
]))(self
, var_mmodule
) /* collect_things on <self:MClassType>*/;
4009 var6
= ((val
* (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_cache
, var_mmodule
) /* [] on <var_cache:HashMap[MModule, Set[MClassDef]]>*/;
4015 /* method model#MClassType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
4016 val
* VIRTUAL_model__MClassType__collect_mclassdefs(val
* self
, val
* p0
) {
4017 val
* var
/* : Set[MClassDef] */;
4018 val
* var1
/* : Set[MClassDef] */;
4019 var1
= model__MClassType__collect_mclassdefs(self
, p0
);
4024 /* method model#MClassType#collect_mclasses for (self: MClassType, MModule): Set[MClass] */
4025 val
* model__MClassType__collect_mclasses(val
* self
, val
* p0
) {
4026 val
* var
/* : Set[MClass] */;
4027 val
* var_mmodule
/* var mmodule: MModule */;
4028 short int var1
/* : Bool */;
4029 short int var2
/* : Bool */;
4030 val
* var3
/* : HashMap[MModule, Set[MClass]] */;
4031 val
* var_cache
/* var cache: HashMap[MModule, Set[MClass]] */;
4032 short int var4
/* : Bool */;
4033 short int var5
/* : Bool */;
4034 val
* var6
/* : nullable Object */;
4036 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
4039 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4040 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 939);
4043 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mclasses_cache
]))(self
) /* collect_mclasses_cache on <self:MClassType>*/;
4045 var4
= ((short int (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_cache
, var_mmodule
) /* has_key on <var_cache:HashMap[MModule, Set[MClass]]>*/;
4048 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__collect_things
]))(self
, var_mmodule
) /* collect_things on <self:MClassType>*/;
4051 var6
= ((val
* (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_cache
, var_mmodule
) /* [] on <var_cache:HashMap[MModule, Set[MClass]]>*/;
4057 /* method model#MClassType#collect_mclasses for (self: Object, MModule): Set[MClass] */
4058 val
* VIRTUAL_model__MClassType__collect_mclasses(val
* self
, val
* p0
) {
4059 val
* var
/* : Set[MClass] */;
4060 val
* var1
/* : Set[MClass] */;
4061 var1
= model__MClassType__collect_mclasses(self
, p0
);
4066 /* method model#MClassType#collect_mtypes for (self: MClassType, MModule): Set[MClassType] */
4067 val
* model__MClassType__collect_mtypes(val
* self
, val
* p0
) {
4068 val
* var
/* : Set[MClassType] */;
4069 val
* var_mmodule
/* var mmodule: MModule */;
4070 short int var1
/* : Bool */;
4071 short int var2
/* : Bool */;
4072 val
* var3
/* : HashMap[MModule, Set[MClassType]] */;
4073 val
* var_cache
/* var cache: HashMap[MModule, Set[MClassType]] */;
4074 short int var4
/* : Bool */;
4075 short int var5
/* : Bool */;
4076 val
* var6
/* : nullable Object */;
4078 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
4081 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4082 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 949);
4085 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mtypes_cache
]))(self
) /* collect_mtypes_cache on <self:MClassType>*/;
4087 var4
= ((short int (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var_cache
, var_mmodule
) /* has_key on <var_cache:HashMap[MModule, Set[MClassType]]>*/;
4090 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__collect_things
]))(self
, var_mmodule
) /* collect_things on <self:MClassType>*/;
4093 var6
= ((val
* (*)(val
*, val
*))(var_cache
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var_cache
, var_mmodule
) /* [] on <var_cache:HashMap[MModule, Set[MClassType]]>*/;
4099 /* method model#MClassType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
4100 val
* VIRTUAL_model__MClassType__collect_mtypes(val
* self
, val
* p0
) {
4101 val
* var
/* : Set[MClassType] */;
4102 val
* var1
/* : Set[MClassType] */;
4103 var1
= model__MClassType__collect_mtypes(self
, p0
);
4108 /* method model#MClassType#collect_things for (self: MClassType, MModule) */
4109 void model__MClassType__collect_things(val
* self
, val
* p0
) {
4110 val
* var_mmodule
/* var mmodule: MModule */;
4111 val
* var
/* : HashSet[MClassDef] */;
4112 val
* var_res
/* var res: HashSet[MClassDef] */;
4113 val
* var1
/* : HashSet[MClass] */;
4114 val
* var_seen
/* var seen: HashSet[MClass] */;
4115 val
* var2
/* : HashSet[MClassType] */;
4116 val
* var_types
/* var types: HashSet[MClassType] */;
4117 val
* var3
/* : MClass */;
4118 val
* var4
/* : Array[MClass] */;
4119 long var5
/* : Int */;
4120 val
* var_
/* var : Array[MClass] */;
4121 val
* var6
/* : MClass */;
4122 val
* var_todo
/* var todo: Array[MClass] */;
4123 short int var7
/* : Bool */;
4124 short int var8
/* : Bool */;
4125 val
* var9
/* : nullable Object */;
4126 val
* var_mclass
/* var mclass: MClass */;
4127 val
* var10
/* : Array[MClassDef] */;
4128 val
* var11
/* : Iterator[nullable Object] */;
4129 short int var12
/* : Bool */;
4130 val
* var13
/* : nullable Object */;
4131 val
* var_mclassdef
/* var mclassdef: MClassDef */;
4132 val
* var14
/* : POSetElement[MModule] */;
4133 val
* var15
/* : MModule */;
4134 short int var16
/* : Bool */;
4135 short int var17
/* : Bool */;
4136 val
* var18
/* : Array[MClassType] */;
4137 val
* var19
/* : Iterator[nullable Object] */;
4138 short int var20
/* : Bool */;
4139 val
* var21
/* : nullable Object */;
4140 val
* var_supertype
/* var supertype: MClassType */;
4141 val
* var22
/* : MClass */;
4142 val
* var_superclass
/* var superclass: MClass */;
4143 short int var23
/* : Bool */;
4144 val
* var26
/* : HashMap[MModule, Set[MClassDef]] */;
4145 val
* var27
/* : HashMap[MModule, Set[MClass]] */;
4146 val
* var28
/* : HashMap[MModule, Set[MClassType]] */;
4148 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef
);
4149 ((void (*)(val
*))(var
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var
) /* init on <var:HashSet[MClassDef]>*/;
4150 CHECK_NEW_hash_collection__HashSet(var
);
4152 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
4153 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MClass]>*/;
4154 CHECK_NEW_hash_collection__HashSet(var1
);
4156 var2
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType
);
4157 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var2
) /* init on <var2:HashSet[MClassType]>*/;
4158 CHECK_NEW_hash_collection__HashSet(var2
);
4160 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
4161 ((void (*)(val
*, val
*))(var_seen
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_seen
, var3
) /* add on <var_seen:HashSet[MClass]>*/;
4162 var4
= NEW_array__Array(&type_array__Arraymodel__MClass
);
4164 ((void (*)(val
*, long))(var4
->class->vft
[COLOR_array__Array__with_capacity
]))(var4
, var5
) /* with_capacity on <var4:Array[MClass]>*/;
4165 CHECK_NEW_array__Array(var4
);
4167 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
4168 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var6
) /* push on <var_:Array[MClass]>*/;
4171 var7
= ((short int (*)(val
*))(var_todo
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_todo
) /* is_empty on <var_todo:Array[MClass]>*/;
4174 var9
= ((val
* (*)(val
*))(var_todo
->class->vft
[COLOR_abstract_collection__Sequence__pop
]))(var_todo
) /* pop on <var_todo:Array[MClass]>*/;
4176 var10
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_mclass
) /* mclassdefs on <var_mclass:MClass>*/;
4177 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[MClassDef]>*/;
4179 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
4181 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
4182 var_mclassdef
= var13
;
4183 var14
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
4184 var15
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_mclassdef
) /* mmodule on <var_mclassdef:MClassDef>*/;
4185 var16
= ((short int (*)(val
*, val
*))(var14
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var14
, var15
) /* <= on <var14:POSetElement[MModule]>*/;
4188 goto CONTINUE_label
;
4191 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_mclassdef
) /* add on <var_res:HashSet[MClassDef]>*/;
4192 var18
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var_mclassdef
) /* supertypes on <var_mclassdef:MClassDef>*/;
4193 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:Array[MClassType]>*/;
4195 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[nullable Object]>*/;
4197 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[nullable Object]>*/;
4198 var_supertype
= var21
;
4199 ((void (*)(val
*, val
*))(var_types
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types
, var_supertype
) /* add on <var_types:HashSet[MClassType]>*/;
4200 var22
= ((val
* (*)(val
*))(var_supertype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_supertype
) /* mclass on <var_supertype:MClassType>*/;
4201 var_superclass
= var22
;
4202 var23
= ((short int (*)(val
*, val
*))(var_seen
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_seen
, var_superclass
) /* has on <var_seen:HashSet[MClass]>*/;
4204 goto CONTINUE_label24
;
4207 ((void (*)(val
*, val
*))(var_seen
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_seen
, var_superclass
) /* add on <var_seen:HashSet[MClass]>*/;
4208 ((void (*)(val
*, val
*))(var_todo
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_todo
, var_superclass
) /* add on <var_todo:Array[MClass]>*/;
4209 CONTINUE_label24
: (void)0;
4210 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[nullable Object]>*/;
4212 BREAK_label24
: (void)0;
4213 CONTINUE_label
: (void)0;
4214 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
4216 BREAK_label
: (void)0;
4217 CONTINUE_label25
: (void)0;
4219 BREAK_label25
: (void)0;
4220 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mclassdefs_cache
]))(self
) /* collect_mclassdefs_cache on <self:MClassType>*/;
4221 ((void (*)(val
*, val
*, val
*))(var26
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var26
, var_mmodule
, var_res
) /* []= on <var26:HashMap[MModule, Set[MClassDef]]>*/;
4222 var27
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mclasses_cache
]))(self
) /* collect_mclasses_cache on <self:MClassType>*/;
4223 ((void (*)(val
*, val
*, val
*))(var27
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var27
, var_mmodule
, var_seen
) /* []= on <var27:HashMap[MModule, Set[MClass]]>*/;
4224 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mtypes_cache
]))(self
) /* collect_mtypes_cache on <self:MClassType>*/;
4225 ((void (*)(val
*, val
*, val
*))(var28
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var28
, var_mmodule
, var_types
) /* []= on <var28:HashMap[MModule, Set[MClassType]]>*/;
4228 /* method model#MClassType#collect_things for (self: Object, MModule) */
4229 void VIRTUAL_model__MClassType__collect_things(val
* self
, val
* p0
) {
4230 model__MClassType__collect_things(self
, p0
);
4233 /* method model#MClassType#collect_mclassdefs_cache for (self: MClassType): HashMap[MModule, Set[MClassDef]] */
4234 val
* model__MClassType__collect_mclassdefs_cache(val
* self
) {
4235 val
* var
/* : HashMap[MModule, Set[MClassDef]] */;
4236 val
* var1
/* : HashMap[MModule, Set[MClassDef]] */;
4237 var1
= self
->attrs
[COLOR_model__MClassType___64dcollect_mclassdefs_cache
].val
; /* @collect_mclassdefs_cache on <self:MClassType> */
4239 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_mclassdefs_cache");
4240 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 987);
4247 /* method model#MClassType#collect_mclassdefs_cache for (self: Object): HashMap[MModule, Set[MClassDef]] */
4248 val
* VIRTUAL_model__MClassType__collect_mclassdefs_cache(val
* self
) {
4249 val
* var
/* : HashMap[MModule, Set[MClassDef]] */;
4250 val
* var1
/* : HashMap[MModule, Set[MClassDef]] */;
4251 var1
= model__MClassType__collect_mclassdefs_cache(self
);
4256 /* method model#MClassType#collect_mclassdefs_cache= for (self: MClassType, HashMap[MModule, Set[MClassDef]]) */
4257 void model__MClassType__collect_mclassdefs_cache_61d(val
* self
, val
* p0
) {
4258 self
->attrs
[COLOR_model__MClassType___64dcollect_mclassdefs_cache
].val
= p0
; /* @collect_mclassdefs_cache on <self:MClassType> */
4261 /* method model#MClassType#collect_mclassdefs_cache= for (self: Object, HashMap[MModule, Set[MClassDef]]) */
4262 void VIRTUAL_model__MClassType__collect_mclassdefs_cache_61d(val
* self
, val
* p0
) {
4263 model__MClassType__collect_mclassdefs_cache_61d(self
, p0
);
4266 /* method model#MClassType#collect_mclasses_cache for (self: MClassType): HashMap[MModule, Set[MClass]] */
4267 val
* model__MClassType__collect_mclasses_cache(val
* self
) {
4268 val
* var
/* : HashMap[MModule, Set[MClass]] */;
4269 val
* var1
/* : HashMap[MModule, Set[MClass]] */;
4270 var1
= self
->attrs
[COLOR_model__MClassType___64dcollect_mclasses_cache
].val
; /* @collect_mclasses_cache on <self:MClassType> */
4272 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_mclasses_cache");
4273 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 988);
4280 /* method model#MClassType#collect_mclasses_cache for (self: Object): HashMap[MModule, Set[MClass]] */
4281 val
* VIRTUAL_model__MClassType__collect_mclasses_cache(val
* self
) {
4282 val
* var
/* : HashMap[MModule, Set[MClass]] */;
4283 val
* var1
/* : HashMap[MModule, Set[MClass]] */;
4284 var1
= model__MClassType__collect_mclasses_cache(self
);
4289 /* method model#MClassType#collect_mclasses_cache= for (self: MClassType, HashMap[MModule, Set[MClass]]) */
4290 void model__MClassType__collect_mclasses_cache_61d(val
* self
, val
* p0
) {
4291 self
->attrs
[COLOR_model__MClassType___64dcollect_mclasses_cache
].val
= p0
; /* @collect_mclasses_cache on <self:MClassType> */
4294 /* method model#MClassType#collect_mclasses_cache= for (self: Object, HashMap[MModule, Set[MClass]]) */
4295 void VIRTUAL_model__MClassType__collect_mclasses_cache_61d(val
* self
, val
* p0
) {
4296 model__MClassType__collect_mclasses_cache_61d(self
, p0
);
4299 /* method model#MClassType#collect_mtypes_cache for (self: MClassType): HashMap[MModule, Set[MClassType]] */
4300 val
* model__MClassType__collect_mtypes_cache(val
* self
) {
4301 val
* var
/* : HashMap[MModule, Set[MClassType]] */;
4302 val
* var1
/* : HashMap[MModule, Set[MClassType]] */;
4303 var1
= self
->attrs
[COLOR_model__MClassType___64dcollect_mtypes_cache
].val
; /* @collect_mtypes_cache on <self:MClassType> */
4305 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_mtypes_cache");
4306 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 989);
4313 /* method model#MClassType#collect_mtypes_cache for (self: Object): HashMap[MModule, Set[MClassType]] */
4314 val
* VIRTUAL_model__MClassType__collect_mtypes_cache(val
* self
) {
4315 val
* var
/* : HashMap[MModule, Set[MClassType]] */;
4316 val
* var1
/* : HashMap[MModule, Set[MClassType]] */;
4317 var1
= model__MClassType__collect_mtypes_cache(self
);
4322 /* method model#MClassType#collect_mtypes_cache= for (self: MClassType, HashMap[MModule, Set[MClassType]]) */
4323 void model__MClassType__collect_mtypes_cache_61d(val
* self
, val
* p0
) {
4324 self
->attrs
[COLOR_model__MClassType___64dcollect_mtypes_cache
].val
= p0
; /* @collect_mtypes_cache on <self:MClassType> */
4327 /* method model#MClassType#collect_mtypes_cache= for (self: Object, HashMap[MModule, Set[MClassType]]) */
4328 void VIRTUAL_model__MClassType__collect_mtypes_cache_61d(val
* self
, val
* p0
) {
4329 model__MClassType__collect_mtypes_cache_61d(self
, p0
);
4332 /* method model#MGenericType#init for (self: MGenericType, MClass, Array[MType]) */
4333 void model__MGenericType__init(val
* self
, val
* p0
, val
* p1
) {
4334 val
* var_mclass
/* var mclass: MClass */;
4335 val
* var_arguments
/* var arguments: Array[MType] */;
4336 val
* var
/* : MClass */;
4337 long var1
/* : Int */;
4338 long var2
/* : Int */;
4339 short int var3
/* : Bool */;
4340 short int var5
/* : Bool */;
4341 short int var6
/* : Bool */;
4342 val
* var7
/* : Iterator[nullable Object] */;
4343 short int var8
/* : Bool */;
4344 val
* var9
/* : nullable Object */;
4345 val
* var_t
/* var t: MType */;
4346 short int var10
/* : Bool */;
4347 short int var11
/* : Bool */;
4348 static val
* varonce
;
4349 val
* var12
/* : String */;
4350 char* var13
/* : NativeString */;
4351 long var14
/* : Int */;
4352 val
* var15
/* : String */;
4353 static val
* varonce16
;
4354 val
* var17
/* : String */;
4355 char* var18
/* : NativeString */;
4356 long var19
/* : Int */;
4357 val
* var20
/* : String */;
4358 val
* var21
/* : String */;
4359 static val
* varonce22
;
4360 val
* var23
/* : String */;
4361 char* var24
/* : NativeString */;
4362 long var25
/* : Int */;
4363 val
* var26
/* : String */;
4364 val
* var27
/* : Array[Object] */;
4365 long var28
/* : Int */;
4366 val
* var29
/* : NativeArray[Object] */;
4367 val
* var30
/* : String */;
4370 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__init
]))(self
, var_mclass
) /* init on <self:MGenericType>*/;
4371 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MGenericType>*/;
4372 var1
= ((long (*)(val
*))(var
->class->vft
[COLOR_model__MClass__arity
]))(var
) /* arity on <var:MClass>*/;
4373 var2
= ((long (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_arguments
) /* length on <var_arguments:Array[MType]>*/;
4374 { /* Inline kernel#Int#== (var1,var2) */
4375 var5
= var1
== var2
;
4381 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4382 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1001);
4385 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__arguments_61d
]))(self
, var_arguments
) /* arguments= on <self:MGenericType>*/;
4387 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_model__MGenericType__need_anchor_61d
]))(self
, var6
) /* need_anchor= on <self:MGenericType>*/;
4388 var7
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_arguments
) /* iterator on <var_arguments:Array[MType]>*/;
4390 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
4392 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
4394 var10
= ((short int (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__need_anchor
]))(var_t
) /* need_anchor on <var_t:MType>*/;
4397 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_model__MGenericType__need_anchor_61d
]))(self
, var11
) /* need_anchor= on <self:MGenericType>*/;
4401 CONTINUE_label
: (void)0;
4402 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
4404 BREAK_label
: (void)0;
4410 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4419 var20
= string__NativeString__to_s_with_length(var18
, var19
);
4423 var21
= ((val
* (*)(val
*, val
*))(var_arguments
->class->vft
[COLOR_string__Collection__join
]))(var_arguments
, var17
) /* join on <var_arguments:Array[MType]>*/;
4429 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4433 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
4434 { /* var27 = array_instance Array[Object] */
4436 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
4437 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var_mclass
;
4438 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var12
;
4439 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var21
;
4440 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var23
;
4441 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
4442 CHECK_NEW_array__Array(var27
);
4444 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
4445 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MGenericType__to_s_61d
]))(self
, var30
) /* to_s= on <self:MGenericType>*/;
4448 /* method model#MGenericType#init for (self: Object, MClass, Array[MType]) */
4449 void VIRTUAL_model__MGenericType__init(val
* self
, val
* p0
, val
* p1
) {
4450 model__MGenericType__init(self
, p0
, p1
);
4453 /* method model#MGenericType#to_s for (self: MGenericType): String */
4454 val
* model__MGenericType__to_s(val
* self
) {
4455 val
* var
/* : String */;
4456 val
* var1
/* : String */;
4457 var1
= self
->attrs
[COLOR_model__MGenericType___64dto_s
].val
; /* @to_s on <self:MGenericType> */
4459 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
4460 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1015);
4467 /* method model#MGenericType#to_s for (self: Object): String */
4468 val
* VIRTUAL_model__MGenericType__to_s(val
* self
) {
4469 val
* var
/* : String */;
4470 val
* var1
/* : String */;
4471 var1
= model__MGenericType__to_s(self
);
4476 /* method model#MGenericType#to_s= for (self: MGenericType, String) */
4477 void model__MGenericType__to_s_61d(val
* self
, val
* p0
) {
4478 self
->attrs
[COLOR_model__MGenericType___64dto_s
].val
= p0
; /* @to_s on <self:MGenericType> */
4481 /* method model#MGenericType#to_s= for (self: Object, String) */
4482 void VIRTUAL_model__MGenericType__to_s_61d(val
* self
, val
* p0
) {
4483 model__MGenericType__to_s_61d(self
, p0
);
4486 /* method model#MGenericType#need_anchor for (self: MGenericType): Bool */
4487 short int model__MGenericType__need_anchor(val
* self
) {
4488 short int var
/* : Bool */;
4489 short int var1
/* : Bool */;
4490 var1
= self
->attrs
[COLOR_model__MGenericType___64dneed_anchor
].s
; /* @need_anchor on <self:MGenericType> */
4495 /* method model#MGenericType#need_anchor for (self: Object): Bool */
4496 short int VIRTUAL_model__MGenericType__need_anchor(val
* self
) {
4497 short int var
/* : Bool */;
4498 short int var1
/* : Bool */;
4499 var1
= model__MGenericType__need_anchor(self
);
4504 /* method model#MGenericType#need_anchor= for (self: MGenericType, Bool) */
4505 void model__MGenericType__need_anchor_61d(val
* self
, short int p0
) {
4506 self
->attrs
[COLOR_model__MGenericType___64dneed_anchor
].s
= p0
; /* @need_anchor on <self:MGenericType> */
4509 /* method model#MGenericType#need_anchor= for (self: Object, Bool) */
4510 void VIRTUAL_model__MGenericType__need_anchor_61d(val
* self
, short int p0
) {
4511 model__MGenericType__need_anchor_61d(self
, p0
);
4514 /* method model#MGenericType#resolve_for for (self: MGenericType, MType, nullable MClassType, MModule, Bool): MType */
4515 val
* model__MGenericType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4516 val
* var
/* : MType */;
4517 val
* var_mtype
/* var mtype: MType */;
4518 val
* var_anchor
/* var anchor: nullable MClassType */;
4519 val
* var_mmodule
/* var mmodule: MModule */;
4520 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
4521 short int var1
/* : Bool */;
4522 short int var2
/* : Bool */;
4523 short int var3
/* : Bool */;
4524 val
* var4
/* : Array[MType] */;
4525 val
* var_types
/* var types: Array[MType] */;
4526 val
* var5
/* : Array[MType] */;
4527 val
* var6
/* : Iterator[nullable Object] */;
4528 short int var7
/* : Bool */;
4529 val
* var8
/* : nullable Object */;
4530 val
* var_t
/* var t: MType */;
4531 val
* var9
/* : MType */;
4532 val
* var10
/* : MClass */;
4533 val
* var11
/* : MClassType */;
4537 var_cleanup_virtual
= p3
;
4538 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MGenericType>*/;
4545 var3
= ((short int (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MType__can_resolve_for
]))(self
, var_mtype
, var_anchor
, var_mmodule
) /* can_resolve_for on <self:MGenericType>*/;
4547 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4548 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1024);
4551 var4
= NEW_array__Array(&type_array__Arraymodel__MType
);
4552 ((void (*)(val
*))(var4
->class->vft
[COLOR_array__Array__init
]))(var4
) /* init on <var4:Array[MType]>*/;
4553 CHECK_NEW_array__Array(var4
);
4555 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__arguments
]))(self
) /* arguments on <self:MGenericType>*/;
4556 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:Array[MType]>*/;
4558 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
4560 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
4562 var9
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_t
->class->vft
[COLOR_model__MType__resolve_for
]))(var_t
, var_mtype
, var_anchor
, var_mmodule
, var_cleanup_virtual
) /* resolve_for on <var_t:MType>*/;
4563 ((void (*)(val
*, val
*))(var_types
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types
, var9
) /* add on <var_types:Array[MType]>*/;
4564 CONTINUE_label
: (void)0;
4565 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
4567 BREAK_label
: (void)0;
4568 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MGenericType>*/;
4569 var11
= ((val
* (*)(val
*, val
*))(var10
->class->vft
[COLOR_model__MClass__get_mtype
]))(var10
, var_types
) /* get_mtype on <var10:MClass>*/;
4575 /* method model#MGenericType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
4576 val
* VIRTUAL_model__MGenericType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4577 val
* var
/* : MType */;
4578 val
* var1
/* : MType */;
4579 var1
= model__MGenericType__resolve_for(self
, p0
, p1
, p2
, p3
);
4584 /* method model#MGenericType#can_resolve_for for (self: MGenericType, MType, nullable MClassType, MModule): Bool */
4585 short int model__MGenericType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4586 short int var
/* : Bool */;
4587 val
* var_mtype
/* var mtype: MType */;
4588 val
* var_anchor
/* var anchor: nullable MClassType */;
4589 val
* var_mmodule
/* var mmodule: MModule */;
4590 short int var1
/* : Bool */;
4591 short int var2
/* : Bool */;
4592 short int var3
/* : Bool */;
4593 val
* var4
/* : Array[MType] */;
4594 val
* var5
/* : Iterator[nullable Object] */;
4595 short int var6
/* : Bool */;
4596 val
* var7
/* : nullable Object */;
4597 val
* var_t
/* var t: MType */;
4598 short int var8
/* : Bool */;
4599 short int var9
/* : Bool */;
4600 short int var10
/* : Bool */;
4601 short int var11
/* : Bool */;
4605 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MGenericType>*/;
4613 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__arguments
]))(self
) /* arguments on <self:MGenericType>*/;
4614 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var4
) /* iterator on <var4:Array[MType]>*/;
4616 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[nullable Object]>*/;
4618 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[nullable Object]>*/;
4620 var8
= ((short int (*)(val
*, val
*, val
*, val
*))(var_t
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_t
, var_mtype
, var_anchor
, var_mmodule
) /* can_resolve_for on <var_t:MType>*/;
4628 CONTINUE_label
: (void)0;
4629 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[nullable Object]>*/;
4631 BREAK_label
: (void)0;
4638 /* method model#MGenericType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
4639 short int VIRTUAL_model__MGenericType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4640 short int var
/* : Bool */;
4641 short int var1
/* : Bool */;
4642 var1
= model__MGenericType__can_resolve_for(self
, p0
, p1
, p2
);
4647 /* method model#MGenericType#depth for (self: MGenericType): Int */
4648 long model__MGenericType__depth(val
* self
) {
4649 long var
/* : Int */;
4650 long var1
/* : Int */;
4651 long var_dmax
/* var dmax: Int */;
4652 val
* var2
/* : Array[MType] */;
4653 val
* var3
/* : Iterator[nullable Object] */;
4654 short int var4
/* : Bool */;
4655 val
* var5
/* : nullable Object */;
4656 val
* var_a
/* var a: MType */;
4657 long var6
/* : Int */;
4658 long var_d
/* var d: Int */;
4659 short int var7
/* : Bool */;
4660 short int var9
/* : Bool */;
4663 const char* var_class_name
;
4664 short int var10
/* : Bool */;
4665 long var11
/* : Int */;
4666 long var12
/* : Int */;
4667 long var14
/* : Int */;
4670 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__arguments
]))(self
) /* arguments on <self:MGenericType>*/;
4671 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[MType]>*/;
4673 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
4675 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
4677 var6
= ((long (*)(val
*))(var_a
->class->vft
[COLOR_model__MType__depth
]))(var_a
) /* depth on <var_a:MType>*/;
4679 { /* Inline kernel#Int#> (var_d,var_dmax) */
4680 /* Covariant cast for argument 0 (i) <var_dmax:Int> isa OTHER */
4681 /* <var_dmax:Int> isa OTHER */
4682 var9
= 1; /* easy <var_dmax:Int> isa OTHER*/
4684 var_class_name
= type_kernel__Int
.name
;
4685 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4686 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
4689 var10
= var_d
> var_dmax
;
4698 CONTINUE_label
: (void)0;
4699 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4701 BREAK_label
: (void)0;
4703 { /* Inline kernel#Int#+ (var_dmax,var11) */
4704 var14
= var_dmax
+ var11
;
4707 RET_LABEL13
:(void)0;
4714 /* method model#MGenericType#depth for (self: Object): Int */
4715 long VIRTUAL_model__MGenericType__depth(val
* self
) {
4716 long var
/* : Int */;
4717 long var1
/* : Int */;
4718 var1
= model__MGenericType__depth(self
);
4723 /* method model#MGenericType#length for (self: MGenericType): Int */
4724 long model__MGenericType__length(val
* self
) {
4725 long var
/* : Int */;
4726 long var1
/* : Int */;
4727 long var_res
/* var res: Int */;
4728 val
* var2
/* : Array[MType] */;
4729 val
* var3
/* : Iterator[nullable Object] */;
4730 short int var4
/* : Bool */;
4731 val
* var5
/* : nullable Object */;
4732 val
* var_a
/* var a: MType */;
4733 long var6
/* : Int */;
4734 long var7
/* : Int */;
4735 long var9
/* : Int */;
4738 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__arguments
]))(self
) /* arguments on <self:MGenericType>*/;
4739 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[MType]>*/;
4741 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
4743 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
4745 var6
= ((long (*)(val
*))(var_a
->class->vft
[COLOR_model__MType__length
]))(var_a
) /* length on <var_a:MType>*/;
4746 { /* Inline kernel#Int#+ (var_res,var6) */
4747 var9
= var_res
+ var6
;
4753 CONTINUE_label
: (void)0;
4754 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4756 BREAK_label
: (void)0;
4762 /* method model#MGenericType#length for (self: Object): Int */
4763 long VIRTUAL_model__MGenericType__length(val
* self
) {
4764 long var
/* : Int */;
4765 long var1
/* : Int */;
4766 var1
= model__MGenericType__length(self
);
4771 /* method model#MVirtualType#mproperty for (self: MVirtualType): MProperty */
4772 val
* model__MVirtualType__mproperty(val
* self
) {
4773 val
* var
/* : MProperty */;
4774 val
* var1
/* : MProperty */;
4775 var1
= self
->attrs
[COLOR_model__MVirtualType___64dmproperty
].val
; /* @mproperty on <self:MVirtualType> */
4777 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperty");
4778 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1066);
4785 /* method model#MVirtualType#mproperty for (self: Object): MProperty */
4786 val
* VIRTUAL_model__MVirtualType__mproperty(val
* self
) {
4787 val
* var
/* : MProperty */;
4788 val
* var1
/* : MProperty */;
4789 var1
= model__MVirtualType__mproperty(self
);
4794 /* method model#MVirtualType#mproperty= for (self: MVirtualType, MProperty) */
4795 void model__MVirtualType__mproperty_61d(val
* self
, val
* p0
) {
4796 self
->attrs
[COLOR_model__MVirtualType___64dmproperty
].val
= p0
; /* @mproperty on <self:MVirtualType> */
4799 /* method model#MVirtualType#mproperty= for (self: Object, MProperty) */
4800 void VIRTUAL_model__MVirtualType__mproperty_61d(val
* self
, val
* p0
) {
4801 model__MVirtualType__mproperty_61d(self
, p0
);
4804 /* method model#MVirtualType#model for (self: MVirtualType): Model */
4805 val
* model__MVirtualType__model(val
* self
) {
4806 val
* var
/* : Model */;
4807 val
* var1
/* : MProperty */;
4808 val
* var2
/* : MClassDef */;
4809 val
* var3
/* : MModule */;
4810 val
* var4
/* : Model */;
4811 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(self
) /* mproperty on <self:MVirtualType>*/;
4812 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var1
) /* intro_mclassdef on <var1:MProperty>*/;
4813 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:MClassDef>*/;
4814 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model_base__MModule__model
]))(var3
) /* model on <var3:MModule>*/;
4820 /* method model#MVirtualType#model for (self: Object): Model */
4821 val
* VIRTUAL_model__MVirtualType__model(val
* self
) {
4822 val
* var
/* : Model */;
4823 val
* var1
/* : Model */;
4824 var1
= model__MVirtualType__model(self
);
4829 /* method model#MVirtualType#lookup_bound for (self: MVirtualType, MModule, MType): MType */
4830 val
* model__MVirtualType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
4831 val
* var
/* : MType */;
4832 val
* var_mmodule
/* var mmodule: MModule */;
4833 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
4834 short int var1
/* : Bool */;
4835 short int var2
/* : Bool */;
4836 val
* var3
/* : MProperty */;
4837 val
* var4
/* : Array[MPropDef] */;
4838 val
* var_props
/* var props: Array[MPropDef] */;
4839 short int var5
/* : Bool */;
4840 long var6
/* : Int */;
4841 long var7
/* : Int */;
4842 short int var8
/* : Bool */;
4843 short int var10
/* : Bool */;
4844 val
* var11
/* : nullable Object */;
4845 short int var12
/* : Bool */;
4848 const char* var_class_name
;
4849 val
* var13
/* : nullable MType */;
4850 val
* var14
/* : ArraySet[MType] */;
4851 val
* var_types
/* var types: ArraySet[MType] */;
4852 val
* var15
/* : Iterator[nullable Object] */;
4853 short int var16
/* : Bool */;
4854 val
* var17
/* : nullable Object */;
4855 val
* var_p
/* var p: MPropDef */;
4856 short int var18
/* : Bool */;
4859 const char* var_class_name21
;
4860 val
* var22
/* : nullable MType */;
4861 long var23
/* : Int */;
4862 long var24
/* : Int */;
4863 short int var25
/* : Bool */;
4864 short int var27
/* : Bool */;
4865 val
* var28
/* : nullable Object */;
4867 var_resolved_receiver
= p1
;
4868 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
4871 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4872 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1080);
4875 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(self
) /* mproperty on <self:MVirtualType>*/;
4876 var4
= ((val
* (*)(val
*, val
*, val
*))(var3
->class->vft
[COLOR_model__MProperty__lookup_definitions
]))(var3
, var_mmodule
, var_resolved_receiver
) /* lookup_definitions on <var3:MProperty>*/;
4878 var5
= ((short int (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_props
) /* is_empty on <var_props:Array[MPropDef]>*/;
4880 fprintf(stderr
, "Runtime error: %s", "Aborted");
4881 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1083);
4884 var6
= ((long (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_props
) /* length on <var_props:Array[MPropDef]>*/;
4886 { /* Inline kernel#Int#== (var6,var7) */
4887 var10
= var6
== var7
;
4893 var11
= ((val
* (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_props
) /* first on <var_props:Array[MPropDef]>*/;
4894 /* <var11:nullable Object(MPropDef)> isa MVirtualTypeDef */
4895 cltype
= type_model__MVirtualTypeDef
.color
;
4896 idtype
= type_model__MVirtualTypeDef
.id
;
4897 if(cltype
>= var11
->type
->table_size
) {
4900 var12
= var11
->type
->type_table
[cltype
] == idtype
;
4903 var_class_name
= var11
== NULL ?
"null" : var11
->type
->name
;
4904 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
4905 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1085);
4908 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MVirtualTypeDef__bound
]))(var11
) /* bound on <var11:MPropDef(MVirtualTypeDef)>*/;
4909 if (var13
== NULL
) {
4910 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4911 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1085);
4919 var14
= NEW_array__ArraySet(&type_array__ArraySetmodel__MType
);
4920 ((void (*)(val
*))(var14
->class->vft
[COLOR_array__ArraySet__init
]))(var14
) /* init on <var14:ArraySet[MType]>*/;
4921 CHECK_NEW_array__ArraySet(var14
);
4923 var15
= ((val
* (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_props
) /* iterator on <var_props:Array[MPropDef]>*/;
4925 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
4927 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
4929 /* <var_p:MPropDef> isa MVirtualTypeDef */
4930 cltype19
= type_model__MVirtualTypeDef
.color
;
4931 idtype20
= type_model__MVirtualTypeDef
.id
;
4932 if(cltype19
>= var_p
->type
->table_size
) {
4935 var18
= var_p
->type
->type_table
[cltype19
] == idtype20
;
4938 var_class_name21
= var_p
== NULL ?
"null" : var_p
->type
->name
;
4939 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name21
);
4940 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1089);
4943 var22
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MVirtualTypeDef__bound
]))(var_p
) /* bound on <var_p:MPropDef(MVirtualTypeDef)>*/;
4944 if (var22
== NULL
) {
4945 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4946 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1089);
4949 ((void (*)(val
*, val
*))(var_types
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types
, var22
) /* add on <var_types:ArraySet[MType]>*/;
4950 CONTINUE_label
: (void)0;
4951 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
4953 BREAK_label
: (void)0;
4954 var23
= ((long (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_types
) /* length on <var_types:ArraySet[MType]>*/;
4956 { /* Inline kernel#Int#== (var23,var24) */
4957 var27
= var23
== var24
;
4960 RET_LABEL26
:(void)0;
4963 var28
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_types
) /* first on <var_types:ArraySet[MType]>*/;
4968 fprintf(stderr
, "Runtime error: %s", "Aborted");
4969 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1094);
4974 /* method model#MVirtualType#lookup_bound for (self: Object, MModule, MType): MType */
4975 val
* VIRTUAL_model__MVirtualType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
4976 val
* var
/* : MType */;
4977 val
* var1
/* : MType */;
4978 var1
= model__MVirtualType__lookup_bound(self
, p0
, p1
);
4983 /* method model#MVirtualType#resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule, Bool): MType */
4984 val
* model__MVirtualType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4985 val
* var
/* : MType */;
4986 val
* var_mtype
/* var mtype: MType */;
4987 val
* var_anchor
/* var anchor: nullable MClassType */;
4988 val
* var_mmodule
/* var mmodule: MModule */;
4989 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
4990 short int var1
/* : Bool */;
4991 short int var2
/* : Bool */;
4992 val
* var3
/* : null */;
4993 short int var4
/* : Bool */;
4994 val
* var5
/* : null */;
4995 short int var6
/* : Bool */;
4996 val
* var7
/* : MType */;
4997 val
* var_resolved_reciever
/* var resolved_reciever: nullable Object */;
4998 val
* var8
/* : MType */;
4999 val
* var_verbatim_bound
/* var verbatim_bound: MType */;
5000 val
* var9
/* : MType */;
5001 val
* var_res
/* var res: MType */;
5002 short int var10
/* : Bool */;
5005 val
* var11
/* : MType */;
5006 short int var12
/* : Bool */;
5009 const char* var_class_name
;
5010 val
* var15
/* : MClass */;
5011 val
* var16
/* : MClassKind */;
5012 val
* var17
/* : MClassKind */;
5013 short int var18
/* : Bool */;
5014 short int var19
/* : Bool */;
5017 short int var22
/* : Bool */;
5018 short int var23
/* : Bool */;
5021 short int var_
/* var : Bool */;
5022 val
* var26
/* : MClass */;
5023 val
* var27
/* : MClassKind */;
5024 val
* var28
/* : MClassKind */;
5025 short int var29
/* : Bool */;
5029 var_cleanup_virtual
= p3
;
5030 var1
= ((short int (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MType__can_resolve_for
]))(self
, var_mtype
, var_anchor
, var_mmodule
) /* can_resolve_for on <self:MVirtualType>*/;
5032 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5033 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1099);
5036 var2
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5039 if (var_anchor
== NULL
) {
5040 var4
= 0; /* is null */
5042 var4
= 1; /* arg is null and recv is not */
5045 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5046 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1106);
5051 var7
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_mtype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_mtype
, var_anchor
, var5
, var_mmodule
, var6
) /* resolve_for on <var_mtype:MType>*/;
5052 var_resolved_reciever
= var7
;
5054 var_resolved_reciever
= var_mtype
;
5056 var8
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MVirtualType__lookup_bound
]))(self
, var_mmodule
, var_resolved_reciever
) /* lookup_bound on <self:MVirtualType>*/;
5057 var_verbatim_bound
= var8
;
5058 var9
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_verbatim_bound
->class->vft
[COLOR_model__MType__resolve_for
]))(var_verbatim_bound
, var_mtype
, var_anchor
, var_mmodule
, var_cleanup_virtual
) /* resolve_for on <var_verbatim_bound:MType>*/;
5060 if (var_cleanup_virtual
){
5065 /* <var_resolved_reciever:nullable Object(MType)> isa MNullableType */
5066 cltype
= type_model__MNullableType
.color
;
5067 idtype
= type_model__MNullableType
.id
;
5068 if(cltype
>= var_resolved_reciever
->type
->table_size
) {
5071 var10
= var_resolved_reciever
->type
->type_table
[cltype
] == idtype
;
5074 var11
= ((val
* (*)(val
*))(var_resolved_reciever
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_resolved_reciever
) /* mtype on <var_resolved_reciever:nullable Object(MNullableType)>*/;
5075 var_resolved_reciever
= var11
;
5078 /* <var_resolved_reciever:nullable Object(MType)> isa MClassType */
5079 cltype13
= type_model__MClassType
.color
;
5080 idtype14
= type_model__MClassType
.id
;
5081 if(cltype13
>= var_resolved_reciever
->type
->table_size
) {
5084 var12
= var_resolved_reciever
->type
->type_table
[cltype13
] == idtype14
;
5087 var_class_name
= var_resolved_reciever
== NULL ?
"null" : var_resolved_reciever
->type
->name
;
5088 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5089 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1122);
5092 var15
= ((val
* (*)(val
*))(var_resolved_reciever
->class->vft
[COLOR_model__MClassType__mclass
]))(var_resolved_reciever
) /* mclass on <var_resolved_reciever:MType(MClassType)>*/;
5093 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClass__kind
]))(var15
) /* kind on <var15:MClass>*/;
5094 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__enum_kind
]))(self
) /* enum_kind on <self:MVirtualType>*/;
5095 var18
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var16
, var17
) /* == on <var16:MClassKind>*/;
5101 /* <var_res:MType> isa MVirtualType */
5102 cltype20
= type_model__MVirtualType
.color
;
5103 idtype21
= type_model__MVirtualType
.id
;
5104 if(cltype20
>= var_res
->type
->table_size
) {
5107 var19
= var_res
->type
->type_table
[cltype20
] == idtype21
;
5114 /* <var_res:MType> isa MClassType */
5115 cltype24
= type_model__MClassType
.color
;
5116 idtype25
= type_model__MClassType
.id
;
5117 if(cltype24
>= var_res
->type
->table_size
) {
5120 var23
= var_res
->type
->type_table
[cltype24
] == idtype25
;
5124 var26
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MClassType__mclass
]))(var_res
) /* mclass on <var_res:MType(MClassType)>*/;
5125 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_model__MClass__kind
]))(var26
) /* kind on <var26:MClass>*/;
5126 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__enum_kind
]))(self
) /* enum_kind on <self:MVirtualType>*/;
5127 var29
= ((short int (*)(val
*, val
*))(var27
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var27
, var28
) /* == on <var27:MClassKind>*/;
5142 /* method model#MVirtualType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
5143 val
* VIRTUAL_model__MVirtualType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5144 val
* var
/* : MType */;
5145 val
* var1
/* : MType */;
5146 var1
= model__MVirtualType__resolve_for(self
, p0
, p1
, p2
, p3
);
5151 /* method model#MVirtualType#can_resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule): Bool */
5152 short int model__MVirtualType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5153 short int var
/* : Bool */;
5154 val
* var_mtype
/* var mtype: MType */;
5155 val
* var_anchor
/* var anchor: nullable MClassType */;
5156 val
* var_mmodule
/* var mmodule: MModule */;
5157 short int var1
/* : Bool */;
5158 val
* var2
/* : null */;
5159 short int var3
/* : Bool */;
5160 val
* var4
/* : MType */;
5161 val
* var5
/* : MProperty */;
5162 short int var6
/* : Bool */;
5166 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5169 if (var_anchor
== NULL
) {
5170 var3
= 0; /* is null */
5172 var3
= 1; /* arg is null and recv is not */
5175 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5176 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1138);
5179 var4
= ((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>*/;
5183 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(self
) /* mproperty on <self:MVirtualType>*/;
5184 var6
= ((short int (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__has_mproperty
]))(var_mtype
, var_mmodule
, var5
) /* has_mproperty on <var_mtype:MType>*/;
5190 /* method model#MVirtualType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
5191 short int VIRTUAL_model__MVirtualType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5192 short int var
/* : Bool */;
5193 short int var1
/* : Bool */;
5194 var1
= model__MVirtualType__can_resolve_for(self
, p0
, p1
, p2
);
5199 /* method model#MVirtualType#to_s for (self: MVirtualType): String */
5200 val
* model__MVirtualType__to_s(val
* self
) {
5201 val
* var
/* : String */;
5202 val
* var1
/* : MProperty */;
5203 val
* var2
/* : String */;
5204 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(self
) /* mproperty on <self:MVirtualType>*/;
5205 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__Object__to_s
]))(var1
) /* to_s on <var1:MProperty>*/;
5211 /* method model#MVirtualType#to_s for (self: Object): String */
5212 val
* VIRTUAL_model__MVirtualType__to_s(val
* self
) {
5213 val
* var
/* : String */;
5214 val
* var1
/* : String */;
5215 var1
= model__MVirtualType__to_s(self
);
5220 /* method model#MVirtualType#init for (self: MVirtualType, MProperty) */
5221 void model__MVirtualType__init(val
* self
, val
* p0
) {
5222 val
* var_mproperty
/* var mproperty: MProperty */;
5224 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MVirtualType>*/;
5225 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty_61d
]))(self
, var_mproperty
) /* mproperty= on <self:MVirtualType>*/;
5228 /* method model#MVirtualType#init for (self: Object, MProperty) */
5229 void VIRTUAL_model__MVirtualType__init(val
* self
, val
* p0
) {
5230 model__MVirtualType__init(self
, p0
);
5233 /* method model#MParameterType#mclass for (self: MParameterType): MClass */
5234 val
* model__MParameterType__mclass(val
* self
) {
5235 val
* var
/* : MClass */;
5236 val
* var1
/* : MClass */;
5237 var1
= self
->attrs
[COLOR_model__MParameterType___64dmclass
].val
; /* @mclass on <self:MParameterType> */
5239 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass");
5240 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1180);
5247 /* method model#MParameterType#mclass for (self: Object): MClass */
5248 val
* VIRTUAL_model__MParameterType__mclass(val
* self
) {
5249 val
* var
/* : MClass */;
5250 val
* var1
/* : MClass */;
5251 var1
= model__MParameterType__mclass(self
);
5256 /* method model#MParameterType#mclass= for (self: MParameterType, MClass) */
5257 void model__MParameterType__mclass_61d(val
* self
, val
* p0
) {
5258 self
->attrs
[COLOR_model__MParameterType___64dmclass
].val
= p0
; /* @mclass on <self:MParameterType> */
5261 /* method model#MParameterType#mclass= for (self: Object, MClass) */
5262 void VIRTUAL_model__MParameterType__mclass_61d(val
* self
, val
* p0
) {
5263 model__MParameterType__mclass_61d(self
, p0
);
5266 /* method model#MParameterType#model for (self: MParameterType): Model */
5267 val
* model__MParameterType__model(val
* self
) {
5268 val
* var
/* : Model */;
5269 val
* var1
/* : MClass */;
5270 val
* var2
/* : MModule */;
5271 val
* var3
/* : Model */;
5272 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5273 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var1
) /* intro_mmodule on <var1:MClass>*/;
5274 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model_base__MModule__model
]))(var2
) /* model on <var2:MModule>*/;
5280 /* method model#MParameterType#model for (self: Object): Model */
5281 val
* VIRTUAL_model__MParameterType__model(val
* self
) {
5282 val
* var
/* : Model */;
5283 val
* var1
/* : Model */;
5284 var1
= model__MParameterType__model(self
);
5289 /* method model#MParameterType#rank for (self: MParameterType): Int */
5290 long model__MParameterType__rank(val
* self
) {
5291 long var
/* : Int */;
5292 long var1
/* : Int */;
5293 var1
= self
->attrs
[COLOR_model__MParameterType___64drank
].l
; /* @rank on <self:MParameterType> */
5298 /* method model#MParameterType#rank for (self: Object): Int */
5299 long VIRTUAL_model__MParameterType__rank(val
* self
) {
5300 long var
/* : Int */;
5301 long var1
/* : Int */;
5302 var1
= model__MParameterType__rank(self
);
5307 /* method model#MParameterType#rank= for (self: MParameterType, Int) */
5308 void model__MParameterType__rank_61d(val
* self
, long p0
) {
5309 self
->attrs
[COLOR_model__MParameterType___64drank
].l
= p0
; /* @rank on <self:MParameterType> */
5312 /* method model#MParameterType#rank= for (self: Object, Int) */
5313 void VIRTUAL_model__MParameterType__rank_61d(val
* self
, long p0
) {
5314 model__MParameterType__rank_61d(self
, p0
);
5317 /* method model#MParameterType#to_s for (self: MParameterType): String */
5318 val
* model__MParameterType__to_s(val
* self
) {
5319 val
* var
/* : String */;
5320 val
* var1
/* : Array[Object] */;
5321 long var2
/* : Int */;
5322 val
* var_
/* var : Array[Object] */;
5323 static val
* varonce
;
5324 val
* var3
/* : String */;
5325 char* var4
/* : NativeString */;
5326 long var5
/* : Int */;
5327 val
* var6
/* : String */;
5328 val
* var7
/* : MClass */;
5329 static val
* varonce8
;
5330 val
* var9
/* : String */;
5331 char* var10
/* : NativeString */;
5332 long var11
/* : Int */;
5333 val
* var12
/* : String */;
5334 long var13
/* : Int */;
5335 val
* var14
/* : nullable Object */;
5336 static val
* varonce15
;
5337 val
* var16
/* : String */;
5338 char* var17
/* : NativeString */;
5339 long var18
/* : Int */;
5340 val
* var19
/* : String */;
5341 val
* var20
/* : String */;
5342 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
5344 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
5345 CHECK_NEW_array__Array(var1
);
5352 var6
= string__NativeString__to_s_with_length(var4
, var5
);
5356 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
5357 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5358 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var7
) /* add on <var_:Array[Object]>*/;
5364 var12
= string__NativeString__to_s_with_length(var10
, var11
);
5368 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var9
) /* add on <var_:Array[Object]>*/;
5369 var13
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__rank
]))(self
) /* rank on <self:MParameterType>*/;
5370 var14
= BOX_kernel__Int(var13
); /* autobox from Int to nullable Object */
5371 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var14
) /* add on <var_:Array[Object]>*/;
5377 var19
= string__NativeString__to_s_with_length(var17
, var18
);
5381 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var16
) /* add on <var_:Array[Object]>*/;
5382 var20
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
5388 /* method model#MParameterType#to_s for (self: Object): String */
5389 val
* VIRTUAL_model__MParameterType__to_s(val
* self
) {
5390 val
* var
/* : String */;
5391 val
* var1
/* : String */;
5392 var1
= model__MParameterType__to_s(self
);
5397 /* method model#MParameterType#lookup_bound for (self: MParameterType, MModule, MType): MType */
5398 val
* model__MParameterType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
5399 val
* var
/* : MType */;
5400 val
* var_mmodule
/* var mmodule: MModule */;
5401 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
5402 short int var1
/* : Bool */;
5403 short int var2
/* : Bool */;
5404 val
* var3
/* : MClass */;
5405 val
* var_goalclass
/* var goalclass: MClass */;
5406 val
* var4
/* : Set[MClassType] */;
5407 val
* var_supertypes
/* var supertypes: Set[MClassType] */;
5408 val
* var5
/* : Iterator[nullable Object] */;
5409 short int var6
/* : Bool */;
5410 val
* var7
/* : nullable Object */;
5411 val
* var_t
/* var t: MClassType */;
5412 val
* var8
/* : MClass */;
5413 short int var9
/* : Bool */;
5414 val
* var10
/* : Array[MType] */;
5415 long var11
/* : Int */;
5416 val
* var12
/* : nullable Object */;
5417 val
* var_res
/* var res: MType */;
5419 var_resolved_receiver
= p1
;
5420 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
5423 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5424 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1200);
5427 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5428 var_goalclass
= var3
;
5429 var4
= ((val
* (*)(val
*, val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__collect_mtypes
]))(var_resolved_receiver
, var_mmodule
) /* collect_mtypes on <var_resolved_receiver:MType>*/;
5430 var_supertypes
= var4
;
5431 var5
= ((val
* (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supertypes
) /* iterator on <var_supertypes:Set[MClassType]>*/;
5433 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[nullable Object]>*/;
5435 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[nullable Object]>*/;
5437 var8
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MClassType__mclass
]))(var_t
) /* mclass on <var_t:MClassType>*/;
5438 var9
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var8
, var_goalclass
) /* == on <var8:MClass>*/;
5440 var10
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MClassType__arguments
]))(var_t
) /* arguments on <var_t:MClassType>*/;
5441 var11
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__rank
]))(self
) /* rank on <self:MParameterType>*/;
5442 var12
= ((val
* (*)(val
*, long))(var10
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var10
, var11
) /* [] on <var10:Array[MType]>*/;
5448 CONTINUE_label
: (void)0;
5449 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[nullable Object]>*/;
5451 BREAK_label
: (void)0;
5452 fprintf(stderr
, "Runtime error: %s", "Aborted");
5453 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1211);
5458 /* method model#MParameterType#lookup_bound for (self: Object, MModule, MType): MType */
5459 val
* VIRTUAL_model__MParameterType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
5460 val
* var
/* : MType */;
5461 val
* var1
/* : MType */;
5462 var1
= model__MParameterType__lookup_bound(self
, p0
, p1
);
5467 /* method model#MParameterType#resolve_for for (self: MParameterType, MType, nullable MClassType, MModule, Bool): MType */
5468 val
* model__MParameterType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5469 val
* var
/* : MType */;
5470 val
* var_mtype
/* var mtype: MType */;
5471 val
* var_anchor
/* var anchor: nullable MClassType */;
5472 val
* var_mmodule
/* var mmodule: MModule */;
5473 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
5474 short int var1
/* : Bool */;
5475 short int var2
/* : Bool */;
5476 short int var3
/* : Bool */;
5479 short int var_
/* var : Bool */;
5480 val
* var4
/* : MClass */;
5481 val
* var5
/* : MClass */;
5482 short int var6
/* : Bool */;
5483 val
* var7
/* : Array[MType] */;
5484 long var8
/* : Int */;
5485 val
* var9
/* : nullable Object */;
5486 short int var10
/* : Bool */;
5487 val
* var11
/* : null */;
5488 short int var12
/* : Bool */;
5489 val
* var13
/* : MClass */;
5490 val
* var14
/* : MClassType */;
5491 short int var15
/* : Bool */;
5492 val
* var16
/* : MType */;
5493 val
* var_resolved_receiver
/* var resolved_receiver: nullable Object */;
5494 short int var17
/* : Bool */;
5497 val
* var20
/* : MType */;
5498 short int var21
/* : Bool */;
5501 val
* var24
/* : MClass */;
5502 val
* var25
/* : MClass */;
5503 short int var26
/* : Bool */;
5504 val
* var27
/* : Array[MType] */;
5505 long var28
/* : Int */;
5506 val
* var29
/* : nullable Object */;
5507 short int var30
/* : Bool */;
5510 val
* var33
/* : MType */;
5511 short int var34
/* : Bool */;
5514 val
* var37
/* : MClass */;
5515 val
* var38
/* : MClass */;
5516 short int var39
/* : Bool */;
5517 val
* var40
/* : Array[MType] */;
5518 long var41
/* : Int */;
5519 val
* var42
/* : nullable Object */;
5520 val
* var_res
/* var res: MType */;
5521 short int var43
/* : Bool */;
5522 val
* var44
/* : null */;
5523 short int var45
/* : Bool */;
5524 val
* var46
/* : null */;
5525 short int var47
/* : Bool */;
5526 val
* var48
/* : MType */;
5527 val
* var49
/* : MType */;
5528 val
* var_verbatim_bound
/* var verbatim_bound: MType */;
5529 val
* var50
/* : MType */;
5530 val
* var_res51
/* var res: MType */;
5534 var_cleanup_virtual
= p3
;
5535 var1
= ((short int (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MType__can_resolve_for
]))(self
, var_mtype
, var_anchor
, var_mmodule
) /* can_resolve_for on <self:MParameterType>*/;
5537 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5538 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1216);
5541 /* <var_mtype:MType> isa MGenericType */
5542 cltype
= type_model__MGenericType
.color
;
5543 idtype
= type_model__MGenericType
.id
;
5544 if(cltype
>= var_mtype
->type
->table_size
) {
5547 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5551 var4
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MGenericType)>*/;
5552 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5553 var6
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:MClass>*/;
5559 var7
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MType(MGenericType)>*/;
5560 var8
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__rank
]))(self
) /* rank on <self:MParameterType>*/;
5561 var9
= ((val
* (*)(val
*, long))(var7
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var7
, var8
) /* [] on <var7:Array[MType]>*/;
5566 var10
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5569 if (var_anchor
== NULL
) {
5570 var12
= 0; /* is null */
5572 var12
= 1; /* arg is null and recv is not */
5575 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5576 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1229);
5579 var13
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__mclass
]))(var_anchor
) /* mclass on <var_anchor:nullable MClassType(MClassType)>*/;
5580 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClass__mclass_type
]))(var13
) /* mclass_type on <var13:MClass>*/;
5582 var16
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_mtype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_mtype
, var14
, var_anchor
, var_mmodule
, var15
) /* resolve_for on <var_mtype:MType>*/;
5583 var_resolved_receiver
= var16
;
5585 var_resolved_receiver
= var_mtype
;
5587 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
5588 cltype18
= type_model__MNullableType
.color
;
5589 idtype19
= type_model__MNullableType
.id
;
5590 if(cltype18
>= var_resolved_receiver
->type
->table_size
) {
5593 var17
= var_resolved_receiver
->type
->type_table
[cltype18
] == idtype19
;
5596 var20
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_resolved_receiver
) /* mtype on <var_resolved_receiver:nullable Object(MNullableType)>*/;
5597 var_resolved_receiver
= var20
;
5600 /* <var_resolved_receiver:nullable Object(MType)> isa MParameterType */
5601 cltype22
= type_model__MParameterType
.color
;
5602 idtype23
= type_model__MParameterType
.id
;
5603 if(cltype22
>= var_resolved_receiver
->type
->table_size
) {
5606 var21
= var_resolved_receiver
->type
->type_table
[cltype22
] == idtype23
;
5609 var24
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MParameterType__mclass
]))(var_resolved_receiver
) /* mclass on <var_resolved_receiver:nullable Object(MParameterType)>*/;
5610 if (var_anchor
== NULL
) {
5611 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5612 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1236);
5615 var25
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__mclass
]))(var_anchor
) /* mclass on <var_anchor:nullable MClassType>*/;
5617 var26
= ((short int (*)(val
*, val
*))(var24
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var24
, var25
) /* == on <var24:MClass>*/;
5619 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5620 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1236);
5623 if (var_anchor
== NULL
) {
5624 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5625 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1237);
5628 var27
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__arguments
]))(var_anchor
) /* arguments on <var_anchor:nullable MClassType>*/;
5630 var28
= ((long (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MParameterType__rank
]))(var_resolved_receiver
) /* rank on <var_resolved_receiver:nullable Object(MParameterType)>*/;
5631 var29
= ((val
* (*)(val
*, long))(var27
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var27
, var28
) /* [] on <var27:Array[MType]>*/;
5632 var_resolved_receiver
= var29
;
5633 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
5634 cltype31
= type_model__MNullableType
.color
;
5635 idtype32
= type_model__MNullableType
.id
;
5636 if(cltype31
>= var_resolved_receiver
->type
->table_size
) {
5639 var30
= var_resolved_receiver
->type
->type_table
[cltype31
] == idtype32
;
5642 var33
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_resolved_receiver
) /* mtype on <var_resolved_receiver:nullable Object(MNullableType)>*/;
5643 var_resolved_receiver
= var33
;
5648 /* <var_resolved_receiver:nullable Object(MType)> isa MClassType */
5649 cltype35
= type_model__MClassType
.color
;
5650 idtype36
= type_model__MClassType
.id
;
5651 if(cltype35
>= var_resolved_receiver
->type
->table_size
) {
5654 var34
= var_resolved_receiver
->type
->type_table
[cltype35
] == idtype36
;
5657 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5658 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1240);
5661 var37
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MClassType__mclass
]))(var_resolved_receiver
) /* mclass on <var_resolved_receiver:nullable Object(MClassType)>*/;
5662 var38
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5663 var39
= ((short int (*)(val
*, val
*))(var37
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var37
, var38
) /* == on <var37:MClass>*/;
5665 var40
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MClassType__arguments
]))(var_resolved_receiver
) /* arguments on <var_resolved_receiver:nullable Object(MClassType)>*/;
5666 var41
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__rank
]))(self
) /* rank on <self:MParameterType>*/;
5667 var42
= ((val
* (*)(val
*, long))(var40
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var40
, var41
) /* [] on <var40:Array[MType]>*/;
5673 var43
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:nullable Object(MClassType)>*/;
5676 if (var_anchor
== NULL
) {
5677 var45
= 0; /* is null */
5679 var45
= 1; /* arg is null and recv is not */
5682 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5683 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1251);
5688 var48
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_resolved_receiver
->class->vft
[COLOR_model__MType__resolve_for
]))(var_resolved_receiver
, var_anchor
, var46
, var_mmodule
, var47
) /* resolve_for on <var_resolved_receiver:nullable Object(MClassType)>*/;
5689 var_resolved_receiver
= var48
;
5692 var49
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MParameterType__lookup_bound
]))(self
, var_mmodule
, var_resolved_receiver
) /* lookup_bound on <self:MParameterType>*/;
5693 var_verbatim_bound
= var49
;
5694 var50
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_verbatim_bound
->class->vft
[COLOR_model__MType__resolve_for
]))(var_verbatim_bound
, var_mtype
, var_anchor
, var_mmodule
, var_cleanup_virtual
) /* resolve_for on <var_verbatim_bound:MType>*/;
5701 /* method model#MParameterType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
5702 val
* VIRTUAL_model__MParameterType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5703 val
* var
/* : MType */;
5704 val
* var1
/* : MType */;
5705 var1
= model__MParameterType__resolve_for(self
, p0
, p1
, p2
, p3
);
5710 /* method model#MParameterType#can_resolve_for for (self: MParameterType, MType, nullable MClassType, MModule): Bool */
5711 short int model__MParameterType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5712 short int var
/* : Bool */;
5713 val
* var_mtype
/* var mtype: MType */;
5714 val
* var_anchor
/* var anchor: nullable MClassType */;
5715 val
* var_mmodule
/* var mmodule: MModule */;
5716 short int var1
/* : Bool */;
5717 val
* var2
/* : null */;
5718 short int var3
/* : Bool */;
5719 val
* var4
/* : MType */;
5720 val
* var5
/* : Set[MClassDef] */;
5721 val
* var6
/* : MClass */;
5722 val
* var7
/* : MClassDef */;
5723 short int var8
/* : Bool */;
5727 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5730 if (var_anchor
== NULL
) {
5731 var3
= 0; /* is null */
5733 var3
= 1; /* arg is null and recv is not */
5736 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5737 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1267);
5740 var4
= ((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>*/;
5744 var5
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var_mmodule
) /* collect_mclassdefs on <var_mtype:MType>*/;
5745 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5746 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_model__MClass__intro
]))(var6
) /* intro on <var6:MClass>*/;
5747 var8
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var5
, var7
) /* has on <var5:Set[MClassDef]>*/;
5753 /* method model#MParameterType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
5754 short int VIRTUAL_model__MParameterType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5755 short int var
/* : Bool */;
5756 short int var1
/* : Bool */;
5757 var1
= model__MParameterType__can_resolve_for(self
, p0
, p1
, p2
);
5762 /* method model#MParameterType#init for (self: MParameterType, MClass, Int) */
5763 void model__MParameterType__init(val
* self
, val
* p0
, long p1
) {
5764 val
* var_mclass
/* var mclass: MClass */;
5765 long var_rank
/* var rank: Int */;
5768 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MParameterType>*/;
5769 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass_61d
]))(self
, var_mclass
) /* mclass= on <self:MParameterType>*/;
5770 ((void (*)(val
*, long))(self
->class->vft
[COLOR_model__MParameterType__rank_61d
]))(self
, var_rank
) /* rank= on <self:MParameterType>*/;
5773 /* method model#MParameterType#init for (self: Object, MClass, Int) */
5774 void VIRTUAL_model__MParameterType__init(val
* self
, val
* p0
, long p1
) {
5775 model__MParameterType__init(self
, p0
, p1
);
5778 /* method model#MNullableType#mtype for (self: MNullableType): MType */
5779 val
* model__MNullableType__mtype(val
* self
) {
5780 val
* var
/* : MType */;
5781 val
* var1
/* : MType */;
5782 var1
= self
->attrs
[COLOR_model__MNullableType___64dmtype
].val
; /* @mtype on <self:MNullableType> */
5784 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mtype");
5785 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1284);
5792 /* method model#MNullableType#mtype for (self: Object): MType */
5793 val
* VIRTUAL_model__MNullableType__mtype(val
* self
) {
5794 val
* var
/* : MType */;
5795 val
* var1
/* : MType */;
5796 var1
= model__MNullableType__mtype(self
);
5801 /* method model#MNullableType#mtype= for (self: MNullableType, MType) */
5802 void model__MNullableType__mtype_61d(val
* self
, val
* p0
) {
5803 self
->attrs
[COLOR_model__MNullableType___64dmtype
].val
= p0
; /* @mtype on <self:MNullableType> */
5806 /* method model#MNullableType#mtype= for (self: Object, MType) */
5807 void VIRTUAL_model__MNullableType__mtype_61d(val
* self
, val
* p0
) {
5808 model__MNullableType__mtype_61d(self
, p0
);
5811 /* method model#MNullableType#model for (self: MNullableType): Model */
5812 val
* model__MNullableType__model(val
* self
) {
5813 val
* var
/* : Model */;
5814 val
* var1
/* : MType */;
5815 val
* var2
/* : Model */;
5816 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5817 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MType__model
]))(var1
) /* model on <var1:MType>*/;
5823 /* method model#MNullableType#model for (self: Object): Model */
5824 val
* VIRTUAL_model__MNullableType__model(val
* self
) {
5825 val
* var
/* : Model */;
5826 val
* var1
/* : Model */;
5827 var1
= model__MNullableType__model(self
);
5832 /* method model#MNullableType#init for (self: MNullableType, MType) */
5833 void model__MNullableType__init(val
* self
, val
* p0
) {
5834 val
* var_mtype
/* var mtype: MType */;
5835 static val
* varonce
;
5836 val
* var
/* : String */;
5837 char* var1
/* : NativeString */;
5838 long var2
/* : Int */;
5839 val
* var3
/* : String */;
5840 val
* var4
/* : Array[Object] */;
5841 long var5
/* : Int */;
5842 val
* var6
/* : NativeArray[Object] */;
5843 val
* var7
/* : String */;
5845 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MNullableType>*/;
5846 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:MNullableType>*/;
5852 var3
= string__NativeString__to_s_with_length(var1
, var2
);
5856 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
5857 { /* var4 = array_instance Array[Object] */
5859 var6
= NEW_array__NativeArray(var5
, &type_array__NativeArraykernel__Object
);
5860 ((struct instance_array__NativeArray
*)var6
)->values
[0] = (val
*) var
;
5861 ((struct instance_array__NativeArray
*)var6
)->values
[1] = (val
*) var_mtype
;
5862 ((void (*)(val
*, val
*, long))(var4
->class->vft
[COLOR_array__Array__with_native
]))(var4
, var6
, var5
) /* with_native on <var4:Array[Object]>*/;
5863 CHECK_NEW_array__Array(var4
);
5865 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_string__Object__to_s
]))(var4
) /* to_s on <var4:Array[Object]>*/;
5866 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MNullableType__to_s_61d
]))(self
, var7
) /* to_s= on <self:MNullableType>*/;
5869 /* method model#MNullableType#init for (self: Object, MType) */
5870 void VIRTUAL_model__MNullableType__init(val
* self
, val
* p0
) {
5871 model__MNullableType__init(self
, p0
);
5874 /* method model#MNullableType#to_s for (self: MNullableType): String */
5875 val
* model__MNullableType__to_s(val
* self
) {
5876 val
* var
/* : String */;
5877 val
* var1
/* : String */;
5878 var1
= self
->attrs
[COLOR_model__MNullableType___64dto_s
].val
; /* @to_s on <self:MNullableType> */
5880 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
5881 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1295);
5888 /* method model#MNullableType#to_s for (self: Object): String */
5889 val
* VIRTUAL_model__MNullableType__to_s(val
* self
) {
5890 val
* var
/* : String */;
5891 val
* var1
/* : String */;
5892 var1
= model__MNullableType__to_s(self
);
5897 /* method model#MNullableType#to_s= for (self: MNullableType, String) */
5898 void model__MNullableType__to_s_61d(val
* self
, val
* p0
) {
5899 self
->attrs
[COLOR_model__MNullableType___64dto_s
].val
= p0
; /* @to_s on <self:MNullableType> */
5902 /* method model#MNullableType#to_s= for (self: Object, String) */
5903 void VIRTUAL_model__MNullableType__to_s_61d(val
* self
, val
* p0
) {
5904 model__MNullableType__to_s_61d(self
, p0
);
5907 /* method model#MNullableType#need_anchor for (self: MNullableType): Bool */
5908 short int model__MNullableType__need_anchor(val
* self
) {
5909 short int var
/* : Bool */;
5910 val
* var1
/* : MType */;
5911 short int var2
/* : Bool */;
5912 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5913 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_model__MType__need_anchor
]))(var1
) /* need_anchor on <var1:MType>*/;
5919 /* method model#MNullableType#need_anchor for (self: Object): Bool */
5920 short int VIRTUAL_model__MNullableType__need_anchor(val
* self
) {
5921 short int var
/* : Bool */;
5922 short int var1
/* : Bool */;
5923 var1
= model__MNullableType__need_anchor(self
);
5928 /* method model#MNullableType#as_nullable for (self: MNullableType): MType */
5929 val
* model__MNullableType__as_nullable(val
* self
) {
5930 val
* var
/* : MType */;
5936 /* method model#MNullableType#as_nullable for (self: Object): MType */
5937 val
* VIRTUAL_model__MNullableType__as_nullable(val
* self
) {
5938 val
* var
/* : MType */;
5939 val
* var1
/* : MType */;
5940 var1
= model__MNullableType__as_nullable(self
);
5945 /* method model#MNullableType#resolve_for for (self: MNullableType, MType, nullable MClassType, MModule, Bool): MType */
5946 val
* model__MNullableType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5947 val
* var
/* : MType */;
5948 val
* var_mtype
/* var mtype: MType */;
5949 val
* var_anchor
/* var anchor: nullable MClassType */;
5950 val
* var_mmodule
/* var mmodule: MModule */;
5951 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
5952 val
* var1
/* : MType */;
5953 val
* var2
/* : MType */;
5954 val
* var_res
/* var res: MType */;
5955 val
* var3
/* : MType */;
5959 var_cleanup_virtual
= p3
;
5960 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5961 var2
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var1
->class->vft
[COLOR_model__MType__resolve_for
]))(var1
, var_mtype
, var_anchor
, var_mmodule
, var_cleanup_virtual
) /* resolve_for on <var1:MType>*/;
5963 var3
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__as_nullable
]))(var_res
) /* as_nullable on <var_res:MType>*/;
5969 /* method model#MNullableType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
5970 val
* VIRTUAL_model__MNullableType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5971 val
* var
/* : MType */;
5972 val
* var1
/* : MType */;
5973 var1
= model__MNullableType__resolve_for(self
, p0
, p1
, p2
, p3
);
5978 /* method model#MNullableType#can_resolve_for for (self: MNullableType, MType, nullable MClassType, MModule): Bool */
5979 short int model__MNullableType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5980 short int var
/* : Bool */;
5981 val
* var_mtype
/* var mtype: MType */;
5982 val
* var_anchor
/* var anchor: nullable MClassType */;
5983 val
* var_mmodule
/* var mmodule: MModule */;
5984 val
* var1
/* : MType */;
5985 short int var2
/* : Bool */;
5989 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5990 var2
= ((short int (*)(val
*, val
*, val
*, val
*))(var1
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var1
, var_mtype
, var_anchor
, var_mmodule
) /* can_resolve_for on <var1:MType>*/;
5996 /* method model#MNullableType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
5997 short int VIRTUAL_model__MNullableType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5998 short int var
/* : Bool */;
5999 short int var1
/* : Bool */;
6000 var1
= model__MNullableType__can_resolve_for(self
, p0
, p1
, p2
);
6005 /* method model#MNullableType#depth for (self: MNullableType): Int */
6006 long model__MNullableType__depth(val
* self
) {
6007 long var
/* : Int */;
6008 val
* var1
/* : MType */;
6009 long var2
/* : Int */;
6010 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6011 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_model__MType__depth
]))(var1
) /* depth on <var1:MType>*/;
6017 /* method model#MNullableType#depth for (self: Object): Int */
6018 long VIRTUAL_model__MNullableType__depth(val
* self
) {
6019 long var
/* : Int */;
6020 long var1
/* : Int */;
6021 var1
= model__MNullableType__depth(self
);
6026 /* method model#MNullableType#length for (self: MNullableType): Int */
6027 long model__MNullableType__length(val
* self
) {
6028 long var
/* : Int */;
6029 val
* var1
/* : MType */;
6030 long var2
/* : Int */;
6031 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6032 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_model__MType__length
]))(var1
) /* length on <var1:MType>*/;
6038 /* method model#MNullableType#length for (self: Object): Int */
6039 long VIRTUAL_model__MNullableType__length(val
* self
) {
6040 long var
/* : Int */;
6041 long var1
/* : Int */;
6042 var1
= model__MNullableType__length(self
);
6047 /* method model#MNullableType#collect_mclassdefs for (self: MNullableType, MModule): Set[MClassDef] */
6048 val
* model__MNullableType__collect_mclassdefs(val
* self
, val
* p0
) {
6049 val
* var
/* : Set[MClassDef] */;
6050 val
* var_mmodule
/* var mmodule: MModule */;
6051 short int var1
/* : Bool */;
6052 short int var2
/* : Bool */;
6053 val
* var3
/* : MType */;
6054 val
* var4
/* : Set[MClassDef] */;
6056 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MNullableType>*/;
6059 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6060 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1316);
6063 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6064 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var3
, var_mmodule
) /* collect_mclassdefs on <var3:MType>*/;
6070 /* method model#MNullableType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
6071 val
* VIRTUAL_model__MNullableType__collect_mclassdefs(val
* self
, val
* p0
) {
6072 val
* var
/* : Set[MClassDef] */;
6073 val
* var1
/* : Set[MClassDef] */;
6074 var1
= model__MNullableType__collect_mclassdefs(self
, p0
);
6079 /* method model#MNullableType#collect_mclasses for (self: MNullableType, MModule): Set[MClass] */
6080 val
* model__MNullableType__collect_mclasses(val
* self
, val
* p0
) {
6081 val
* var
/* : Set[MClass] */;
6082 val
* var_mmodule
/* var mmodule: MModule */;
6083 short int var1
/* : Bool */;
6084 short int var2
/* : Bool */;
6085 val
* var3
/* : MType */;
6086 val
* var4
/* : Set[MClass] */;
6088 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MNullableType>*/;
6091 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6092 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1322);
6095 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6096 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_model__MType__collect_mclasses
]))(var3
, var_mmodule
) /* collect_mclasses on <var3:MType>*/;
6102 /* method model#MNullableType#collect_mclasses for (self: Object, MModule): Set[MClass] */
6103 val
* VIRTUAL_model__MNullableType__collect_mclasses(val
* self
, val
* p0
) {
6104 val
* var
/* : Set[MClass] */;
6105 val
* var1
/* : Set[MClass] */;
6106 var1
= model__MNullableType__collect_mclasses(self
, p0
);
6111 /* method model#MNullableType#collect_mtypes for (self: MNullableType, MModule): Set[MClassType] */
6112 val
* model__MNullableType__collect_mtypes(val
* self
, val
* p0
) {
6113 val
* var
/* : Set[MClassType] */;
6114 val
* var_mmodule
/* var mmodule: MModule */;
6115 short int var1
/* : Bool */;
6116 short int var2
/* : Bool */;
6117 val
* var3
/* : MType */;
6118 val
* var4
/* : Set[MClassType] */;
6120 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MNullableType>*/;
6123 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6124 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1328);
6127 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6128 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_model__MType__collect_mtypes
]))(var3
, var_mmodule
) /* collect_mtypes on <var3:MType>*/;
6134 /* method model#MNullableType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
6135 val
* VIRTUAL_model__MNullableType__collect_mtypes(val
* self
, val
* p0
) {
6136 val
* var
/* : Set[MClassType] */;
6137 val
* var1
/* : Set[MClassType] */;
6138 var1
= model__MNullableType__collect_mtypes(self
, p0
);
6143 /* method model#MNullType#model for (self: MNullType): Model */
6144 val
* model__MNullType__model(val
* self
) {
6145 val
* var
/* : Model */;
6146 val
* var1
/* : Model */;
6147 var1
= self
->attrs
[COLOR_model__MNullType___64dmodel
].val
; /* @model on <self:MNullType> */
6149 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @model");
6150 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1338);
6157 /* method model#MNullType#model for (self: Object): Model */
6158 val
* VIRTUAL_model__MNullType__model(val
* self
) {
6159 val
* var
/* : Model */;
6160 val
* var1
/* : Model */;
6161 var1
= model__MNullType__model(self
);
6166 /* method model#MNullType#model= for (self: MNullType, Model) */
6167 void model__MNullType__model_61d(val
* self
, val
* p0
) {
6168 self
->attrs
[COLOR_model__MNullType___64dmodel
].val
= p0
; /* @model on <self:MNullType> */
6171 /* method model#MNullType#model= for (self: Object, Model) */
6172 void VIRTUAL_model__MNullType__model_61d(val
* self
, val
* p0
) {
6173 model__MNullType__model_61d(self
, p0
);
6176 /* method model#MNullType#init for (self: MNullType, Model) */
6177 void model__MNullType__init(val
* self
, val
* p0
) {
6178 val
* var_model
/* var model: Model */;
6180 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MNullType>*/;
6181 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MNullType__model_61d
]))(self
, var_model
) /* model= on <self:MNullType>*/;
6184 /* method model#MNullType#init for (self: Object, Model) */
6185 void VIRTUAL_model__MNullType__init(val
* self
, val
* p0
) {
6186 model__MNullType__init(self
, p0
);
6189 /* method model#MNullType#to_s for (self: MNullType): String */
6190 val
* model__MNullType__to_s(val
* self
) {
6191 val
* var
/* : String */;
6192 static val
* varonce
;
6193 val
* var1
/* : String */;
6194 char* var2
/* : NativeString */;
6195 long var3
/* : Int */;
6196 val
* var4
/* : String */;
6202 var4
= string__NativeString__to_s_with_length(var2
, var3
);
6211 /* method model#MNullType#to_s for (self: Object): String */
6212 val
* VIRTUAL_model__MNullType__to_s(val
* self
) {
6213 val
* var
/* : String */;
6214 val
* var1
/* : String */;
6215 var1
= model__MNullType__to_s(self
);
6220 /* method model#MNullType#as_nullable for (self: MNullType): MType */
6221 val
* model__MNullType__as_nullable(val
* self
) {
6222 val
* var
/* : MType */;
6228 /* method model#MNullType#as_nullable for (self: Object): MType */
6229 val
* VIRTUAL_model__MNullType__as_nullable(val
* self
) {
6230 val
* var
/* : MType */;
6231 val
* var1
/* : MType */;
6232 var1
= model__MNullType__as_nullable(self
);
6237 /* method model#MNullType#need_anchor for (self: MNullType): Bool */
6238 short int model__MNullType__need_anchor(val
* self
) {
6239 short int var
/* : Bool */;
6240 short int var1
/* : Bool */;
6247 /* method model#MNullType#need_anchor for (self: Object): Bool */
6248 short int VIRTUAL_model__MNullType__need_anchor(val
* self
) {
6249 short int var
/* : Bool */;
6250 short int var1
/* : Bool */;
6251 var1
= model__MNullType__need_anchor(self
);
6256 /* method model#MNullType#resolve_for for (self: MNullType, MType, nullable MClassType, MModule, Bool): MType */
6257 val
* model__MNullType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6258 val
* var
/* : MType */;
6259 val
* var_mtype
/* var mtype: MType */;
6260 val
* var_anchor
/* var anchor: nullable MClassType */;
6261 val
* var_mmodule
/* var mmodule: MModule */;
6262 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
6266 var_cleanup_virtual
= p3
;
6272 /* method model#MNullType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
6273 val
* VIRTUAL_model__MNullType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6274 val
* var
/* : MType */;
6275 val
* var1
/* : MType */;
6276 var1
= model__MNullType__resolve_for(self
, p0
, p1
, p2
, p3
);
6281 /* method model#MNullType#can_resolve_for for (self: MNullType, MType, nullable MClassType, MModule): Bool */
6282 short int model__MNullType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6283 short int var
/* : Bool */;
6284 val
* var_mtype
/* var mtype: MType */;
6285 val
* var_anchor
/* var anchor: nullable MClassType */;
6286 val
* var_mmodule
/* var mmodule: MModule */;
6287 short int var1
/* : Bool */;
6297 /* method model#MNullType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
6298 short int VIRTUAL_model__MNullType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6299 short int var
/* : Bool */;
6300 short int var1
/* : Bool */;
6301 var1
= model__MNullType__can_resolve_for(self
, p0
, p1
, p2
);
6306 /* method model#MNullType#collect_mclassdefs for (self: MNullType, MModule): Set[MClassDef] */
6307 val
* model__MNullType__collect_mclassdefs(val
* self
, val
* p0
) {
6308 val
* var
/* : Set[MClassDef] */;
6309 val
* var_mmodule
/* var mmodule: MModule */;
6310 val
* var1
/* : HashSet[MClassDef] */;
6312 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef
);
6313 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MClassDef]>*/;
6314 CHECK_NEW_hash_collection__HashSet(var1
);
6320 /* method model#MNullType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
6321 val
* VIRTUAL_model__MNullType__collect_mclassdefs(val
* self
, val
* p0
) {
6322 val
* var
/* : Set[MClassDef] */;
6323 val
* var1
/* : Set[MClassDef] */;
6324 var1
= model__MNullType__collect_mclassdefs(self
, p0
);
6329 /* method model#MNullType#collect_mclasses for (self: MNullType, MModule): Set[MClass] */
6330 val
* model__MNullType__collect_mclasses(val
* self
, val
* p0
) {
6331 val
* var
/* : Set[MClass] */;
6332 val
* var_mmodule
/* var mmodule: MModule */;
6333 val
* var1
/* : HashSet[MClass] */;
6335 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
6336 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MClass]>*/;
6337 CHECK_NEW_hash_collection__HashSet(var1
);
6343 /* method model#MNullType#collect_mclasses for (self: Object, MModule): Set[MClass] */
6344 val
* VIRTUAL_model__MNullType__collect_mclasses(val
* self
, val
* p0
) {
6345 val
* var
/* : Set[MClass] */;
6346 val
* var1
/* : Set[MClass] */;
6347 var1
= model__MNullType__collect_mclasses(self
, p0
);
6352 /* method model#MNullType#collect_mtypes for (self: MNullType, MModule): Set[MClassType] */
6353 val
* model__MNullType__collect_mtypes(val
* self
, val
* p0
) {
6354 val
* var
/* : Set[MClassType] */;
6355 val
* var_mmodule
/* var mmodule: MModule */;
6356 val
* var1
/* : HashSet[MClassType] */;
6358 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType
);
6359 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MClassType]>*/;
6360 CHECK_NEW_hash_collection__HashSet(var1
);
6366 /* method model#MNullType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
6367 val
* VIRTUAL_model__MNullType__collect_mtypes(val
* self
, val
* p0
) {
6368 val
* var
/* : Set[MClassType] */;
6369 val
* var1
/* : Set[MClassType] */;
6370 var1
= model__MNullType__collect_mtypes(self
, p0
);
6375 /* method model#MSignature#mparameters for (self: MSignature): Array[MParameter] */
6376 val
* model__MSignature__mparameters(val
* self
) {
6377 val
* var
/* : Array[MParameter] */;
6378 val
* var1
/* : Array[MParameter] */;
6379 var1
= self
->attrs
[COLOR_model__MSignature___64dmparameters
].val
; /* @mparameters on <self:MSignature> */
6381 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mparameters");
6382 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1360);
6389 /* method model#MSignature#mparameters for (self: Object): Array[MParameter] */
6390 val
* VIRTUAL_model__MSignature__mparameters(val
* self
) {
6391 val
* var
/* : Array[MParameter] */;
6392 val
* var1
/* : Array[MParameter] */;
6393 var1
= model__MSignature__mparameters(self
);
6398 /* method model#MSignature#mparameters= for (self: MSignature, Array[MParameter]) */
6399 void model__MSignature__mparameters_61d(val
* self
, val
* p0
) {
6400 self
->attrs
[COLOR_model__MSignature___64dmparameters
].val
= p0
; /* @mparameters on <self:MSignature> */
6403 /* method model#MSignature#mparameters= for (self: Object, Array[MParameter]) */
6404 void VIRTUAL_model__MSignature__mparameters_61d(val
* self
, val
* p0
) {
6405 model__MSignature__mparameters_61d(self
, p0
);
6408 /* method model#MSignature#return_mtype for (self: MSignature): nullable MType */
6409 val
* model__MSignature__return_mtype(val
* self
) {
6410 val
* var
/* : nullable MType */;
6411 val
* var1
/* : nullable MType */;
6412 var1
= self
->attrs
[COLOR_model__MSignature___64dreturn_mtype
].val
; /* @return_mtype on <self:MSignature> */
6417 /* method model#MSignature#return_mtype for (self: Object): nullable MType */
6418 val
* VIRTUAL_model__MSignature__return_mtype(val
* self
) {
6419 val
* var
/* : nullable MType */;
6420 val
* var1
/* : nullable MType */;
6421 var1
= model__MSignature__return_mtype(self
);
6426 /* method model#MSignature#return_mtype= for (self: MSignature, nullable MType) */
6427 void model__MSignature__return_mtype_61d(val
* self
, val
* p0
) {
6428 self
->attrs
[COLOR_model__MSignature___64dreturn_mtype
].val
= p0
; /* @return_mtype on <self:MSignature> */
6431 /* method model#MSignature#return_mtype= for (self: Object, nullable MType) */
6432 void VIRTUAL_model__MSignature__return_mtype_61d(val
* self
, val
* p0
) {
6433 model__MSignature__return_mtype_61d(self
, p0
);
6436 /* method model#MSignature#depth for (self: MSignature): Int */
6437 long model__MSignature__depth(val
* self
) {
6438 long var
/* : Int */;
6439 long var1
/* : Int */;
6440 long var_dmax
/* var dmax: Int */;
6441 val
* var2
/* : nullable MType */;
6442 val
* var_t
/* var t: nullable MType */;
6443 val
* var3
/* : null */;
6444 short int var4
/* : Bool */;
6445 long var5
/* : Int */;
6446 val
* var6
/* : Array[MParameter] */;
6447 val
* var7
/* : Iterator[nullable Object] */;
6448 short int var8
/* : Bool */;
6449 val
* var9
/* : nullable Object */;
6450 val
* var_p
/* var p: MParameter */;
6451 val
* var10
/* : MType */;
6452 long var11
/* : Int */;
6453 long var_d
/* var d: Int */;
6454 short int var12
/* : Bool */;
6455 short int var14
/* : Bool */;
6458 const char* var_class_name
;
6459 short int var15
/* : Bool */;
6460 long var16
/* : Int */;
6461 long var17
/* : Int */;
6462 long var19
/* : Int */;
6465 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype
]))(self
) /* return_mtype on <self:MSignature>*/;
6468 if (var_t
== NULL
) {
6469 var4
= 0; /* is null */
6471 var4
= 1; /* arg is null and recv is not */
6474 var5
= ((long (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__depth
]))(var_t
) /* depth on <var_t:nullable MType(MType)>*/;
6478 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6479 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Array[MParameter]>*/;
6481 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
6483 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
6485 var10
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__mtype
]))(var_p
) /* mtype on <var_p:MParameter>*/;
6486 var11
= ((long (*)(val
*))(var10
->class->vft
[COLOR_model__MType__depth
]))(var10
) /* depth on <var10:MType>*/;
6488 { /* Inline kernel#Int#> (var_d,var_dmax) */
6489 /* Covariant cast for argument 0 (i) <var_dmax:Int> isa OTHER */
6490 /* <var_dmax:Int> isa OTHER */
6491 var14
= 1; /* easy <var_dmax:Int> isa OTHER*/
6493 var_class_name
= type_kernel__Int
.name
;
6494 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6495 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
6498 var15
= var_d
> var_dmax
;
6501 RET_LABEL13
:(void)0;
6507 CONTINUE_label
: (void)0;
6508 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
6510 BREAK_label
: (void)0;
6512 { /* Inline kernel#Int#+ (var_dmax,var16) */
6513 var19
= var_dmax
+ var16
;
6516 RET_LABEL18
:(void)0;
6523 /* method model#MSignature#depth for (self: Object): Int */
6524 long VIRTUAL_model__MSignature__depth(val
* self
) {
6525 long var
/* : Int */;
6526 long var1
/* : Int */;
6527 var1
= model__MSignature__depth(self
);
6532 /* method model#MSignature#length for (self: MSignature): Int */
6533 long model__MSignature__length(val
* self
) {
6534 long var
/* : Int */;
6535 long var1
/* : Int */;
6536 long var_res
/* var res: Int */;
6537 val
* var2
/* : nullable MType */;
6538 val
* var_t
/* var t: nullable MType */;
6539 val
* var3
/* : null */;
6540 short int var4
/* : Bool */;
6541 long var5
/* : Int */;
6542 long var6
/* : Int */;
6543 long var8
/* : Int */;
6544 val
* var9
/* : Array[MParameter] */;
6545 val
* var10
/* : Iterator[nullable Object] */;
6546 short int var11
/* : Bool */;
6547 val
* var12
/* : nullable Object */;
6548 val
* var_p
/* var p: MParameter */;
6549 val
* var13
/* : MType */;
6550 long var14
/* : Int */;
6551 long var15
/* : Int */;
6552 long var17
/* : Int */;
6555 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype
]))(self
) /* return_mtype on <self:MSignature>*/;
6558 if (var_t
== NULL
) {
6559 var4
= 0; /* is null */
6561 var4
= 1; /* arg is null and recv is not */
6564 var5
= ((long (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__length
]))(var_t
) /* length on <var_t:nullable MType(MType)>*/;
6565 { /* Inline kernel#Int#+ (var_res,var5) */
6566 var8
= var_res
+ var5
;
6574 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6575 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Array[MParameter]>*/;
6577 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[nullable Object]>*/;
6579 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[nullable Object]>*/;
6581 var13
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__mtype
]))(var_p
) /* mtype on <var_p:MParameter>*/;
6582 var14
= ((long (*)(val
*))(var13
->class->vft
[COLOR_model__MType__length
]))(var13
) /* length on <var13:MType>*/;
6583 { /* Inline kernel#Int#+ (var_res,var14) */
6584 var17
= var_res
+ var14
;
6587 RET_LABEL16
:(void)0;
6590 CONTINUE_label
: (void)0;
6591 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[nullable Object]>*/;
6593 BREAK_label
: (void)0;
6599 /* method model#MSignature#length for (self: Object): Int */
6600 long VIRTUAL_model__MSignature__length(val
* self
) {
6601 long var
/* : Int */;
6602 long var1
/* : Int */;
6603 var1
= model__MSignature__length(self
);
6608 /* method model#MSignature#init for (self: MSignature, Array[MParameter], nullable MType) */
6609 void model__MSignature__init(val
* self
, val
* p0
, val
* p1
) {
6610 val
* var_mparameters
/* var mparameters: Array[MParameter] */;
6611 val
* var_return_mtype
/* var return_mtype: nullable MType */;
6612 long var
/* : Int */;
6613 long var1
/* : Int */;
6614 long var3
/* : Int */;
6615 long var_vararg_rank
/* var vararg_rank: Int */;
6616 val
* var4
/* : Range[Int] */;
6617 long var5
/* : Int */;
6618 long var6
/* : Int */;
6619 val
* var7
/* : Discrete */;
6620 val
* var8
/* : Discrete */;
6621 val
* var9
/* : Iterator[nullable Object] */;
6622 short int var10
/* : Bool */;
6623 val
* var11
/* : nullable Object */;
6624 long var_i
/* var i: Int */;
6625 long var12
/* : Int */;
6626 val
* var13
/* : nullable Object */;
6627 val
* var_parameter
/* var parameter: MParameter */;
6628 short int var14
/* : Bool */;
6629 long var15
/* : Int */;
6630 long var16
/* : Int */;
6631 long var18
/* : Int */;
6632 short int var19
/* : Bool */;
6633 short int var21
/* : Bool */;
6634 var_mparameters
= p0
;
6635 var_return_mtype
= p1
;
6636 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MSignature>*/;
6638 { /* Inline kernel#Int#unary - (var) */
6644 var_vararg_rank
= var1
;
6645 var4
= NEW_range__Range(&type_range__Rangekernel__Int
);
6647 var6
= ((long (*)(val
*))(var_mparameters
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mparameters
) /* length on <var_mparameters:Array[MParameter]>*/;
6648 var7
= BOX_kernel__Int(var5
); /* autobox from Int to Discrete */
6649 var8
= BOX_kernel__Int(var6
); /* autobox from Int to Discrete */
6650 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_range__Range__without_last
]))(var4
, var7
, var8
) /* without_last on <var4:Range[Int]>*/;
6651 CHECK_NEW_range__Range(var4
);
6652 var9
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var4
) /* iterator on <var4:Range[Int]>*/;
6654 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
6656 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
6657 var12
= ((struct instance_kernel__Int
*)var11
)->value
; /* autounbox from nullable Object to Int */;
6659 var13
= ((val
* (*)(val
*, long))(var_mparameters
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_mparameters
, var_i
) /* [] on <var_mparameters:Array[MParameter]>*/;
6660 var_parameter
= var13
;
6661 var14
= ((short int (*)(val
*))(var_parameter
->class->vft
[COLOR_model__MParameter__is_vararg
]))(var_parameter
) /* is_vararg on <var_parameter:MParameter>*/;
6664 { /* Inline kernel#Int#unary - (var15) */
6668 RET_LABEL17
:(void)0;
6670 { /* Inline kernel#Int#== (var_vararg_rank,var16) */
6671 var21
= var_vararg_rank
== var16
;
6674 RET_LABEL20
:(void)0;
6677 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6678 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1396);
6681 var_vararg_rank
= var_i
;
6684 CONTINUE_label
: (void)0;
6685 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
6687 BREAK_label
: (void)0;
6688 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters_61d
]))(self
, var_mparameters
) /* mparameters= on <self:MSignature>*/;
6689 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype_61d
]))(self
, var_return_mtype
) /* return_mtype= on <self:MSignature>*/;
6690 ((void (*)(val
*, long))(self
->class->vft
[COLOR_model__MSignature__vararg_rank_61d
]))(self
, var_vararg_rank
) /* vararg_rank= on <self:MSignature>*/;
6693 /* method model#MSignature#init for (self: Object, Array[MParameter], nullable MType) */
6694 void VIRTUAL_model__MSignature__init(val
* self
, val
* p0
, val
* p1
) {
6695 model__MSignature__init(self
, p0
, p1
);
6698 /* method model#MSignature#vararg_rank for (self: MSignature): Int */
6699 long model__MSignature__vararg_rank(val
* self
) {
6700 long var
/* : Int */;
6701 long var1
/* : Int */;
6702 var1
= self
->attrs
[COLOR_model__MSignature___64dvararg_rank
].l
; /* @vararg_rank on <self:MSignature> */
6707 /* method model#MSignature#vararg_rank for (self: Object): Int */
6708 long VIRTUAL_model__MSignature__vararg_rank(val
* self
) {
6709 long var
/* : Int */;
6710 long var1
/* : Int */;
6711 var1
= model__MSignature__vararg_rank(self
);
6716 /* method model#MSignature#vararg_rank= for (self: MSignature, Int) */
6717 void model__MSignature__vararg_rank_61d(val
* self
, long p0
) {
6718 self
->attrs
[COLOR_model__MSignature___64dvararg_rank
].l
= p0
; /* @vararg_rank on <self:MSignature> */
6721 /* method model#MSignature#vararg_rank= for (self: Object, Int) */
6722 void VIRTUAL_model__MSignature__vararg_rank_61d(val
* self
, long p0
) {
6723 model__MSignature__vararg_rank_61d(self
, p0
);
6726 /* method model#MSignature#arity for (self: MSignature): Int */
6727 long model__MSignature__arity(val
* self
) {
6728 long var
/* : Int */;
6729 val
* var1
/* : Array[MParameter] */;
6730 long var2
/* : Int */;
6731 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6732 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var1
) /* length on <var1:Array[MParameter]>*/;
6738 /* method model#MSignature#arity for (self: Object): Int */
6739 long VIRTUAL_model__MSignature__arity(val
* self
) {
6740 long var
/* : Int */;
6741 long var1
/* : Int */;
6742 var1
= model__MSignature__arity(self
);
6747 /* method model#MSignature#to_s for (self: MSignature): String */
6748 val
* model__MSignature__to_s(val
* self
) {
6749 val
* var
/* : String */;
6750 val
* var1
/* : Buffer */;
6751 val
* var_b
/* var b: Buffer */;
6752 val
* var2
/* : Array[MParameter] */;
6753 short int var3
/* : Bool */;
6754 short int var4
/* : Bool */;
6755 static val
* varonce
;
6756 val
* var5
/* : String */;
6757 char* var6
/* : NativeString */;
6758 long var7
/* : Int */;
6759 val
* var8
/* : String */;
6760 val
* var9
/* : Range[Int] */;
6761 long var10
/* : Int */;
6762 val
* var11
/* : Array[MParameter] */;
6763 long var12
/* : Int */;
6764 val
* var13
/* : Discrete */;
6765 val
* var14
/* : Discrete */;
6766 val
* var15
/* : Iterator[nullable Object] */;
6767 short int var16
/* : Bool */;
6768 val
* var17
/* : nullable Object */;
6769 long var_i
/* var i: Int */;
6770 long var18
/* : Int */;
6771 val
* var19
/* : Array[MParameter] */;
6772 val
* var20
/* : nullable Object */;
6773 val
* var_mparameter
/* var mparameter: MParameter */;
6774 long var21
/* : Int */;
6775 short int var22
/* : Bool */;
6776 short int var24
/* : Bool */;
6779 const char* var_class_name
;
6780 short int var25
/* : Bool */;
6781 static val
* varonce26
;
6782 val
* var27
/* : String */;
6783 char* var28
/* : NativeString */;
6784 long var29
/* : Int */;
6785 val
* var30
/* : String */;
6786 val
* var31
/* : String */;
6787 static val
* varonce32
;
6788 val
* var33
/* : String */;
6789 char* var34
/* : NativeString */;
6790 long var35
/* : Int */;
6791 val
* var36
/* : String */;
6792 val
* var37
/* : MType */;
6793 val
* var38
/* : String */;
6794 short int var39
/* : Bool */;
6795 static val
* varonce40
;
6796 val
* var41
/* : String */;
6797 char* var42
/* : NativeString */;
6798 long var43
/* : Int */;
6799 val
* var44
/* : String */;
6800 static val
* varonce45
;
6801 val
* var46
/* : String */;
6802 char* var47
/* : NativeString */;
6803 long var48
/* : Int */;
6804 val
* var49
/* : String */;
6805 val
* var50
/* : nullable MType */;
6806 val
* var_ret
/* var ret: nullable MType */;
6807 val
* var51
/* : null */;
6808 short int var52
/* : Bool */;
6809 static val
* varonce53
;
6810 val
* var54
/* : String */;
6811 char* var55
/* : NativeString */;
6812 long var56
/* : Int */;
6813 val
* var57
/* : String */;
6814 val
* var58
/* : String */;
6815 val
* var59
/* : String */;
6816 var1
= NEW_string__Buffer(&type_string__Buffer
);
6817 ((void (*)(val
*))(var1
->class->vft
[COLOR_string__Buffer__init
]))(var1
) /* init on <var1:Buffer>*/;
6818 CHECK_NEW_string__Buffer(var1
);
6820 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6821 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var2
) /* is_empty on <var2:Array[MParameter]>*/;
6829 var8
= string__NativeString__to_s_with_length(var6
, var7
);
6833 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var5
) /* append on <var_b:Buffer>*/;
6834 var9
= NEW_range__Range(&type_range__Rangekernel__Int
);
6836 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6837 var12
= ((long (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var11
) /* length on <var11:Array[MParameter]>*/;
6838 var13
= BOX_kernel__Int(var10
); /* autobox from Int to Discrete */
6839 var14
= BOX_kernel__Int(var12
); /* autobox from Int to Discrete */
6840 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_range__Range__without_last
]))(var9
, var13
, var14
) /* without_last on <var9:Range[Int]>*/;
6841 CHECK_NEW_range__Range(var9
);
6842 var15
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Range[Int]>*/;
6844 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
6846 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
6847 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
6849 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6850 var20
= ((val
* (*)(val
*, long))(var19
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var19
, var_i
) /* [] on <var19:Array[MParameter]>*/;
6851 var_mparameter
= var20
;
6853 { /* Inline kernel#Int#> (var_i,var21) */
6854 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
6855 /* <var21:Int> isa OTHER */
6856 var24
= 1; /* easy <var21:Int> isa OTHER*/
6858 var_class_name
= type_kernel__Int
.name
;
6859 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6860 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
6863 var25
= var_i
> var21
;
6866 RET_LABEL23
:(void)0;
6874 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6878 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var27
) /* append on <var_b:Buffer>*/;
6881 var31
= ((val
* (*)(val
*))(var_mparameter
->class->vft
[COLOR_model__MParameter__name
]))(var_mparameter
) /* name on <var_mparameter:MParameter>*/;
6882 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var31
) /* append on <var_b:Buffer>*/;
6888 var36
= string__NativeString__to_s_with_length(var34
, var35
);
6892 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var33
) /* append on <var_b:Buffer>*/;
6893 var37
= ((val
* (*)(val
*))(var_mparameter
->class->vft
[COLOR_model__MParameter__mtype
]))(var_mparameter
) /* mtype on <var_mparameter:MParameter>*/;
6894 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:MType>*/;
6895 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var38
) /* append on <var_b:Buffer>*/;
6896 var39
= ((short int (*)(val
*))(var_mparameter
->class->vft
[COLOR_model__MParameter__is_vararg
]))(var_mparameter
) /* is_vararg on <var_mparameter:MParameter>*/;
6903 var44
= string__NativeString__to_s_with_length(var42
, var43
);
6907 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var41
) /* append on <var_b:Buffer>*/;
6910 CONTINUE_label
: (void)0;
6911 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
6913 BREAK_label
: (void)0;
6919 var49
= string__NativeString__to_s_with_length(var47
, var48
);
6923 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var46
) /* append on <var_b:Buffer>*/;
6926 var50
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype
]))(self
) /* return_mtype on <self:MSignature>*/;
6929 if (var_ret
== NULL
) {
6930 var52
= 0; /* is null */
6932 var52
= 1; /* arg is null and recv is not */
6940 var57
= string__NativeString__to_s_with_length(var55
, var56
);
6944 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var54
) /* append on <var_b:Buffer>*/;
6945 var58
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_string__Object__to_s
]))(var_ret
) /* to_s on <var_ret:nullable MType(MType)>*/;
6946 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var58
) /* append on <var_b:Buffer>*/;
6949 var59
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_string__Object__to_s
]))(var_b
) /* to_s on <var_b:Buffer>*/;
6955 /* method model#MSignature#to_s for (self: Object): String */
6956 val
* VIRTUAL_model__MSignature__to_s(val
* self
) {
6957 val
* var
/* : String */;
6958 val
* var1
/* : String */;
6959 var1
= model__MSignature__to_s(self
);
6964 /* method model#MSignature#resolve_for for (self: MSignature, MType, nullable MClassType, MModule, Bool): MSignature */
6965 val
* model__MSignature__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6966 val
* var
/* : MSignature */;
6967 val
* var_mtype
/* var mtype: MType */;
6968 val
* var_anchor
/* var anchor: nullable MClassType */;
6969 val
* var_mmodule
/* var mmodule: MModule */;
6970 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
6971 val
* var1
/* : Array[MParameter] */;
6972 val
* var_params
/* var params: Array[MParameter] */;
6973 val
* var2
/* : Array[MParameter] */;
6974 val
* var3
/* : Iterator[nullable Object] */;
6975 short int var4
/* : Bool */;
6976 val
* var5
/* : nullable Object */;
6977 val
* var_p
/* var p: MParameter */;
6978 val
* var6
/* : MParameter */;
6979 val
* var7
/* : nullable MType */;
6980 val
* var_ret
/* var ret: nullable MType */;
6981 val
* var8
/* : null */;
6982 short int var9
/* : Bool */;
6983 val
* var10
/* : MType */;
6984 val
* var11
/* : MSignature */;
6985 val
* var_res
/* var res: MSignature */;
6989 var_cleanup_virtual
= p3
;
6990 var1
= NEW_array__Array(&type_array__Arraymodel__MParameter
);
6991 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[MParameter]>*/;
6992 CHECK_NEW_array__Array(var1
);
6994 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6995 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[MParameter]>*/;
6997 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
6999 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
7001 var6
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_p
->class->vft
[COLOR_model__MParameter__resolve_for
]))(var_p
, var_mtype
, var_anchor
, var_mmodule
, var_cleanup_virtual
) /* resolve_for on <var_p:MParameter>*/;
7002 ((void (*)(val
*, val
*))(var_params
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_params
, var6
) /* add on <var_params:Array[MParameter]>*/;
7003 CONTINUE_label
: (void)0;
7004 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
7006 BREAK_label
: (void)0;
7007 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype
]))(self
) /* return_mtype on <self:MSignature>*/;
7010 if (var_ret
== NULL
) {
7011 var9
= 0; /* is null */
7013 var9
= 1; /* arg is null and recv is not */
7016 var10
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_ret
->class->vft
[COLOR_model__MType__resolve_for
]))(var_ret
, var_mtype
, var_anchor
, var_mmodule
, var_cleanup_virtual
) /* resolve_for on <var_ret:nullable MType(MType)>*/;
7020 var11
= NEW_model__MSignature(&type_model__MSignature
);
7021 ((void (*)(val
*, val
*, val
*))(var11
->class->vft
[COLOR_model__MSignature__init
]))(var11
, var_params
, var_ret
) /* init on <var11:MSignature>*/;
7022 CHECK_NEW_model__MSignature(var11
);
7029 /* method model#MSignature#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
7030 val
* VIRTUAL_model__MSignature__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7031 val
* var
/* : MType */;
7032 val
* var1
/* : MSignature */;
7033 var1
= model__MSignature__resolve_for(self
, p0
, p1
, p2
, p3
);
7038 /* method model#MParameter#name for (self: MParameter): String */
7039 val
* model__MParameter__name(val
* self
) {
7040 val
* var
/* : String */;
7041 val
* var1
/* : String */;
7042 var1
= self
->attrs
[COLOR_model__MParameter___64dname
].val
; /* @name on <self:MParameter> */
7044 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @name");
7045 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1455);
7052 /* method model#MParameter#name for (self: Object): String */
7053 val
* VIRTUAL_model__MParameter__name(val
* self
) {
7054 val
* var
/* : String */;
7055 val
* var1
/* : String */;
7056 var1
= model__MParameter__name(self
);
7061 /* method model#MParameter#name= for (self: MParameter, String) */
7062 void model__MParameter__name_61d(val
* self
, val
* p0
) {
7063 self
->attrs
[COLOR_model__MParameter___64dname
].val
= p0
; /* @name on <self:MParameter> */
7066 /* method model#MParameter#name= for (self: Object, String) */
7067 void VIRTUAL_model__MParameter__name_61d(val
* self
, val
* p0
) {
7068 model__MParameter__name_61d(self
, p0
);
7071 /* method model#MParameter#mtype for (self: MParameter): MType */
7072 val
* model__MParameter__mtype(val
* self
) {
7073 val
* var
/* : MType */;
7074 val
* var1
/* : MType */;
7075 var1
= self
->attrs
[COLOR_model__MParameter___64dmtype
].val
; /* @mtype on <self:MParameter> */
7077 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mtype");
7078 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1458);
7085 /* method model#MParameter#mtype for (self: Object): MType */
7086 val
* VIRTUAL_model__MParameter__mtype(val
* self
) {
7087 val
* var
/* : MType */;
7088 val
* var1
/* : MType */;
7089 var1
= model__MParameter__mtype(self
);
7094 /* method model#MParameter#mtype= for (self: MParameter, MType) */
7095 void model__MParameter__mtype_61d(val
* self
, val
* p0
) {
7096 self
->attrs
[COLOR_model__MParameter___64dmtype
].val
= p0
; /* @mtype on <self:MParameter> */
7099 /* method model#MParameter#mtype= for (self: Object, MType) */
7100 void VIRTUAL_model__MParameter__mtype_61d(val
* self
, val
* p0
) {
7101 model__MParameter__mtype_61d(self
, p0
);
7104 /* method model#MParameter#is_vararg for (self: MParameter): Bool */
7105 short int model__MParameter__is_vararg(val
* self
) {
7106 short int var
/* : Bool */;
7107 short int var1
/* : Bool */;
7108 var1
= self
->attrs
[COLOR_model__MParameter___64dis_vararg
].s
; /* @is_vararg on <self:MParameter> */
7113 /* method model#MParameter#is_vararg for (self: Object): Bool */
7114 short int VIRTUAL_model__MParameter__is_vararg(val
* self
) {
7115 short int var
/* : Bool */;
7116 short int var1
/* : Bool */;
7117 var1
= model__MParameter__is_vararg(self
);
7122 /* method model#MParameter#is_vararg= for (self: MParameter, Bool) */
7123 void model__MParameter__is_vararg_61d(val
* self
, short int p0
) {
7124 self
->attrs
[COLOR_model__MParameter___64dis_vararg
].s
= p0
; /* @is_vararg on <self:MParameter> */
7127 /* method model#MParameter#is_vararg= for (self: Object, Bool) */
7128 void VIRTUAL_model__MParameter__is_vararg_61d(val
* self
, short int p0
) {
7129 model__MParameter__is_vararg_61d(self
, p0
);
7132 /* method model#MParameter#resolve_for for (self: MParameter, MType, nullable MClassType, MModule, Bool): MParameter */
7133 val
* model__MParameter__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7134 val
* var
/* : MParameter */;
7135 val
* var_mtype
/* var mtype: MType */;
7136 val
* var_anchor
/* var anchor: nullable MClassType */;
7137 val
* var_mmodule
/* var mmodule: MModule */;
7138 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
7139 val
* var1
/* : MType */;
7140 short int var2
/* : Bool */;
7141 short int var3
/* : Bool */;
7142 val
* var4
/* : MType */;
7143 val
* var5
/* : MType */;
7144 val
* var_newtype
/* var newtype: MType */;
7145 val
* var6
/* : MParameter */;
7146 val
* var7
/* : String */;
7147 short int var8
/* : Bool */;
7148 val
* var_res
/* var res: MParameter */;
7152 var_cleanup_virtual
= p3
;
7153 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameter__mtype
]))(self
) /* mtype on <self:MParameter>*/;
7154 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_model__MType__need_anchor
]))(var1
) /* need_anchor on <var1:MType>*/;
7161 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameter__mtype
]))(self
) /* mtype on <self:MParameter>*/;
7162 var5
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var4
->class->vft
[COLOR_model__MType__resolve_for
]))(var4
, var_mtype
, var_anchor
, var_mmodule
, var_cleanup_virtual
) /* resolve_for on <var4:MType>*/;
7164 var6
= NEW_model__MParameter(&type_model__MParameter
);
7165 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameter__name
]))(self
) /* name on <self:MParameter>*/;
7166 var8
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MParameter__is_vararg
]))(self
) /* is_vararg on <self:MParameter>*/;
7167 ((void (*)(val
*, val
*, val
*, short int))(var6
->class->vft
[COLOR_model__MParameter__init
]))(var6
, var7
, var_newtype
, var8
) /* init on <var6:MParameter>*/;
7168 CHECK_NEW_model__MParameter(var6
);
7175 /* method model#MParameter#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MParameter */
7176 val
* VIRTUAL_model__MParameter__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7177 val
* var
/* : MParameter */;
7178 val
* var1
/* : MParameter */;
7179 var1
= model__MParameter__resolve_for(self
, p0
, p1
, p2
, p3
);
7184 /* method model#MParameter#init for (self: MParameter, String, MType, Bool) */
7185 void model__MParameter__init(val
* self
, val
* p0
, val
* p1
, short int p2
) {
7186 self
->attrs
[COLOR_model__MParameter___64dname
].val
= p0
; /* @name on <self:MParameter> */
7187 self
->attrs
[COLOR_model__MParameter___64dmtype
].val
= p1
; /* @mtype on <self:MParameter> */
7188 self
->attrs
[COLOR_model__MParameter___64dis_vararg
].s
= p2
; /* @is_vararg on <self:MParameter> */
7191 /* method model#MParameter#init for (self: Object, String, MType, Bool) */
7192 void VIRTUAL_model__MParameter__init(val
* self
, val
* p0
, val
* p1
, short int p2
) {
7193 model__MParameter__init(self
, p0
, p1
, p2
);
7196 /* method model#MProperty#intro_mclassdef for (self: MProperty): MClassDef */
7197 val
* model__MProperty__intro_mclassdef(val
* self
) {
7198 val
* var
/* : MClassDef */;
7199 val
* var1
/* : MClassDef */;
7200 var1
= self
->attrs
[COLOR_model__MProperty___64dintro_mclassdef
].val
; /* @intro_mclassdef on <self:MProperty> */
7202 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @intro_mclassdef");
7203 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1489);
7210 /* method model#MProperty#intro_mclassdef for (self: Object): MClassDef */
7211 val
* VIRTUAL_model__MProperty__intro_mclassdef(val
* self
) {
7212 val
* var
/* : MClassDef */;
7213 val
* var1
/* : MClassDef */;
7214 var1
= model__MProperty__intro_mclassdef(self
);
7219 /* method model#MProperty#intro_mclassdef= for (self: MProperty, MClassDef) */
7220 void model__MProperty__intro_mclassdef_61d(val
* self
, val
* p0
) {
7221 self
->attrs
[COLOR_model__MProperty___64dintro_mclassdef
].val
= p0
; /* @intro_mclassdef on <self:MProperty> */
7224 /* method model#MProperty#intro_mclassdef= for (self: Object, MClassDef) */
7225 void VIRTUAL_model__MProperty__intro_mclassdef_61d(val
* self
, val
* p0
) {
7226 model__MProperty__intro_mclassdef_61d(self
, p0
);
7229 /* method model#MProperty#name for (self: MProperty): String */
7230 val
* model__MProperty__name(val
* self
) {
7231 val
* var
/* : String */;
7232 val
* var1
/* : String */;
7233 var1
= self
->attrs
[COLOR_model__MProperty___64dname
].val
; /* @name on <self:MProperty> */
7235 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @name");
7236 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1494);
7243 /* method model#MProperty#name for (self: Object): String */
7244 val
* VIRTUAL_model__MProperty__name(val
* self
) {
7245 val
* var
/* : String */;
7246 val
* var1
/* : String */;
7247 var1
= model__MProperty__name(self
);
7252 /* method model#MProperty#name= for (self: MProperty, String) */
7253 void model__MProperty__name_61d(val
* self
, val
* p0
) {
7254 self
->attrs
[COLOR_model__MProperty___64dname
].val
= p0
; /* @name on <self:MProperty> */
7257 /* method model#MProperty#name= for (self: Object, String) */
7258 void VIRTUAL_model__MProperty__name_61d(val
* self
, val
* p0
) {
7259 model__MProperty__name_61d(self
, p0
);
7262 /* method model#MProperty#full_name for (self: MProperty): String */
7263 val
* model__MProperty__full_name(val
* self
) {
7264 val
* var
/* : String */;
7265 val
* var1
/* : Array[Object] */;
7266 long var2
/* : Int */;
7267 val
* var_
/* var : Array[Object] */;
7268 static val
* varonce
;
7269 val
* var3
/* : String */;
7270 char* var4
/* : NativeString */;
7271 long var5
/* : Int */;
7272 val
* var6
/* : String */;
7273 val
* var7
/* : MClassDef */;
7274 val
* var8
/* : MModule */;
7275 val
* var9
/* : String */;
7276 static val
* varonce10
;
7277 val
* var11
/* : String */;
7278 char* var12
/* : NativeString */;
7279 long var13
/* : Int */;
7280 val
* var14
/* : String */;
7281 val
* var15
/* : MClassDef */;
7282 val
* var16
/* : MClass */;
7283 val
* var17
/* : String */;
7284 static val
* varonce18
;
7285 val
* var19
/* : String */;
7286 char* var20
/* : NativeString */;
7287 long var21
/* : Int */;
7288 val
* var22
/* : String */;
7289 val
* var23
/* : String */;
7290 static val
* varonce24
;
7291 val
* var25
/* : String */;
7292 char* var26
/* : NativeString */;
7293 long var27
/* : Int */;
7294 val
* var28
/* : String */;
7295 val
* var29
/* : String */;
7296 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
7298 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
7299 CHECK_NEW_array__Array(var1
);
7306 var6
= string__NativeString__to_s_with_length(var4
, var5
);
7310 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
7311 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(self
) /* intro_mclassdef on <self:MProperty>*/;
7312 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var7
) /* mmodule on <var7:MClassDef>*/;
7313 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model_base__MModule__full_name
]))(var8
) /* full_name on <var8:MModule>*/;
7314 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var9
) /* add on <var_:Array[Object]>*/;
7320 var14
= string__NativeString__to_s_with_length(var12
, var13
);
7324 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var11
) /* add on <var_:Array[Object]>*/;
7325 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(self
) /* intro_mclassdef on <self:MProperty>*/;
7326 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClassDef__mclass
]))(var15
) /* mclass on <var15:MClassDef>*/;
7327 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_model__MClass__name
]))(var16
) /* name on <var16:MClass>*/;
7328 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var17
) /* add on <var_:Array[Object]>*/;
7334 var22
= string__NativeString__to_s_with_length(var20
, var21
);
7338 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var19
) /* add on <var_:Array[Object]>*/;
7339 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__name
]))(self
) /* name on <self:MProperty>*/;
7340 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var23
) /* add on <var_:Array[Object]>*/;
7346 var28
= string__NativeString__to_s_with_length(var26
, var27
);
7350 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var25
) /* add on <var_:Array[Object]>*/;
7351 var29
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
7357 /* method model#MProperty#full_name for (self: Object): String */
7358 val
* VIRTUAL_model__MProperty__full_name(val
* self
) {
7359 val
* var
/* : String */;
7360 val
* var1
/* : String */;
7361 var1
= model__MProperty__full_name(self
);
7366 /* method model#MProperty#visibility for (self: MProperty): MVisibility */
7367 val
* model__MProperty__visibility(val
* self
) {
7368 val
* var
/* : MVisibility */;
7369 val
* var1
/* : MVisibility */;
7370 var1
= self
->attrs
[COLOR_model__MProperty___64dvisibility
].val
; /* @visibility on <self:MProperty> */
7372 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @visibility");
7373 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1504);
7380 /* method model#MProperty#visibility for (self: Object): MVisibility */
7381 val
* VIRTUAL_model__MProperty__visibility(val
* self
) {
7382 val
* var
/* : MVisibility */;
7383 val
* var1
/* : MVisibility */;
7384 var1
= model__MProperty__visibility(self
);
7389 /* method model#MProperty#visibility= for (self: MProperty, MVisibility) */
7390 void model__MProperty__visibility_61d(val
* self
, val
* p0
) {
7391 self
->attrs
[COLOR_model__MProperty___64dvisibility
].val
= p0
; /* @visibility on <self:MProperty> */
7394 /* method model#MProperty#visibility= for (self: Object, MVisibility) */
7395 void VIRTUAL_model__MProperty__visibility_61d(val
* self
, val
* p0
) {
7396 model__MProperty__visibility_61d(self
, p0
);
7399 /* method model#MProperty#init for (self: MProperty, MClassDef, String, MVisibility) */
7400 void model__MProperty__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7401 val
* var_intro_mclassdef
/* var intro_mclassdef: MClassDef */;
7402 val
* var_name
/* var name: String */;
7403 val
* var_visibility
/* var visibility: MVisibility */;
7404 val
* var
/* : Array[MProperty] */;
7405 val
* var1
/* : MModule */;
7406 val
* var2
/* : Model */;
7407 val
* var_model
/* var model: Model */;
7408 val
* var3
/* : MultiHashMap[String, MProperty] */;
7409 val
* var4
/* : Array[MProperty] */;
7410 var_intro_mclassdef
= p0
;
7412 var_visibility
= p2
;
7413 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__intro_mclassdef_61d
]))(self
, var_intro_mclassdef
) /* intro_mclassdef= on <self:MProperty>*/;
7414 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__name_61d
]))(self
, var_name
) /* name= on <self:MProperty>*/;
7415 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__visibility_61d
]))(self
, var_visibility
) /* visibility= on <self:MProperty>*/;
7416 var
= ((val
* (*)(val
*))(var_intro_mclassdef
->class->vft
[COLOR_model__MClassDef__intro_mproperties
]))(var_intro_mclassdef
) /* intro_mproperties on <var_intro_mclassdef:MClassDef>*/;
7417 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var
, self
) /* add on <var:Array[MProperty]>*/;
7418 var1
= ((val
* (*)(val
*))(var_intro_mclassdef
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_intro_mclassdef
) /* mmodule on <var_intro_mclassdef:MClassDef>*/;
7419 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model_base__MModule__model
]))(var1
) /* model on <var1:MModule>*/;
7421 var3
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mproperties_by_name
]))(var_model
) /* mproperties_by_name on <var_model:Model>*/;
7422 ((void (*)(val
*, val
*, val
*))(var3
->class->vft
[COLOR_more_collections__MultiHashMap__add_one
]))(var3
, var_name
, self
) /* add_one on <var3:MultiHashMap[String, MProperty]>*/;
7423 var4
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mproperties
]))(var_model
) /* mproperties on <var_model:Model>*/;
7424 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var4
, self
) /* add on <var4:Array[MProperty]>*/;
7427 /* method model#MProperty#init for (self: Object, MClassDef, String, MVisibility) */
7428 void VIRTUAL_model__MProperty__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7429 model__MProperty__init(self
, p0
, p1
, p2
);
7432 /* method model#MProperty#mpropdefs for (self: MProperty): Array[MPropDef] */
7433 val
* model__MProperty__mpropdefs(val
* self
) {
7434 val
* var
/* : Array[MPropDef] */;
7435 val
* var1
/* : Array[MPropDef] */;
7436 var1
= self
->attrs
[COLOR_model__MProperty___64dmpropdefs
].val
; /* @mpropdefs on <self:MProperty> */
7438 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdefs");
7439 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1518);
7446 /* method model#MProperty#mpropdefs for (self: Object): Array[MPropDef] */
7447 val
* VIRTUAL_model__MProperty__mpropdefs(val
* self
) {
7448 val
* var
/* : Array[MPropDef] */;
7449 val
* var1
/* : Array[MPropDef] */;
7450 var1
= model__MProperty__mpropdefs(self
);
7455 /* method model#MProperty#mpropdefs= for (self: MProperty, Array[MPropDef]) */
7456 void model__MProperty__mpropdefs_61d(val
* self
, val
* p0
) {
7457 short int var
/* : Bool */;
7460 const struct type
* type_struct
;
7461 const char* var_class_name
;
7462 /* Covariant cast for argument 0 (mpropdefs) <p0:Array[MPropDef]> isa Array[MPROPDEF] */
7463 /* <p0:Array[MPropDef]> isa Array[MPROPDEF] */
7464 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraymodel__MProperty_VTMPROPDEF
];
7465 cltype
= type_struct
->color
;
7466 idtype
= type_struct
->id
;
7467 if(cltype
>= p0
->type
->table_size
) {
7470 var
= p0
->type
->type_table
[cltype
] == idtype
;
7473 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
7474 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[MPROPDEF]", var_class_name
);
7475 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1518);
7478 self
->attrs
[COLOR_model__MProperty___64dmpropdefs
].val
= p0
; /* @mpropdefs on <self:MProperty> */
7481 /* method model#MProperty#mpropdefs= for (self: Object, Array[MPropDef]) */
7482 void VIRTUAL_model__MProperty__mpropdefs_61d(val
* self
, val
* p0
) {
7483 model__MProperty__mpropdefs_61d(self
, p0
);
7486 /* method model#MProperty#intro for (self: MProperty): MPropDef */
7487 val
* model__MProperty__intro(val
* self
) {
7488 val
* var
/* : MPropDef */;
7489 val
* var1
/* : Array[MPropDef] */;
7490 val
* var2
/* : nullable Object */;
7491 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(self
) /* mpropdefs on <self:MProperty>*/;
7492 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var1
) /* first on <var1:Array[MPropDef]>*/;
7498 /* method model#MProperty#intro for (self: Object): MPropDef */
7499 val
* VIRTUAL_model__MProperty__intro(val
* self
) {
7500 val
* var
/* : MPropDef */;
7501 val
* var1
/* : MPropDef */;
7502 var1
= model__MProperty__intro(self
);
7507 /* method model#MProperty#to_s for (self: MProperty): String */
7508 val
* model__MProperty__to_s(val
* self
) {
7509 val
* var
/* : String */;
7510 val
* var1
/* : String */;
7511 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__name
]))(self
) /* name on <self:MProperty>*/;
7517 /* method model#MProperty#to_s for (self: Object): String */
7518 val
* VIRTUAL_model__MProperty__to_s(val
* self
) {
7519 val
* var
/* : String */;
7520 val
* var1
/* : String */;
7521 var1
= model__MProperty__to_s(self
);
7526 /* method model#MProperty#lookup_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
7527 val
* model__MProperty__lookup_definitions(val
* self
, val
* p0
, val
* p1
) {
7528 val
* var
/* : Array[MPropDef] */;
7529 val
* var_mmodule
/* var mmodule: MModule */;
7530 val
* var_mtype
/* var mtype: MType */;
7531 short int var1
/* : Bool */;
7532 short int var2
/* : Bool */;
7533 short int var3
/* : Bool */;
7536 val
* var4
/* : MType */;
7537 val
* var5
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7538 val
* var6
/* : nullable Object */;
7539 val
* var_cache
/* var cache: nullable Array[MPropDef] */;
7540 val
* var7
/* : null */;
7541 short int var8
/* : Bool */;
7542 val
* var9
/* : Array[MPropDef] */;
7543 val
* var_candidates
/* var candidates: Array[MPropDef] */;
7544 val
* var10
/* : Array[MPropDef] */;
7545 val
* var11
/* : Iterator[nullable Object] */;
7546 short int var12
/* : Bool */;
7547 val
* var13
/* : nullable Object */;
7548 val
* var_mpropdef
/* var mpropdef: MPropDef */;
7549 val
* var14
/* : POSetElement[MModule] */;
7550 val
* var15
/* : MClassDef */;
7551 val
* var16
/* : MModule */;
7552 short int var17
/* : Bool */;
7553 short int var18
/* : Bool */;
7554 val
* var19
/* : null */;
7555 val
* var20
/* : MClassDef */;
7556 val
* var21
/* : MClassType */;
7557 short int var22
/* : Bool */;
7558 short int var23
/* : Bool */;
7559 long var24
/* : Int */;
7560 long var25
/* : Int */;
7561 short int var26
/* : Bool */;
7562 short int var28
/* : Bool */;
7565 const char* var_class_name
;
7566 short int var31
/* : Bool */;
7567 val
* var32
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7568 val
* var33
/* : Array[MPropDef] */;
7569 val
* var_res
/* var res: Array[MPropDef] */;
7570 val
* var34
/* : Iterator[nullable Object] */;
7571 short int var35
/* : Bool */;
7572 val
* var36
/* : nullable Object */;
7573 val
* var_pd1
/* var pd1: MPropDef */;
7574 val
* var37
/* : MClassDef */;
7575 val
* var_cd1
/* var cd1: MClassDef */;
7576 val
* var38
/* : MClass */;
7577 val
* var_c1
/* var c1: MClass */;
7578 short int var39
/* : Bool */;
7579 short int var_keep
/* var keep: Bool */;
7580 val
* var40
/* : Iterator[nullable Object] */;
7581 short int var41
/* : Bool */;
7582 val
* var42
/* : nullable Object */;
7583 val
* var_pd2
/* var pd2: MPropDef */;
7584 short int var43
/* : Bool */;
7585 val
* var45
/* : MClassDef */;
7586 val
* var_cd2
/* var cd2: MClassDef */;
7587 val
* var46
/* : MClass */;
7588 val
* var_c2
/* var c2: MClass */;
7589 val
* var47
/* : MClassType */;
7590 val
* var48
/* : MClassType */;
7591 short int var49
/* : Bool */;
7592 val
* var50
/* : MModule */;
7593 val
* var51
/* : POSetElement[MModule] */;
7594 val
* var52
/* : MModule */;
7595 short int var53
/* : Bool */;
7596 short int var54
/* : Bool */;
7597 val
* var55
/* : MClassType */;
7598 val
* var56
/* : null */;
7599 val
* var57
/* : MClassType */;
7600 short int var58
/* : Bool */;
7601 short int var59
/* : Bool */;
7602 short int var61
/* : Bool */;
7603 static val
* varonce
;
7604 val
* var62
/* : String */;
7605 char* var63
/* : NativeString */;
7606 long var64
/* : Int */;
7607 val
* var65
/* : String */;
7608 static val
* varonce66
;
7609 val
* var67
/* : String */;
7610 char* var68
/* : NativeString */;
7611 long var69
/* : Int */;
7612 val
* var70
/* : String */;
7613 val
* var71
/* : String */;
7614 val
* var72
/* : Array[Object] */;
7615 long var73
/* : Int */;
7616 val
* var74
/* : NativeArray[Object] */;
7617 val
* var75
/* : String */;
7618 val
* var76
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7621 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
7624 fprintf(stderr
, "Runtime error: %s", "Assert failed");
7625 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1540);
7628 /* <var_mtype:MType> isa MNullableType */
7629 cltype
= type_model__MNullableType
.color
;
7630 idtype
= type_model__MNullableType
.id
;
7631 if(cltype
>= var_mtype
->type
->table_size
) {
7634 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7637 var4
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
7641 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_definitions_cache
]))(self
) /* lookup_definitions_cache on <self:MProperty>*/;
7642 var6
= ((val
* (*)(val
*, val
*, val
*))(var5
->class->vft
[COLOR_more_collections__HashMap2___91d_93d
]))(var5
, var_mmodule
, var_mtype
) /* [] on <var5:HashMap2[MModule, MType, Array[MPropDef]]>*/;
7645 if (var_cache
== NULL
) {
7646 var8
= 0; /* is null */
7648 var8
= 1; /* arg is null and recv is not */
7655 var9
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraymodel__MProperty_VTMPROPDEF
]);
7656 ((void (*)(val
*))(var9
->class->vft
[COLOR_array__Array__init
]))(var9
) /* init on <var9:Array[MPropDef]>*/;
7657 CHECK_NEW_array__Array(var9
);
7658 var_candidates
= var9
;
7659 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(self
) /* mpropdefs on <self:MProperty>*/;
7660 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[MPropDef]>*/;
7662 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
7664 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
7665 var_mpropdef
= var13
;
7666 var14
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
7667 var15
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
7668 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var15
) /* mmodule on <var15:MClassDef>*/;
7669 var17
= ((short int (*)(val
*, val
*))(var14
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var14
, var16
) /* <= on <var14:POSetElement[MModule]>*/;
7672 goto CONTINUE_label
;
7676 var20
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
7677 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var20
) /* bound_mtype on <var20:MClassDef>*/;
7678 var22
= ((short int (*)(val
*, val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__is_subtype
]))(var_mtype
, var_mmodule
, var19
, var21
) /* is_subtype on <var_mtype:MType>*/;
7681 goto CONTINUE_label
;
7684 ((void (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidates
, var_mpropdef
) /* add on <var_candidates:Array[MPropDef]>*/;
7685 CONTINUE_label
: (void)0;
7686 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
7688 BREAK_label
: (void)0;
7689 var24
= ((long (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidates
) /* length on <var_candidates:Array[MPropDef]>*/;
7691 { /* Inline kernel#Int#<= (var24,var25) */
7692 /* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
7693 /* <var25:Int> isa OTHER */
7694 var28
= 1; /* easy <var25:Int> isa OTHER*/
7696 var_class_name
= type_kernel__Int
.name
;
7697 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7698 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
7701 var31
= var24
<= var25
;
7704 RET_LABEL27
:(void)0;
7707 var32
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_definitions_cache
]))(self
) /* lookup_definitions_cache on <self:MProperty>*/;
7708 ((void (*)(val
*, val
*, val
*, val
*))(var32
->class->vft
[COLOR_more_collections__HashMap2___91d_93d_61d
]))(var32
, var_mmodule
, var_mtype
, var_candidates
) /* []= on <var32:HashMap2[MModule, MType, Array[MPropDef]]>*/;
7709 var
= var_candidates
;
7713 var33
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraymodel__MProperty_VTMPROPDEF
]);
7714 ((void (*)(val
*))(var33
->class->vft
[COLOR_array__Array__init
]))(var33
) /* init on <var33:Array[MPropDef]>*/;
7715 CHECK_NEW_array__Array(var33
);
7717 var34
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_candidates
) /* iterator on <var_candidates:Array[MPropDef]>*/;
7719 var35
= ((short int (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var34
) /* is_ok on <var34:Iterator[nullable Object]>*/;
7721 var36
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var34
) /* item on <var34:Iterator[nullable Object]>*/;
7723 var37
= ((val
* (*)(val
*))(var_pd1
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pd1
) /* mclassdef on <var_pd1:MPropDef>*/;
7725 var38
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd1
) /* mclass on <var_cd1:MClassDef>*/;
7729 var40
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_candidates
) /* iterator on <var_candidates:Array[MPropDef]>*/;
7731 var41
= ((short int (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var40
) /* is_ok on <var40:Iterator[nullable Object]>*/;
7733 var42
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var40
) /* item on <var40:Iterator[nullable Object]>*/;
7735 var43
= ((short int (*)(val
*, val
*))(var_pd2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pd2
, var_pd1
) /* == on <var_pd2:MPropDef>*/;
7737 goto CONTINUE_label44
;
7740 var45
= ((val
* (*)(val
*))(var_pd2
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pd2
) /* mclassdef on <var_pd2:MPropDef>*/;
7742 var46
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd2
) /* mclass on <var_cd2:MClassDef>*/;
7744 var47
= ((val
* (*)(val
*))(var_c2
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c2
) /* mclass_type on <var_c2:MClass>*/;
7745 var48
= ((val
* (*)(val
*))(var_c1
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c1
) /* mclass_type on <var_c1:MClass>*/;
7746 var49
= ((short int (*)(val
*, val
*))(var47
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var47
, var48
) /* == on <var47:MClassType>*/;
7748 var50
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_cd2
) /* mmodule on <var_cd2:MClassDef>*/;
7749 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var50
) /* in_importation on <var50:MModule>*/;
7750 var52
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_cd1
) /* mmodule on <var_cd1:MClassDef>*/;
7751 var53
= ((short int (*)(val
*, val
*))(var51
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var51
, var52
) /* <= on <var51:POSetElement[MModule]>*/;
7759 var55
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_cd2
) /* bound_mtype on <var_cd2:MClassDef>*/;
7761 var57
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_cd1
) /* bound_mtype on <var_cd1:MClassDef>*/;
7762 var58
= ((short int (*)(val
*, val
*, val
*, val
*))(var55
->class->vft
[COLOR_model__MType__is_subtype
]))(var55
, var_mmodule
, var56
, var57
) /* is_subtype on <var55:MClassType>*/;
7770 CONTINUE_label44
: (void)0;
7771 ((void (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var40
) /* next on <var40:Iterator[nullable Object]>*/;
7773 BREAK_label44
: (void)0;
7775 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_pd1
) /* add on <var_res:Array[MPropDef]>*/;
7778 CONTINUE_label60
: (void)0;
7779 ((void (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var34
) /* next on <var34:Iterator[nullable Object]>*/;
7781 BREAK_label60
: (void)0;
7782 var61
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_res
) /* is_empty on <var_res:Array[MPropDef]>*/;
7787 var63
= "All lost! ";
7789 var65
= string__NativeString__to_s_with_length(var63
, var64
);
7798 var70
= string__NativeString__to_s_with_length(var68
, var69
);
7802 var71
= ((val
* (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_string__Collection__join
]))(var_candidates
, var67
) /* join on <var_candidates:Array[MPropDef]>*/;
7803 var72
= NEW_array__Array(&type_array__Arraykernel__Object
);
7804 { /* var72 = array_instance Array[Object] */
7806 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArraykernel__Object
);
7807 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var62
;
7808 ((struct instance_array__NativeArray
*)var74
)->values
[1] = (val
*) var71
;
7809 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Object]>*/;
7810 CHECK_NEW_array__Array(var72
);
7812 var75
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_string__Object__to_s
]))(var72
) /* to_s on <var72:Array[Object]>*/;
7813 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var75
) /* print on <self:MProperty>*/;
7816 var76
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_definitions_cache
]))(self
) /* lookup_definitions_cache on <self:MProperty>*/;
7817 ((void (*)(val
*, val
*, val
*, val
*))(var76
->class->vft
[COLOR_more_collections__HashMap2___91d_93d_61d
]))(var76
, var_mmodule
, var_mtype
, var_res
) /* []= on <var76:HashMap2[MModule, MType, Array[MPropDef]]>*/;
7823 /* method model#MProperty#lookup_definitions for (self: Object, MModule, MType): Array[MPropDef] */
7824 val
* VIRTUAL_model__MProperty__lookup_definitions(val
* self
, val
* p0
, val
* p1
) {
7825 val
* var
/* : Array[MPropDef] */;
7826 val
* var1
/* : Array[MPropDef] */;
7827 var1
= model__MProperty__lookup_definitions(self
, p0
, p1
);
7832 /* method model#MProperty#lookup_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
7833 val
* model__MProperty__lookup_definitions_cache(val
* self
) {
7834 val
* var
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7835 val
* var1
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7836 var1
= self
->attrs
[COLOR_model__MProperty___64dlookup_definitions_cache
].val
; /* @lookup_definitions_cache on <self:MProperty> */
7838 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @lookup_definitions_cache");
7839 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1597);
7846 /* method model#MProperty#lookup_definitions_cache for (self: Object): HashMap2[MModule, MType, Array[MPropDef]] */
7847 val
* VIRTUAL_model__MProperty__lookup_definitions_cache(val
* self
) {
7848 val
* var
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7849 val
* var1
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7850 var1
= model__MProperty__lookup_definitions_cache(self
);
7855 /* method model#MProperty#lookup_definitions_cache= for (self: MProperty, HashMap2[MModule, MType, Array[MPropDef]]) */
7856 void model__MProperty__lookup_definitions_cache_61d(val
* self
, val
* p0
) {
7857 short int var
/* : Bool */;
7860 const struct type
* type_struct
;
7861 const char* var_class_name
;
7862 /* Covariant cast for argument 0 (lookup_definitions_cache) <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
7863 /* <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
7864 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2model_base__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF
];
7865 cltype
= type_struct
->color
;
7866 idtype
= type_struct
->id
;
7867 if(cltype
>= p0
->type
->table_size
) {
7870 var
= p0
->type
->type_table
[cltype
] == idtype
;
7873 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
7874 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap2[MModule, MType, Array[MPROPDEF]]", var_class_name
);
7875 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1597);
7878 self
->attrs
[COLOR_model__MProperty___64dlookup_definitions_cache
].val
= p0
; /* @lookup_definitions_cache on <self:MProperty> */
7881 /* method model#MProperty#lookup_definitions_cache= for (self: Object, HashMap2[MModule, MType, Array[MPropDef]]) */
7882 void VIRTUAL_model__MProperty__lookup_definitions_cache_61d(val
* self
, val
* p0
) {
7883 model__MProperty__lookup_definitions_cache_61d(self
, p0
);
7886 /* method model#MProperty#lookup_super_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
7887 val
* model__MProperty__lookup_super_definitions(val
* self
, val
* p0
, val
* p1
) {
7888 val
* var
/* : Array[MPropDef] */;
7889 val
* var_mmodule
/* var mmodule: MModule */;
7890 val
* var_mtype
/* var mtype: MType */;
7891 short int var1
/* : Bool */;
7892 short int var2
/* : Bool */;
7893 short int var3
/* : Bool */;
7896 val
* var4
/* : MType */;
7897 val
* var5
/* : Array[MPropDef] */;
7898 val
* var_candidates
/* var candidates: Array[MPropDef] */;
7899 val
* var6
/* : Array[MPropDef] */;
7900 val
* var7
/* : Iterator[nullable Object] */;
7901 short int var8
/* : Bool */;
7902 val
* var9
/* : nullable Object */;
7903 val
* var_mpropdef
/* var mpropdef: MPropDef */;
7904 val
* var10
/* : POSetElement[MModule] */;
7905 val
* var11
/* : MClassDef */;
7906 val
* var12
/* : MModule */;
7907 short int var13
/* : Bool */;
7908 short int var14
/* : Bool */;
7909 val
* var15
/* : null */;
7910 val
* var16
/* : MClassDef */;
7911 val
* var17
/* : MClassType */;
7912 short int var18
/* : Bool */;
7913 short int var19
/* : Bool */;
7914 short int var20
/* : Bool */;
7915 val
* var21
/* : MClassDef */;
7916 val
* var22
/* : MClassType */;
7917 short int var23
/* : Bool */;
7918 short int var_
/* var : Bool */;
7919 val
* var24
/* : MClassDef */;
7920 val
* var25
/* : MModule */;
7921 short int var26
/* : Bool */;
7922 long var27
/* : Int */;
7923 long var28
/* : Int */;
7924 short int var29
/* : Bool */;
7925 short int var31
/* : Bool */;
7928 const char* var_class_name
;
7929 short int var34
/* : Bool */;
7930 val
* var35
/* : Array[MPropDef] */;
7931 val
* var_res
/* var res: Array[MPropDef] */;
7932 val
* var36
/* : Iterator[nullable Object] */;
7933 short int var37
/* : Bool */;
7934 val
* var38
/* : nullable Object */;
7935 val
* var_pd1
/* var pd1: MPropDef */;
7936 val
* var39
/* : MClassDef */;
7937 val
* var_cd1
/* var cd1: MClassDef */;
7938 val
* var40
/* : MClass */;
7939 val
* var_c1
/* var c1: MClass */;
7940 short int var41
/* : Bool */;
7941 short int var_keep
/* var keep: Bool */;
7942 val
* var42
/* : Iterator[nullable Object] */;
7943 short int var43
/* : Bool */;
7944 val
* var44
/* : nullable Object */;
7945 val
* var_pd2
/* var pd2: MPropDef */;
7946 short int var45
/* : Bool */;
7947 val
* var47
/* : MClassDef */;
7948 val
* var_cd2
/* var cd2: MClassDef */;
7949 val
* var48
/* : MClass */;
7950 val
* var_c2
/* var c2: MClass */;
7951 val
* var49
/* : MClassType */;
7952 val
* var50
/* : MClassType */;
7953 short int var51
/* : Bool */;
7954 val
* var52
/* : MModule */;
7955 val
* var53
/* : POSetElement[MModule] */;
7956 val
* var54
/* : MModule */;
7957 short int var55
/* : Bool */;
7958 short int var56
/* : Bool */;
7959 val
* var57
/* : MClassType */;
7960 val
* var58
/* : null */;
7961 val
* var59
/* : MClassType */;
7962 short int var60
/* : Bool */;
7963 short int var61
/* : Bool */;
7964 short int var63
/* : Bool */;
7965 static val
* varonce
;
7966 val
* var64
/* : String */;
7967 char* var65
/* : NativeString */;
7968 long var66
/* : Int */;
7969 val
* var67
/* : String */;
7970 static val
* varonce68
;
7971 val
* var69
/* : String */;
7972 char* var70
/* : NativeString */;
7973 long var71
/* : Int */;
7974 val
* var72
/* : String */;
7975 val
* var73
/* : String */;
7976 val
* var74
/* : Array[Object] */;
7977 long var75
/* : Int */;
7978 val
* var76
/* : NativeArray[Object] */;
7979 val
* var77
/* : String */;
7982 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
7985 fprintf(stderr
, "Runtime error: %s", "Assert failed");
7986 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1609);
7989 /* <var_mtype:MType> isa MNullableType */
7990 cltype
= type_model__MNullableType
.color
;
7991 idtype
= type_model__MNullableType
.id
;
7992 if(cltype
>= var_mtype
->type
->table_size
) {
7995 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7998 var4
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
8002 var5
= NEW_array__Array(&type_array__Arraymodel__MPropDef
);
8003 ((void (*)(val
*))(var5
->class->vft
[COLOR_array__Array__init
]))(var5
) /* init on <var5:Array[MPropDef]>*/;
8004 CHECK_NEW_array__Array(var5
);
8005 var_candidates
= var5
;
8006 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(self
) /* mpropdefs on <self:MProperty>*/;
8007 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Array[MPropDef]>*/;
8009 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
8011 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
8012 var_mpropdef
= var9
;
8013 var10
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
8014 var11
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
8015 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var11
) /* mmodule on <var11:MClassDef>*/;
8016 var13
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var10
, var12
) /* <= on <var10:POSetElement[MModule]>*/;
8019 goto CONTINUE_label
;
8023 var16
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
8024 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var16
) /* bound_mtype on <var16:MClassDef>*/;
8025 var18
= ((short int (*)(val
*, val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__is_subtype
]))(var_mtype
, var_mmodule
, var15
, var17
) /* is_subtype on <var_mtype:MType>*/;
8028 goto CONTINUE_label
;
8031 var21
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
8032 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var21
) /* bound_mtype on <var21:MClassDef>*/;
8033 var23
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var22
) /* == on <var_mtype:MType>*/;
8036 var24
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
8037 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var24
) /* mmodule on <var24:MClassDef>*/;
8038 var26
= ((short int (*)(val
*, val
*))(var_mmodule
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mmodule
, var25
) /* == on <var_mmodule:MModule>*/;
8044 goto CONTINUE_label
;
8047 ((void (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidates
, var_mpropdef
) /* add on <var_candidates:Array[MPropDef]>*/;
8048 CONTINUE_label
: (void)0;
8049 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
8051 BREAK_label
: (void)0;
8052 var27
= ((long (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidates
) /* length on <var_candidates:Array[MPropDef]>*/;
8054 { /* Inline kernel#Int#<= (var27,var28) */
8055 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
8056 /* <var28:Int> isa OTHER */
8057 var31
= 1; /* easy <var28:Int> isa OTHER*/
8059 var_class_name
= type_kernel__Int
.name
;
8060 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
8061 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
8064 var34
= var27
<= var28
;
8067 RET_LABEL30
:(void)0;
8070 var
= var_candidates
;
8074 var35
= NEW_array__Array(&type_array__Arraymodel__MPropDef
);
8075 ((void (*)(val
*))(var35
->class->vft
[COLOR_array__Array__init
]))(var35
) /* init on <var35:Array[MPropDef]>*/;
8076 CHECK_NEW_array__Array(var35
);
8078 var36
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_candidates
) /* iterator on <var_candidates:Array[MPropDef]>*/;
8080 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var36
) /* is_ok on <var36:Iterator[nullable Object]>*/;
8082 var38
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var36
) /* item on <var36:Iterator[nullable Object]>*/;
8084 var39
= ((val
* (*)(val
*))(var_pd1
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pd1
) /* mclassdef on <var_pd1:MPropDef>*/;
8086 var40
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd1
) /* mclass on <var_cd1:MClassDef>*/;
8090 var42
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_candidates
) /* iterator on <var_candidates:Array[MPropDef]>*/;
8092 var43
= ((short int (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var42
) /* is_ok on <var42:Iterator[nullable Object]>*/;
8094 var44
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var42
) /* item on <var42:Iterator[nullable Object]>*/;
8096 var45
= ((short int (*)(val
*, val
*))(var_pd2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pd2
, var_pd1
) /* == on <var_pd2:MPropDef>*/;
8098 goto CONTINUE_label46
;
8101 var47
= ((val
* (*)(val
*))(var_pd2
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pd2
) /* mclassdef on <var_pd2:MPropDef>*/;
8103 var48
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd2
) /* mclass on <var_cd2:MClassDef>*/;
8105 var49
= ((val
* (*)(val
*))(var_c2
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c2
) /* mclass_type on <var_c2:MClass>*/;
8106 var50
= ((val
* (*)(val
*))(var_c1
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c1
) /* mclass_type on <var_c1:MClass>*/;
8107 var51
= ((short int (*)(val
*, val
*))(var49
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var49
, var50
) /* == on <var49:MClassType>*/;
8109 var52
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_cd2
) /* mmodule on <var_cd2:MClassDef>*/;
8110 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var52
) /* in_importation on <var52:MModule>*/;
8111 var54
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_cd1
) /* mmodule on <var_cd1:MClassDef>*/;
8112 var55
= ((short int (*)(val
*, val
*))(var53
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var53
, var54
) /* <= on <var53:POSetElement[MModule]>*/;
8120 var57
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_cd2
) /* bound_mtype on <var_cd2:MClassDef>*/;
8122 var59
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_cd1
) /* bound_mtype on <var_cd1:MClassDef>*/;
8123 var60
= ((short int (*)(val
*, val
*, val
*, val
*))(var57
->class->vft
[COLOR_model__MType__is_subtype
]))(var57
, var_mmodule
, var58
, var59
) /* is_subtype on <var57:MClassType>*/;
8131 CONTINUE_label46
: (void)0;
8132 ((void (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var42
) /* next on <var42:Iterator[nullable Object]>*/;
8134 BREAK_label46
: (void)0;
8136 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_pd1
) /* add on <var_res:Array[MPropDef]>*/;
8139 CONTINUE_label62
: (void)0;
8140 ((void (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var36
) /* next on <var36:Iterator[nullable Object]>*/;
8142 BREAK_label62
: (void)0;
8143 var63
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_res
) /* is_empty on <var_res:Array[MPropDef]>*/;
8148 var65
= "All lost! ";
8150 var67
= string__NativeString__to_s_with_length(var65
, var66
);
8159 var72
= string__NativeString__to_s_with_length(var70
, var71
);
8163 var73
= ((val
* (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_string__Collection__join
]))(var_candidates
, var69
) /* join on <var_candidates:Array[MPropDef]>*/;
8164 var74
= NEW_array__Array(&type_array__Arraykernel__Object
);
8165 { /* var74 = array_instance Array[Object] */
8167 var76
= NEW_array__NativeArray(var75
, &type_array__NativeArraykernel__Object
);
8168 ((struct instance_array__NativeArray
*)var76
)->values
[0] = (val
*) var64
;
8169 ((struct instance_array__NativeArray
*)var76
)->values
[1] = (val
*) var73
;
8170 ((void (*)(val
*, val
*, long))(var74
->class->vft
[COLOR_array__Array__with_native
]))(var74
, var76
, var75
) /* with_native on <var74:Array[Object]>*/;
8171 CHECK_NEW_array__Array(var74
);
8173 var77
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_string__Object__to_s
]))(var74
) /* to_s on <var74:Array[Object]>*/;
8174 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var77
) /* print on <self:MProperty>*/;
8182 /* method model#MProperty#lookup_super_definitions for (self: Object, MModule, MType): Array[MPropDef] */
8183 val
* VIRTUAL_model__MProperty__lookup_super_definitions(val
* self
, val
* p0
, val
* p1
) {
8184 val
* var
/* : Array[MPropDef] */;
8185 val
* var1
/* : Array[MPropDef] */;
8186 var1
= model__MProperty__lookup_super_definitions(self
, p0
, p1
);
8191 /* method model#MProperty#lookup_first_definition for (self: MProperty, MModule, MType): MPropDef */
8192 val
* model__MProperty__lookup_first_definition(val
* self
, val
* p0
, val
* p1
) {
8193 val
* var
/* : MPropDef */;
8194 val
* var_mmodule
/* var mmodule: MModule */;
8195 val
* var_mtype
/* var mtype: MType */;
8196 short int var1
/* : Bool */;
8197 val
* var2
/* : Array[MPropDef] */;
8198 val
* var3
/* : nullable Object */;
8201 var1
= ((short int (*)(val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__has_mproperty
]))(var_mtype
, var_mmodule
, self
) /* has_mproperty on <var_mtype:MType>*/;
8203 fprintf(stderr
, "Runtime error: %s", "Assert failed");
8204 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1671);
8207 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_all_definitions
]))(self
, var_mmodule
, var_mtype
) /* lookup_all_definitions on <self:MProperty>*/;
8208 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var2
) /* first on <var2:Array[MPropDef]>*/;
8214 /* method model#MProperty#lookup_first_definition for (self: Object, MModule, MType): MPropDef */
8215 val
* VIRTUAL_model__MProperty__lookup_first_definition(val
* self
, val
* p0
, val
* p1
) {
8216 val
* var
/* : MPropDef */;
8217 val
* var1
/* : MPropDef */;
8218 var1
= model__MProperty__lookup_first_definition(self
, p0
, p1
);
8223 /* method model#MProperty#lookup_all_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
8224 val
* model__MProperty__lookup_all_definitions(val
* self
, val
* p0
, val
* p1
) {
8225 val
* var
/* : Array[MPropDef] */;
8226 val
* var_mmodule
/* var mmodule: MModule */;
8227 val
* var_mtype
/* var mtype: MType */;
8228 short int var1
/* : Bool */;
8229 short int var2
/* : Bool */;
8230 short int var3
/* : Bool */;
8233 val
* var4
/* : MType */;
8234 val
* var5
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8235 val
* var6
/* : nullable Object */;
8236 val
* var_cache
/* var cache: nullable Array[MPropDef] */;
8237 val
* var7
/* : null */;
8238 short int var8
/* : Bool */;
8239 val
* var9
/* : Array[MPropDef] */;
8240 val
* var_candidates
/* var candidates: Array[MPropDef] */;
8241 val
* var10
/* : Array[MPropDef] */;
8242 val
* var11
/* : Iterator[nullable Object] */;
8243 short int var12
/* : Bool */;
8244 val
* var13
/* : nullable Object */;
8245 val
* var_mpropdef
/* var mpropdef: MPropDef */;
8246 val
* var14
/* : POSetElement[MModule] */;
8247 val
* var15
/* : MClassDef */;
8248 val
* var16
/* : MModule */;
8249 short int var17
/* : Bool */;
8250 short int var18
/* : Bool */;
8251 val
* var19
/* : null */;
8252 val
* var20
/* : MClassDef */;
8253 val
* var21
/* : MClassType */;
8254 short int var22
/* : Bool */;
8255 short int var23
/* : Bool */;
8256 long var24
/* : Int */;
8257 long var25
/* : Int */;
8258 short int var26
/* : Bool */;
8259 short int var28
/* : Bool */;
8262 const char* var_class_name
;
8263 short int var31
/* : Bool */;
8264 val
* var32
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8265 val
* var33
/* : Array[nullable Object] */;
8266 val
* var34
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8269 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
8272 fprintf(stderr
, "Runtime error: %s", "Assert failed");
8273 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1679);
8276 /* <var_mtype:MType> isa MNullableType */
8277 cltype
= type_model__MNullableType
.color
;
8278 idtype
= type_model__MNullableType
.id
;
8279 if(cltype
>= var_mtype
->type
->table_size
) {
8282 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8285 var4
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
8289 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_all_definitions_cache
]))(self
) /* lookup_all_definitions_cache on <self:MProperty>*/;
8290 var6
= ((val
* (*)(val
*, val
*, val
*))(var5
->class->vft
[COLOR_more_collections__HashMap2___91d_93d
]))(var5
, var_mmodule
, var_mtype
) /* [] on <var5:HashMap2[MModule, MType, Array[MPropDef]]>*/;
8293 if (var_cache
== NULL
) {
8294 var8
= 0; /* is null */
8296 var8
= 1; /* arg is null and recv is not */
8303 var9
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraymodel__MProperty_VTMPROPDEF
]);
8304 ((void (*)(val
*))(var9
->class->vft
[COLOR_array__Array__init
]))(var9
) /* init on <var9:Array[MPropDef]>*/;
8305 CHECK_NEW_array__Array(var9
);
8306 var_candidates
= var9
;
8307 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(self
) /* mpropdefs on <self:MProperty>*/;
8308 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[MPropDef]>*/;
8310 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
8312 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
8313 var_mpropdef
= var13
;
8314 var14
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model_base__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
8315 var15
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
8316 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var15
) /* mmodule on <var15:MClassDef>*/;
8317 var17
= ((short int (*)(val
*, val
*))(var14
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var14
, var16
) /* <= on <var14:POSetElement[MModule]>*/;
8320 goto CONTINUE_label
;
8324 var20
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
8325 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var20
) /* bound_mtype on <var20:MClassDef>*/;
8326 var22
= ((short int (*)(val
*, val
*, val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__is_subtype
]))(var_mtype
, var_mmodule
, var19
, var21
) /* is_subtype on <var_mtype:MType>*/;
8329 goto CONTINUE_label
;
8332 ((void (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidates
, var_mpropdef
) /* add on <var_candidates:Array[MPropDef]>*/;
8333 CONTINUE_label
: (void)0;
8334 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
8336 BREAK_label
: (void)0;
8337 var24
= ((long (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidates
) /* length on <var_candidates:Array[MPropDef]>*/;
8339 { /* Inline kernel#Int#<= (var24,var25) */
8340 /* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
8341 /* <var25:Int> isa OTHER */
8342 var28
= 1; /* easy <var25:Int> isa OTHER*/
8344 var_class_name
= type_kernel__Int
.name
;
8345 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
8346 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
8349 var31
= var24
<= var25
;
8352 RET_LABEL27
:(void)0;
8355 var32
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_all_definitions_cache
]))(self
) /* lookup_all_definitions_cache on <self:MProperty>*/;
8356 ((void (*)(val
*, val
*, val
*, val
*))(var32
->class->vft
[COLOR_more_collections__HashMap2___91d_93d_61d
]))(var32
, var_mmodule
, var_mtype
, var_candidates
) /* []= on <var32:HashMap2[MModule, MType, Array[MPropDef]]>*/;
8357 var
= var_candidates
;
8361 ((void (*)(val
*, val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__linearize_mpropdefs
]))(var_mmodule
, var_candidates
) /* linearize_mpropdefs on <var_mmodule:MModule>*/;
8362 var33
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_array__AbstractArrayRead__reversed
]))(var_candidates
) /* reversed on <var_candidates:Array[MPropDef]>*/;
8363 var_candidates
= var33
;
8364 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_all_definitions_cache
]))(self
) /* lookup_all_definitions_cache on <self:MProperty>*/;
8365 ((void (*)(val
*, val
*, val
*, val
*))(var34
->class->vft
[COLOR_more_collections__HashMap2___91d_93d_61d
]))(var34
, var_mmodule
, var_mtype
, var_candidates
) /* []= on <var34:HashMap2[MModule, MType, Array[MPropDef]]>*/;
8366 var
= var_candidates
;
8371 /* method model#MProperty#lookup_all_definitions for (self: Object, MModule, MType): Array[MPropDef] */
8372 val
* VIRTUAL_model__MProperty__lookup_all_definitions(val
* self
, val
* p0
, val
* p1
) {
8373 val
* var
/* : Array[MPropDef] */;
8374 val
* var1
/* : Array[MPropDef] */;
8375 var1
= model__MProperty__lookup_all_definitions(self
, p0
, p1
);
8380 /* method model#MProperty#lookup_all_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
8381 val
* model__MProperty__lookup_all_definitions_cache(val
* self
) {
8382 val
* var
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8383 val
* var1
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8384 var1
= self
->attrs
[COLOR_model__MProperty___64dlookup_all_definitions_cache
].val
; /* @lookup_all_definitions_cache on <self:MProperty> */
8386 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @lookup_all_definitions_cache");
8387 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1708);
8394 /* method model#MProperty#lookup_all_definitions_cache for (self: Object): HashMap2[MModule, MType, Array[MPropDef]] */
8395 val
* VIRTUAL_model__MProperty__lookup_all_definitions_cache(val
* self
) {
8396 val
* var
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8397 val
* var1
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8398 var1
= model__MProperty__lookup_all_definitions_cache(self
);
8403 /* method model#MProperty#lookup_all_definitions_cache= for (self: MProperty, HashMap2[MModule, MType, Array[MPropDef]]) */
8404 void model__MProperty__lookup_all_definitions_cache_61d(val
* self
, val
* p0
) {
8405 short int var
/* : Bool */;
8408 const struct type
* type_struct
;
8409 const char* var_class_name
;
8410 /* Covariant cast for argument 0 (lookup_all_definitions_cache) <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
8411 /* <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
8412 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2model_base__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF
];
8413 cltype
= type_struct
->color
;
8414 idtype
= type_struct
->id
;
8415 if(cltype
>= p0
->type
->table_size
) {
8418 var
= p0
->type
->type_table
[cltype
] == idtype
;
8421 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
8422 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap2[MModule, MType, Array[MPROPDEF]]", var_class_name
);
8423 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1708);
8426 self
->attrs
[COLOR_model__MProperty___64dlookup_all_definitions_cache
].val
= p0
; /* @lookup_all_definitions_cache on <self:MProperty> */
8429 /* method model#MProperty#lookup_all_definitions_cache= for (self: Object, HashMap2[MModule, MType, Array[MPropDef]]) */
8430 void VIRTUAL_model__MProperty__lookup_all_definitions_cache_61d(val
* self
, val
* p0
) {
8431 model__MProperty__lookup_all_definitions_cache_61d(self
, p0
);
8434 /* method model#MMethod#init for (self: MMethod, MClassDef, String, MVisibility) */
8435 void model__MMethod__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8436 val
* var_intro_mclassdef
/* var intro_mclassdef: MClassDef */;
8437 val
* var_name
/* var name: String */;
8438 val
* var_visibility
/* var visibility: MVisibility */;
8439 var_intro_mclassdef
= p0
;
8441 var_visibility
= p2
;
8442 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__init
]))(self
, p0
, p1
, p2
) /* init on <self:MMethod>*/;
8445 /* method model#MMethod#init for (self: Object, MClassDef, String, MVisibility) */
8446 void VIRTUAL_model__MMethod__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8447 model__MMethod__init(self
, p0
, p1
, p2
);
8450 /* method model#MMethod#is_init for (self: MMethod): Bool */
8451 short int model__MMethod__is_init(val
* self
) {
8452 short int var
/* : Bool */;
8453 short int var1
/* : Bool */;
8454 var1
= self
->attrs
[COLOR_model__MMethod___64dis_init
].s
; /* @is_init on <self:MMethod> */
8459 /* method model#MMethod#is_init for (self: Object): Bool */
8460 short int VIRTUAL_model__MMethod__is_init(val
* self
) {
8461 short int var
/* : Bool */;
8462 short int var1
/* : Bool */;
8463 var1
= model__MMethod__is_init(self
);
8468 /* method model#MMethod#is_init= for (self: MMethod, Bool) */
8469 void model__MMethod__is_init_61d(val
* self
, short int p0
) {
8470 self
->attrs
[COLOR_model__MMethod___64dis_init
].s
= p0
; /* @is_init on <self:MMethod> */
8473 /* method model#MMethod#is_init= for (self: Object, Bool) */
8474 void VIRTUAL_model__MMethod__is_init_61d(val
* self
, short int p0
) {
8475 model__MMethod__is_init_61d(self
, p0
);
8478 /* method model#MMethod#is_new for (self: MMethod): Bool */
8479 short int model__MMethod__is_new(val
* self
) {
8480 short int var
/* : Bool */;
8481 short int var1
/* : Bool */;
8482 var1
= self
->attrs
[COLOR_model__MMethod___64dis_new
].s
; /* @is_new on <self:MMethod> */
8487 /* method model#MMethod#is_new for (self: Object): Bool */
8488 short int VIRTUAL_model__MMethod__is_new(val
* self
) {
8489 short int var
/* : Bool */;
8490 short int var1
/* : Bool */;
8491 var1
= model__MMethod__is_new(self
);
8496 /* method model#MMethod#is_new= for (self: MMethod, Bool) */
8497 void model__MMethod__is_new_61d(val
* self
, short int p0
) {
8498 self
->attrs
[COLOR_model__MMethod___64dis_new
].s
= p0
; /* @is_new on <self:MMethod> */
8501 /* method model#MMethod#is_new= for (self: Object, Bool) */
8502 void VIRTUAL_model__MMethod__is_new_61d(val
* self
, short int p0
) {
8503 model__MMethod__is_new_61d(self
, p0
);
8506 /* method model#MMethod#is_init_for for (self: MMethod, MClass): Bool */
8507 short int model__MMethod__is_init_for(val
* self
, val
* p0
) {
8508 short int var
/* : Bool */;
8509 val
* var_mclass
/* var mclass: MClass */;
8510 short int var1
/* : Bool */;
8512 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MMethod__is_init
]))(self
) /* is_init on <self:MMethod>*/;
8518 /* method model#MMethod#is_init_for for (self: Object, MClass): Bool */
8519 short int VIRTUAL_model__MMethod__is_init_for(val
* self
, val
* p0
) {
8520 short int var
/* : Bool */;
8521 short int var1
/* : Bool */;
8522 var1
= model__MMethod__is_init_for(self
, p0
);
8527 /* method model#MAttribute#init for (self: MAttribute, MClassDef, String, MVisibility) */
8528 void model__MAttribute__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8529 val
* var_intro_mclassdef
/* var intro_mclassdef: MClassDef */;
8530 val
* var_name
/* var name: String */;
8531 val
* var_visibility
/* var visibility: MVisibility */;
8532 var_intro_mclassdef
= p0
;
8534 var_visibility
= p2
;
8535 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__init
]))(self
, p0
, p1
, p2
) /* init on <self:MAttribute>*/;
8538 /* method model#MAttribute#init for (self: Object, MClassDef, String, MVisibility) */
8539 void VIRTUAL_model__MAttribute__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8540 model__MAttribute__init(self
, p0
, p1
, p2
);
8543 /* method model#MVirtualTypeProp#init for (self: MVirtualTypeProp, MClassDef, String, MVisibility) */
8544 void model__MVirtualTypeProp__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8545 val
* var_intro_mclassdef
/* var intro_mclassdef: MClassDef */;
8546 val
* var_name
/* var name: String */;
8547 val
* var_visibility
/* var visibility: MVisibility */;
8548 var_intro_mclassdef
= p0
;
8550 var_visibility
= p2
;
8551 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__init
]))(self
, p0
, p1
, p2
) /* init on <self:MVirtualTypeProp>*/;
8554 /* method model#MVirtualTypeProp#init for (self: Object, MClassDef, String, MVisibility) */
8555 void VIRTUAL_model__MVirtualTypeProp__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8556 model__MVirtualTypeProp__init(self
, p0
, p1
, p2
);
8559 /* method model#MVirtualTypeProp#mvirtualtype for (self: MVirtualTypeProp): MVirtualType */
8560 val
* model__MVirtualTypeProp__mvirtualtype(val
* self
) {
8561 val
* var
/* : MVirtualType */;
8562 val
* var1
/* : MVirtualType */;
8563 var1
= self
->attrs
[COLOR_model__MVirtualTypeProp___64dmvirtualtype
].val
; /* @mvirtualtype on <self:MVirtualTypeProp> */
8565 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mvirtualtype");
8566 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1762);
8573 /* method model#MVirtualTypeProp#mvirtualtype for (self: Object): MVirtualType */
8574 val
* VIRTUAL_model__MVirtualTypeProp__mvirtualtype(val
* self
) {
8575 val
* var
/* : MVirtualType */;
8576 val
* var1
/* : MVirtualType */;
8577 var1
= model__MVirtualTypeProp__mvirtualtype(self
);
8582 /* method model#MVirtualTypeProp#mvirtualtype= for (self: MVirtualTypeProp, MVirtualType) */
8583 void model__MVirtualTypeProp__mvirtualtype_61d(val
* self
, val
* p0
) {
8584 self
->attrs
[COLOR_model__MVirtualTypeProp___64dmvirtualtype
].val
= p0
; /* @mvirtualtype on <self:MVirtualTypeProp> */
8587 /* method model#MVirtualTypeProp#mvirtualtype= for (self: Object, MVirtualType) */
8588 void VIRTUAL_model__MVirtualTypeProp__mvirtualtype_61d(val
* self
, val
* p0
) {
8589 model__MVirtualTypeProp__mvirtualtype_61d(self
, p0
);
8592 /* method model#MPropDef#location for (self: MPropDef): Location */
8593 val
* model__MPropDef__location(val
* self
) {
8594 val
* var
/* : Location */;
8595 val
* var1
/* : Location */;
8596 var1
= self
->attrs
[COLOR_model__MPropDef___64dlocation
].val
; /* @location on <self:MPropDef> */
8598 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @location");
8599 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1779);
8606 /* method model#MPropDef#location for (self: Object): Location */
8607 val
* VIRTUAL_model__MPropDef__location(val
* self
) {
8608 val
* var
/* : Location */;
8609 val
* var1
/* : Location */;
8610 var1
= model__MPropDef__location(self
);
8615 /* method model#MPropDef#location= for (self: MPropDef, Location) */
8616 void model__MPropDef__location_61d(val
* self
, val
* p0
) {
8617 self
->attrs
[COLOR_model__MPropDef___64dlocation
].val
= p0
; /* @location on <self:MPropDef> */
8620 /* method model#MPropDef#location= for (self: Object, Location) */
8621 void VIRTUAL_model__MPropDef__location_61d(val
* self
, val
* p0
) {
8622 model__MPropDef__location_61d(self
, p0
);
8625 /* method model#MPropDef#mclassdef for (self: MPropDef): MClassDef */
8626 val
* model__MPropDef__mclassdef(val
* self
) {
8627 val
* var
/* : MClassDef */;
8628 val
* var1
/* : MClassDef */;
8629 var1
= self
->attrs
[COLOR_model__MPropDef___64dmclassdef
].val
; /* @mclassdef on <self:MPropDef> */
8631 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclassdef");
8632 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1782);
8639 /* method model#MPropDef#mclassdef for (self: Object): MClassDef */
8640 val
* VIRTUAL_model__MPropDef__mclassdef(val
* self
) {
8641 val
* var
/* : MClassDef */;
8642 val
* var1
/* : MClassDef */;
8643 var1
= model__MPropDef__mclassdef(self
);
8648 /* method model#MPropDef#mclassdef= for (self: MPropDef, MClassDef) */
8649 void model__MPropDef__mclassdef_61d(val
* self
, val
* p0
) {
8650 self
->attrs
[COLOR_model__MPropDef___64dmclassdef
].val
= p0
; /* @mclassdef on <self:MPropDef> */
8653 /* method model#MPropDef#mclassdef= for (self: Object, MClassDef) */
8654 void VIRTUAL_model__MPropDef__mclassdef_61d(val
* self
, val
* p0
) {
8655 model__MPropDef__mclassdef_61d(self
, p0
);
8658 /* method model#MPropDef#mproperty for (self: MPropDef): MProperty */
8659 val
* model__MPropDef__mproperty(val
* self
) {
8660 val
* var
/* : MProperty */;
8661 val
* var1
/* : MProperty */;
8662 var1
= self
->attrs
[COLOR_model__MPropDef___64dmproperty
].val
; /* @mproperty on <self:MPropDef> */
8664 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperty");
8665 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1785);
8672 /* method model#MPropDef#mproperty for (self: Object): MProperty */
8673 val
* VIRTUAL_model__MPropDef__mproperty(val
* self
) {
8674 val
* var
/* : MProperty */;
8675 val
* var1
/* : MProperty */;
8676 var1
= model__MPropDef__mproperty(self
);
8681 /* method model#MPropDef#mproperty= for (self: MPropDef, MProperty) */
8682 void model__MPropDef__mproperty_61d(val
* self
, val
* p0
) {
8683 short int var
/* : Bool */;
8686 const struct type
* type_struct
;
8687 const char* var_class_name
;
8688 /* Covariant cast for argument 0 (mproperty) <p0:MProperty> isa MPROPERTY */
8689 /* <p0:MProperty> isa MPROPERTY */
8690 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
8691 cltype
= type_struct
->color
;
8692 idtype
= type_struct
->id
;
8693 if(cltype
>= p0
->type
->table_size
) {
8696 var
= p0
->type
->type_table
[cltype
] == idtype
;
8699 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
8700 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
8701 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1785);
8704 self
->attrs
[COLOR_model__MPropDef___64dmproperty
].val
= p0
; /* @mproperty on <self:MPropDef> */
8707 /* method model#MPropDef#mproperty= for (self: Object, MProperty) */
8708 void VIRTUAL_model__MPropDef__mproperty_61d(val
* self
, val
* p0
) {
8709 model__MPropDef__mproperty_61d(self
, p0
);
8712 /* method model#MPropDef#init for (self: MPropDef, MClassDef, MProperty, Location) */
8713 void model__MPropDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8714 short int var
/* : Bool */;
8717 const struct type
* type_struct
;
8718 const char* var_class_name
;
8719 val
* var_mclassdef
/* var mclassdef: MClassDef */;
8720 val
* var_mproperty
/* var mproperty: MProperty */;
8721 val
* var_location
/* var location: Location */;
8722 val
* var1
/* : Array[MPropDef] */;
8723 val
* var2
/* : Array[MPropDef] */;
8724 static val
* varonce
;
8725 val
* var3
/* : String */;
8726 char* var4
/* : NativeString */;
8727 long var5
/* : Int */;
8728 val
* var6
/* : String */;
8729 val
* var7
/* : Array[Object] */;
8730 long var8
/* : Int */;
8731 val
* var9
/* : NativeArray[Object] */;
8732 val
* var10
/* : String */;
8733 /* Covariant cast for argument 1 (mproperty) <p1:MProperty> isa MPROPERTY */
8734 /* <p1:MProperty> isa MPROPERTY */
8735 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
8736 cltype
= type_struct
->color
;
8737 idtype
= type_struct
->id
;
8738 if(cltype
>= p1
->type
->table_size
) {
8741 var
= p1
->type
->type_table
[cltype
] == idtype
;
8744 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
8745 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
8746 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1788);
8752 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__mclassdef_61d
]))(self
, var_mclassdef
) /* mclassdef= on <self:MPropDef>*/;
8753 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__mproperty_61d
]))(self
, var_mproperty
) /* mproperty= on <self:MPropDef>*/;
8754 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__location_61d
]))(self
, var_location
) /* location= on <self:MPropDef>*/;
8755 var1
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef
) /* mpropdefs on <var_mclassdef:MClassDef>*/;
8756 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var1
, self
) /* add on <var1:Array[MPropDef]>*/;
8757 var2
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty>*/;
8758 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, self
) /* add on <var2:Array[MPropDef]>*/;
8764 var6
= string__NativeString__to_s_with_length(var4
, var5
);
8768 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
8769 { /* var7 = array_instance Array[Object] */
8771 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
8772 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var_mclassdef
;
8773 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var3
;
8774 ((struct instance_array__NativeArray
*)var9
)->values
[2] = (val
*) var_mproperty
;
8775 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
8776 CHECK_NEW_array__Array(var7
);
8778 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
8779 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__to_s_61d
]))(self
, var10
) /* to_s= on <self:MPropDef>*/;
8782 /* method model#MPropDef#init for (self: Object, MClassDef, MProperty, Location) */
8783 void VIRTUAL_model__MPropDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8784 model__MPropDef__init(self
, p0
, p1
, p2
);
8787 /* method model#MPropDef#to_s for (self: MPropDef): String */
8788 val
* model__MPropDef__to_s(val
* self
) {
8789 val
* var
/* : String */;
8790 val
* var1
/* : String */;
8791 var1
= self
->attrs
[COLOR_model__MPropDef___64dto_s
].val
; /* @to_s on <self:MPropDef> */
8793 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
8794 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1798);
8801 /* method model#MPropDef#to_s for (self: Object): String */
8802 val
* VIRTUAL_model__MPropDef__to_s(val
* self
) {
8803 val
* var
/* : String */;
8804 val
* var1
/* : String */;
8805 var1
= model__MPropDef__to_s(self
);
8810 /* method model#MPropDef#to_s= for (self: MPropDef, String) */
8811 void model__MPropDef__to_s_61d(val
* self
, val
* p0
) {
8812 self
->attrs
[COLOR_model__MPropDef___64dto_s
].val
= p0
; /* @to_s on <self:MPropDef> */
8815 /* method model#MPropDef#to_s= for (self: Object, String) */
8816 void VIRTUAL_model__MPropDef__to_s_61d(val
* self
, val
* p0
) {
8817 model__MPropDef__to_s_61d(self
, p0
);
8820 /* method model#MPropDef#is_intro for (self: MPropDef): Bool */
8821 short int model__MPropDef__is_intro(val
* self
) {
8822 short int var
/* : Bool */;
8823 val
* var1
/* : MProperty */;
8824 val
* var2
/* : MPropDef */;
8825 short int var3
/* : Bool */;
8826 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MPropDef__mproperty
]))(self
) /* mproperty on <self:MPropDef>*/;
8827 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MProperty__intro
]))(var1
) /* intro on <var1:MProperty>*/;
8828 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var2
, self
) /* == on <var2:MPropDef>*/;
8834 /* method model#MPropDef#is_intro for (self: Object): Bool */
8835 short int VIRTUAL_model__MPropDef__is_intro(val
* self
) {
8836 short int var
/* : Bool */;
8837 short int var1
/* : Bool */;
8838 var1
= model__MPropDef__is_intro(self
);
8843 /* method model#MPropDef#lookup_next_definition for (self: MPropDef, MModule, MType): MPropDef */
8844 val
* model__MPropDef__lookup_next_definition(val
* self
, val
* p0
, val
* p1
) {
8845 val
* var
/* : MPropDef */;
8846 val
* var_mmodule
/* var mmodule: MModule */;
8847 val
* var_mtype
/* var mtype: MType */;
8848 short int var1
/* : Bool */;
8849 short int var2
/* : Bool */;
8850 val
* var3
/* : MProperty */;
8851 val
* var4
/* : Array[MPropDef] */;
8852 val
* var_mpropdefs
/* var mpropdefs: Array[MPropDef] */;
8853 val
* var5
/* : Iterator[nullable Object] */;
8854 val
* var_i
/* var i: ArrayIterator[MPropDef] */;
8855 short int var6
/* : Bool */;
8856 short int var7
/* : Bool */;
8857 short int var_
/* var : Bool */;
8858 val
* var8
/* : nullable Object */;
8859 short int var9
/* : Bool */;
8860 short int var10
/* : Bool */;
8861 short int var11
/* : Bool */;
8862 val
* var12
/* : nullable Object */;
8863 short int var13
/* : Bool */;
8866 const struct type
* type_struct
;
8867 const char* var_class_name
;
8870 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
8873 fprintf(stderr
, "Runtime error: %s", "Assert failed");
8874 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1812);
8877 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MPropDef__mproperty
]))(self
) /* mproperty on <self:MPropDef>*/;
8878 var4
= ((val
* (*)(val
*, val
*, val
*))(var3
->class->vft
[COLOR_model__MProperty__lookup_all_definitions
]))(var3
, var_mmodule
, var_mtype
) /* lookup_all_definitions on <var3:MProperty>*/;
8879 var_mpropdefs
= var4
;
8880 var5
= ((val
* (*)(val
*))(var_mpropdefs
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mpropdefs
) /* iterator on <var_mpropdefs:Array[MPropDef]>*/;
8883 var7
= ((short int (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_i
) /* is_ok on <var_i:ArrayIterator[MPropDef]>*/;
8886 var8
= ((val
* (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_i
) /* item on <var_i:ArrayIterator[MPropDef]>*/;
8887 var9
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var8
, self
) /* != on <var8:nullable Object(MPropDef)>*/;
8893 ((void (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_i
) /* next on <var_i:ArrayIterator[MPropDef]>*/;
8894 CONTINUE_label
: (void)0;
8896 BREAK_label
: (void)0;
8897 var10
= ((short int (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_i
) /* is_ok on <var_i:ArrayIterator[MPropDef]>*/;
8899 fprintf(stderr
, "Runtime error: %s", "Assert \'has_property\' failed");
8900 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1817);
8903 ((void (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_i
) /* next on <var_i:ArrayIterator[MPropDef]>*/;
8904 var11
= ((short int (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_i
) /* is_ok on <var_i:ArrayIterator[MPropDef]>*/;
8906 fprintf(stderr
, "Runtime error: %s", "Assert \'has_next_property\' failed");
8907 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1819);
8910 var12
= ((val
* (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_i
) /* item on <var_i:ArrayIterator[MPropDef]>*/;
8911 /* <var12:nullable Object(MPropDef)> isa MPROPDEF */
8912 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPDEF
];
8913 cltype
= type_struct
->color
;
8914 idtype
= type_struct
->id
;
8915 if(cltype
>= var12
->type
->table_size
) {
8918 var13
= var12
->type
->type_table
[cltype
] == idtype
;
8921 var_class_name
= var12
== NULL ?
"null" : var12
->type
->name
;
8922 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name
);
8923 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1820);
8931 /* method model#MPropDef#lookup_next_definition for (self: Object, MModule, MType): MPropDef */
8932 val
* VIRTUAL_model__MPropDef__lookup_next_definition(val
* self
, val
* p0
, val
* p1
) {
8933 val
* var
/* : MPropDef */;
8934 val
* var1
/* : MPropDef */;
8935 var1
= model__MPropDef__lookup_next_definition(self
, p0
, p1
);
8940 /* method model#MMethodDef#init for (self: MMethodDef, MClassDef, MMethod, Location) */
8941 void model__MMethodDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8942 short int var
/* : Bool */;
8945 const struct type
* type_struct
;
8946 const char* var_class_name
;
8947 val
* var_mclassdef
/* var mclassdef: MClassDef */;
8948 val
* var_mproperty
/* var mproperty: MMethod */;
8949 val
* var_location
/* var location: Location */;
8950 /* Covariant cast for argument 1 (mproperty) <p1:MMethod> isa MPROPERTY */
8951 /* <p1:MMethod> isa MPROPERTY */
8952 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
8953 cltype
= type_struct
->color
;
8954 idtype
= type_struct
->id
;
8955 if(cltype
>= p1
->type
->table_size
) {
8958 var
= p1
->type
->type_table
[cltype
] == idtype
;
8961 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
8962 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
8963 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1831);
8969 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__init
]))(self
, p0
, p1
, p2
) /* init on <self:MMethodDef>*/;
8972 /* method model#MMethodDef#init for (self: Object, MClassDef, MMethod, Location) */
8973 void VIRTUAL_model__MMethodDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8974 model__MMethodDef__init(self
, p0
, p1
, p2
);
8977 /* method model#MMethodDef#msignature for (self: MMethodDef): nullable MSignature */
8978 val
* model__MMethodDef__msignature(val
* self
) {
8979 val
* var
/* : nullable MSignature */;
8980 val
* var1
/* : nullable MSignature */;
8981 var1
= self
->attrs
[COLOR_model__MMethodDef___64dmsignature
].val
; /* @msignature on <self:MMethodDef> */
8986 /* method model#MMethodDef#msignature for (self: Object): nullable MSignature */
8987 val
* VIRTUAL_model__MMethodDef__msignature(val
* self
) {
8988 val
* var
/* : nullable MSignature */;
8989 val
* var1
/* : nullable MSignature */;
8990 var1
= model__MMethodDef__msignature(self
);
8995 /* method model#MMethodDef#msignature= for (self: MMethodDef, nullable MSignature) */
8996 void model__MMethodDef__msignature_61d(val
* self
, val
* p0
) {
8997 self
->attrs
[COLOR_model__MMethodDef___64dmsignature
].val
= p0
; /* @msignature on <self:MMethodDef> */
9000 /* method model#MMethodDef#msignature= for (self: Object, nullable MSignature) */
9001 void VIRTUAL_model__MMethodDef__msignature_61d(val
* self
, val
* p0
) {
9002 model__MMethodDef__msignature_61d(self
, p0
);
9005 /* method model#MMethodDef#is_abstract for (self: MMethodDef): Bool */
9006 short int model__MMethodDef__is_abstract(val
* self
) {
9007 short int var
/* : Bool */;
9008 short int var1
/* : Bool */;
9009 var1
= self
->attrs
[COLOR_model__MMethodDef___64dis_abstract
].s
; /* @is_abstract on <self:MMethodDef> */
9014 /* method model#MMethodDef#is_abstract for (self: Object): Bool */
9015 short int VIRTUAL_model__MMethodDef__is_abstract(val
* self
) {
9016 short int var
/* : Bool */;
9017 short int var1
/* : Bool */;
9018 var1
= model__MMethodDef__is_abstract(self
);
9023 /* method model#MMethodDef#is_abstract= for (self: MMethodDef, Bool) */
9024 void model__MMethodDef__is_abstract_61d(val
* self
, short int p0
) {
9025 self
->attrs
[COLOR_model__MMethodDef___64dis_abstract
].s
= p0
; /* @is_abstract on <self:MMethodDef> */
9028 /* method model#MMethodDef#is_abstract= for (self: Object, Bool) */
9029 void VIRTUAL_model__MMethodDef__is_abstract_61d(val
* self
, short int p0
) {
9030 model__MMethodDef__is_abstract_61d(self
, p0
);
9033 /* method model#MAttributeDef#init for (self: MAttributeDef, MClassDef, MAttribute, Location) */
9034 void model__MAttributeDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9035 short int var
/* : Bool */;
9038 const struct type
* type_struct
;
9039 const char* var_class_name
;
9040 val
* var_mclassdef
/* var mclassdef: MClassDef */;
9041 val
* var_mproperty
/* var mproperty: MAttribute */;
9042 val
* var_location
/* var location: Location */;
9043 /* Covariant cast for argument 1 (mproperty) <p1:MAttribute> isa MPROPERTY */
9044 /* <p1:MAttribute> isa MPROPERTY */
9045 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
9046 cltype
= type_struct
->color
;
9047 idtype
= type_struct
->id
;
9048 if(cltype
>= p1
->type
->table_size
) {
9051 var
= p1
->type
->type_table
[cltype
] == idtype
;
9054 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
9055 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
9056 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1850);
9062 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__init
]))(self
, p0
, p1
, p2
) /* init on <self:MAttributeDef>*/;
9065 /* method model#MAttributeDef#init for (self: Object, MClassDef, MAttribute, Location) */
9066 void VIRTUAL_model__MAttributeDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9067 model__MAttributeDef__init(self
, p0
, p1
, p2
);
9070 /* method model#MAttributeDef#static_mtype for (self: MAttributeDef): nullable MType */
9071 val
* model__MAttributeDef__static_mtype(val
* self
) {
9072 val
* var
/* : nullable MType */;
9073 val
* var1
/* : nullable MType */;
9074 var1
= self
->attrs
[COLOR_model__MAttributeDef___64dstatic_mtype
].val
; /* @static_mtype on <self:MAttributeDef> */
9079 /* method model#MAttributeDef#static_mtype for (self: Object): nullable MType */
9080 val
* VIRTUAL_model__MAttributeDef__static_mtype(val
* self
) {
9081 val
* var
/* : nullable MType */;
9082 val
* var1
/* : nullable MType */;
9083 var1
= model__MAttributeDef__static_mtype(self
);
9088 /* method model#MAttributeDef#static_mtype= for (self: MAttributeDef, nullable MType) */
9089 void model__MAttributeDef__static_mtype_61d(val
* self
, val
* p0
) {
9090 self
->attrs
[COLOR_model__MAttributeDef___64dstatic_mtype
].val
= p0
; /* @static_mtype on <self:MAttributeDef> */
9093 /* method model#MAttributeDef#static_mtype= for (self: Object, nullable MType) */
9094 void VIRTUAL_model__MAttributeDef__static_mtype_61d(val
* self
, val
* p0
) {
9095 model__MAttributeDef__static_mtype_61d(self
, p0
);
9098 /* method model#MVirtualTypeDef#init for (self: MVirtualTypeDef, MClassDef, MVirtualTypeProp, Location) */
9099 void model__MVirtualTypeDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9100 short int var
/* : Bool */;
9103 const struct type
* type_struct
;
9104 const char* var_class_name
;
9105 val
* var_mclassdef
/* var mclassdef: MClassDef */;
9106 val
* var_mproperty
/* var mproperty: MVirtualTypeProp */;
9107 val
* var_location
/* var location: Location */;
9108 /* Covariant cast for argument 1 (mproperty) <p1:MVirtualTypeProp> isa MPROPERTY */
9109 /* <p1:MVirtualTypeProp> isa MPROPERTY */
9110 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
9111 cltype
= type_struct
->color
;
9112 idtype
= type_struct
->id
;
9113 if(cltype
>= p1
->type
->table_size
) {
9116 var
= p1
->type
->type_table
[cltype
] == idtype
;
9119 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
9120 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
9121 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1866);
9127 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__init
]))(self
, p0
, p1
, p2
) /* init on <self:MVirtualTypeDef>*/;
9130 /* method model#MVirtualTypeDef#init for (self: Object, MClassDef, MVirtualTypeProp, Location) */
9131 void VIRTUAL_model__MVirtualTypeDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9132 model__MVirtualTypeDef__init(self
, p0
, p1
, p2
);
9135 /* method model#MVirtualTypeDef#bound for (self: MVirtualTypeDef): nullable MType */
9136 val
* model__MVirtualTypeDef__bound(val
* self
) {
9137 val
* var
/* : nullable MType */;
9138 val
* var1
/* : nullable MType */;
9139 var1
= self
->attrs
[COLOR_model__MVirtualTypeDef___64dbound
].val
; /* @bound on <self:MVirtualTypeDef> */
9144 /* method model#MVirtualTypeDef#bound for (self: Object): nullable MType */
9145 val
* VIRTUAL_model__MVirtualTypeDef__bound(val
* self
) {
9146 val
* var
/* : nullable MType */;
9147 val
* var1
/* : nullable MType */;
9148 var1
= model__MVirtualTypeDef__bound(self
);
9153 /* method model#MVirtualTypeDef#bound= for (self: MVirtualTypeDef, nullable MType) */
9154 void model__MVirtualTypeDef__bound_61d(val
* self
, val
* p0
) {
9155 self
->attrs
[COLOR_model__MVirtualTypeDef___64dbound
].val
= p0
; /* @bound on <self:MVirtualTypeDef> */
9158 /* method model#MVirtualTypeDef#bound= for (self: Object, nullable MType) */
9159 void VIRTUAL_model__MVirtualTypeDef__bound_61d(val
* self
, val
* p0
) {
9160 model__MVirtualTypeDef__bound_61d(self
, p0
);
9163 /* method model#MClassKind#to_s for (self: MClassKind): String */
9164 val
* model__MClassKind__to_s(val
* self
) {
9165 val
* var
/* : String */;
9166 val
* var1
/* : String */;
9167 var1
= self
->attrs
[COLOR_model__MClassKind___64dto_s
].val
; /* @to_s on <self:MClassKind> */
9169 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
9170 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1886);
9177 /* method model#MClassKind#to_s for (self: Object): String */
9178 val
* VIRTUAL_model__MClassKind__to_s(val
* self
) {
9179 val
* var
/* : String */;
9180 val
* var1
/* : String */;
9181 var1
= model__MClassKind__to_s(self
);
9186 /* method model#MClassKind#to_s= for (self: MClassKind, String) */
9187 void model__MClassKind__to_s_61d(val
* self
, val
* p0
) {
9188 self
->attrs
[COLOR_model__MClassKind___64dto_s
].val
= p0
; /* @to_s on <self:MClassKind> */
9191 /* method model#MClassKind#to_s= for (self: Object, String) */
9192 void VIRTUAL_model__MClassKind__to_s_61d(val
* self
, val
* p0
) {
9193 model__MClassKind__to_s_61d(self
, p0
);
9196 /* method model#MClassKind#need_init for (self: MClassKind): Bool */
9197 short int model__MClassKind__need_init(val
* self
) {
9198 short int var
/* : Bool */;
9199 short int var1
/* : Bool */;
9200 var1
= self
->attrs
[COLOR_model__MClassKind___64dneed_init
].s
; /* @need_init on <self:MClassKind> */
9205 /* method model#MClassKind#need_init for (self: Object): Bool */
9206 short int VIRTUAL_model__MClassKind__need_init(val
* self
) {
9207 short int var
/* : Bool */;
9208 short int var1
/* : Bool */;
9209 var1
= model__MClassKind__need_init(self
);
9214 /* method model#MClassKind#need_init= for (self: MClassKind, Bool) */
9215 void model__MClassKind__need_init_61d(val
* self
, short int p0
) {
9216 self
->attrs
[COLOR_model__MClassKind___64dneed_init
].s
= p0
; /* @need_init on <self:MClassKind> */
9219 /* method model#MClassKind#need_init= for (self: Object, Bool) */
9220 void VIRTUAL_model__MClassKind__need_init_61d(val
* self
, short int p0
) {
9221 model__MClassKind__need_init_61d(self
, p0
);
9224 /* method model#MClassKind#init for (self: MClassKind, String, Bool) */
9225 void model__MClassKind__init(val
* self
, val
* p0
, short int p1
) {
9226 val
* var_s
/* var s: String */;
9227 short int var_need_init
/* var need_init: Bool */;
9230 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassKind__to_s_61d
]))(self
, var_s
) /* to_s= on <self:MClassKind>*/;
9231 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_model__MClassKind__need_init_61d
]))(self
, var_need_init
) /* need_init= on <self:MClassKind>*/;
9234 /* method model#MClassKind#init for (self: Object, String, Bool) */
9235 void VIRTUAL_model__MClassKind__init(val
* self
, val
* p0
, short int p1
) {
9236 model__MClassKind__init(self
, p0
, p1
);
9239 /* method model#Object#abstract_kind for (self: Object): MClassKind */
9240 val
* model__Object__abstract_kind(val
* self
) {
9241 val
* var
/* : MClassKind */;
9242 static val
* varonce
;
9243 static int varonce_guard
;
9244 val
* var1
/* : MClassKind */;
9245 val
* var2
/* : MClassKind */;
9246 static val
* varonce3
;
9247 val
* var4
/* : String */;
9248 char* var5
/* : NativeString */;
9249 long var6
/* : Int */;
9250 val
* var7
/* : String */;
9251 short int var8
/* : Bool */;
9252 if (varonce_guard
) {
9255 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9259 var5
= "abstract class";
9261 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9266 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9267 CHECK_NEW_model__MClassKind(var2
);
9277 /* method model#Object#abstract_kind for (self: Object): MClassKind */
9278 val
* VIRTUAL_model__Object__abstract_kind(val
* self
) {
9279 val
* var
/* : MClassKind */;
9280 val
* var1
/* : MClassKind */;
9281 var1
= model__Object__abstract_kind(self
);
9286 /* method model#Object#concrete_kind for (self: Object): MClassKind */
9287 val
* model__Object__concrete_kind(val
* self
) {
9288 val
* var
/* : MClassKind */;
9289 static val
* varonce
;
9290 static int varonce_guard
;
9291 val
* var1
/* : MClassKind */;
9292 val
* var2
/* : MClassKind */;
9293 static val
* varonce3
;
9294 val
* var4
/* : String */;
9295 char* var5
/* : NativeString */;
9296 long var6
/* : Int */;
9297 val
* var7
/* : String */;
9298 short int var8
/* : Bool */;
9299 if (varonce_guard
) {
9302 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9308 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9313 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9314 CHECK_NEW_model__MClassKind(var2
);
9324 /* method model#Object#concrete_kind for (self: Object): MClassKind */
9325 val
* VIRTUAL_model__Object__concrete_kind(val
* self
) {
9326 val
* var
/* : MClassKind */;
9327 val
* var1
/* : MClassKind */;
9328 var1
= model__Object__concrete_kind(self
);
9333 /* method model#Object#interface_kind for (self: Object): MClassKind */
9334 val
* model__Object__interface_kind(val
* self
) {
9335 val
* var
/* : MClassKind */;
9336 static val
* varonce
;
9337 static int varonce_guard
;
9338 val
* var1
/* : MClassKind */;
9339 val
* var2
/* : MClassKind */;
9340 static val
* varonce3
;
9341 val
* var4
/* : String */;
9342 char* var5
/* : NativeString */;
9343 long var6
/* : Int */;
9344 val
* var7
/* : String */;
9345 short int var8
/* : Bool */;
9346 if (varonce_guard
) {
9349 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9355 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9360 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9361 CHECK_NEW_model__MClassKind(var2
);
9371 /* method model#Object#interface_kind for (self: Object): MClassKind */
9372 val
* VIRTUAL_model__Object__interface_kind(val
* self
) {
9373 val
* var
/* : MClassKind */;
9374 val
* var1
/* : MClassKind */;
9375 var1
= model__Object__interface_kind(self
);
9380 /* method model#Object#enum_kind for (self: Object): MClassKind */
9381 val
* model__Object__enum_kind(val
* self
) {
9382 val
* var
/* : MClassKind */;
9383 static val
* varonce
;
9384 static int varonce_guard
;
9385 val
* var1
/* : MClassKind */;
9386 val
* var2
/* : MClassKind */;
9387 static val
* varonce3
;
9388 val
* var4
/* : String */;
9389 char* var5
/* : NativeString */;
9390 long var6
/* : Int */;
9391 val
* var7
/* : String */;
9392 short int var8
/* : Bool */;
9393 if (varonce_guard
) {
9396 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9402 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9407 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9408 CHECK_NEW_model__MClassKind(var2
);
9418 /* method model#Object#enum_kind for (self: Object): MClassKind */
9419 val
* VIRTUAL_model__Object__enum_kind(val
* self
) {
9420 val
* var
/* : MClassKind */;
9421 val
* var1
/* : MClassKind */;
9422 var1
= model__Object__enum_kind(self
);
9427 /* method model#Object#extern_kind for (self: Object): MClassKind */
9428 val
* model__Object__extern_kind(val
* self
) {
9429 val
* var
/* : MClassKind */;
9430 static val
* varonce
;
9431 static int varonce_guard
;
9432 val
* var1
/* : MClassKind */;
9433 val
* var2
/* : MClassKind */;
9434 static val
* varonce3
;
9435 val
* var4
/* : String */;
9436 char* var5
/* : NativeString */;
9437 long var6
/* : Int */;
9438 val
* var7
/* : String */;
9439 short int var8
/* : Bool */;
9440 if (varonce_guard
) {
9443 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9449 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9454 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9455 CHECK_NEW_model__MClassKind(var2
);
9465 /* method model#Object#extern_kind for (self: Object): MClassKind */
9466 val
* VIRTUAL_model__Object__extern_kind(val
* self
) {
9467 val
* var
/* : MClassKind */;
9468 val
* var1
/* : MClassKind */;
9469 var1
= model__Object__extern_kind(self
);