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_mmodule__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]>*/;
471 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(self
) /* in_importation on <self:MModule>*/;
472 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var5
) /* greaters on <var5:POSetElement[MModule]>*/;
473 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Collection[Object](Collection[MModule])>*/;
475 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
477 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
479 var10
= ((val
* (*)(val
*))(var_m
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_m
) /* mclassdefs on <var_m:MModule>*/;
480 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[MClassDef]>*/;
482 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
484 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
486 var14
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd
) /* mclass on <var_cd:MClassDef>*/;
488 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])>*/;
490 var16
= ((val
* (*)(val
*))(var_cd
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var_cd
) /* supertypes on <var_cd:MClassDef>*/;
491 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var16
) /* iterator on <var16:Array[MClassType]>*/;
493 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var17
) /* is_ok on <var17:Iterator[nullable Object]>*/;
495 var19
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var17
) /* item on <var17:Iterator[nullable Object]>*/;
497 var20
= ((val
* (*)(val
*))(var_s
->class->vft
[COLOR_model__MClassType__mclass
]))(var_s
) /* mclass on <var_s:MClassType>*/;
498 ((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])>*/;
499 CONTINUE_label
: (void)0;
500 ((void (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var17
) /* next on <var17:Iterator[nullable Object]>*/;
502 BREAK_label
: (void)0;
503 CONTINUE_label21
: (void)0;
504 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
506 BREAK_label21
: (void)0;
507 CONTINUE_label22
: (void)0;
508 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
510 BREAK_label22
: (void)0;
511 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy_cache_61d
]))(self
, var_res
) /* flatten_mclass_hierarchy_cache= on <self:MModule>*/;
517 /* method model#MModule#flatten_mclass_hierarchy for (self: Object): POSet[MClass] */
518 val
* VIRTUAL_model__MModule__flatten_mclass_hierarchy(val
* self
) {
519 val
* var
/* : POSet[MClass] */;
520 val
* var1
/* : POSet[MClass] */;
521 var1
= model__MModule__flatten_mclass_hierarchy(self
);
526 /* method model#MModule#linearize_mclasses for (self: MModule, Array[MClass]) */
527 void model__MModule__linearize_mclasses(val
* self
, val
* p0
) {
528 val
* var_mclasses
/* var mclasses: Array[MClass] */;
529 val
* var
/* : POSet[MClass] */;
531 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(self
) /* flatten_mclass_hierarchy on <self:MModule>*/;
532 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var
, var_mclasses
) /* sort on <var:POSet[MClass]>*/;
535 /* method model#MModule#linearize_mclasses for (self: Object, Array[MClass]) */
536 void VIRTUAL_model__MModule__linearize_mclasses(val
* self
, val
* p0
) {
537 model__MModule__linearize_mclasses(self
, p0
);
540 /* method model#MModule#linearize_mclassdefs for (self: MModule, Array[MClassDef]) */
541 void model__MModule__linearize_mclassdefs(val
* self
, val
* p0
) {
542 val
* var_mclassdefs
/* var mclassdefs: Array[MClassDef] */;
543 val
* var
/* : MClassDefSorter */;
544 val
* var_sorter
/* var sorter: MClassDefSorter */;
546 var
= NEW_model__MClassDefSorter(&type_model__MClassDefSorter
);
547 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_model__MClassDefSorter__init
]))(var
, self
) /* init on <var:MClassDefSorter>*/;
549 ((void (*)(val
*, val
*))(var_sorter
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var_sorter
, var_mclassdefs
) /* sort on <var_sorter:MClassDefSorter>*/;
552 /* method model#MModule#linearize_mclassdefs for (self: Object, Array[MClassDef]) */
553 void VIRTUAL_model__MModule__linearize_mclassdefs(val
* self
, val
* p0
) {
554 model__MModule__linearize_mclassdefs(self
, p0
);
557 /* method model#MModule#linearize_mpropdefs for (self: MModule, Array[MPropDef]) */
558 void model__MModule__linearize_mpropdefs(val
* self
, val
* p0
) {
559 val
* var_mpropdefs
/* var mpropdefs: Array[MPropDef] */;
560 val
* var
/* : MPropDefSorter */;
561 val
* var_sorter
/* var sorter: MPropDefSorter */;
563 var
= NEW_model__MPropDefSorter(&type_model__MPropDefSorter
);
564 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_model__MPropDefSorter__init
]))(var
, self
) /* init on <var:MPropDefSorter>*/;
566 ((void (*)(val
*, val
*))(var_sorter
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var_sorter
, var_mpropdefs
) /* sort on <var_sorter:MPropDefSorter>*/;
569 /* method model#MModule#linearize_mpropdefs for (self: Object, Array[MPropDef]) */
570 void VIRTUAL_model__MModule__linearize_mpropdefs(val
* self
, val
* p0
) {
571 model__MModule__linearize_mpropdefs(self
, p0
);
574 /* method model#MModule#flatten_mclass_hierarchy_cache for (self: MModule): nullable POSet[MClass] */
575 val
* model__MModule__flatten_mclass_hierarchy_cache(val
* self
) {
576 val
* var
/* : nullable POSet[MClass] */;
577 val
* var1
/* : nullable POSet[MClass] */;
578 var1
= self
->attrs
[COLOR_model__MModule___64dflatten_mclass_hierarchy_cache
].val
; /* @flatten_mclass_hierarchy_cache on <self:MModule> */
583 /* method model#MModule#flatten_mclass_hierarchy_cache for (self: Object): nullable POSet[MClass] */
584 val
* VIRTUAL_model__MModule__flatten_mclass_hierarchy_cache(val
* self
) {
585 val
* var
/* : nullable POSet[MClass] */;
586 val
* var1
/* : nullable POSet[MClass] */;
587 var1
= model__MModule__flatten_mclass_hierarchy_cache(self
);
592 /* method model#MModule#flatten_mclass_hierarchy_cache= for (self: MModule, nullable POSet[MClass]) */
593 void model__MModule__flatten_mclass_hierarchy_cache_61d(val
* self
, val
* p0
) {
594 self
->attrs
[COLOR_model__MModule___64dflatten_mclass_hierarchy_cache
].val
= p0
; /* @flatten_mclass_hierarchy_cache on <self:MModule> */
597 /* method model#MModule#flatten_mclass_hierarchy_cache= for (self: Object, nullable POSet[MClass]) */
598 void VIRTUAL_model__MModule__flatten_mclass_hierarchy_cache_61d(val
* self
, val
* p0
) {
599 model__MModule__flatten_mclass_hierarchy_cache_61d(self
, p0
);
602 /* method model#MModule#object_type for (self: MModule): MClassType */
603 val
* model__MModule__object_type(val
* self
) {
604 val
* var
/* : MClassType */;
605 val
* var1
/* : nullable MClassType */;
606 val
* var_res
/* var res: nullable MClassType */;
607 val
* var2
/* : null */;
608 short int var3
/* : Bool */;
610 val
* var4
/* : String */;
611 char* var5
/* : NativeString */;
612 long var6
/* : Int */;
613 val
* var7
/* : String */;
614 val
* var8
/* : MClass */;
615 val
* var9
/* : MClassType */;
616 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MModule__object_type_cache
]))(self
) /* object_type_cache on <self:MModule>*/;
619 if (var_res
== NULL
) {
620 var3
= 0; /* is null */
622 var3
= 1; /* arg is null and recv is not */
634 var7
= string__NativeString__to_s_with_length(var5
, var6
);
638 var8
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(self
, var4
) /* get_primitive_class on <self:MModule>*/;
639 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MClass__mclass_type
]))(var8
) /* mclass_type on <var8:MClass>*/;
641 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__object_type_cache_61d
]))(self
, var_res
) /* object_type_cache= on <self:MModule>*/;
647 /* method model#MModule#object_type for (self: Object): MClassType */
648 val
* VIRTUAL_model__MModule__object_type(val
* self
) {
649 val
* var
/* : MClassType */;
650 val
* var1
/* : MClassType */;
651 var1
= model__MModule__object_type(self
);
656 /* method model#MModule#object_type_cache for (self: MModule): nullable MClassType */
657 val
* model__MModule__object_type_cache(val
* self
) {
658 val
* var
/* : nullable MClassType */;
659 val
* var1
/* : nullable MClassType */;
660 var1
= self
->attrs
[COLOR_model__MModule___64dobject_type_cache
].val
; /* @object_type_cache on <self:MModule> */
665 /* method model#MModule#object_type_cache for (self: Object): nullable MClassType */
666 val
* VIRTUAL_model__MModule__object_type_cache(val
* self
) {
667 val
* var
/* : nullable MClassType */;
668 val
* var1
/* : nullable MClassType */;
669 var1
= model__MModule__object_type_cache(self
);
674 /* method model#MModule#object_type_cache= for (self: MModule, nullable MClassType) */
675 void model__MModule__object_type_cache_61d(val
* self
, val
* p0
) {
676 self
->attrs
[COLOR_model__MModule___64dobject_type_cache
].val
= p0
; /* @object_type_cache on <self:MModule> */
679 /* method model#MModule#object_type_cache= for (self: Object, nullable MClassType) */
680 void VIRTUAL_model__MModule__object_type_cache_61d(val
* self
, val
* p0
) {
681 model__MModule__object_type_cache_61d(self
, p0
);
684 /* method model#MModule#bool_type for (self: MModule): MClassType */
685 val
* model__MModule__bool_type(val
* self
) {
686 val
* var
/* : MClassType */;
687 val
* var1
/* : nullable MClassType */;
688 val
* var_res
/* var res: nullable MClassType */;
689 val
* var2
/* : null */;
690 short int var3
/* : Bool */;
692 val
* var4
/* : String */;
693 char* var5
/* : NativeString */;
694 long var6
/* : Int */;
695 val
* var7
/* : String */;
696 val
* var8
/* : MClass */;
697 val
* var9
/* : MClassType */;
698 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MModule__bool_type_cache
]))(self
) /* bool_type_cache on <self:MModule>*/;
701 if (var_res
== NULL
) {
702 var3
= 0; /* is null */
704 var3
= 1; /* arg is null and recv is not */
716 var7
= string__NativeString__to_s_with_length(var5
, var6
);
720 var8
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(self
, var4
) /* get_primitive_class on <self:MModule>*/;
721 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MClass__mclass_type
]))(var8
) /* mclass_type on <var8:MClass>*/;
723 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__bool_type_cache_61d
]))(self
, var_res
) /* bool_type_cache= on <self:MModule>*/;
729 /* method model#MModule#bool_type for (self: Object): MClassType */
730 val
* VIRTUAL_model__MModule__bool_type(val
* self
) {
731 val
* var
/* : MClassType */;
732 val
* var1
/* : MClassType */;
733 var1
= model__MModule__bool_type(self
);
738 /* method model#MModule#bool_type_cache for (self: MModule): nullable MClassType */
739 val
* model__MModule__bool_type_cache(val
* self
) {
740 val
* var
/* : nullable MClassType */;
741 val
* var1
/* : nullable MClassType */;
742 var1
= self
->attrs
[COLOR_model__MModule___64dbool_type_cache
].val
; /* @bool_type_cache on <self:MModule> */
747 /* method model#MModule#bool_type_cache for (self: Object): nullable MClassType */
748 val
* VIRTUAL_model__MModule__bool_type_cache(val
* self
) {
749 val
* var
/* : nullable MClassType */;
750 val
* var1
/* : nullable MClassType */;
751 var1
= model__MModule__bool_type_cache(self
);
756 /* method model#MModule#bool_type_cache= for (self: MModule, nullable MClassType) */
757 void model__MModule__bool_type_cache_61d(val
* self
, val
* p0
) {
758 self
->attrs
[COLOR_model__MModule___64dbool_type_cache
].val
= p0
; /* @bool_type_cache on <self:MModule> */
761 /* method model#MModule#bool_type_cache= for (self: Object, nullable MClassType) */
762 void VIRTUAL_model__MModule__bool_type_cache_61d(val
* self
, val
* p0
) {
763 model__MModule__bool_type_cache_61d(self
, p0
);
766 /* method model#MModule#sys_type for (self: MModule): nullable MClassType */
767 val
* model__MModule__sys_type(val
* self
) {
768 val
* var
/* : nullable MClassType */;
769 val
* var1
/* : Model */;
771 val
* var2
/* : String */;
772 char* var3
/* : NativeString */;
773 long var4
/* : Int */;
774 val
* var5
/* : String */;
775 val
* var6
/* : nullable Array[MClass] */;
776 val
* var_clas
/* var clas: nullable Array[MClass] */;
777 val
* var7
/* : null */;
778 short int var8
/* : Bool */;
779 val
* var9
/* : null */;
780 static val
* varonce10
;
781 val
* var11
/* : String */;
782 char* var12
/* : NativeString */;
783 long var13
/* : Int */;
784 val
* var14
/* : String */;
785 val
* var15
/* : MClass */;
786 val
* var16
/* : MClassType */;
787 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_mmodule__MModule__model
]))(self
) /* model on <self:MModule>*/;
793 var5
= string__NativeString__to_s_with_length(var3
, var4
);
797 var6
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var1
, var2
) /* get_mclasses_by_name on <var1:Model>*/;
800 if (var_clas
== NULL
) {
801 var8
= 1; /* is null */
803 var8
= 0; /* arg is null but recv is not */
816 var14
= string__NativeString__to_s_with_length(var12
, var13
);
820 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MModule__get_primitive_class
]))(self
, var11
) /* get_primitive_class on <self:MModule>*/;
821 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClass__mclass_type
]))(var15
) /* mclass_type on <var15:MClass>*/;
827 /* method model#MModule#sys_type for (self: Object): nullable MClassType */
828 val
* VIRTUAL_model__MModule__sys_type(val
* self
) {
829 val
* var
/* : nullable MClassType */;
830 val
* var1
/* : nullable MClassType */;
831 var1
= model__MModule__sys_type(self
);
836 /* method model#MModule#get_primitive_class for (self: MModule, String): MClass */
837 val
* model__MModule__get_primitive_class(val
* self
, val
* p0
) {
838 val
* var
/* : MClass */;
839 val
* var_name
/* var name: String */;
840 val
* var1
/* : Model */;
841 val
* var2
/* : nullable Array[MClass] */;
842 val
* var_cla
/* var cla: nullable Array[MClass] */;
843 val
* var3
/* : null */;
844 short int var4
/* : Bool */;
846 val
* var5
/* : String */;
847 char* var6
/* : NativeString */;
848 long var7
/* : Int */;
849 val
* var8
/* : String */;
850 short int var9
/* : Bool */;
851 val
* var10
/* : MClass */;
852 long var11
/* : Int */;
853 val
* var12
/* : MClassKind */;
854 val
* var13
/* : MVisibility */;
855 val
* var_c
/* var c: MClass */;
856 val
* var14
/* : MClassDef */;
857 val
* var15
/* : MClassType */;
858 val
* var16
/* : Location */;
859 val
* var17
/* : null */;
860 long var18
/* : Int */;
861 long var19
/* : Int */;
862 long var20
/* : Int */;
863 long var21
/* : Int */;
864 val
* var22
/* : Array[String] */;
865 val
* var_cladef
/* var cladef: MClassDef */;
866 static val
* varonce23
;
867 val
* var24
/* : String */;
868 char* var25
/* : NativeString */;
869 long var26
/* : Int */;
870 val
* var27
/* : String */;
871 val
* var28
/* : Array[Object] */;
872 long var29
/* : Int */;
873 val
* var30
/* : NativeArray[Object] */;
874 val
* var31
/* : String */;
875 long var32
/* : Int */;
876 long var33
/* : Int */;
877 long var34
/* : Int */;
878 short int var35
/* : Bool */;
879 short int var37
/* : Bool */;
880 static val
* varonce38
;
881 val
* var39
/* : String */;
882 char* var40
/* : NativeString */;
883 long var41
/* : Int */;
884 val
* var42
/* : String */;
885 val
* var43
/* : String */;
886 val
* var44
/* : nullable Object */;
888 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_mmodule__MModule__model
]))(self
) /* model on <self:MModule>*/;
889 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model__Model__get_mclasses_by_name
]))(var1
, var_name
) /* get_mclasses_by_name on <var1:Model>*/;
892 if (var_cla
== NULL
) {
893 var4
= 1; /* is null */
895 var4
= 0; /* arg is null but recv is not */
903 var8
= string__NativeString__to_s_with_length(var6
, var7
);
907 var9
= ((short int (*)(val
*, val
*))(var_name
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_name
, var5
) /* == on <var_name:String>*/;
909 var10
= NEW_model__MClass(&type_model__MClass
);
911 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__enum_kind
]))(self
) /* enum_kind on <self:MModule>*/;
912 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model_base__Object__public_visibility
]))(self
) /* public_visibility on <self:MModule>*/;
913 ((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>*/;
915 var14
= NEW_model__MClassDef(&type_model__MClassDef
);
916 var15
= ((val
* (*)(val
*))(var_c
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c
) /* mclass_type on <var_c:MClass>*/;
917 var16
= NEW_location__Location(&type_location__Location
);
923 ((void (*)(val
*, val
*, long, long, long, long))(var16
->class->vft
[COLOR_location__Location__init
]))(var16
, var17
, var18
, var19
, var20
, var21
) /* init on <var16:Location>*/;
924 var22
= NEW_array__Array(&type_array__Arraystring__String
);
925 ((void (*)(val
*))(var22
->class->vft
[COLOR_array__Array__init
]))(var22
) /* init on <var22:Array[String]>*/;
926 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var14
->class->vft
[COLOR_model__MClassDef__init
]))(var14
, self
, var15
, var16
, var22
) /* init on <var14:MClassDef>*/;
935 var25
= "Fatal Error: no primitive class ";
937 var27
= string__NativeString__to_s_with_length(var25
, var26
);
941 var28
= NEW_array__Array(&type_array__Arraykernel__Object
);
942 { /* var28 = array_instance Array[Object] */
944 var30
= NEW_array__NativeArray(var29
, &type_array__NativeArraykernel__Object
);
945 ((struct instance_array__NativeArray
*)var30
)->values
[0] = (val
*) var24
;
946 ((struct instance_array__NativeArray
*)var30
)->values
[1] = (val
*) var_name
;
947 ((void (*)(val
*, val
*, long))(var28
->class->vft
[COLOR_array__Array__with_native
]))(var28
, var30
, var29
) /* with_native on <var28:Array[Object]>*/;
949 var31
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_string__Object__to_s
]))(var28
) /* to_s on <var28:Array[Object]>*/;
950 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var31
) /* print on <self:MModule>*/;
952 ((void (*)(val
*, long))(self
->class->vft
[COLOR_kernel__Object__exit
]))(self
, var32
) /* exit on <self:MModule>*/;
955 if (var_cla
== NULL
) {
956 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
957 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 225);
960 var33
= ((long (*)(val
*))(var_cla
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_cla
) /* length on <var_cla:nullable Array[MClass]>*/;
963 { /* Inline kernel#Int#== (var33,var34) */
964 var37
= var33
== var34
;
975 var42
= string__NativeString__to_s_with_length(var40
, var41
);
979 if (var_cla
== NULL
) {
980 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
981 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 225);
984 var43
= ((val
* (*)(val
*, val
*))(var_cla
->class->vft
[COLOR_string__Collection__join
]))(var_cla
, var39
) /* join on <var_cla:nullable Array[MClass]>*/;
986 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var43
) /* print on <self:MModule>*/;
987 fprintf(stderr
, "Runtime error: %s", "Assert failed");
988 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 225);
991 if (var_cla
== NULL
) {
992 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
993 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 226);
996 var44
= ((val
* (*)(val
*))(var_cla
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_cla
) /* first on <var_cla:nullable Array[MClass]>*/;
1003 /* method model#MModule#get_primitive_class for (self: Object, String): MClass */
1004 val
* VIRTUAL_model__MModule__get_primitive_class(val
* self
, val
* p0
) {
1005 val
* var
/* : MClass */;
1006 val
* var1
/* : MClass */;
1007 var1
= model__MModule__get_primitive_class(self
, p0
);
1012 /* method model#MModule#try_get_primitive_method for (self: MModule, String, MClass): nullable MMethod */
1013 val
* model__MModule__try_get_primitive_method(val
* self
, val
* p0
, val
* p1
) {
1014 val
* var
/* : nullable MMethod */;
1015 val
* var_name
/* var name: String */;
1016 val
* var_recv
/* var recv: MClass */;
1017 val
* var1
/* : Model */;
1018 val
* var2
/* : nullable Array[MProperty] */;
1019 val
* var_props
/* var props: nullable Array[MProperty] */;
1020 val
* var3
/* : null */;
1021 short int var4
/* : Bool */;
1022 val
* var5
/* : null */;
1023 val
* var6
/* : null */;
1024 val
* var_res
/* var res: nullable MMethod */;
1025 val
* var7
/* : Iterator[nullable Object] */;
1026 short int var8
/* : Bool */;
1027 val
* var9
/* : nullable Object */;
1028 val
* var_mprop
/* var mprop: MProperty */;
1029 short int var10
/* : Bool */;
1032 val
* var11
/* : MClassDef */;
1033 val
* var_intro
/* var intro: MClassDef */;
1034 val
* var12
/* : Array[MClassDef] */;
1035 val
* var13
/* : Iterator[nullable Object] */;
1036 short int var14
/* : Bool */;
1037 val
* var15
/* : nullable Object */;
1038 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1039 val
* var16
/* : POSetElement[MModule] */;
1040 val
* var17
/* : Collection[Object] */;
1041 val
* var18
/* : MModule */;
1042 short int var19
/* : Bool */;
1043 short int var20
/* : Bool */;
1044 val
* var21
/* : nullable POSetElement[MClassDef] */;
1045 val
* var22
/* : Collection[Object] */;
1046 short int var23
/* : Bool */;
1047 short int var24
/* : Bool */;
1048 val
* var25
/* : null */;
1049 short int var26
/* : Bool */;
1050 short int var27
/* : Bool */;
1051 static val
* varonce
;
1052 val
* var28
/* : String */;
1053 char* var29
/* : NativeString */;
1054 long var30
/* : Int */;
1055 val
* var31
/* : String */;
1056 static val
* varonce32
;
1057 val
* var33
/* : String */;
1058 char* var34
/* : NativeString */;
1059 long var35
/* : Int */;
1060 val
* var36
/* : String */;
1061 val
* var37
/* : String */;
1062 static val
* varonce38
;
1063 val
* var39
/* : String */;
1064 char* var40
/* : NativeString */;
1065 long var41
/* : Int */;
1066 val
* var42
/* : String */;
1067 val
* var43
/* : String */;
1068 val
* var44
/* : Array[Object] */;
1069 long var45
/* : Int */;
1070 val
* var46
/* : NativeArray[Object] */;
1071 val
* var47
/* : String */;
1074 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_mmodule__MModule__model
]))(self
) /* model on <self:MModule>*/;
1075 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_model__Model__get_mproperties_by_name
]))(var1
, var_name
) /* get_mproperties_by_name on <var1:Model>*/;
1078 if (var_props
== NULL
) {
1079 var4
= 1; /* is null */
1081 var4
= 0; /* arg is null but recv is not */
1091 var7
= ((val
* (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_props
) /* iterator on <var_props:nullable Array[MProperty](Array[MProperty])>*/;
1093 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
1095 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
1097 /* <var_mprop:MProperty> isa MMethod */
1098 cltype
= type_model__MMethod
.color
;
1099 idtype
= type_model__MMethod
.id
;
1100 if(cltype
>= var_mprop
->type
->table_size
) {
1103 var10
= var_mprop
->type
->type_table
[cltype
] == idtype
;
1106 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1107 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 236);
1110 var11
= ((val
* (*)(val
*))(var_mprop
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mprop
) /* intro_mclassdef on <var_mprop:MProperty(MMethod)>*/;
1112 var12
= ((val
* (*)(val
*))(var_recv
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_recv
) /* mclassdefs on <var_recv:MClass>*/;
1113 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:Array[MClassDef]>*/;
1115 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
1117 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
1118 var_mclassdef
= var15
;
1119 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(self
) /* in_importation on <self:MModule>*/;
1120 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var16
) /* greaters on <var16:POSetElement[MModule]>*/;
1121 var18
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_mclassdef
) /* mmodule on <var_mclassdef:MClassDef>*/;
1122 var19
= ((short int (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var17
, var18
) /* has on <var17:Collection[Object](Collection[MModule])>*/;
1125 goto CONTINUE_label
;
1128 var21
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__in_hierarchy
]))(var_mclassdef
) /* in_hierarchy on <var_mclassdef:MClassDef>*/;
1129 if (var21
== NULL
) {
1130 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
1131 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 240);
1134 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_poset__POSetElement__greaters
]))(var21
) /* greaters on <var21:nullable POSetElement[MClassDef]>*/;
1136 var23
= ((short int (*)(val
*, val
*))(var22
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var22
, var_intro
) /* has on <var22:Collection[Object](Collection[MClassDef])>*/;
1139 goto CONTINUE_label
;
1143 if (var_res
== NULL
) {
1144 var26
= 1; /* is null */
1146 var26
= 0; /* arg is null but recv is not */
1149 var_res
= var_mprop
;
1151 var27
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_res
, var_mprop
) /* != on <var_res:nullable MMethod(MMethod)>*/;
1156 var29
= "Fatal Error: ambigous property name \'";
1158 var31
= string__NativeString__to_s_with_length(var29
, var30
);
1165 var34
= "\'; conflict between ";
1167 var36
= string__NativeString__to_s_with_length(var34
, var35
);
1171 var37
= ((val
* (*)(val
*))(var_mprop
->class->vft
[COLOR_model__MProperty__full_name
]))(var_mprop
) /* full_name on <var_mprop:MProperty(MMethod)>*/;
1177 var42
= string__NativeString__to_s_with_length(var40
, var41
);
1181 var43
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MProperty__full_name
]))(var_res
) /* full_name on <var_res:nullable MMethod(MMethod)>*/;
1182 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
1183 { /* var44 = array_instance Array[Object] */
1185 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
1186 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var28
;
1187 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var_name
;
1188 ((struct instance_array__NativeArray
*)var46
)->values
[2] = (val
*) var33
;
1189 ((struct instance_array__NativeArray
*)var46
)->values
[3] = (val
*) var37
;
1190 ((struct instance_array__NativeArray
*)var46
)->values
[4] = (val
*) var39
;
1191 ((struct instance_array__NativeArray
*)var46
)->values
[5] = (val
*) var43
;
1192 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
1194 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
1195 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var47
) /* print on <self:MModule>*/;
1196 fprintf(stderr
, "Runtime error: %s", "Aborted");
1197 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 245);
1202 CONTINUE_label
: (void)0;
1203 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
1205 BREAK_label
: (void)0;
1206 CONTINUE_label48
: (void)0;
1207 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
1209 BREAK_label48
: (void)0;
1215 /* method model#MModule#try_get_primitive_method for (self: Object, String, MClass): nullable MMethod */
1216 val
* VIRTUAL_model__MModule__try_get_primitive_method(val
* self
, val
* p0
, val
* p1
) {
1217 val
* var
/* : nullable MMethod */;
1218 val
* var1
/* : nullable MMethod */;
1219 var1
= model__MModule__try_get_primitive_method(self
, p0
, p1
);
1224 /* method model#MClassDefSorter#mmodule for (self: MClassDefSorter): MModule */
1225 val
* model__MClassDefSorter__mmodule(val
* self
) {
1226 val
* var
/* : MModule */;
1227 val
* var1
/* : MModule */;
1228 var1
= self
->attrs
[COLOR_model__MClassDefSorter___64dmmodule
].val
; /* @mmodule on <self:MClassDefSorter> */
1230 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
1231 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 255);
1238 /* method model#MClassDefSorter#mmodule for (self: Object): MModule */
1239 val
* VIRTUAL_model__MClassDefSorter__mmodule(val
* self
) {
1240 val
* var
/* : MModule */;
1241 val
* var1
/* : MModule */;
1242 var1
= model__MClassDefSorter__mmodule(self
);
1247 /* method model#MClassDefSorter#mmodule= for (self: MClassDefSorter, MModule) */
1248 void model__MClassDefSorter__mmodule_61d(val
* self
, val
* p0
) {
1249 self
->attrs
[COLOR_model__MClassDefSorter___64dmmodule
].val
= p0
; /* @mmodule on <self:MClassDefSorter> */
1252 /* method model#MClassDefSorter#mmodule= for (self: Object, MModule) */
1253 void VIRTUAL_model__MClassDefSorter__mmodule_61d(val
* self
, val
* p0
) {
1254 model__MClassDefSorter__mmodule_61d(self
, p0
);
1257 /* method model#MClassDefSorter#compare for (self: MClassDefSorter, MClassDef, MClassDef): Int */
1258 long model__MClassDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1259 long var
/* : Int */;
1260 short int var1
/* : Bool */;
1263 const char* var_class_name
;
1264 short int var2
/* : Bool */;
1267 const char* var_class_name5
;
1268 val
* var_a
/* var a: MClassDef */;
1269 val
* var_b
/* var b: MClassDef */;
1270 val
* var6
/* : MClass */;
1271 val
* var_ca
/* var ca: MClass */;
1272 val
* var7
/* : MClass */;
1273 val
* var_cb
/* var cb: MClass */;
1274 short int var8
/* : Bool */;
1275 val
* var9
/* : MModule */;
1276 val
* var10
/* : POSet[MClass] */;
1277 long var11
/* : Int */;
1278 val
* var12
/* : MModule */;
1279 val
* var13
/* : Model */;
1280 val
* var14
/* : POSet[MClassDef] */;
1281 long var15
/* : Int */;
1282 /* Covariant cast for argument 0 (a) <p0:MClassDef> isa AbstractSorter#0 */
1283 /* <p0:MClassDef> isa AbstractSorter#0 */
1284 var1
= 1; /* easy <p0:MClassDef> isa AbstractSorter#0*/
1286 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1287 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name
);
1288 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 256);
1291 /* Covariant cast for argument 1 (b) <p1:MClassDef> isa AbstractSorter#0 */
1292 /* <p1:MClassDef> isa AbstractSorter#0 */
1293 var2
= 1; /* easy <p1:MClassDef> isa AbstractSorter#0*/
1295 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
1296 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name5
);
1297 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 256);
1302 var6
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_a
) /* mclass on <var_a:MClassDef>*/;
1304 var7
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_b
) /* mclass on <var_b:MClassDef>*/;
1306 var8
= ((short int (*)(val
*, val
*))(var_ca
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ca
, var_cb
) /* != on <var_ca:MClass>*/;
1308 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDefSorter__mmodule
]))(self
) /* mmodule on <self:MClassDefSorter>*/;
1309 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var9
) /* flatten_mclass_hierarchy on <var9:MModule>*/;
1310 var11
= ((long (*)(val
*, val
*, val
*))(var10
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(var10
, var_ca
, var_cb
) /* compare on <var10:POSet[MClass]>*/;
1315 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDefSorter__mmodule
]))(self
) /* mmodule on <self:MClassDefSorter>*/;
1316 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_mmodule__MModule__model
]))(var12
) /* model on <var12:MModule>*/;
1317 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__Model__mclassdef_hierarchy
]))(var13
) /* mclassdef_hierarchy on <var13:Model>*/;
1318 var15
= ((long (*)(val
*, val
*, val
*))(var14
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(var14
, var_a
, var_b
) /* compare on <var14:POSet[MClassDef]>*/;
1324 /* method model#MClassDefSorter#compare for (self: Object, nullable Object, nullable Object): Int */
1325 long VIRTUAL_model__MClassDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1326 long var
/* : Int */;
1327 long var1
/* : Int */;
1328 var1
= model__MClassDefSorter__compare(self
, p0
, p1
);
1333 /* method model#MClassDefSorter#init for (self: MClassDefSorter, MModule) */
1334 void model__MClassDefSorter__init(val
* self
, val
* p0
) {
1335 self
->attrs
[COLOR_model__MClassDefSorter___64dmmodule
].val
= p0
; /* @mmodule on <self:MClassDefSorter> */
1338 /* method model#MClassDefSorter#init for (self: Object, MModule) */
1339 void VIRTUAL_model__MClassDefSorter__init(val
* self
, val
* p0
) {
1340 model__MClassDefSorter__init(self
, p0
);
1343 /* method model#MPropDefSorter#mmodule for (self: MPropDefSorter): MModule */
1344 val
* model__MPropDefSorter__mmodule(val
* self
) {
1345 val
* var
/* : MModule */;
1346 val
* var1
/* : MModule */;
1347 var1
= self
->attrs
[COLOR_model__MPropDefSorter___64dmmodule
].val
; /* @mmodule on <self:MPropDefSorter> */
1349 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
1350 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 267);
1357 /* method model#MPropDefSorter#mmodule for (self: Object): MModule */
1358 val
* VIRTUAL_model__MPropDefSorter__mmodule(val
* self
) {
1359 val
* var
/* : MModule */;
1360 val
* var1
/* : MModule */;
1361 var1
= model__MPropDefSorter__mmodule(self
);
1366 /* method model#MPropDefSorter#mmodule= for (self: MPropDefSorter, MModule) */
1367 void model__MPropDefSorter__mmodule_61d(val
* self
, val
* p0
) {
1368 self
->attrs
[COLOR_model__MPropDefSorter___64dmmodule
].val
= p0
; /* @mmodule on <self:MPropDefSorter> */
1371 /* method model#MPropDefSorter#mmodule= for (self: Object, MModule) */
1372 void VIRTUAL_model__MPropDefSorter__mmodule_61d(val
* self
, val
* p0
) {
1373 model__MPropDefSorter__mmodule_61d(self
, p0
);
1376 /* method model#MPropDefSorter#compare for (self: MPropDefSorter, MPropDef, MPropDef): Int */
1377 long model__MPropDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1378 long var
/* : Int */;
1379 short int var1
/* : Bool */;
1382 const char* var_class_name
;
1383 short int var2
/* : Bool */;
1386 const char* var_class_name5
;
1387 val
* var_pa
/* var pa: MPropDef */;
1388 val
* var_pb
/* var pb: MPropDef */;
1389 val
* var6
/* : MClassDef */;
1390 val
* var_a
/* var a: MClassDef */;
1391 val
* var7
/* : MClassDef */;
1392 val
* var_b
/* var b: MClassDef */;
1393 val
* var8
/* : MClass */;
1394 val
* var_ca
/* var ca: MClass */;
1395 val
* var9
/* : MClass */;
1396 val
* var_cb
/* var cb: MClass */;
1397 short int var10
/* : Bool */;
1398 val
* var11
/* : MModule */;
1399 val
* var12
/* : POSet[MClass] */;
1400 long var13
/* : Int */;
1401 val
* var14
/* : MModule */;
1402 val
* var15
/* : Model */;
1403 val
* var16
/* : POSet[MClassDef] */;
1404 long var17
/* : Int */;
1405 /* Covariant cast for argument 0 (pa) <p0:MPropDef> isa AbstractSorter#0 */
1406 /* <p0:MPropDef> isa AbstractSorter#0 */
1407 var1
= 1; /* easy <p0:MPropDef> isa AbstractSorter#0*/
1409 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1410 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name
);
1411 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 268);
1414 /* Covariant cast for argument 1 (pb) <p1:MPropDef> isa AbstractSorter#0 */
1415 /* <p1:MPropDef> isa AbstractSorter#0 */
1416 var2
= 1; /* easy <p1:MPropDef> isa AbstractSorter#0*/
1418 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
1419 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name5
);
1420 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 268);
1425 var6
= ((val
* (*)(val
*))(var_pa
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pa
) /* mclassdef on <var_pa:MPropDef>*/;
1427 var7
= ((val
* (*)(val
*))(var_pb
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pb
) /* mclassdef on <var_pb:MPropDef>*/;
1429 var8
= ((val
* (*)(val
*))(var_a
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_a
) /* mclass on <var_a:MClassDef>*/;
1431 var9
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_b
) /* mclass on <var_b:MClassDef>*/;
1433 var10
= ((short int (*)(val
*, val
*))(var_ca
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ca
, var_cb
) /* != on <var_ca:MClass>*/;
1435 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MPropDefSorter__mmodule
]))(self
) /* mmodule on <self:MPropDefSorter>*/;
1436 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var11
) /* flatten_mclass_hierarchy on <var11:MModule>*/;
1437 var13
= ((long (*)(val
*, val
*, val
*))(var12
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(var12
, var_ca
, var_cb
) /* compare on <var12:POSet[MClass]>*/;
1442 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MPropDefSorter__mmodule
]))(self
) /* mmodule on <self:MPropDefSorter>*/;
1443 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_mmodule__MModule__model
]))(var14
) /* model on <var14:MModule>*/;
1444 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__Model__mclassdef_hierarchy
]))(var15
) /* mclassdef_hierarchy on <var15:Model>*/;
1445 var17
= ((long (*)(val
*, val
*, val
*))(var16
->class->vft
[COLOR_sorter__AbstractSorter__compare
]))(var16
, var_a
, var_b
) /* compare on <var16:POSet[MClassDef]>*/;
1451 /* method model#MPropDefSorter#compare for (self: Object, nullable Object, nullable Object): Int */
1452 long VIRTUAL_model__MPropDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1453 long var
/* : Int */;
1454 long var1
/* : Int */;
1455 var1
= model__MPropDefSorter__compare(self
, p0
, p1
);
1460 /* method model#MPropDefSorter#init for (self: MPropDefSorter, MModule) */
1461 void model__MPropDefSorter__init(val
* self
, val
* p0
) {
1462 self
->attrs
[COLOR_model__MPropDefSorter___64dmmodule
].val
= p0
; /* @mmodule on <self:MPropDefSorter> */
1465 /* method model#MPropDefSorter#init for (self: Object, MModule) */
1466 void VIRTUAL_model__MPropDefSorter__init(val
* self
, val
* p0
) {
1467 model__MPropDefSorter__init(self
, p0
);
1470 /* method model#MClass#intro_mmodule for (self: MClass): MModule */
1471 val
* model__MClass__intro_mmodule(val
* self
) {
1472 val
* var
/* : MModule */;
1473 val
* var1
/* : MModule */;
1474 var1
= self
->attrs
[COLOR_model__MClass___64dintro_mmodule
].val
; /* @intro_mmodule on <self:MClass> */
1476 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @intro_mmodule");
1477 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 290);
1484 /* method model#MClass#intro_mmodule for (self: Object): MModule */
1485 val
* VIRTUAL_model__MClass__intro_mmodule(val
* self
) {
1486 val
* var
/* : MModule */;
1487 val
* var1
/* : MModule */;
1488 var1
= model__MClass__intro_mmodule(self
);
1493 /* method model#MClass#intro_mmodule= for (self: MClass, MModule) */
1494 void model__MClass__intro_mmodule_61d(val
* self
, val
* p0
) {
1495 self
->attrs
[COLOR_model__MClass___64dintro_mmodule
].val
= p0
; /* @intro_mmodule on <self:MClass> */
1498 /* method model#MClass#intro_mmodule= for (self: Object, MModule) */
1499 void VIRTUAL_model__MClass__intro_mmodule_61d(val
* self
, val
* p0
) {
1500 model__MClass__intro_mmodule_61d(self
, p0
);
1503 /* method model#MClass#name for (self: MClass): String */
1504 val
* model__MClass__name(val
* self
) {
1505 val
* var
/* : String */;
1506 val
* var1
/* : String */;
1507 var1
= self
->attrs
[COLOR_model__MClass___64dname
].val
; /* @name on <self:MClass> */
1509 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @name");
1510 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 295);
1517 /* method model#MClass#name for (self: Object): String */
1518 val
* VIRTUAL_model__MClass__name(val
* self
) {
1519 val
* var
/* : String */;
1520 val
* var1
/* : String */;
1521 var1
= model__MClass__name(self
);
1526 /* method model#MClass#name= for (self: MClass, String) */
1527 void model__MClass__name_61d(val
* self
, val
* p0
) {
1528 self
->attrs
[COLOR_model__MClass___64dname
].val
= p0
; /* @name on <self:MClass> */
1531 /* method model#MClass#name= for (self: Object, String) */
1532 void VIRTUAL_model__MClass__name_61d(val
* self
, val
* p0
) {
1533 model__MClass__name_61d(self
, p0
);
1536 /* method model#MClass#full_name for (self: MClass): String */
1537 val
* model__MClass__full_name(val
* self
) {
1538 val
* var
/* : String */;
1539 val
* var1
/* : Array[Object] */;
1540 long var2
/* : Int */;
1541 val
* var_
/* var : Array[Object] */;
1542 static val
* varonce
;
1543 val
* var3
/* : String */;
1544 char* var4
/* : NativeString */;
1545 long var5
/* : Int */;
1546 val
* var6
/* : String */;
1547 val
* var7
/* : MModule */;
1548 val
* var8
/* : String */;
1549 static val
* varonce9
;
1550 val
* var10
/* : String */;
1551 char* var11
/* : NativeString */;
1552 long var12
/* : Int */;
1553 val
* var13
/* : String */;
1554 val
* var14
/* : String */;
1555 static val
* varonce15
;
1556 val
* var16
/* : String */;
1557 char* var17
/* : NativeString */;
1558 long var18
/* : Int */;
1559 val
* var19
/* : String */;
1560 val
* var20
/* : String */;
1561 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
1563 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
1570 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1574 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
1575 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(self
) /* intro_mmodule on <self:MClass>*/;
1576 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_mmodule__MModule__full_name
]))(var7
) /* full_name on <var7:MModule>*/;
1577 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var8
) /* add on <var_:Array[Object]>*/;
1583 var13
= string__NativeString__to_s_with_length(var11
, var12
);
1587 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var10
) /* add on <var_:Array[Object]>*/;
1588 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__name
]))(self
) /* name on <self:MClass>*/;
1589 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var14
) /* add on <var_:Array[Object]>*/;
1595 var19
= string__NativeString__to_s_with_length(var17
, var18
);
1599 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var16
) /* add on <var_:Array[Object]>*/;
1600 var20
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
1606 /* method model#MClass#full_name for (self: Object): String */
1607 val
* VIRTUAL_model__MClass__full_name(val
* self
) {
1608 val
* var
/* : String */;
1609 val
* var1
/* : String */;
1610 var1
= model__MClass__full_name(self
);
1615 /* method model#MClass#arity for (self: MClass): Int */
1616 long model__MClass__arity(val
* self
) {
1617 long var
/* : Int */;
1618 long var1
/* : Int */;
1619 var1
= self
->attrs
[COLOR_model__MClass___64darity
].l
; /* @arity on <self:MClass> */
1624 /* method model#MClass#arity for (self: Object): Int */
1625 long VIRTUAL_model__MClass__arity(val
* self
) {
1626 long var
/* : Int */;
1627 long var1
/* : Int */;
1628 var1
= model__MClass__arity(self
);
1633 /* method model#MClass#arity= for (self: MClass, Int) */
1634 void model__MClass__arity_61d(val
* self
, long p0
) {
1635 self
->attrs
[COLOR_model__MClass___64darity
].l
= p0
; /* @arity on <self:MClass> */
1638 /* method model#MClass#arity= for (self: Object, Int) */
1639 void VIRTUAL_model__MClass__arity_61d(val
* self
, long p0
) {
1640 model__MClass__arity_61d(self
, p0
);
1643 /* method model#MClass#kind for (self: MClass): MClassKind */
1644 val
* model__MClass__kind(val
* self
) {
1645 val
* var
/* : MClassKind */;
1646 val
* var1
/* : MClassKind */;
1647 var1
= self
->attrs
[COLOR_model__MClass___64dkind
].val
; /* @kind on <self:MClass> */
1649 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @kind");
1650 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 310);
1657 /* method model#MClass#kind for (self: Object): MClassKind */
1658 val
* VIRTUAL_model__MClass__kind(val
* self
) {
1659 val
* var
/* : MClassKind */;
1660 val
* var1
/* : MClassKind */;
1661 var1
= model__MClass__kind(self
);
1666 /* method model#MClass#kind= for (self: MClass, MClassKind) */
1667 void model__MClass__kind_61d(val
* self
, val
* p0
) {
1668 self
->attrs
[COLOR_model__MClass___64dkind
].val
= p0
; /* @kind on <self:MClass> */
1671 /* method model#MClass#kind= for (self: Object, MClassKind) */
1672 void VIRTUAL_model__MClass__kind_61d(val
* self
, val
* p0
) {
1673 model__MClass__kind_61d(self
, p0
);
1676 /* method model#MClass#visibility for (self: MClass): MVisibility */
1677 val
* model__MClass__visibility(val
* self
) {
1678 val
* var
/* : MVisibility */;
1679 val
* var1
/* : MVisibility */;
1680 var1
= self
->attrs
[COLOR_model__MClass___64dvisibility
].val
; /* @visibility on <self:MClass> */
1682 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @visibility");
1683 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 314);
1690 /* method model#MClass#visibility for (self: Object): MVisibility */
1691 val
* VIRTUAL_model__MClass__visibility(val
* self
) {
1692 val
* var
/* : MVisibility */;
1693 val
* var1
/* : MVisibility */;
1694 var1
= model__MClass__visibility(self
);
1699 /* method model#MClass#visibility= for (self: MClass, MVisibility) */
1700 void model__MClass__visibility_61d(val
* self
, val
* p0
) {
1701 self
->attrs
[COLOR_model__MClass___64dvisibility
].val
= p0
; /* @visibility on <self:MClass> */
1704 /* method model#MClass#visibility= for (self: Object, MVisibility) */
1705 void VIRTUAL_model__MClass__visibility_61d(val
* self
, val
* p0
) {
1706 model__MClass__visibility_61d(self
, p0
);
1709 /* method model#MClass#init for (self: MClass, MModule, String, Int, MClassKind, MVisibility) */
1710 void model__MClass__init(val
* self
, val
* p0
, val
* p1
, long p2
, val
* p3
, val
* p4
) {
1711 val
* var_intro_mmodule
/* var intro_mmodule: MModule */;
1712 val
* var_name
/* var name: String */;
1713 long var_arity
/* var arity: Int */;
1714 val
* var_kind
/* var kind: MClassKind */;
1715 val
* var_visibility
/* var visibility: MVisibility */;
1716 val
* var
/* : Array[MClass] */;
1717 val
* var1
/* : Model */;
1718 val
* var_model
/* var model: Model */;
1719 val
* var2
/* : MultiHashMap[String, MClass] */;
1720 val
* var3
/* : Array[MClass] */;
1721 long var4
/* : Int */;
1722 short int var5
/* : Bool */;
1723 short int var7
/* : Bool */;
1726 const char* var_class_name
;
1727 short int var8
/* : Bool */;
1728 val
* var9
/* : Array[MParameterType] */;
1729 val
* var_mparametertypes
/* var mparametertypes: Array[MParameterType] */;
1730 val
* var10
/* : Range[Int] */;
1731 long var11
/* : Int */;
1732 val
* var12
/* : Discrete */;
1733 val
* var13
/* : Discrete */;
1734 val
* var14
/* : Iterator[nullable Object] */;
1735 short int var15
/* : Bool */;
1736 val
* var16
/* : nullable Object */;
1737 long var_i
/* var i: Int */;
1738 long var17
/* : Int */;
1739 val
* var18
/* : MParameterType */;
1740 val
* var_mparametertype
/* var mparametertype: MParameterType */;
1741 val
* var19
/* : MGenericType */;
1742 val
* var_mclass_type
/* var mclass_type: MGenericType */;
1743 val
* var20
/* : Array[MGenericType] */;
1744 val
* var21
/* : MClassType */;
1745 var_intro_mmodule
= p0
;
1749 var_visibility
= p4
;
1750 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__intro_mmodule_61d
]))(self
, var_intro_mmodule
) /* intro_mmodule= on <self:MClass>*/;
1751 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__name_61d
]))(self
, var_name
) /* name= on <self:MClass>*/;
1752 ((void (*)(val
*, long))(self
->class->vft
[COLOR_model__MClass__arity_61d
]))(self
, var_arity
) /* arity= on <self:MClass>*/;
1753 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__kind_61d
]))(self
, var_kind
) /* kind= on <self:MClass>*/;
1754 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__visibility_61d
]))(self
, var_visibility
) /* visibility= on <self:MClass>*/;
1755 var
= ((val
* (*)(val
*))(var_intro_mmodule
->class->vft
[COLOR_model__MModule__intro_mclasses
]))(var_intro_mmodule
) /* intro_mclasses on <var_intro_mmodule:MModule>*/;
1756 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var
, self
) /* add on <var:Array[MClass]>*/;
1757 var1
= ((val
* (*)(val
*))(var_intro_mmodule
->class->vft
[COLOR_mmodule__MModule__model
]))(var_intro_mmodule
) /* model on <var_intro_mmodule:MModule>*/;
1759 var2
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mclasses_by_name
]))(var_model
) /* mclasses_by_name on <var_model:Model>*/;
1760 ((void (*)(val
*, val
*, val
*))(var2
->class->vft
[COLOR_more_collections__MultiHashMap__add_one
]))(var2
, var_name
, self
) /* add_one on <var2:MultiHashMap[String, MClass]>*/;
1761 var3
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mclasses
]))(var_model
) /* mclasses on <var_model:Model>*/;
1762 ((void (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var3
, self
) /* add on <var3:Array[MClass]>*/;
1764 { /* Inline kernel#Int#> (var_arity,var4) */
1765 /* Covariant cast for argument 0 (i) <var4:Int> isa OTHER */
1766 /* <var4:Int> isa OTHER */
1767 var7
= 1; /* easy <var4:Int> isa OTHER*/
1769 var_class_name
= type_kernel__Int
.name
;
1770 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1771 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
1774 var8
= var_arity
> var4
;
1780 var9
= NEW_array__Array(&type_array__Arraymodel__MParameterType
);
1781 ((void (*)(val
*))(var9
->class->vft
[COLOR_array__Array__init
]))(var9
) /* init on <var9:Array[MParameterType]>*/;
1782 var_mparametertypes
= var9
;
1783 var10
= NEW_range__Range(&type_range__Rangekernel__Int
);
1785 var12
= BOX_kernel__Int(var11
); /* autobox from Int to Discrete */
1786 var13
= BOX_kernel__Int(var_arity
); /* autobox from Int to Discrete */
1787 ((void (*)(val
*, val
*, val
*))(var10
->class->vft
[COLOR_range__Range__without_last
]))(var10
, var12
, var13
) /* without_last on <var10:Range[Int]>*/;
1788 var14
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Range[Int]>*/;
1790 var15
= ((short int (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var14
) /* is_ok on <var14:Iterator[nullable Object]>*/;
1792 var16
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var14
) /* item on <var14:Iterator[nullable Object]>*/;
1793 var17
= ((struct instance_kernel__Int
*)var16
)->value
; /* autounbox from nullable Object to Int */;
1795 var18
= NEW_model__MParameterType(&type_model__MParameterType
);
1796 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_model__MParameterType__init
]))(var18
, self
, var_i
) /* init on <var18:MParameterType>*/;
1797 var_mparametertype
= var18
;
1798 ((void (*)(val
*, val
*))(var_mparametertypes
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_mparametertypes
, var_mparametertype
) /* add on <var_mparametertypes:Array[MParameterType]>*/;
1799 CONTINUE_label
: (void)0;
1800 ((void (*)(val
*))(var14
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var14
) /* next on <var14:Iterator[nullable Object]>*/;
1802 BREAK_label
: (void)0;
1803 var19
= NEW_model__MGenericType(&type_model__MGenericType
);
1804 ((void (*)(val
*, val
*, val
*))(var19
->class->vft
[COLOR_model__MGenericType__init
]))(var19
, self
, var_mparametertypes
) /* init on <var19:MGenericType>*/;
1805 var_mclass_type
= var19
;
1806 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__mclass_type_61d
]))(self
, var_mclass_type
) /* mclass_type= on <self:MClass>*/;
1807 var20
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__get_mtype_cache
]))(self
) /* get_mtype_cache on <self:MClass>*/;
1808 ((void (*)(val
*, val
*))(var20
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var20
, var_mclass_type
) /* add on <var20:Array[MGenericType]>*/;
1810 var21
= NEW_model__MClassType(&type_model__MClassType
);
1811 ((void (*)(val
*, val
*))(var21
->class->vft
[COLOR_model__MClassType__init
]))(var21
, self
) /* init on <var21:MClassType>*/;
1812 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClass__mclass_type_61d
]))(self
, var21
) /* mclass_type= on <self:MClass>*/;
1816 /* method model#MClass#init for (self: Object, MModule, String, Int, MClassKind, MVisibility) */
1817 void VIRTUAL_model__MClass__init(val
* self
, val
* p0
, val
* p1
, long p2
, val
* p3
, val
* p4
) {
1818 model__MClass__init(self
, p0
, p1
, p2
, p3
, p4
);
1821 /* method model#MClass#mclassdefs for (self: MClass): Array[MClassDef] */
1822 val
* model__MClass__mclassdefs(val
* self
) {
1823 val
* var
/* : Array[MClassDef] */;
1824 val
* var1
/* : Array[MClassDef] */;
1825 var1
= self
->attrs
[COLOR_model__MClass___64dmclassdefs
].val
; /* @mclassdefs on <self:MClass> */
1827 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclassdefs");
1828 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 345);
1835 /* method model#MClass#mclassdefs for (self: Object): Array[MClassDef] */
1836 val
* VIRTUAL_model__MClass__mclassdefs(val
* self
) {
1837 val
* var
/* : Array[MClassDef] */;
1838 val
* var1
/* : Array[MClassDef] */;
1839 var1
= model__MClass__mclassdefs(self
);
1844 /* method model#MClass#mclassdefs= for (self: MClass, Array[MClassDef]) */
1845 void model__MClass__mclassdefs_61d(val
* self
, val
* p0
) {
1846 self
->attrs
[COLOR_model__MClass___64dmclassdefs
].val
= p0
; /* @mclassdefs on <self:MClass> */
1849 /* method model#MClass#mclassdefs= for (self: Object, Array[MClassDef]) */
1850 void VIRTUAL_model__MClass__mclassdefs_61d(val
* self
, val
* p0
) {
1851 model__MClass__mclassdefs_61d(self
, p0
);
1854 /* method model#MClass#to_s for (self: MClass): String */
1855 val
* model__MClass__to_s(val
* self
) {
1856 val
* var
/* : String */;
1857 val
* var1
/* : String */;
1858 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__name
]))(self
) /* name on <self:MClass>*/;
1864 /* method model#MClass#to_s for (self: Object): String */
1865 val
* VIRTUAL_model__MClass__to_s(val
* self
) {
1866 val
* var
/* : String */;
1867 val
* var1
/* : String */;
1868 var1
= model__MClass__to_s(self
);
1873 /* method model#MClass#intro for (self: MClass): MClassDef */
1874 val
* model__MClass__intro(val
* self
) {
1875 val
* var
/* : MClassDef */;
1876 val
* var1
/* : Array[MClassDef] */;
1877 short int var2
/* : Bool */;
1878 short int var3
/* : Bool */;
1879 val
* var4
/* : Array[MClassDef] */;
1880 val
* var5
/* : nullable Object */;
1881 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__mclassdefs
]))(self
) /* mclassdefs on <self:MClass>*/;
1882 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var1
) /* is_empty on <var1:Array[MClassDef]>*/;
1885 fprintf(stderr
, "Runtime error: %s", "Assert \'has_a_first_definition\' failed");
1886 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 357);
1889 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__mclassdefs
]))(self
) /* mclassdefs on <self:MClass>*/;
1890 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var4
) /* first on <var4:Array[MClassDef]>*/;
1896 /* method model#MClass#intro for (self: Object): MClassDef */
1897 val
* VIRTUAL_model__MClass__intro(val
* self
) {
1898 val
* var
/* : MClassDef */;
1899 val
* var1
/* : MClassDef */;
1900 var1
= model__MClass__intro(self
);
1905 /* method model#MClass#in_hierarchy for (self: MClass, MModule): POSetElement[MClass] */
1906 val
* model__MClass__in_hierarchy(val
* self
, val
* p0
) {
1907 val
* var
/* : POSetElement[MClass] */;
1908 val
* var_mmodule
/* var mmodule: MModule */;
1909 val
* var1
/* : POSet[MClass] */;
1910 val
* var2
/* : POSetElement[Object] */;
1912 var1
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__flatten_mclass_hierarchy
]))(var_mmodule
) /* flatten_mclass_hierarchy on <var_mmodule:MModule>*/;
1913 var2
= ((val
* (*)(val
*, val
*))(var1
->class->vft
[COLOR_poset__POSet___91d_93d
]))(var1
, self
) /* [] on <var1:POSet[MClass]>*/;
1919 /* method model#MClass#in_hierarchy for (self: Object, MModule): POSetElement[MClass] */
1920 val
* VIRTUAL_model__MClass__in_hierarchy(val
* self
, val
* p0
) {
1921 val
* var
/* : POSetElement[MClass] */;
1922 val
* var1
/* : POSetElement[MClass] */;
1923 var1
= model__MClass__in_hierarchy(self
, p0
);
1928 /* method model#MClass#mclass_type for (self: MClass): MClassType */
1929 val
* model__MClass__mclass_type(val
* self
) {
1930 val
* var
/* : MClassType */;
1931 val
* var1
/* : MClassType */;
1932 var1
= self
->attrs
[COLOR_model__MClass___64dmclass_type
].val
; /* @mclass_type on <self:MClass> */
1934 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass_type");
1935 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 370);
1942 /* method model#MClass#mclass_type for (self: Object): MClassType */
1943 val
* VIRTUAL_model__MClass__mclass_type(val
* self
) {
1944 val
* var
/* : MClassType */;
1945 val
* var1
/* : MClassType */;
1946 var1
= model__MClass__mclass_type(self
);
1951 /* method model#MClass#mclass_type= for (self: MClass, MClassType) */
1952 void model__MClass__mclass_type_61d(val
* self
, val
* p0
) {
1953 self
->attrs
[COLOR_model__MClass___64dmclass_type
].val
= p0
; /* @mclass_type on <self:MClass> */
1956 /* method model#MClass#mclass_type= for (self: Object, MClassType) */
1957 void VIRTUAL_model__MClass__mclass_type_61d(val
* self
, val
* p0
) {
1958 model__MClass__mclass_type_61d(self
, p0
);
1961 /* method model#MClass#get_mtype for (self: MClass, Array[MType]): MClassType */
1962 val
* model__MClass__get_mtype(val
* self
, val
* p0
) {
1963 val
* var
/* : MClassType */;
1964 val
* var_mtype_arguments
/* var mtype_arguments: Array[MType] */;
1965 long var1
/* : Int */;
1966 long var2
/* : Int */;
1967 short int var3
/* : Bool */;
1968 short int var5
/* : Bool */;
1969 long var6
/* : Int */;
1970 long var7
/* : Int */;
1971 short int var8
/* : Bool */;
1972 short int var10
/* : Bool */;
1973 val
* var11
/* : MClassType */;
1974 val
* var12
/* : Array[MGenericType] */;
1975 val
* var13
/* : Iterator[nullable Object] */;
1976 short int var14
/* : Bool */;
1977 val
* var15
/* : nullable Object */;
1978 val
* var_t
/* var t: MGenericType */;
1979 val
* var16
/* : Array[MType] */;
1980 short int var17
/* : Bool */;
1981 val
* var18
/* : MGenericType */;
1982 val
* var_res
/* var res: MGenericType */;
1983 val
* var19
/* : Array[MGenericType] */;
1984 var_mtype_arguments
= p0
;
1985 var1
= ((long (*)(val
*))(var_mtype_arguments
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mtype_arguments
) /* length on <var_mtype_arguments:Array[MType]>*/;
1986 var2
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MClass__arity
]))(self
) /* arity on <self:MClass>*/;
1987 { /* Inline kernel#Int#== (var1,var2) */
1988 var5
= var1
== var2
;
1994 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1995 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 393);
1998 var6
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MClass__arity
]))(self
) /* arity on <self:MClass>*/;
2000 { /* Inline kernel#Int#== (var6,var7) */
2001 var10
= var6
== var7
;
2007 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__mclass_type
]))(self
) /* mclass_type on <self:MClass>*/;
2012 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__get_mtype_cache
]))(self
) /* get_mtype_cache on <self:MClass>*/;
2013 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var12
) /* iterator on <var12:Array[MGenericType]>*/;
2015 var14
= ((short int (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var13
) /* is_ok on <var13:Iterator[nullable Object]>*/;
2017 var15
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var13
) /* item on <var13:Iterator[nullable Object]>*/;
2019 var16
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MClassType__arguments
]))(var_t
) /* arguments on <var_t:MGenericType>*/;
2020 var17
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var16
, var_mtype_arguments
) /* == on <var16:Array[MType]>*/;
2026 CONTINUE_label
: (void)0;
2027 ((void (*)(val
*))(var13
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var13
) /* next on <var13:Iterator[nullable Object]>*/;
2029 BREAK_label
: (void)0;
2030 var18
= NEW_model__MGenericType(&type_model__MGenericType
);
2031 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_model__MGenericType__init
]))(var18
, self
, var_mtype_arguments
) /* init on <var18:MGenericType>*/;
2033 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__get_mtype_cache
]))(self
) /* get_mtype_cache on <self:MClass>*/;
2034 ((void (*)(val
*, val
*))(var19
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var19
, var_res
) /* add on <var19:Array[MGenericType]>*/;
2040 /* method model#MClass#get_mtype for (self: Object, Array[MType]): MClassType */
2041 val
* VIRTUAL_model__MClass__get_mtype(val
* self
, val
* p0
) {
2042 val
* var
/* : MClassType */;
2043 val
* var1
/* : MClassType */;
2044 var1
= model__MClass__get_mtype(self
, p0
);
2049 /* method model#MClass#get_mtype_cache for (self: MClass): Array[MGenericType] */
2050 val
* model__MClass__get_mtype_cache(val
* self
) {
2051 val
* var
/* : Array[MGenericType] */;
2052 val
* var1
/* : Array[MGenericType] */;
2053 var1
= self
->attrs
[COLOR_model__MClass___64dget_mtype_cache
].val
; /* @get_mtype_cache on <self:MClass> */
2055 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @get_mtype_cache");
2056 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 405);
2063 /* method model#MClass#get_mtype_cache for (self: Object): Array[MGenericType] */
2064 val
* VIRTUAL_model__MClass__get_mtype_cache(val
* self
) {
2065 val
* var
/* : Array[MGenericType] */;
2066 val
* var1
/* : Array[MGenericType] */;
2067 var1
= model__MClass__get_mtype_cache(self
);
2072 /* method model#MClass#get_mtype_cache= for (self: MClass, Array[MGenericType]) */
2073 void model__MClass__get_mtype_cache_61d(val
* self
, val
* p0
) {
2074 self
->attrs
[COLOR_model__MClass___64dget_mtype_cache
].val
= p0
; /* @get_mtype_cache on <self:MClass> */
2077 /* method model#MClass#get_mtype_cache= for (self: Object, Array[MGenericType]) */
2078 void VIRTUAL_model__MClass__get_mtype_cache_61d(val
* self
, val
* p0
) {
2079 model__MClass__get_mtype_cache_61d(self
, p0
);
2082 /* method model#MClassDef#mmodule for (self: MClassDef): MModule */
2083 val
* model__MClassDef__mmodule(val
* self
) {
2084 val
* var
/* : MModule */;
2085 val
* var1
/* : MModule */;
2086 var1
= self
->attrs
[COLOR_model__MClassDef___64dmmodule
].val
; /* @mmodule on <self:MClassDef> */
2088 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mmodule");
2089 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 415);
2096 /* method model#MClassDef#mmodule for (self: Object): MModule */
2097 val
* VIRTUAL_model__MClassDef__mmodule(val
* self
) {
2098 val
* var
/* : MModule */;
2099 val
* var1
/* : MModule */;
2100 var1
= model__MClassDef__mmodule(self
);
2105 /* method model#MClassDef#mmodule= for (self: MClassDef, MModule) */
2106 void model__MClassDef__mmodule_61d(val
* self
, val
* p0
) {
2107 self
->attrs
[COLOR_model__MClassDef___64dmmodule
].val
= p0
; /* @mmodule on <self:MClassDef> */
2110 /* method model#MClassDef#mmodule= for (self: Object, MModule) */
2111 void VIRTUAL_model__MClassDef__mmodule_61d(val
* self
, val
* p0
) {
2112 model__MClassDef__mmodule_61d(self
, p0
);
2115 /* method model#MClassDef#mclass for (self: MClassDef): MClass */
2116 val
* model__MClassDef__mclass(val
* self
) {
2117 val
* var
/* : MClass */;
2118 val
* var1
/* : MClass */;
2119 var1
= self
->attrs
[COLOR_model__MClassDef___64dmclass
].val
; /* @mclass on <self:MClassDef> */
2121 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass");
2122 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 418);
2129 /* method model#MClassDef#mclass for (self: Object): MClass */
2130 val
* VIRTUAL_model__MClassDef__mclass(val
* self
) {
2131 val
* var
/* : MClass */;
2132 val
* var1
/* : MClass */;
2133 var1
= model__MClassDef__mclass(self
);
2138 /* method model#MClassDef#mclass= for (self: MClassDef, MClass) */
2139 void model__MClassDef__mclass_61d(val
* self
, val
* p0
) {
2140 self
->attrs
[COLOR_model__MClassDef___64dmclass
].val
= p0
; /* @mclass on <self:MClassDef> */
2143 /* method model#MClassDef#mclass= for (self: Object, MClass) */
2144 void VIRTUAL_model__MClassDef__mclass_61d(val
* self
, val
* p0
) {
2145 model__MClassDef__mclass_61d(self
, p0
);
2148 /* method model#MClassDef#bound_mtype for (self: MClassDef): MClassType */
2149 val
* model__MClassDef__bound_mtype(val
* self
) {
2150 val
* var
/* : MClassType */;
2151 val
* var1
/* : MClassType */;
2152 var1
= self
->attrs
[COLOR_model__MClassDef___64dbound_mtype
].val
; /* @bound_mtype on <self:MClassDef> */
2154 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @bound_mtype");
2155 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 421);
2162 /* method model#MClassDef#bound_mtype for (self: Object): MClassType */
2163 val
* VIRTUAL_model__MClassDef__bound_mtype(val
* self
) {
2164 val
* var
/* : MClassType */;
2165 val
* var1
/* : MClassType */;
2166 var1
= model__MClassDef__bound_mtype(self
);
2171 /* method model#MClassDef#bound_mtype= for (self: MClassDef, MClassType) */
2172 void model__MClassDef__bound_mtype_61d(val
* self
, val
* p0
) {
2173 self
->attrs
[COLOR_model__MClassDef___64dbound_mtype
].val
= p0
; /* @bound_mtype on <self:MClassDef> */
2176 /* method model#MClassDef#bound_mtype= for (self: Object, MClassType) */
2177 void VIRTUAL_model__MClassDef__bound_mtype_61d(val
* self
, val
* p0
) {
2178 model__MClassDef__bound_mtype_61d(self
, p0
);
2181 /* method model#MClassDef#parameter_names for (self: MClassDef): Array[String] */
2182 val
* model__MClassDef__parameter_names(val
* self
) {
2183 val
* var
/* : Array[String] */;
2184 val
* var1
/* : Array[String] */;
2185 var1
= self
->attrs
[COLOR_model__MClassDef___64dparameter_names
].val
; /* @parameter_names on <self:MClassDef> */
2187 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @parameter_names");
2188 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 433);
2195 /* method model#MClassDef#parameter_names for (self: Object): Array[String] */
2196 val
* VIRTUAL_model__MClassDef__parameter_names(val
* self
) {
2197 val
* var
/* : Array[String] */;
2198 val
* var1
/* : Array[String] */;
2199 var1
= model__MClassDef__parameter_names(self
);
2204 /* method model#MClassDef#parameter_names= for (self: MClassDef, Array[String]) */
2205 void model__MClassDef__parameter_names_61d(val
* self
, val
* p0
) {
2206 self
->attrs
[COLOR_model__MClassDef___64dparameter_names
].val
= p0
; /* @parameter_names on <self:MClassDef> */
2209 /* method model#MClassDef#parameter_names= for (self: Object, Array[String]) */
2210 void VIRTUAL_model__MClassDef__parameter_names_61d(val
* self
, val
* p0
) {
2211 model__MClassDef__parameter_names_61d(self
, p0
);
2214 /* method model#MClassDef#location for (self: MClassDef): Location */
2215 val
* model__MClassDef__location(val
* self
) {
2216 val
* var
/* : Location */;
2217 val
* var1
/* : Location */;
2218 var1
= self
->attrs
[COLOR_model__MClassDef___64dlocation
].val
; /* @location on <self:MClassDef> */
2220 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @location");
2221 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 436);
2228 /* method model#MClassDef#location for (self: Object): Location */
2229 val
* VIRTUAL_model__MClassDef__location(val
* self
) {
2230 val
* var
/* : Location */;
2231 val
* var1
/* : Location */;
2232 var1
= model__MClassDef__location(self
);
2237 /* method model#MClassDef#location= for (self: MClassDef, Location) */
2238 void model__MClassDef__location_61d(val
* self
, val
* p0
) {
2239 self
->attrs
[COLOR_model__MClassDef___64dlocation
].val
= p0
; /* @location on <self:MClassDef> */
2242 /* method model#MClassDef#location= for (self: Object, Location) */
2243 void VIRTUAL_model__MClassDef__location_61d(val
* self
, val
* p0
) {
2244 model__MClassDef__location_61d(self
, p0
);
2247 /* method model#MClassDef#to_s for (self: MClassDef): String */
2248 val
* model__MClassDef__to_s(val
* self
) {
2249 val
* var
/* : String */;
2250 val
* var1
/* : String */;
2251 var1
= self
->attrs
[COLOR_model__MClassDef___64dto_s
].val
; /* @to_s on <self:MClassDef> */
2253 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
2254 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 439);
2261 /* method model#MClassDef#to_s for (self: Object): String */
2262 val
* VIRTUAL_model__MClassDef__to_s(val
* self
) {
2263 val
* var
/* : String */;
2264 val
* var1
/* : String */;
2265 var1
= model__MClassDef__to_s(self
);
2270 /* method model#MClassDef#to_s= for (self: MClassDef, String) */
2271 void model__MClassDef__to_s_61d(val
* self
, val
* p0
) {
2272 self
->attrs
[COLOR_model__MClassDef___64dto_s
].val
= p0
; /* @to_s on <self:MClassDef> */
2275 /* method model#MClassDef#to_s= for (self: Object, String) */
2276 void VIRTUAL_model__MClassDef__to_s_61d(val
* self
, val
* p0
) {
2277 model__MClassDef__to_s_61d(self
, p0
);
2280 /* method model#MClassDef#init for (self: MClassDef, MModule, MClassType, Location, Array[String]) */
2281 void model__MClassDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2282 val
* var_mmodule
/* var mmodule: MModule */;
2283 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
2284 val
* var_location
/* var location: Location */;
2285 val
* var_parameter_names
/* var parameter_names: Array[String] */;
2286 val
* var
/* : MClass */;
2287 long var1
/* : Int */;
2288 long var2
/* : Int */;
2289 short int var3
/* : Bool */;
2290 short int var5
/* : Bool */;
2291 val
* var6
/* : MClass */;
2292 val
* var7
/* : Array[MClassDef] */;
2293 val
* var8
/* : MClass */;
2294 val
* var9
/* : Array[MClassDef] */;
2295 static val
* varonce
;
2296 val
* var10
/* : String */;
2297 char* var11
/* : NativeString */;
2298 long var12
/* : Int */;
2299 val
* var13
/* : String */;
2300 val
* var14
/* : MClass */;
2301 val
* var15
/* : Array[Object] */;
2302 long var16
/* : Int */;
2303 val
* var17
/* : NativeArray[Object] */;
2304 val
* var18
/* : String */;
2306 var_bound_mtype
= p1
;
2308 var_parameter_names
= p3
;
2309 var
= ((val
* (*)(val
*))(var_bound_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_bound_mtype
) /* mclass on <var_bound_mtype:MClassType>*/;
2310 var1
= ((long (*)(val
*))(var
->class->vft
[COLOR_model__MClass__arity
]))(var
) /* arity on <var:MClass>*/;
2311 var2
= ((long (*)(val
*))(var_parameter_names
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_parameter_names
) /* length on <var_parameter_names:Array[String]>*/;
2312 { /* Inline kernel#Int#== (var1,var2) */
2313 var5
= var1
== var2
;
2319 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2320 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 445);
2323 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__bound_mtype_61d
]))(self
, var_bound_mtype
) /* bound_mtype= on <self:MClassDef>*/;
2324 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__mmodule_61d
]))(self
, var_mmodule
) /* mmodule= on <self:MClassDef>*/;
2325 var6
= ((val
* (*)(val
*))(var_bound_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_bound_mtype
) /* mclass on <var_bound_mtype:MClassType>*/;
2326 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass_61d
]))(self
, var6
) /* mclass= on <self:MClassDef>*/;
2327 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__location_61d
]))(self
, var_location
) /* location= on <self:MClassDef>*/;
2328 var7
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__mclassdefs
]))(var_mmodule
) /* mclassdefs on <var_mmodule:MModule>*/;
2329 ((void (*)(val
*, val
*))(var7
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var7
, self
) /* add on <var7:Array[MClassDef]>*/;
2330 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass
]))(self
) /* mclass on <self:MClassDef>*/;
2331 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var8
) /* mclassdefs on <var8:MClass>*/;
2332 ((void (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var9
, self
) /* add on <var9:Array[MClassDef]>*/;
2333 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__parameter_names_61d
]))(self
, var_parameter_names
) /* parameter_names= on <self:MClassDef>*/;
2339 var13
= string__NativeString__to_s_with_length(var11
, var12
);
2343 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass
]))(self
) /* mclass on <self:MClassDef>*/;
2344 var15
= NEW_array__Array(&type_array__Arraykernel__Object
);
2345 { /* var15 = array_instance Array[Object] */
2347 var17
= NEW_array__NativeArray(var16
, &type_array__NativeArraykernel__Object
);
2348 ((struct instance_array__NativeArray
*)var17
)->values
[0] = (val
*) var_mmodule
;
2349 ((struct instance_array__NativeArray
*)var17
)->values
[1] = (val
*) var10
;
2350 ((struct instance_array__NativeArray
*)var17
)->values
[2] = (val
*) var14
;
2351 ((void (*)(val
*, val
*, long))(var15
->class->vft
[COLOR_array__Array__with_native
]))(var15
, var17
, var16
) /* with_native on <var15:Array[Object]>*/;
2353 var18
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_string__Object__to_s
]))(var15
) /* to_s on <var15:Array[Object]>*/;
2354 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__to_s_61d
]))(self
, var18
) /* to_s= on <self:MClassDef>*/;
2357 /* method model#MClassDef#init for (self: Object, MModule, MClassType, Location, Array[String]) */
2358 void VIRTUAL_model__MClassDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
2359 model__MClassDef__init(self
, p0
, p1
, p2
, p3
);
2362 /* method model#MClassDef#supertypes for (self: MClassDef): Array[MClassType] */
2363 val
* model__MClassDef__supertypes(val
* self
) {
2364 val
* var
/* : Array[MClassType] */;
2365 val
* var1
/* : Array[MClassType] */;
2366 var1
= self
->attrs
[COLOR_model__MClassDef___64dsupertypes
].val
; /* @supertypes on <self:MClassDef> */
2368 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @supertypes");
2369 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 456);
2376 /* method model#MClassDef#supertypes for (self: Object): Array[MClassType] */
2377 val
* VIRTUAL_model__MClassDef__supertypes(val
* self
) {
2378 val
* var
/* : Array[MClassType] */;
2379 val
* var1
/* : Array[MClassType] */;
2380 var1
= model__MClassDef__supertypes(self
);
2385 /* method model#MClassDef#supertypes= for (self: MClassDef, Array[MClassType]) */
2386 void model__MClassDef__supertypes_61d(val
* self
, val
* p0
) {
2387 self
->attrs
[COLOR_model__MClassDef___64dsupertypes
].val
= p0
; /* @supertypes on <self:MClassDef> */
2390 /* method model#MClassDef#supertypes= for (self: Object, Array[MClassType]) */
2391 void VIRTUAL_model__MClassDef__supertypes_61d(val
* self
, val
* p0
) {
2392 model__MClassDef__supertypes_61d(self
, p0
);
2395 /* method model#MClassDef#set_supertypes for (self: MClassDef, Array[MClassType]) */
2396 void model__MClassDef__set_supertypes(val
* self
, val
* p0
) {
2397 val
* var_supertypes
/* var supertypes: Array[MClassType] */;
2398 val
* var
/* : nullable POSetElement[MClassDef] */;
2399 val
* var1
/* : null */;
2400 short int var2
/* : Bool */;
2401 val
* var3
/* : MModule */;
2402 val
* var_mmodule
/* var mmodule: MModule */;
2403 val
* var4
/* : Model */;
2404 val
* var_model
/* var model: Model */;
2405 val
* var5
/* : MClassType */;
2406 val
* var_mtype
/* var mtype: MClassType */;
2407 val
* var6
/* : Iterator[nullable Object] */;
2408 short int var7
/* : Bool */;
2409 val
* var8
/* : nullable Object */;
2410 val
* var_supertype
/* var supertype: MClassType */;
2411 val
* var9
/* : Array[MClassType] */;
2412 val
* var10
/* : POSet[MClassType] */;
2413 short int var11
/* : Bool */;
2414 val
* var12
/* : MClass */;
2415 val
* var13
/* : MModule */;
2416 short int var14
/* : Bool */;
2417 short int var_
/* var : Bool */;
2418 val
* var15
/* : MClass */;
2419 val
* var16
/* : MModule */;
2420 short int var17
/* : Bool */;
2421 val
* var18
/* : POSet[MClassType] */;
2422 var_supertypes
= p0
;
2423 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__in_hierarchy
]))(self
) /* in_hierarchy on <self:MClassDef>*/;
2426 var2
= 1; /* is null */
2428 var2
= 0; /* arg is null but recv is not */
2431 fprintf(stderr
, "Runtime error: %s", "Assert \'unique_invocation\' failed");
2432 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 466);
2435 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mmodule
]))(self
) /* mmodule on <self:MClassDef>*/;
2437 var4
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_mmodule__MModule__model
]))(var_mmodule
) /* model on <var_mmodule:MModule>*/;
2439 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(self
) /* bound_mtype on <self:MClassDef>*/;
2441 var6
= ((val
* (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supertypes
) /* iterator on <var_supertypes:Array[MClassType]>*/;
2443 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
2445 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
2446 var_supertype
= var8
;
2447 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__supertypes
]))(self
) /* supertypes on <self:MClassDef>*/;
2448 ((void (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var9
, var_supertype
) /* add on <var9:Array[MClassType]>*/;
2449 var10
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__full_mtype_specialization_hierarchy
]))(var_model
) /* full_mtype_specialization_hierarchy on <var_model:Model>*/;
2450 ((void (*)(val
*, val
*, val
*))(var10
->class->vft
[COLOR_poset__POSet__add_edge
]))(var10
, var_mtype
, var_supertype
) /* add_edge on <var10:POSet[MClassType]>*/;
2451 var12
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass
]))(self
) /* mclass on <self:MClassDef>*/;
2452 var13
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var12
) /* intro_mmodule on <var12:MClass>*/;
2453 var14
= ((short int (*)(val
*, val
*))(var13
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var13
, var_mmodule
) /* == on <var13:MModule>*/;
2456 var15
= ((val
* (*)(val
*))(var_supertype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_supertype
) /* mclass on <var_supertype:MClassType>*/;
2457 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var15
) /* intro_mmodule on <var15:MClass>*/;
2458 var17
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var16
, var_mmodule
) /* == on <var16:MModule>*/;
2464 var18
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__intro_mtype_specialization_hierarchy
]))(var_model
) /* intro_mtype_specialization_hierarchy on <var_model:Model>*/;
2465 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_poset__POSet__add_edge
]))(var18
, var_mtype
, var_supertype
) /* add_edge on <var18:POSet[MClassType]>*/;
2468 CONTINUE_label
: (void)0;
2469 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
2471 BREAK_label
: (void)0;
2474 /* method model#MClassDef#set_supertypes for (self: Object, Array[MClassType]) */
2475 void VIRTUAL_model__MClassDef__set_supertypes(val
* self
, val
* p0
) {
2476 model__MClassDef__set_supertypes(self
, p0
);
2479 /* method model#MClassDef#add_in_hierarchy for (self: MClassDef) */
2480 void model__MClassDef__add_in_hierarchy(val
* self
) {
2481 val
* var
/* : nullable POSetElement[MClassDef] */;
2482 val
* var1
/* : null */;
2483 short int var2
/* : Bool */;
2484 val
* var3
/* : MModule */;
2485 val
* var4
/* : Model */;
2486 val
* var_model
/* var model: Model */;
2487 val
* var5
/* : POSet[MClassDef] */;
2488 val
* var6
/* : POSetElement[Object] */;
2489 val
* var_res
/* var res: POSetElement[MClassDef] */;
2490 val
* var7
/* : MClassType */;
2491 val
* var_mtype
/* var mtype: MClassType */;
2492 val
* var8
/* : MModule */;
2493 val
* var9
/* : Set[MClassDef] */;
2494 val
* var10
/* : Iterator[nullable Object] */;
2495 short int var11
/* : Bool */;
2496 val
* var12
/* : nullable Object */;
2497 val
* var_mclassdef
/* var mclassdef: MClassDef */;
2498 val
* var13
/* : POSet[Object] */;
2499 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__in_hierarchy
]))(self
) /* in_hierarchy on <self:MClassDef>*/;
2502 var2
= 1; /* is null */
2504 var2
= 0; /* arg is null but recv is not */
2507 fprintf(stderr
, "Runtime error: %s", "Assert \'unique_invocation\' failed");
2508 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 491);
2511 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mmodule
]))(self
) /* mmodule on <self:MClassDef>*/;
2512 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_mmodule__MModule__model
]))(var3
) /* model on <var3:MModule>*/;
2514 var5
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mclassdef_hierarchy
]))(var_model
) /* mclassdef_hierarchy on <var_model:Model>*/;
2515 var6
= ((val
* (*)(val
*, val
*))(var5
->class->vft
[COLOR_poset__POSet__add_node
]))(var5
, self
) /* add_node on <var5:POSet[MClassDef]>*/;
2517 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassDef__in_hierarchy_61d
]))(self
, var_res
) /* in_hierarchy= on <self:MClassDef>*/;
2518 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(self
) /* bound_mtype on <self:MClassDef>*/;
2520 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mmodule
]))(self
) /* mmodule on <self:MClassDef>*/;
2521 var9
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var8
) /* collect_mclassdefs on <var_mtype:MClassType>*/;
2522 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Set[MClassDef]>*/;
2524 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[nullable Object]>*/;
2526 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[nullable Object]>*/;
2527 var_mclassdef
= var12
;
2528 var13
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_poset__POSetElement__poset
]))(var_res
) /* poset on <var_res:POSetElement[MClassDef]>*/;
2529 ((void (*)(val
*, val
*, val
*))(var13
->class->vft
[COLOR_poset__POSet__add_edge
]))(var13
, self
, var_mclassdef
) /* add_edge on <var13:POSet[Object](POSet[MClassDef])>*/;
2530 CONTINUE_label
: (void)0;
2531 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[nullable Object]>*/;
2533 BREAK_label
: (void)0;
2536 /* method model#MClassDef#add_in_hierarchy for (self: Object) */
2537 void VIRTUAL_model__MClassDef__add_in_hierarchy(val
* self
) {
2538 model__MClassDef__add_in_hierarchy(self
);
2541 /* method model#MClassDef#in_hierarchy for (self: MClassDef): nullable POSetElement[MClassDef] */
2542 val
* model__MClassDef__in_hierarchy(val
* self
) {
2543 val
* var
/* : nullable POSetElement[MClassDef] */;
2544 val
* var1
/* : nullable POSetElement[MClassDef] */;
2545 var1
= self
->attrs
[COLOR_model__MClassDef___64din_hierarchy
].val
; /* @in_hierarchy on <self:MClassDef> */
2550 /* method model#MClassDef#in_hierarchy for (self: Object): nullable POSetElement[MClassDef] */
2551 val
* VIRTUAL_model__MClassDef__in_hierarchy(val
* self
) {
2552 val
* var
/* : nullable POSetElement[MClassDef] */;
2553 val
* var1
/* : nullable POSetElement[MClassDef] */;
2554 var1
= model__MClassDef__in_hierarchy(self
);
2559 /* method model#MClassDef#in_hierarchy= for (self: MClassDef, nullable POSetElement[MClassDef]) */
2560 void model__MClassDef__in_hierarchy_61d(val
* self
, val
* p0
) {
2561 self
->attrs
[COLOR_model__MClassDef___64din_hierarchy
].val
= p0
; /* @in_hierarchy on <self:MClassDef> */
2564 /* method model#MClassDef#in_hierarchy= for (self: Object, nullable POSetElement[MClassDef]) */
2565 void VIRTUAL_model__MClassDef__in_hierarchy_61d(val
* self
, val
* p0
) {
2566 model__MClassDef__in_hierarchy_61d(self
, p0
);
2569 /* method model#MClassDef#is_intro for (self: MClassDef): Bool */
2570 short int model__MClassDef__is_intro(val
* self
) {
2571 short int var
/* : Bool */;
2572 val
* var1
/* : MClass */;
2573 val
* var2
/* : MClassDef */;
2574 short int var3
/* : Bool */;
2575 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassDef__mclass
]))(self
) /* mclass on <self:MClassDef>*/;
2576 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClass__intro
]))(var1
) /* intro on <var1:MClass>*/;
2577 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var2
, self
) /* == on <var2:MClassDef>*/;
2583 /* method model#MClassDef#is_intro for (self: Object): Bool */
2584 short int VIRTUAL_model__MClassDef__is_intro(val
* self
) {
2585 short int var
/* : Bool */;
2586 short int var1
/* : Bool */;
2587 var1
= model__MClassDef__is_intro(self
);
2592 /* method model#MClassDef#intro_mproperties for (self: MClassDef): Array[MProperty] */
2593 val
* model__MClassDef__intro_mproperties(val
* self
) {
2594 val
* var
/* : Array[MProperty] */;
2595 val
* var1
/* : Array[MProperty] */;
2596 var1
= self
->attrs
[COLOR_model__MClassDef___64dintro_mproperties
].val
; /* @intro_mproperties on <self:MClassDef> */
2598 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @intro_mproperties");
2599 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 510);
2606 /* method model#MClassDef#intro_mproperties for (self: Object): Array[MProperty] */
2607 val
* VIRTUAL_model__MClassDef__intro_mproperties(val
* self
) {
2608 val
* var
/* : Array[MProperty] */;
2609 val
* var1
/* : Array[MProperty] */;
2610 var1
= model__MClassDef__intro_mproperties(self
);
2615 /* method model#MClassDef#intro_mproperties= for (self: MClassDef, Array[MProperty]) */
2616 void model__MClassDef__intro_mproperties_61d(val
* self
, val
* p0
) {
2617 self
->attrs
[COLOR_model__MClassDef___64dintro_mproperties
].val
= p0
; /* @intro_mproperties on <self:MClassDef> */
2620 /* method model#MClassDef#intro_mproperties= for (self: Object, Array[MProperty]) */
2621 void VIRTUAL_model__MClassDef__intro_mproperties_61d(val
* self
, val
* p0
) {
2622 model__MClassDef__intro_mproperties_61d(self
, p0
);
2625 /* method model#MClassDef#mpropdefs for (self: MClassDef): Array[MPropDef] */
2626 val
* model__MClassDef__mpropdefs(val
* self
) {
2627 val
* var
/* : Array[MPropDef] */;
2628 val
* var1
/* : Array[MPropDef] */;
2629 var1
= self
->attrs
[COLOR_model__MClassDef___64dmpropdefs
].val
; /* @mpropdefs on <self:MClassDef> */
2631 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdefs");
2632 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 513);
2639 /* method model#MClassDef#mpropdefs for (self: Object): Array[MPropDef] */
2640 val
* VIRTUAL_model__MClassDef__mpropdefs(val
* self
) {
2641 val
* var
/* : Array[MPropDef] */;
2642 val
* var1
/* : Array[MPropDef] */;
2643 var1
= model__MClassDef__mpropdefs(self
);
2648 /* method model#MClassDef#mpropdefs= for (self: MClassDef, Array[MPropDef]) */
2649 void model__MClassDef__mpropdefs_61d(val
* self
, val
* p0
) {
2650 self
->attrs
[COLOR_model__MClassDef___64dmpropdefs
].val
= p0
; /* @mpropdefs on <self:MClassDef> */
2653 /* method model#MClassDef#mpropdefs= for (self: Object, Array[MPropDef]) */
2654 void VIRTUAL_model__MClassDef__mpropdefs_61d(val
* self
, val
* p0
) {
2655 model__MClassDef__mpropdefs_61d(self
, p0
);
2658 /* method model#MType#model for (self: MType): Model */
2659 val
* model__MType__model(val
* self
) {
2660 val
* var
/* : Model */;
2661 const char* var_class_name
;
2662 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
2663 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "model", var_class_name
);
2664 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 546);
2669 /* method model#MType#model for (self: Object): Model */
2670 val
* VIRTUAL_model__MType__model(val
* self
) {
2671 val
* var
/* : Model */;
2672 val
* var1
/* : Model */;
2673 var1
= model__MType__model(self
);
2678 /* method model#MType#is_subtype for (self: MType, MModule, nullable MClassType, MType): Bool */
2679 short int model__MType__is_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2680 short int var
/* : Bool */;
2681 val
* var_mmodule
/* var mmodule: MModule */;
2682 val
* var_anchor
/* var anchor: nullable MClassType */;
2683 val
* var_sup
/* var sup: MType */;
2684 val
* var_sub
/* var sub: MType */;
2685 short int var1
/* : Bool */;
2686 short int var2
/* : Bool */;
2687 val
* var3
/* : null */;
2688 short int var4
/* : Bool */;
2689 short int var5
/* : Bool */;
2690 short int var6
/* : Bool */;
2691 short int var7
/* : Bool */;
2692 short int var8
/* : Bool */;
2693 val
* var9
/* : null */;
2694 short int var10
/* : Bool */;
2695 val
* var11
/* : null */;
2696 short int var12
/* : Bool */;
2697 short int var13
/* : Bool */;
2698 short int var14
/* : Bool */;
2701 short int var_
/* var : Bool */;
2702 short int var15
/* : Bool */;
2705 val
* var18
/* : null */;
2706 short int var19
/* : Bool */;
2707 val
* var20
/* : MClass */;
2708 val
* var21
/* : MClassType */;
2709 short int var22
/* : Bool */;
2710 val
* var23
/* : MType */;
2711 short int var24
/* : Bool */;
2712 short int var25
/* : Bool */;
2715 short int var_28
/* var : Bool */;
2716 short int var29
/* : Bool */;
2719 val
* var32
/* : null */;
2720 short int var33
/* : Bool */;
2721 val
* var34
/* : MClass */;
2722 val
* var35
/* : MClassType */;
2723 short int var36
/* : Bool */;
2724 val
* var37
/* : MType */;
2725 short int var38
/* : Bool */;
2726 short int var_sup_accept_null
/* var sup_accept_null: Bool */;
2727 short int var39
/* : Bool */;
2730 short int var42
/* : Bool */;
2731 val
* var43
/* : MType */;
2732 short int var44
/* : Bool */;
2735 short int var47
/* : Bool */;
2736 short int var48
/* : Bool */;
2739 short int var51
/* : Bool */;
2740 short int var52
/* : Bool */;
2741 val
* var53
/* : MType */;
2742 short int var54
/* : Bool */;
2745 short int var57
/* : Bool */;
2746 short int var58
/* : Bool */;
2749 short int var_61
/* var : Bool */;
2750 short int var62
/* : Bool */;
2753 short int var65
/* : Bool */;
2754 short int var66
/* : Bool */;
2755 short int var67
/* : Bool */;
2758 short int var_70
/* var : Bool */;
2759 short int var71
/* : Bool */;
2762 val
* var74
/* : null */;
2763 short int var75
/* : Bool */;
2764 val
* var76
/* : MType */;
2765 short int var77
/* : Bool */;
2768 short int var80
/* : Bool */;
2769 short int var81
/* : Bool */;
2770 val
* var82
/* : MType */;
2771 short int var83
/* : Bool */;
2774 short int var86
/* : Bool */;
2777 short int var89
/* : Bool */;
2780 short int var92
/* : Bool */;
2781 short int var93
/* : Bool */;
2784 short int var96
/* : Bool */;
2785 short int var97
/* : Bool */;
2786 val
* var98
/* : null */;
2787 short int var99
/* : Bool */;
2788 val
* var100
/* : MType */;
2789 val
* var_resolved_sub
/* var resolved_sub: MClassType */;
2790 val
* var101
/* : Set[MClass] */;
2791 val
* var102
/* : MClass */;
2792 short int var103
/* : Bool */;
2793 short int var_res
/* var res: Bool */;
2794 short int var104
/* : Bool */;
2795 short int var105
/* : Bool */;
2796 short int var107
/* : Bool */;
2797 short int var108
/* : Bool */;
2798 short int var109
/* : Bool */;
2801 short int var112
/* : Bool */;
2802 short int var113
/* : Bool */;
2803 val
* var114
/* : MClass */;
2804 val
* var115
/* : MClassType */;
2805 val
* var_sub2
/* var sub2: MClassType */;
2806 val
* var116
/* : MClass */;
2807 val
* var117
/* : MClass */;
2808 short int var118
/* : Bool */;
2809 val
* var119
/* : Range[Int] */;
2810 long var120
/* : Int */;
2811 val
* var121
/* : MClass */;
2812 long var122
/* : Int */;
2813 val
* var123
/* : Discrete */;
2814 val
* var124
/* : Discrete */;
2815 val
* var125
/* : Iterator[nullable Object] */;
2816 short int var126
/* : Bool */;
2817 val
* var127
/* : nullable Object */;
2818 long var_i
/* var i: Int */;
2819 long var128
/* : Int */;
2820 val
* var129
/* : Array[MType] */;
2821 val
* var130
/* : nullable Object */;
2822 val
* var_sub_arg
/* var sub_arg: MType */;
2823 val
* var131
/* : Array[MType] */;
2824 val
* var132
/* : nullable Object */;
2825 val
* var_sup_arg
/* var sup_arg: MType */;
2826 short int var133
/* : Bool */;
2827 short int var134
/* : Bool */;
2828 short int var135
/* : Bool */;
2829 short int var137
/* : Bool */;
2830 short int var138
/* : Bool */;
2831 short int var139
/* : Bool */;
2836 var1
= ((short int (*)(val
*, val
*))(var_sub
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sub
, var_sup
) /* == on <var_sub:MType>*/;
2844 if (var_anchor
== NULL
) {
2845 var4
= 1; /* is null */
2847 var4
= 0; /* arg is null but recv is not */
2850 var5
= ((short int (*)(val
*))(var_sub
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sub
) /* need_anchor on <var_sub:MType>*/;
2853 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2854 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 559);
2857 var7
= ((short int (*)(val
*))(var_sup
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sup
) /* need_anchor on <var_sup:MType>*/;
2860 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2861 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 560);
2866 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>*/;
2868 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2869 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 562);
2873 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>*/;
2875 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2876 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 563);
2880 /* <var_sub:MType> isa MParameterType */
2881 cltype
= type_model__MParameterType
.color
;
2882 idtype
= type_model__MParameterType
.id
;
2883 if(cltype
>= var_sub
->type
->table_size
) {
2886 var14
= var_sub
->type
->type_table
[cltype
] == idtype
;
2892 /* <var_sub:MType> isa MVirtualType */
2893 cltype16
= type_model__MVirtualType
.color
;
2894 idtype17
= type_model__MVirtualType
.id
;
2895 if(cltype16
>= var_sub
->type
->table_size
) {
2898 var15
= var_sub
->type
->type_table
[cltype16
] == idtype17
;
2904 if (var_anchor
== NULL
) {
2905 var19
= 0; /* is null */
2907 var19
= 1; /* arg is null and recv is not */
2910 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2911 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 570);
2914 var20
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__mclass
]))(var_anchor
) /* mclass on <var_anchor:nullable MClassType(MClassType)>*/;
2915 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_model__MClass__mclass_type
]))(var20
) /* mclass_type on <var20:MClass>*/;
2917 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>*/;
2921 /* <var_sup:MType> isa MParameterType */
2922 cltype26
= type_model__MParameterType
.color
;
2923 idtype27
= type_model__MParameterType
.id
;
2924 if(cltype26
>= var_sup
->type
->table_size
) {
2927 var25
= var_sup
->type
->type_table
[cltype26
] == idtype27
;
2933 /* <var_sup:MType> isa MVirtualType */
2934 cltype30
= type_model__MVirtualType
.color
;
2935 idtype31
= type_model__MVirtualType
.id
;
2936 if(cltype30
>= var_sup
->type
->table_size
) {
2939 var29
= var_sup
->type
->type_table
[cltype30
] == idtype31
;
2945 if (var_anchor
== NULL
) {
2946 var33
= 0; /* is null */
2948 var33
= 1; /* arg is null and recv is not */
2951 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2952 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 574);
2955 var34
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__mclass
]))(var_anchor
) /* mclass on <var_anchor:nullable MClassType(MClassType)>*/;
2956 var35
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_model__MClass__mclass_type
]))(var34
) /* mclass_type on <var34:MClass>*/;
2958 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>*/;
2963 var_sup_accept_null
= var38
;
2964 /* <var_sup:MType> isa MNullableType */
2965 cltype40
= type_model__MNullableType
.color
;
2966 idtype41
= type_model__MNullableType
.id
;
2967 if(cltype40
>= var_sup
->type
->table_size
) {
2970 var39
= var_sup
->type
->type_table
[cltype40
] == idtype41
;
2974 var_sup_accept_null
= var42
;
2975 var43
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_sup
) /* mtype on <var_sup:MType(MNullableType)>*/;
2978 /* <var_sup:MType> isa MNullType */
2979 cltype45
= type_model__MNullType
.color
;
2980 idtype46
= type_model__MNullType
.id
;
2981 if(cltype45
>= var_sup
->type
->table_size
) {
2984 var44
= var_sup
->type
->type_table
[cltype45
] == idtype46
;
2988 var_sup_accept_null
= var47
;
2992 /* <var_sub:MType> isa MNullableType */
2993 cltype49
= type_model__MNullableType
.color
;
2994 idtype50
= type_model__MNullableType
.id
;
2995 if(cltype49
>= var_sub
->type
->table_size
) {
2998 var48
= var_sub
->type
->type_table
[cltype49
] == idtype50
;
3001 var51
= !var_sup_accept_null
;
3008 var53
= ((val
* (*)(val
*))(var_sub
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_sub
) /* mtype on <var_sub:MType(MNullableType)>*/;
3011 /* <var_sub:MType> isa MNullType */
3012 cltype55
= type_model__MNullType
.color
;
3013 idtype56
= type_model__MNullType
.id
;
3014 if(cltype55
>= var_sub
->type
->table_size
) {
3017 var54
= var_sub
->type
->type_table
[cltype55
] == idtype56
;
3020 var
= var_sup_accept_null
;
3025 /* <var_sup:MType> isa MParameterType */
3026 cltype59
= type_model__MParameterType
.color
;
3027 idtype60
= type_model__MParameterType
.id
;
3028 if(cltype59
>= var_sup
->type
->table_size
) {
3031 var58
= var_sup
->type
->type_table
[cltype59
] == idtype60
;
3037 /* <var_sup:MType> isa MVirtualType */
3038 cltype63
= type_model__MVirtualType
.color
;
3039 idtype64
= type_model__MVirtualType
.id
;
3040 if(cltype63
>= var_sup
->type
->table_size
) {
3043 var62
= var_sup
->type
->type_table
[cltype63
] == idtype64
;
3048 var65
= ((short int (*)(val
*, val
*))(var_sub
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sub
, var_sup
) /* == on <var_sub:MType>*/;
3053 /* <var_sub:MType> isa MParameterType */
3054 cltype68
= type_model__MParameterType
.color
;
3055 idtype69
= type_model__MParameterType
.id
;
3056 if(cltype68
>= var_sub
->type
->table_size
) {
3059 var67
= var_sub
->type
->type_table
[cltype68
] == idtype69
;
3065 /* <var_sub:MType> isa MVirtualType */
3066 cltype72
= type_model__MVirtualType
.color
;
3067 idtype73
= type_model__MVirtualType
.id
;
3068 if(cltype72
>= var_sub
->type
->table_size
) {
3071 var71
= var_sub
->type
->type_table
[cltype72
] == idtype73
;
3077 if (var_anchor
== NULL
) {
3078 var75
= 0; /* is null */
3080 var75
= 1; /* arg is null and recv is not */
3083 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3084 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 606);
3087 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>*/;
3089 /* <var_sub:MType> isa MNullableType */
3090 cltype78
= type_model__MNullableType
.color
;
3091 idtype79
= type_model__MNullableType
.id
;
3092 if(cltype78
>= var_sub
->type
->table_size
) {
3095 var77
= var_sub
->type
->type_table
[cltype78
] == idtype79
;
3098 var80
= !var_sup_accept_null
;
3105 var82
= ((val
* (*)(val
*))(var_sub
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_sub
) /* mtype on <var_sub:MType(MNullableType)>*/;
3108 /* <var_sub:MType> isa MNullType */
3109 cltype84
= type_model__MNullType
.color
;
3110 idtype85
= type_model__MNullType
.id
;
3111 if(cltype84
>= var_sub
->type
->table_size
) {
3114 var83
= var_sub
->type
->type_table
[cltype84
] == idtype85
;
3117 var
= var_sup_accept_null
;
3124 /* <var_sub:MType> isa MClassType */
3125 cltype87
= type_model__MClassType
.color
;
3126 idtype88
= type_model__MClassType
.id
;
3127 if(cltype87
>= var_sub
->type
->table_size
) {
3130 var86
= var_sub
->type
->type_table
[cltype87
] == idtype88
;
3133 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3134 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 618);
3137 /* <var_sup:MType> isa MNullType */
3138 cltype90
= type_model__MNullType
.color
;
3139 idtype91
= type_model__MNullType
.id
;
3140 if(cltype90
>= var_sup
->type
->table_size
) {
3143 var89
= var_sup
->type
->type_table
[cltype90
] == idtype91
;
3151 /* <var_sup:MType> isa MClassType */
3152 cltype94
= type_model__MClassType
.color
;
3153 idtype95
= type_model__MClassType
.id
;
3154 if(cltype94
>= var_sup
->type
->table_size
) {
3157 var93
= var_sup
->type
->type_table
[cltype94
] == idtype95
;
3160 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3161 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 625);
3164 var96
= ((short int (*)(val
*, val
*))(var_sub
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_sub
, var_sup
) /* == on <var_sub:MType(MClassType)>*/;
3172 if (var_anchor
== NULL
) {
3173 var99
= 1; /* is null */
3175 var99
= 0; /* arg is null but recv is not */
3178 var_anchor
= var_sub
;
3181 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)>*/;
3182 var_resolved_sub
= var100
;
3183 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>*/;
3184 var102
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sup
) /* mclass on <var_sup:MType(MClassType)>*/;
3185 var103
= ((short int (*)(val
*, val
*))(var101
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var101
, var102
) /* has on <var101:Set[MClass]>*/;
3188 { /* Inline kernel#Bool#== (var_res,var104) */
3189 var107
= var_res
== var104
;
3192 RET_LABEL106
:(void)0;
3200 /* <var_sup:MType(MClassType)> isa MGenericType */
3201 cltype110
= type_model__MGenericType
.color
;
3202 idtype111
= type_model__MGenericType
.id
;
3203 if(cltype110
>= var_sup
->type
->table_size
) {
3206 var109
= var_sup
->type
->type_table
[cltype110
] == idtype111
;
3215 var114
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sup
) /* mclass on <var_sup:MType(MGenericType)>*/;
3216 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)>*/;
3218 var116
= ((val
* (*)(val
*))(var_sub2
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sub2
) /* mclass on <var_sub2:MClassType>*/;
3219 var117
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sup
) /* mclass on <var_sup:MType(MGenericType)>*/;
3220 var118
= ((short int (*)(val
*, val
*))(var116
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var116
, var117
) /* == on <var116:MClass>*/;
3222 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3223 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 637);
3226 var119
= NEW_range__Range(&type_range__Rangekernel__Int
);
3228 var121
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__mclass
]))(var_sup
) /* mclass on <var_sup:MType(MGenericType)>*/;
3229 var122
= ((long (*)(val
*))(var121
->class->vft
[COLOR_model__MClass__arity
]))(var121
) /* arity on <var121:MClass>*/;
3230 var123
= BOX_kernel__Int(var120
); /* autobox from Int to Discrete */
3231 var124
= BOX_kernel__Int(var122
); /* autobox from Int to Discrete */
3232 ((void (*)(val
*, val
*, val
*))(var119
->class->vft
[COLOR_range__Range__without_last
]))(var119
, var123
, var124
) /* without_last on <var119:Range[Int]>*/;
3233 var125
= ((val
* (*)(val
*))(var119
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var119
) /* iterator on <var119:Range[Int]>*/;
3235 var126
= ((short int (*)(val
*))(var125
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var125
) /* is_ok on <var125:Iterator[nullable Object]>*/;
3237 var127
= ((val
* (*)(val
*))(var125
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var125
) /* item on <var125:Iterator[nullable Object]>*/;
3238 var128
= ((struct instance_kernel__Int
*)var127
)->value
; /* autounbox from nullable Object to Int */;
3240 var129
= ((val
* (*)(val
*))(var_sub2
->class->vft
[COLOR_model__MClassType__arguments
]))(var_sub2
) /* arguments on <var_sub2:MClassType>*/;
3241 var130
= ((val
* (*)(val
*, long))(var129
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var129
, var_i
) /* [] on <var129:Array[MType]>*/;
3242 var_sub_arg
= var130
;
3243 var131
= ((val
* (*)(val
*))(var_sup
->class->vft
[COLOR_model__MClassType__arguments
]))(var_sup
) /* arguments on <var_sup:MType(MGenericType)>*/;
3244 var132
= ((val
* (*)(val
*, long))(var131
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var131
, var_i
) /* [] on <var131:Array[MType]>*/;
3245 var_sup_arg
= var132
;
3246 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>*/;
3249 { /* Inline kernel#Bool#== (var_res,var134) */
3250 var137
= var_res
== var134
;
3253 RET_LABEL136
:(void)0;
3261 CONTINUE_label
: (void)0;
3262 ((void (*)(val
*))(var125
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var125
) /* next on <var125:Iterator[nullable Object]>*/;
3264 BREAK_label
: (void)0;
3271 /* method model#MType#is_subtype for (self: Object, MModule, nullable MClassType, MType): Bool */
3272 short int VIRTUAL_model__MType__is_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3273 short int var
/* : Bool */;
3274 short int var1
/* : Bool */;
3275 var1
= model__MType__is_subtype(self
, p0
, p1
, p2
);
3280 /* method model#MType#anchor_to for (self: MType, MModule, MClassType): MType */
3281 val
* model__MType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
3282 val
* var
/* : MType */;
3283 val
* var_mmodule
/* var mmodule: MModule */;
3284 val
* var_anchor
/* var anchor: MClassType */;
3285 short int var1
/* : Bool */;
3286 short int var2
/* : Bool */;
3287 short int var3
/* : Bool */;
3288 short int var4
/* : Bool */;
3289 val
* var5
/* : null */;
3290 short int var6
/* : Bool */;
3291 val
* var7
/* : MType */;
3292 val
* var_res
/* var res: MType */;
3293 short int var8
/* : Bool */;
3294 short int var9
/* : Bool */;
3297 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
3304 var3
= ((short int (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MType__need_anchor
]))(var_anchor
) /* need_anchor on <var_anchor:MClassType>*/;
3307 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3308 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 682);
3313 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>*/;
3315 var8
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__need_anchor
]))(var_res
) /* need_anchor on <var_res:MType>*/;
3318 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3319 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 685);
3327 /* method model#MType#anchor_to for (self: Object, MModule, MClassType): MType */
3328 val
* VIRTUAL_model__MType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
3329 val
* var
/* : MType */;
3330 val
* var1
/* : MType */;
3331 var1
= model__MType__anchor_to(self
, p0
, p1
);
3336 /* method model#MType#need_anchor for (self: MType): Bool */
3337 short int model__MType__need_anchor(val
* self
) {
3338 short int var
/* : Bool */;
3339 short int var1
/* : Bool */;
3346 /* method model#MType#need_anchor for (self: Object): Bool */
3347 short int VIRTUAL_model__MType__need_anchor(val
* self
) {
3348 short int var
/* : Bool */;
3349 short int var1
/* : Bool */;
3350 var1
= model__MType__need_anchor(self
);
3355 /* method model#MType#supertype_to for (self: MType, MModule, nullable MClassType, MClass): MClassType */
3356 val
* model__MType__supertype_to(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3357 val
* var
/* : MClassType */;
3358 val
* var_mmodule
/* var mmodule: MModule */;
3359 val
* var_anchor
/* var anchor: nullable MClassType */;
3360 val
* var_super_mclass
/* var super_mclass: MClass */;
3361 long var1
/* : Int */;
3362 long var2
/* : Int */;
3363 short int var3
/* : Bool */;
3364 short int var5
/* : Bool */;
3365 val
* var6
/* : MClassType */;
3366 short int var7
/* : Bool */;
3367 short int var8
/* : Bool */;
3370 short int var_
/* var : Bool */;
3371 val
* var9
/* : MClass */;
3372 short int var10
/* : Bool */;
3373 short int var11
/* : Bool */;
3374 val
* var12
/* : null */;
3375 short int var13
/* : Bool */;
3376 val
* var14
/* : MType */;
3377 val
* var_resolved_self
/* var resolved_self: nullable Object */;
3378 val
* var15
/* : Set[MClassType] */;
3379 val
* var_supertypes
/* var supertypes: Set[MClassType] */;
3380 val
* var16
/* : Iterator[nullable Object] */;
3381 short int var17
/* : Bool */;
3382 val
* var18
/* : nullable Object */;
3383 val
* var_supertype
/* var supertype: MClassType */;
3384 val
* var19
/* : MClass */;
3385 short int var20
/* : Bool */;
3386 short int var21
/* : Bool */;
3387 val
* var22
/* : MType */;
3390 var_super_mclass
= p2
;
3391 var1
= ((long (*)(val
*))(var_super_mclass
->class->vft
[COLOR_model__MClass__arity
]))(var_super_mclass
) /* arity on <var_super_mclass:MClass>*/;
3393 { /* Inline kernel#Int#== (var1,var2) */
3394 var5
= var1
== var2
;
3400 var6
= ((val
* (*)(val
*))(var_super_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_super_mclass
) /* mclass_type on <var_super_mclass:MClass>*/;
3405 /* <self:MType> isa MClassType */
3406 cltype
= type_model__MClassType
.color
;
3407 idtype
= type_model__MClassType
.id
;
3408 if(cltype
>= self
->type
->table_size
) {
3411 var8
= self
->type
->type_table
[cltype
] == idtype
;
3415 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MType(MClassType)>*/;
3416 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var9
, var_super_mclass
) /* == on <var9:MClass>*/;
3426 var11
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
3429 if (var_anchor
== NULL
) {
3430 var13
= 0; /* is null */
3432 var13
= 1; /* arg is null and recv is not */
3435 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3436 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 711);
3439 var14
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MType__anchor_to
]))(self
, var_mmodule
, var_anchor
) /* anchor_to on <self:MType>*/;
3440 var_resolved_self
= var14
;
3442 var_resolved_self
= self
;
3444 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)>*/;
3445 var_supertypes
= var15
;
3446 var16
= ((val
* (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supertypes
) /* iterator on <var_supertypes:Set[MClassType]>*/;
3448 var17
= ((short int (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var16
) /* is_ok on <var16:Iterator[nullable Object]>*/;
3450 var18
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var16
) /* item on <var16:Iterator[nullable Object]>*/;
3451 var_supertype
= var18
;
3452 var19
= ((val
* (*)(val
*))(var_supertype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_supertype
) /* mclass on <var_supertype:MClassType>*/;
3453 var20
= ((short int (*)(val
*, val
*))(var19
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var19
, var_super_mclass
) /* == on <var19:MClass>*/;
3456 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>*/;
3461 CONTINUE_label
: (void)0;
3462 ((void (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var16
) /* next on <var16:Iterator[nullable Object]>*/;
3464 BREAK_label
: (void)0;
3465 fprintf(stderr
, "Runtime error: %s", "Aborted");
3466 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 723);
3471 /* method model#MType#supertype_to for (self: Object, MModule, nullable MClassType, MClass): MClassType */
3472 val
* VIRTUAL_model__MType__supertype_to(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3473 val
* var
/* : MClassType */;
3474 val
* var1
/* : MClassType */;
3475 var1
= model__MType__supertype_to(self
, p0
, p1
, p2
);
3480 /* method model#MType#resolve_for for (self: MType, MType, nullable MClassType, MModule, Bool): MType */
3481 val
* model__MType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3482 val
* var
/* : MType */;
3483 const char* var_class_name
;
3484 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3485 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "resolve_for", var_class_name
);
3486 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 726);
3491 /* method model#MType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
3492 val
* VIRTUAL_model__MType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3493 val
* var
/* : MType */;
3494 val
* var1
/* : MType */;
3495 var1
= model__MType__resolve_for(self
, p0
, p1
, p2
, p3
);
3500 /* method model#MType#can_resolve_for for (self: MType, MType, nullable MClassType, MModule): Bool */
3501 short int model__MType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3502 short int var
/* : Bool */;
3503 const char* var_class_name
;
3504 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3505 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name
);
3506 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 798);
3511 /* method model#MType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
3512 short int VIRTUAL_model__MType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3513 short int var
/* : Bool */;
3514 short int var1
/* : Bool */;
3515 var1
= model__MType__can_resolve_for(self
, p0
, p1
, p2
);
3520 /* method model#MType#as_nullable for (self: MType): MType */
3521 val
* model__MType__as_nullable(val
* self
) {
3522 val
* var
/* : MType */;
3523 val
* var1
/* : nullable MType */;
3524 val
* var_res
/* var res: nullable MType */;
3525 val
* var2
/* : null */;
3526 short int var3
/* : Bool */;
3527 val
* var4
/* : MNullableType */;
3528 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MType__as_nullable_cache
]))(self
) /* as_nullable_cache on <self:MType>*/;
3531 if (var_res
== NULL
) {
3532 var3
= 0; /* is null */
3534 var3
= 1; /* arg is null and recv is not */
3541 var4
= NEW_model__MNullableType(&type_model__MNullableType
);
3542 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_model__MNullableType__init
]))(var4
, self
) /* init on <var4:MNullableType>*/;
3544 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MType__as_nullable_cache_61d
]))(self
, var_res
) /* as_nullable_cache= on <self:MType>*/;
3550 /* method model#MType#as_nullable for (self: Object): MType */
3551 val
* VIRTUAL_model__MType__as_nullable(val
* self
) {
3552 val
* var
/* : MType */;
3553 val
* var1
/* : MType */;
3554 var1
= model__MType__as_nullable(self
);
3559 /* method model#MType#as_nullable_cache for (self: MType): nullable MType */
3560 val
* model__MType__as_nullable_cache(val
* self
) {
3561 val
* var
/* : nullable MType */;
3562 val
* var1
/* : nullable MType */;
3563 var1
= self
->attrs
[COLOR_model__MType___64das_nullable_cache
].val
; /* @as_nullable_cache on <self:MType> */
3568 /* method model#MType#as_nullable_cache for (self: Object): nullable MType */
3569 val
* VIRTUAL_model__MType__as_nullable_cache(val
* self
) {
3570 val
* var
/* : nullable MType */;
3571 val
* var1
/* : nullable MType */;
3572 var1
= model__MType__as_nullable_cache(self
);
3577 /* method model#MType#as_nullable_cache= for (self: MType, nullable MType) */
3578 void model__MType__as_nullable_cache_61d(val
* self
, val
* p0
) {
3579 self
->attrs
[COLOR_model__MType___64das_nullable_cache
].val
= p0
; /* @as_nullable_cache on <self:MType> */
3582 /* method model#MType#as_nullable_cache= for (self: Object, nullable MType) */
3583 void VIRTUAL_model__MType__as_nullable_cache_61d(val
* self
, val
* p0
) {
3584 model__MType__as_nullable_cache_61d(self
, p0
);
3587 /* method model#MType#depth for (self: MType): Int */
3588 long model__MType__depth(val
* self
) {
3589 long var
/* : Int */;
3590 long var1
/* : Int */;
3597 /* method model#MType#depth for (self: Object): Int */
3598 long VIRTUAL_model__MType__depth(val
* self
) {
3599 long var
/* : Int */;
3600 long var1
/* : Int */;
3601 var1
= model__MType__depth(self
);
3606 /* method model#MType#length for (self: MType): Int */
3607 long model__MType__length(val
* self
) {
3608 long var
/* : Int */;
3609 long var1
/* : Int */;
3616 /* method model#MType#length for (self: Object): Int */
3617 long VIRTUAL_model__MType__length(val
* self
) {
3618 long var
/* : Int */;
3619 long var1
/* : Int */;
3620 var1
= model__MType__length(self
);
3625 /* method model#MType#collect_mclassdefs for (self: MType, MModule): Set[MClassDef] */
3626 val
* model__MType__collect_mclassdefs(val
* self
, val
* p0
) {
3627 val
* var
/* : Set[MClassDef] */;
3628 const char* var_class_name
;
3629 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3630 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name
);
3631 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 860);
3636 /* method model#MType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
3637 val
* VIRTUAL_model__MType__collect_mclassdefs(val
* self
, val
* p0
) {
3638 val
* var
/* : Set[MClassDef] */;
3639 val
* var1
/* : Set[MClassDef] */;
3640 var1
= model__MType__collect_mclassdefs(self
, p0
);
3645 /* method model#MType#collect_mclasses for (self: MType, MModule): Set[MClass] */
3646 val
* model__MType__collect_mclasses(val
* self
, val
* p0
) {
3647 val
* var
/* : Set[MClass] */;
3648 const char* var_class_name
;
3649 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3650 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name
);
3651 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 870);
3656 /* method model#MType#collect_mclasses for (self: Object, MModule): Set[MClass] */
3657 val
* VIRTUAL_model__MType__collect_mclasses(val
* self
, val
* p0
) {
3658 val
* var
/* : Set[MClass] */;
3659 val
* var1
/* : Set[MClass] */;
3660 var1
= model__MType__collect_mclasses(self
, p0
);
3665 /* method model#MType#collect_mtypes for (self: MType, MModule): Set[MClassType] */
3666 val
* model__MType__collect_mtypes(val
* self
, val
* p0
) {
3667 val
* var
/* : Set[MClassType] */;
3668 const char* var_class_name
;
3669 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
3670 fprintf(stderr
, "Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name
);
3671 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 876);
3676 /* method model#MType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
3677 val
* VIRTUAL_model__MType__collect_mtypes(val
* self
, val
* p0
) {
3678 val
* var
/* : Set[MClassType] */;
3679 val
* var1
/* : Set[MClassType] */;
3680 var1
= model__MType__collect_mtypes(self
, p0
);
3685 /* method model#MType#has_mproperty for (self: MType, MModule, MProperty): Bool */
3686 short int model__MType__has_mproperty(val
* self
, val
* p0
, val
* p1
) {
3687 short int var
/* : Bool */;
3688 val
* var_mmodule
/* var mmodule: MModule */;
3689 val
* var_mproperty
/* var mproperty: MProperty */;
3690 short int var1
/* : Bool */;
3691 short int var2
/* : Bool */;
3692 val
* var3
/* : Set[MClassDef] */;
3693 val
* var4
/* : MClassDef */;
3694 short int var5
/* : Bool */;
3697 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
3700 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3701 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 889);
3704 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(self
, var_mmodule
) /* collect_mclassdefs on <self:MType>*/;
3705 var4
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var_mproperty
) /* intro_mclassdef on <var_mproperty:MProperty>*/;
3706 var5
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var4
) /* has on <var3:Set[MClassDef]>*/;
3712 /* method model#MType#has_mproperty for (self: Object, MModule, MProperty): Bool */
3713 short int VIRTUAL_model__MType__has_mproperty(val
* self
, val
* p0
, val
* p1
) {
3714 short int var
/* : Bool */;
3715 short int var1
/* : Bool */;
3716 var1
= model__MType__has_mproperty(self
, p0
, p1
);
3721 /* method model#MType#init for (self: MType) */
3722 void model__MType__init(val
* self
) {
3725 /* method model#MType#init for (self: Object) */
3726 void VIRTUAL_model__MType__init(val
* self
) {
3727 model__MType__init(self
);
3730 /* method model#MClassType#mclass for (self: MClassType): MClass */
3731 val
* model__MClassType__mclass(val
* self
) {
3732 val
* var
/* : MClass */;
3733 val
* var1
/* : MClass */;
3734 var1
= self
->attrs
[COLOR_model__MClassType___64dmclass
].val
; /* @mclass on <self:MClassType> */
3736 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass");
3737 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 900);
3744 /* method model#MClassType#mclass for (self: Object): MClass */
3745 val
* VIRTUAL_model__MClassType__mclass(val
* self
) {
3746 val
* var
/* : MClass */;
3747 val
* var1
/* : MClass */;
3748 var1
= model__MClassType__mclass(self
);
3753 /* method model#MClassType#mclass= for (self: MClassType, MClass) */
3754 void model__MClassType__mclass_61d(val
* self
, val
* p0
) {
3755 self
->attrs
[COLOR_model__MClassType___64dmclass
].val
= p0
; /* @mclass on <self:MClassType> */
3758 /* method model#MClassType#mclass= for (self: Object, MClass) */
3759 void VIRTUAL_model__MClassType__mclass_61d(val
* self
, val
* p0
) {
3760 model__MClassType__mclass_61d(self
, p0
);
3763 /* method model#MClassType#model for (self: MClassType): Model */
3764 val
* model__MClassType__model(val
* self
) {
3765 val
* var
/* : Model */;
3766 val
* var1
/* : MClass */;
3767 val
* var2
/* : MModule */;
3768 val
* var3
/* : Model */;
3769 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
3770 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var1
) /* intro_mmodule on <var1:MClass>*/;
3771 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_mmodule__MModule__model
]))(var2
) /* model on <var2:MModule>*/;
3777 /* method model#MClassType#model for (self: Object): Model */
3778 val
* VIRTUAL_model__MClassType__model(val
* self
) {
3779 val
* var
/* : Model */;
3780 val
* var1
/* : Model */;
3781 var1
= model__MClassType__model(self
);
3786 /* method model#MClassType#init for (self: MClassType, MClass) */
3787 void model__MClassType__init(val
* self
, val
* p0
) {
3788 val
* var_mclass
/* var mclass: MClass */;
3790 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MClassType>*/;
3791 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__mclass_61d
]))(self
, var_mclass
) /* mclass= on <self:MClassType>*/;
3794 /* method model#MClassType#init for (self: Object, MClass) */
3795 void VIRTUAL_model__MClassType__init(val
* self
, val
* p0
) {
3796 model__MClassType__init(self
, p0
);
3799 /* method model#MClassType#arguments for (self: MClassType): Array[MType] */
3800 val
* model__MClassType__arguments(val
* self
) {
3801 val
* var
/* : Array[MType] */;
3802 val
* var1
/* : Array[MType] */;
3803 var1
= self
->attrs
[COLOR_model__MClassType___64darguments
].val
; /* @arguments on <self:MClassType> */
3805 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @arguments");
3806 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 910);
3813 /* method model#MClassType#arguments for (self: Object): Array[MType] */
3814 val
* VIRTUAL_model__MClassType__arguments(val
* self
) {
3815 val
* var
/* : Array[MType] */;
3816 val
* var1
/* : Array[MType] */;
3817 var1
= model__MClassType__arguments(self
);
3822 /* method model#MClassType#arguments= for (self: MClassType, Array[MType]) */
3823 void model__MClassType__arguments_61d(val
* self
, val
* p0
) {
3824 self
->attrs
[COLOR_model__MClassType___64darguments
].val
= p0
; /* @arguments on <self:MClassType> */
3827 /* method model#MClassType#arguments= for (self: Object, Array[MType]) */
3828 void VIRTUAL_model__MClassType__arguments_61d(val
* self
, val
* p0
) {
3829 model__MClassType__arguments_61d(self
, p0
);
3832 /* method model#MClassType#to_s for (self: MClassType): String */
3833 val
* model__MClassType__to_s(val
* self
) {
3834 val
* var
/* : String */;
3835 val
* var1
/* : MClass */;
3836 val
* var2
/* : String */;
3837 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
3838 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__Object__to_s
]))(var1
) /* to_s on <var1:MClass>*/;
3844 /* method model#MClassType#to_s for (self: Object): String */
3845 val
* VIRTUAL_model__MClassType__to_s(val
* self
) {
3846 val
* var
/* : String */;
3847 val
* var1
/* : String */;
3848 var1
= model__MClassType__to_s(self
);
3853 /* method model#MClassType#need_anchor for (self: MClassType): Bool */
3854 short int model__MClassType__need_anchor(val
* self
) {
3855 short int var
/* : Bool */;
3856 short int var1
/* : Bool */;
3863 /* method model#MClassType#need_anchor for (self: Object): Bool */
3864 short int VIRTUAL_model__MClassType__need_anchor(val
* self
) {
3865 short int var
/* : Bool */;
3866 short int var1
/* : Bool */;
3867 var1
= model__MClassType__need_anchor(self
);
3872 /* method model#MClassType#anchor_to for (self: MClassType, MModule, MClassType): MClassType */
3873 val
* model__MClassType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
3874 val
* var
/* : MClassType */;
3875 val
* var_mmodule
/* var mmodule: MModule */;
3876 val
* var_anchor
/* var anchor: MClassType */;
3877 val
* var1
/* : MType */;
3878 short int var2
/* : Bool */;
3881 const char* var_class_name
;
3884 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__anchor_to
]))(self
, p0
, p1
) /* anchor_to on <self:MClassType>*/;
3885 /* <var1:MType> isa MClassType */
3886 cltype
= type_model__MClassType
.color
;
3887 idtype
= type_model__MClassType
.id
;
3888 if(cltype
>= var1
->type
->table_size
) {
3891 var2
= var1
->type
->type_table
[cltype
] == idtype
;
3894 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
3895 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
3896 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 920);
3904 /* method model#MClassType#anchor_to for (self: Object, MModule, MClassType): MType */
3905 val
* VIRTUAL_model__MClassType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
3906 val
* var
/* : MType */;
3907 val
* var1
/* : MClassType */;
3908 var1
= model__MClassType__anchor_to(self
, p0
, p1
);
3913 /* method model#MClassType#resolve_for for (self: MClassType, MType, nullable MClassType, MModule, Bool): MClassType */
3914 val
* model__MClassType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3915 val
* var
/* : MClassType */;
3916 val
* var_mtype
/* var mtype: MType */;
3917 val
* var_anchor
/* var anchor: nullable MClassType */;
3918 val
* var_mmodule
/* var mmodule: MModule */;
3919 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
3923 var_cleanup_virtual
= p3
;
3929 /* method model#MClassType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
3930 val
* VIRTUAL_model__MClassType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
3931 val
* var
/* : MType */;
3932 val
* var1
/* : MClassType */;
3933 var1
= model__MClassType__resolve_for(self
, p0
, p1
, p2
, p3
);
3938 /* method model#MClassType#can_resolve_for for (self: MClassType, MType, nullable MClassType, MModule): Bool */
3939 short int model__MClassType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3940 short int var
/* : Bool */;
3941 val
* var_mtype
/* var mtype: MType */;
3942 val
* var_anchor
/* var anchor: nullable MClassType */;
3943 val
* var_mmodule
/* var mmodule: MModule */;
3944 short int var1
/* : Bool */;
3954 /* method model#MClassType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
3955 short int VIRTUAL_model__MClassType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3956 short int var
/* : Bool */;
3957 short int var1
/* : Bool */;
3958 var1
= model__MClassType__can_resolve_for(self
, p0
, p1
, p2
);
3963 /* method model#MClassType#collect_mclassdefs for (self: MClassType, MModule): Set[MClassDef] */
3964 val
* model__MClassType__collect_mclassdefs(val
* self
, val
* p0
) {
3965 val
* var
/* : Set[MClassDef] */;
3966 val
* var_mmodule
/* var mmodule: MModule */;
3967 short int var1
/* : Bool */;
3968 short int var2
/* : Bool */;
3969 val
* var3
/* : HashMap[MModule, Set[MClassDef]] */;
3970 val
* var_cache
/* var cache: HashMap[MModule, Set[MClassDef]] */;
3971 short int var4
/* : Bool */;
3972 short int var5
/* : Bool */;
3973 val
* var6
/* : nullable Object */;
3975 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
3978 fprintf(stderr
, "Runtime error: %s", "Assert failed");
3979 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 929);
3982 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mclassdefs_cache
]))(self
) /* collect_mclassdefs_cache on <self:MClassType>*/;
3984 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]]>*/;
3987 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__collect_things
]))(self
, var_mmodule
) /* collect_things on <self:MClassType>*/;
3990 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]]>*/;
3996 /* method model#MClassType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
3997 val
* VIRTUAL_model__MClassType__collect_mclassdefs(val
* self
, val
* p0
) {
3998 val
* var
/* : Set[MClassDef] */;
3999 val
* var1
/* : Set[MClassDef] */;
4000 var1
= model__MClassType__collect_mclassdefs(self
, p0
);
4005 /* method model#MClassType#collect_mclasses for (self: MClassType, MModule): Set[MClass] */
4006 val
* model__MClassType__collect_mclasses(val
* self
, val
* p0
) {
4007 val
* var
/* : Set[MClass] */;
4008 val
* var_mmodule
/* var mmodule: MModule */;
4009 short int var1
/* : Bool */;
4010 short int var2
/* : Bool */;
4011 val
* var3
/* : HashMap[MModule, Set[MClass]] */;
4012 val
* var_cache
/* var cache: HashMap[MModule, Set[MClass]] */;
4013 short int var4
/* : Bool */;
4014 short int var5
/* : Bool */;
4015 val
* var6
/* : nullable Object */;
4017 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
4020 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4021 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 939);
4024 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mclasses_cache
]))(self
) /* collect_mclasses_cache on <self:MClassType>*/;
4026 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]]>*/;
4029 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__collect_things
]))(self
, var_mmodule
) /* collect_things on <self:MClassType>*/;
4032 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]]>*/;
4038 /* method model#MClassType#collect_mclasses for (self: Object, MModule): Set[MClass] */
4039 val
* VIRTUAL_model__MClassType__collect_mclasses(val
* self
, val
* p0
) {
4040 val
* var
/* : Set[MClass] */;
4041 val
* var1
/* : Set[MClass] */;
4042 var1
= model__MClassType__collect_mclasses(self
, p0
);
4047 /* method model#MClassType#collect_mtypes for (self: MClassType, MModule): Set[MClassType] */
4048 val
* model__MClassType__collect_mtypes(val
* self
, val
* p0
) {
4049 val
* var
/* : Set[MClassType] */;
4050 val
* var_mmodule
/* var mmodule: MModule */;
4051 short int var1
/* : Bool */;
4052 short int var2
/* : Bool */;
4053 val
* var3
/* : HashMap[MModule, Set[MClassType]] */;
4054 val
* var_cache
/* var cache: HashMap[MModule, Set[MClassType]] */;
4055 short int var4
/* : Bool */;
4056 short int var5
/* : Bool */;
4057 val
* var6
/* : nullable Object */;
4059 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
4062 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4063 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 949);
4066 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mtypes_cache
]))(self
) /* collect_mtypes_cache on <self:MClassType>*/;
4068 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]]>*/;
4071 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__collect_things
]))(self
, var_mmodule
) /* collect_things on <self:MClassType>*/;
4074 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]]>*/;
4080 /* method model#MClassType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
4081 val
* VIRTUAL_model__MClassType__collect_mtypes(val
* self
, val
* p0
) {
4082 val
* var
/* : Set[MClassType] */;
4083 val
* var1
/* : Set[MClassType] */;
4084 var1
= model__MClassType__collect_mtypes(self
, p0
);
4089 /* method model#MClassType#collect_things for (self: MClassType, MModule) */
4090 void model__MClassType__collect_things(val
* self
, val
* p0
) {
4091 val
* var_mmodule
/* var mmodule: MModule */;
4092 val
* var
/* : HashSet[MClassDef] */;
4093 val
* var_res
/* var res: HashSet[MClassDef] */;
4094 val
* var1
/* : HashSet[MClass] */;
4095 val
* var_seen
/* var seen: HashSet[MClass] */;
4096 val
* var2
/* : HashSet[MClassType] */;
4097 val
* var_types
/* var types: HashSet[MClassType] */;
4098 val
* var3
/* : MClass */;
4099 val
* var4
/* : Array[MClass] */;
4100 long var5
/* : Int */;
4101 val
* var_
/* var : Array[MClass] */;
4102 val
* var6
/* : MClass */;
4103 val
* var_todo
/* var todo: Array[MClass] */;
4104 short int var7
/* : Bool */;
4105 short int var8
/* : Bool */;
4106 val
* var9
/* : nullable Object */;
4107 val
* var_mclass
/* var mclass: MClass */;
4108 val
* var10
/* : Array[MClassDef] */;
4109 val
* var11
/* : Iterator[nullable Object] */;
4110 short int var12
/* : Bool */;
4111 val
* var13
/* : nullable Object */;
4112 val
* var_mclassdef
/* var mclassdef: MClassDef */;
4113 val
* var14
/* : POSetElement[MModule] */;
4114 val
* var15
/* : MModule */;
4115 short int var16
/* : Bool */;
4116 short int var17
/* : Bool */;
4117 val
* var18
/* : Array[MClassType] */;
4118 val
* var19
/* : Iterator[nullable Object] */;
4119 short int var20
/* : Bool */;
4120 val
* var21
/* : nullable Object */;
4121 val
* var_supertype
/* var supertype: MClassType */;
4122 val
* var22
/* : MClass */;
4123 val
* var_superclass
/* var superclass: MClass */;
4124 short int var23
/* : Bool */;
4125 val
* var26
/* : HashMap[MModule, Set[MClassDef]] */;
4126 val
* var27
/* : HashMap[MModule, Set[MClass]] */;
4127 val
* var28
/* : HashMap[MModule, Set[MClassType]] */;
4129 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef
);
4130 ((void (*)(val
*))(var
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var
) /* init on <var:HashSet[MClassDef]>*/;
4132 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
4133 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MClass]>*/;
4135 var2
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType
);
4136 ((void (*)(val
*))(var2
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var2
) /* init on <var2:HashSet[MClassType]>*/;
4138 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
4139 ((void (*)(val
*, val
*))(var_seen
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_seen
, var3
) /* add on <var_seen:HashSet[MClass]>*/;
4140 var4
= NEW_array__Array(&type_array__Arraymodel__MClass
);
4142 ((void (*)(val
*, long))(var4
->class->vft
[COLOR_array__Array__with_capacity
]))(var4
, var5
) /* with_capacity on <var4:Array[MClass]>*/;
4144 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
4145 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__Sequence__push
]))(var_
, var6
) /* push on <var_:Array[MClass]>*/;
4148 var7
= ((short int (*)(val
*))(var_todo
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_todo
) /* is_empty on <var_todo:Array[MClass]>*/;
4151 var9
= ((val
* (*)(val
*))(var_todo
->class->vft
[COLOR_abstract_collection__Sequence__pop
]))(var_todo
) /* pop on <var_todo:Array[MClass]>*/;
4153 var10
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclassdefs
]))(var_mclass
) /* mclassdefs on <var_mclass:MClass>*/;
4154 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[MClassDef]>*/;
4156 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
4158 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
4159 var_mclassdef
= var13
;
4160 var14
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
4161 var15
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_mclassdef
) /* mmodule on <var_mclassdef:MClassDef>*/;
4162 var16
= ((short int (*)(val
*, val
*))(var14
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var14
, var15
) /* <= on <var14:POSetElement[MModule]>*/;
4165 goto CONTINUE_label
;
4168 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_mclassdef
) /* add on <var_res:HashSet[MClassDef]>*/;
4169 var18
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__supertypes
]))(var_mclassdef
) /* supertypes on <var_mclassdef:MClassDef>*/;
4170 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var18
) /* iterator on <var18:Array[MClassType]>*/;
4172 var20
= ((short int (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var19
) /* is_ok on <var19:Iterator[nullable Object]>*/;
4174 var21
= ((val
* (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var19
) /* item on <var19:Iterator[nullable Object]>*/;
4175 var_supertype
= var21
;
4176 ((void (*)(val
*, val
*))(var_types
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types
, var_supertype
) /* add on <var_types:HashSet[MClassType]>*/;
4177 var22
= ((val
* (*)(val
*))(var_supertype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_supertype
) /* mclass on <var_supertype:MClassType>*/;
4178 var_superclass
= var22
;
4179 var23
= ((short int (*)(val
*, val
*))(var_seen
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var_seen
, var_superclass
) /* has on <var_seen:HashSet[MClass]>*/;
4181 goto CONTINUE_label24
;
4184 ((void (*)(val
*, val
*))(var_seen
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_seen
, var_superclass
) /* add on <var_seen:HashSet[MClass]>*/;
4185 ((void (*)(val
*, val
*))(var_todo
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_todo
, var_superclass
) /* add on <var_todo:Array[MClass]>*/;
4186 CONTINUE_label24
: (void)0;
4187 ((void (*)(val
*))(var19
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var19
) /* next on <var19:Iterator[nullable Object]>*/;
4189 BREAK_label24
: (void)0;
4190 CONTINUE_label
: (void)0;
4191 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
4193 BREAK_label
: (void)0;
4194 CONTINUE_label25
: (void)0;
4196 BREAK_label25
: (void)0;
4197 var26
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mclassdefs_cache
]))(self
) /* collect_mclassdefs_cache on <self:MClassType>*/;
4198 ((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]]>*/;
4199 var27
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mclasses_cache
]))(self
) /* collect_mclasses_cache on <self:MClassType>*/;
4200 ((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]]>*/;
4201 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__collect_mtypes_cache
]))(self
) /* collect_mtypes_cache on <self:MClassType>*/;
4202 ((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]]>*/;
4205 /* method model#MClassType#collect_things for (self: Object, MModule) */
4206 void VIRTUAL_model__MClassType__collect_things(val
* self
, val
* p0
) {
4207 model__MClassType__collect_things(self
, p0
);
4210 /* method model#MClassType#collect_mclassdefs_cache for (self: MClassType): HashMap[MModule, Set[MClassDef]] */
4211 val
* model__MClassType__collect_mclassdefs_cache(val
* self
) {
4212 val
* var
/* : HashMap[MModule, Set[MClassDef]] */;
4213 val
* var1
/* : HashMap[MModule, Set[MClassDef]] */;
4214 var1
= self
->attrs
[COLOR_model__MClassType___64dcollect_mclassdefs_cache
].val
; /* @collect_mclassdefs_cache on <self:MClassType> */
4216 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_mclassdefs_cache");
4217 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 987);
4224 /* method model#MClassType#collect_mclassdefs_cache for (self: Object): HashMap[MModule, Set[MClassDef]] */
4225 val
* VIRTUAL_model__MClassType__collect_mclassdefs_cache(val
* self
) {
4226 val
* var
/* : HashMap[MModule, Set[MClassDef]] */;
4227 val
* var1
/* : HashMap[MModule, Set[MClassDef]] */;
4228 var1
= model__MClassType__collect_mclassdefs_cache(self
);
4233 /* method model#MClassType#collect_mclassdefs_cache= for (self: MClassType, HashMap[MModule, Set[MClassDef]]) */
4234 void model__MClassType__collect_mclassdefs_cache_61d(val
* self
, val
* p0
) {
4235 self
->attrs
[COLOR_model__MClassType___64dcollect_mclassdefs_cache
].val
= p0
; /* @collect_mclassdefs_cache on <self:MClassType> */
4238 /* method model#MClassType#collect_mclassdefs_cache= for (self: Object, HashMap[MModule, Set[MClassDef]]) */
4239 void VIRTUAL_model__MClassType__collect_mclassdefs_cache_61d(val
* self
, val
* p0
) {
4240 model__MClassType__collect_mclassdefs_cache_61d(self
, p0
);
4243 /* method model#MClassType#collect_mclasses_cache for (self: MClassType): HashMap[MModule, Set[MClass]] */
4244 val
* model__MClassType__collect_mclasses_cache(val
* self
) {
4245 val
* var
/* : HashMap[MModule, Set[MClass]] */;
4246 val
* var1
/* : HashMap[MModule, Set[MClass]] */;
4247 var1
= self
->attrs
[COLOR_model__MClassType___64dcollect_mclasses_cache
].val
; /* @collect_mclasses_cache on <self:MClassType> */
4249 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_mclasses_cache");
4250 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 988);
4257 /* method model#MClassType#collect_mclasses_cache for (self: Object): HashMap[MModule, Set[MClass]] */
4258 val
* VIRTUAL_model__MClassType__collect_mclasses_cache(val
* self
) {
4259 val
* var
/* : HashMap[MModule, Set[MClass]] */;
4260 val
* var1
/* : HashMap[MModule, Set[MClass]] */;
4261 var1
= model__MClassType__collect_mclasses_cache(self
);
4266 /* method model#MClassType#collect_mclasses_cache= for (self: MClassType, HashMap[MModule, Set[MClass]]) */
4267 void model__MClassType__collect_mclasses_cache_61d(val
* self
, val
* p0
) {
4268 self
->attrs
[COLOR_model__MClassType___64dcollect_mclasses_cache
].val
= p0
; /* @collect_mclasses_cache on <self:MClassType> */
4271 /* method model#MClassType#collect_mclasses_cache= for (self: Object, HashMap[MModule, Set[MClass]]) */
4272 void VIRTUAL_model__MClassType__collect_mclasses_cache_61d(val
* self
, val
* p0
) {
4273 model__MClassType__collect_mclasses_cache_61d(self
, p0
);
4276 /* method model#MClassType#collect_mtypes_cache for (self: MClassType): HashMap[MModule, Set[MClassType]] */
4277 val
* model__MClassType__collect_mtypes_cache(val
* self
) {
4278 val
* var
/* : HashMap[MModule, Set[MClassType]] */;
4279 val
* var1
/* : HashMap[MModule, Set[MClassType]] */;
4280 var1
= self
->attrs
[COLOR_model__MClassType___64dcollect_mtypes_cache
].val
; /* @collect_mtypes_cache on <self:MClassType> */
4282 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @collect_mtypes_cache");
4283 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 989);
4290 /* method model#MClassType#collect_mtypes_cache for (self: Object): HashMap[MModule, Set[MClassType]] */
4291 val
* VIRTUAL_model__MClassType__collect_mtypes_cache(val
* self
) {
4292 val
* var
/* : HashMap[MModule, Set[MClassType]] */;
4293 val
* var1
/* : HashMap[MModule, Set[MClassType]] */;
4294 var1
= model__MClassType__collect_mtypes_cache(self
);
4299 /* method model#MClassType#collect_mtypes_cache= for (self: MClassType, HashMap[MModule, Set[MClassType]]) */
4300 void model__MClassType__collect_mtypes_cache_61d(val
* self
, val
* p0
) {
4301 self
->attrs
[COLOR_model__MClassType___64dcollect_mtypes_cache
].val
= p0
; /* @collect_mtypes_cache on <self:MClassType> */
4304 /* method model#MClassType#collect_mtypes_cache= for (self: Object, HashMap[MModule, Set[MClassType]]) */
4305 void VIRTUAL_model__MClassType__collect_mtypes_cache_61d(val
* self
, val
* p0
) {
4306 model__MClassType__collect_mtypes_cache_61d(self
, p0
);
4309 /* method model#MGenericType#init for (self: MGenericType, MClass, Array[MType]) */
4310 void model__MGenericType__init(val
* self
, val
* p0
, val
* p1
) {
4311 val
* var_mclass
/* var mclass: MClass */;
4312 val
* var_arguments
/* var arguments: Array[MType] */;
4313 val
* var
/* : MClass */;
4314 long var1
/* : Int */;
4315 long var2
/* : Int */;
4316 short int var3
/* : Bool */;
4317 short int var5
/* : Bool */;
4318 short int var6
/* : Bool */;
4319 val
* var7
/* : Iterator[nullable Object] */;
4320 short int var8
/* : Bool */;
4321 val
* var9
/* : nullable Object */;
4322 val
* var_t
/* var t: MType */;
4323 short int var10
/* : Bool */;
4324 short int var11
/* : Bool */;
4325 static val
* varonce
;
4326 val
* var12
/* : String */;
4327 char* var13
/* : NativeString */;
4328 long var14
/* : Int */;
4329 val
* var15
/* : String */;
4330 static val
* varonce16
;
4331 val
* var17
/* : String */;
4332 char* var18
/* : NativeString */;
4333 long var19
/* : Int */;
4334 val
* var20
/* : String */;
4335 val
* var21
/* : String */;
4336 static val
* varonce22
;
4337 val
* var23
/* : String */;
4338 char* var24
/* : NativeString */;
4339 long var25
/* : Int */;
4340 val
* var26
/* : String */;
4341 val
* var27
/* : Array[Object] */;
4342 long var28
/* : Int */;
4343 val
* var29
/* : NativeArray[Object] */;
4344 val
* var30
/* : String */;
4347 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__init
]))(self
, var_mclass
) /* init on <self:MGenericType>*/;
4348 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MGenericType>*/;
4349 var1
= ((long (*)(val
*))(var
->class->vft
[COLOR_model__MClass__arity
]))(var
) /* arity on <var:MClass>*/;
4350 var2
= ((long (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_arguments
) /* length on <var_arguments:Array[MType]>*/;
4351 { /* Inline kernel#Int#== (var1,var2) */
4352 var5
= var1
== var2
;
4358 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4359 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1001);
4362 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__arguments_61d
]))(self
, var_arguments
) /* arguments= on <self:MGenericType>*/;
4364 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_model__MGenericType__need_anchor_61d
]))(self
, var6
) /* need_anchor= on <self:MGenericType>*/;
4365 var7
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_arguments
) /* iterator on <var_arguments:Array[MType]>*/;
4367 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
4369 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
4371 var10
= ((short int (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__need_anchor
]))(var_t
) /* need_anchor on <var_t:MType>*/;
4374 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_model__MGenericType__need_anchor_61d
]))(self
, var11
) /* need_anchor= on <self:MGenericType>*/;
4378 CONTINUE_label
: (void)0;
4379 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
4381 BREAK_label
: (void)0;
4387 var15
= string__NativeString__to_s_with_length(var13
, var14
);
4396 var20
= string__NativeString__to_s_with_length(var18
, var19
);
4400 var21
= ((val
* (*)(val
*, val
*))(var_arguments
->class->vft
[COLOR_string__Collection__join
]))(var_arguments
, var17
) /* join on <var_arguments:Array[MType]>*/;
4406 var26
= string__NativeString__to_s_with_length(var24
, var25
);
4410 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
4411 { /* var27 = array_instance Array[Object] */
4413 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
4414 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var_mclass
;
4415 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var12
;
4416 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var21
;
4417 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var23
;
4418 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
4420 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
4421 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MGenericType__to_s_61d
]))(self
, var30
) /* to_s= on <self:MGenericType>*/;
4424 /* method model#MGenericType#init for (self: Object, MClass, Array[MType]) */
4425 void VIRTUAL_model__MGenericType__init(val
* self
, val
* p0
, val
* p1
) {
4426 model__MGenericType__init(self
, p0
, p1
);
4429 /* method model#MGenericType#to_s for (self: MGenericType): String */
4430 val
* model__MGenericType__to_s(val
* self
) {
4431 val
* var
/* : String */;
4432 val
* var1
/* : String */;
4433 var1
= self
->attrs
[COLOR_model__MGenericType___64dto_s
].val
; /* @to_s on <self:MGenericType> */
4435 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
4436 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1015);
4443 /* method model#MGenericType#to_s for (self: Object): String */
4444 val
* VIRTUAL_model__MGenericType__to_s(val
* self
) {
4445 val
* var
/* : String */;
4446 val
* var1
/* : String */;
4447 var1
= model__MGenericType__to_s(self
);
4452 /* method model#MGenericType#to_s= for (self: MGenericType, String) */
4453 void model__MGenericType__to_s_61d(val
* self
, val
* p0
) {
4454 self
->attrs
[COLOR_model__MGenericType___64dto_s
].val
= p0
; /* @to_s on <self:MGenericType> */
4457 /* method model#MGenericType#to_s= for (self: Object, String) */
4458 void VIRTUAL_model__MGenericType__to_s_61d(val
* self
, val
* p0
) {
4459 model__MGenericType__to_s_61d(self
, p0
);
4462 /* method model#MGenericType#need_anchor for (self: MGenericType): Bool */
4463 short int model__MGenericType__need_anchor(val
* self
) {
4464 short int var
/* : Bool */;
4465 short int var1
/* : Bool */;
4466 var1
= self
->attrs
[COLOR_model__MGenericType___64dneed_anchor
].s
; /* @need_anchor on <self:MGenericType> */
4471 /* method model#MGenericType#need_anchor for (self: Object): Bool */
4472 short int VIRTUAL_model__MGenericType__need_anchor(val
* self
) {
4473 short int var
/* : Bool */;
4474 short int var1
/* : Bool */;
4475 var1
= model__MGenericType__need_anchor(self
);
4480 /* method model#MGenericType#need_anchor= for (self: MGenericType, Bool) */
4481 void model__MGenericType__need_anchor_61d(val
* self
, short int p0
) {
4482 self
->attrs
[COLOR_model__MGenericType___64dneed_anchor
].s
= p0
; /* @need_anchor on <self:MGenericType> */
4485 /* method model#MGenericType#need_anchor= for (self: Object, Bool) */
4486 void VIRTUAL_model__MGenericType__need_anchor_61d(val
* self
, short int p0
) {
4487 model__MGenericType__need_anchor_61d(self
, p0
);
4490 /* method model#MGenericType#resolve_for for (self: MGenericType, MType, nullable MClassType, MModule, Bool): MType */
4491 val
* model__MGenericType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4492 val
* var
/* : MType */;
4493 val
* var_mtype
/* var mtype: MType */;
4494 val
* var_anchor
/* var anchor: nullable MClassType */;
4495 val
* var_mmodule
/* var mmodule: MModule */;
4496 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
4497 short int var1
/* : Bool */;
4498 short int var2
/* : Bool */;
4499 short int var3
/* : Bool */;
4500 val
* var4
/* : Array[MType] */;
4501 val
* var_types
/* var types: Array[MType] */;
4502 val
* var5
/* : Array[MType] */;
4503 val
* var6
/* : Iterator[nullable Object] */;
4504 short int var7
/* : Bool */;
4505 val
* var8
/* : nullable Object */;
4506 val
* var_t
/* var t: MType */;
4507 val
* var9
/* : MType */;
4508 val
* var10
/* : MClass */;
4509 val
* var11
/* : MClassType */;
4513 var_cleanup_virtual
= p3
;
4514 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MGenericType>*/;
4521 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>*/;
4523 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4524 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1024);
4527 var4
= NEW_array__Array(&type_array__Arraymodel__MType
);
4528 ((void (*)(val
*))(var4
->class->vft
[COLOR_array__Array__init
]))(var4
) /* init on <var4:Array[MType]>*/;
4530 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__arguments
]))(self
) /* arguments on <self:MGenericType>*/;
4531 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var5
) /* iterator on <var5:Array[MType]>*/;
4533 var7
= ((short int (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var6
) /* is_ok on <var6:Iterator[nullable Object]>*/;
4535 var8
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var6
) /* item on <var6:Iterator[nullable Object]>*/;
4537 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>*/;
4538 ((void (*)(val
*, val
*))(var_types
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types
, var9
) /* add on <var_types:Array[MType]>*/;
4539 CONTINUE_label
: (void)0;
4540 ((void (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var6
) /* next on <var6:Iterator[nullable Object]>*/;
4542 BREAK_label
: (void)0;
4543 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MGenericType>*/;
4544 var11
= ((val
* (*)(val
*, val
*))(var10
->class->vft
[COLOR_model__MClass__get_mtype
]))(var10
, var_types
) /* get_mtype on <var10:MClass>*/;
4550 /* method model#MGenericType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
4551 val
* VIRTUAL_model__MGenericType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4552 val
* var
/* : MType */;
4553 val
* var1
/* : MType */;
4554 var1
= model__MGenericType__resolve_for(self
, p0
, p1
, p2
, p3
);
4559 /* method model#MGenericType#can_resolve_for for (self: MGenericType, MType, nullable MClassType, MModule): Bool */
4560 short int model__MGenericType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4561 short int var
/* : Bool */;
4562 val
* var_mtype
/* var mtype: MType */;
4563 val
* var_anchor
/* var anchor: nullable MClassType */;
4564 val
* var_mmodule
/* var mmodule: MModule */;
4565 short int var1
/* : Bool */;
4566 short int var2
/* : Bool */;
4567 short int var3
/* : Bool */;
4568 val
* var4
/* : Array[MType] */;
4569 val
* var5
/* : Iterator[nullable Object] */;
4570 short int var6
/* : Bool */;
4571 val
* var7
/* : nullable Object */;
4572 val
* var_t
/* var t: MType */;
4573 short int var8
/* : Bool */;
4574 short int var9
/* : Bool */;
4575 short int var10
/* : Bool */;
4576 short int var11
/* : Bool */;
4580 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MGenericType>*/;
4588 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__arguments
]))(self
) /* arguments on <self:MGenericType>*/;
4589 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var4
) /* iterator on <var4:Array[MType]>*/;
4591 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[nullable Object]>*/;
4593 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[nullable Object]>*/;
4595 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>*/;
4603 CONTINUE_label
: (void)0;
4604 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[nullable Object]>*/;
4606 BREAK_label
: (void)0;
4613 /* method model#MGenericType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
4614 short int VIRTUAL_model__MGenericType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4615 short int var
/* : Bool */;
4616 short int var1
/* : Bool */;
4617 var1
= model__MGenericType__can_resolve_for(self
, p0
, p1
, p2
);
4622 /* method model#MGenericType#depth for (self: MGenericType): Int */
4623 long model__MGenericType__depth(val
* self
) {
4624 long var
/* : Int */;
4625 long var1
/* : Int */;
4626 long var_dmax
/* var dmax: Int */;
4627 val
* var2
/* : Array[MType] */;
4628 val
* var3
/* : Iterator[nullable Object] */;
4629 short int var4
/* : Bool */;
4630 val
* var5
/* : nullable Object */;
4631 val
* var_a
/* var a: MType */;
4632 long var6
/* : Int */;
4633 long var_d
/* var d: Int */;
4634 short int var7
/* : Bool */;
4635 short int var9
/* : Bool */;
4638 const char* var_class_name
;
4639 short int var10
/* : Bool */;
4640 long var11
/* : Int */;
4641 long var12
/* : Int */;
4642 long var14
/* : Int */;
4645 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__arguments
]))(self
) /* arguments on <self:MGenericType>*/;
4646 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[MType]>*/;
4648 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
4650 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
4652 var6
= ((long (*)(val
*))(var_a
->class->vft
[COLOR_model__MType__depth
]))(var_a
) /* depth on <var_a:MType>*/;
4654 { /* Inline kernel#Int#> (var_d,var_dmax) */
4655 /* Covariant cast for argument 0 (i) <var_dmax:Int> isa OTHER */
4656 /* <var_dmax:Int> isa OTHER */
4657 var9
= 1; /* easy <var_dmax:Int> isa OTHER*/
4659 var_class_name
= type_kernel__Int
.name
;
4660 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4661 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
4664 var10
= var_d
> var_dmax
;
4673 CONTINUE_label
: (void)0;
4674 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4676 BREAK_label
: (void)0;
4678 { /* Inline kernel#Int#+ (var_dmax,var11) */
4679 var14
= var_dmax
+ var11
;
4682 RET_LABEL13
:(void)0;
4689 /* method model#MGenericType#depth for (self: Object): Int */
4690 long VIRTUAL_model__MGenericType__depth(val
* self
) {
4691 long var
/* : Int */;
4692 long var1
/* : Int */;
4693 var1
= model__MGenericType__depth(self
);
4698 /* method model#MGenericType#length for (self: MGenericType): Int */
4699 long model__MGenericType__length(val
* self
) {
4700 long var
/* : Int */;
4701 long var1
/* : Int */;
4702 long var_res
/* var res: Int */;
4703 val
* var2
/* : Array[MType] */;
4704 val
* var3
/* : Iterator[nullable Object] */;
4705 short int var4
/* : Bool */;
4706 val
* var5
/* : nullable Object */;
4707 val
* var_a
/* var a: MType */;
4708 long var6
/* : Int */;
4709 long var7
/* : Int */;
4710 long var9
/* : Int */;
4713 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__arguments
]))(self
) /* arguments on <self:MGenericType>*/;
4714 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[MType]>*/;
4716 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
4718 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
4720 var6
= ((long (*)(val
*))(var_a
->class->vft
[COLOR_model__MType__length
]))(var_a
) /* length on <var_a:MType>*/;
4721 { /* Inline kernel#Int#+ (var_res,var6) */
4722 var9
= var_res
+ var6
;
4728 CONTINUE_label
: (void)0;
4729 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
4731 BREAK_label
: (void)0;
4737 /* method model#MGenericType#length for (self: Object): Int */
4738 long VIRTUAL_model__MGenericType__length(val
* self
) {
4739 long var
/* : Int */;
4740 long var1
/* : Int */;
4741 var1
= model__MGenericType__length(self
);
4746 /* method model#MVirtualType#mproperty for (self: MVirtualType): MProperty */
4747 val
* model__MVirtualType__mproperty(val
* self
) {
4748 val
* var
/* : MProperty */;
4749 val
* var1
/* : MProperty */;
4750 var1
= self
->attrs
[COLOR_model__MVirtualType___64dmproperty
].val
; /* @mproperty on <self:MVirtualType> */
4752 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperty");
4753 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1066);
4760 /* method model#MVirtualType#mproperty for (self: Object): MProperty */
4761 val
* VIRTUAL_model__MVirtualType__mproperty(val
* self
) {
4762 val
* var
/* : MProperty */;
4763 val
* var1
/* : MProperty */;
4764 var1
= model__MVirtualType__mproperty(self
);
4769 /* method model#MVirtualType#mproperty= for (self: MVirtualType, MProperty) */
4770 void model__MVirtualType__mproperty_61d(val
* self
, val
* p0
) {
4771 self
->attrs
[COLOR_model__MVirtualType___64dmproperty
].val
= p0
; /* @mproperty on <self:MVirtualType> */
4774 /* method model#MVirtualType#mproperty= for (self: Object, MProperty) */
4775 void VIRTUAL_model__MVirtualType__mproperty_61d(val
* self
, val
* p0
) {
4776 model__MVirtualType__mproperty_61d(self
, p0
);
4779 /* method model#MVirtualType#model for (self: MVirtualType): Model */
4780 val
* model__MVirtualType__model(val
* self
) {
4781 val
* var
/* : Model */;
4782 val
* var1
/* : MProperty */;
4783 val
* var2
/* : MClassDef */;
4784 val
* var3
/* : MModule */;
4785 val
* var4
/* : Model */;
4786 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(self
) /* mproperty on <self:MVirtualType>*/;
4787 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(var1
) /* intro_mclassdef on <var1:MProperty>*/;
4788 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var2
) /* mmodule on <var2:MClassDef>*/;
4789 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_mmodule__MModule__model
]))(var3
) /* model on <var3:MModule>*/;
4795 /* method model#MVirtualType#model for (self: Object): Model */
4796 val
* VIRTUAL_model__MVirtualType__model(val
* self
) {
4797 val
* var
/* : Model */;
4798 val
* var1
/* : Model */;
4799 var1
= model__MVirtualType__model(self
);
4804 /* method model#MVirtualType#lookup_bound for (self: MVirtualType, MModule, MType): MType */
4805 val
* model__MVirtualType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
4806 val
* var
/* : MType */;
4807 val
* var_mmodule
/* var mmodule: MModule */;
4808 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
4809 short int var1
/* : Bool */;
4810 short int var2
/* : Bool */;
4811 val
* var3
/* : MProperty */;
4812 val
* var4
/* : Array[MPropDef] */;
4813 val
* var_props
/* var props: Array[MPropDef] */;
4814 short int var5
/* : Bool */;
4815 long var6
/* : Int */;
4816 long var7
/* : Int */;
4817 short int var8
/* : Bool */;
4818 short int var10
/* : Bool */;
4819 val
* var11
/* : nullable Object */;
4820 short int var12
/* : Bool */;
4823 const char* var_class_name
;
4824 val
* var13
/* : nullable MType */;
4825 val
* var14
/* : ArraySet[MType] */;
4826 val
* var_types
/* var types: ArraySet[MType] */;
4827 val
* var15
/* : Iterator[nullable Object] */;
4828 short int var16
/* : Bool */;
4829 val
* var17
/* : nullable Object */;
4830 val
* var_p
/* var p: MPropDef */;
4831 short int var18
/* : Bool */;
4834 const char* var_class_name21
;
4835 val
* var22
/* : nullable MType */;
4836 long var23
/* : Int */;
4837 long var24
/* : Int */;
4838 short int var25
/* : Bool */;
4839 short int var27
/* : Bool */;
4840 val
* var28
/* : nullable Object */;
4842 var_resolved_receiver
= p1
;
4843 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
4846 fprintf(stderr
, "Runtime error: %s", "Assert failed");
4847 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1080);
4850 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(self
) /* mproperty on <self:MVirtualType>*/;
4851 var4
= ((val
* (*)(val
*, val
*, val
*))(var3
->class->vft
[COLOR_model__MProperty__lookup_definitions
]))(var3
, var_mmodule
, var_resolved_receiver
) /* lookup_definitions on <var3:MProperty>*/;
4853 var5
= ((short int (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_props
) /* is_empty on <var_props:Array[MPropDef]>*/;
4855 fprintf(stderr
, "Runtime error: %s", "Aborted");
4856 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1083);
4859 var6
= ((long (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_props
) /* length on <var_props:Array[MPropDef]>*/;
4861 { /* Inline kernel#Int#== (var6,var7) */
4862 var10
= var6
== var7
;
4868 var11
= ((val
* (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_props
) /* first on <var_props:Array[MPropDef]>*/;
4869 /* <var11:nullable Object(MPropDef)> isa MVirtualTypeDef */
4870 cltype
= type_model__MVirtualTypeDef
.color
;
4871 idtype
= type_model__MVirtualTypeDef
.id
;
4872 if(cltype
>= var11
->type
->table_size
) {
4875 var12
= var11
->type
->type_table
[cltype
] == idtype
;
4878 var_class_name
= var11
== NULL ?
"null" : var11
->type
->name
;
4879 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
4880 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1085);
4883 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MVirtualTypeDef__bound
]))(var11
) /* bound on <var11:MPropDef(MVirtualTypeDef)>*/;
4884 if (var13
== NULL
) {
4885 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4886 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1085);
4894 var14
= NEW_array__ArraySet(&type_array__ArraySetmodel__MType
);
4895 ((void (*)(val
*))(var14
->class->vft
[COLOR_array__ArraySet__init
]))(var14
) /* init on <var14:ArraySet[MType]>*/;
4897 var15
= ((val
* (*)(val
*))(var_props
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_props
) /* iterator on <var_props:Array[MPropDef]>*/;
4899 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
4901 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
4903 /* <var_p:MPropDef> isa MVirtualTypeDef */
4904 cltype19
= type_model__MVirtualTypeDef
.color
;
4905 idtype20
= type_model__MVirtualTypeDef
.id
;
4906 if(cltype19
>= var_p
->type
->table_size
) {
4909 var18
= var_p
->type
->type_table
[cltype19
] == idtype20
;
4912 var_class_name21
= var_p
== NULL ?
"null" : var_p
->type
->name
;
4913 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name21
);
4914 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1089);
4917 var22
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MVirtualTypeDef__bound
]))(var_p
) /* bound on <var_p:MPropDef(MVirtualTypeDef)>*/;
4918 if (var22
== NULL
) {
4919 fprintf(stderr
, "Runtime error: %s", "Cast failed");
4920 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1089);
4923 ((void (*)(val
*, val
*))(var_types
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_types
, var22
) /* add on <var_types:ArraySet[MType]>*/;
4924 CONTINUE_label
: (void)0;
4925 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
4927 BREAK_label
: (void)0;
4928 var23
= ((long (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_types
) /* length on <var_types:ArraySet[MType]>*/;
4930 { /* Inline kernel#Int#== (var23,var24) */
4931 var27
= var23
== var24
;
4934 RET_LABEL26
:(void)0;
4937 var28
= ((val
* (*)(val
*))(var_types
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_types
) /* first on <var_types:ArraySet[MType]>*/;
4942 fprintf(stderr
, "Runtime error: %s", "Aborted");
4943 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1094);
4948 /* method model#MVirtualType#lookup_bound for (self: Object, MModule, MType): MType */
4949 val
* VIRTUAL_model__MVirtualType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
4950 val
* var
/* : MType */;
4951 val
* var1
/* : MType */;
4952 var1
= model__MVirtualType__lookup_bound(self
, p0
, p1
);
4957 /* method model#MVirtualType#resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule, Bool): MType */
4958 val
* model__MVirtualType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4959 val
* var
/* : MType */;
4960 val
* var_mtype
/* var mtype: MType */;
4961 val
* var_anchor
/* var anchor: nullable MClassType */;
4962 val
* var_mmodule
/* var mmodule: MModule */;
4963 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
4964 short int var1
/* : Bool */;
4965 short int var2
/* : Bool */;
4966 val
* var3
/* : null */;
4967 short int var4
/* : Bool */;
4968 val
* var5
/* : null */;
4969 short int var6
/* : Bool */;
4970 val
* var7
/* : MType */;
4971 val
* var_resolved_reciever
/* var resolved_reciever: nullable Object */;
4972 val
* var8
/* : MType */;
4973 val
* var_verbatim_bound
/* var verbatim_bound: MType */;
4974 val
* var9
/* : MType */;
4975 val
* var_res
/* var res: MType */;
4976 short int var10
/* : Bool */;
4979 val
* var11
/* : MType */;
4980 short int var12
/* : Bool */;
4983 const char* var_class_name
;
4984 val
* var15
/* : MClass */;
4985 val
* var16
/* : MClassKind */;
4986 val
* var17
/* : MClassKind */;
4987 short int var18
/* : Bool */;
4988 short int var19
/* : Bool */;
4991 short int var22
/* : Bool */;
4992 short int var23
/* : Bool */;
4995 short int var_
/* var : Bool */;
4996 val
* var26
/* : MClass */;
4997 val
* var27
/* : MClassKind */;
4998 val
* var28
/* : MClassKind */;
4999 short int var29
/* : Bool */;
5003 var_cleanup_virtual
= p3
;
5004 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>*/;
5006 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5007 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1099);
5010 var2
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5013 if (var_anchor
== NULL
) {
5014 var4
= 0; /* is null */
5016 var4
= 1; /* arg is null and recv is not */
5019 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5020 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1106);
5025 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>*/;
5026 var_resolved_reciever
= var7
;
5028 var_resolved_reciever
= var_mtype
;
5030 var8
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MVirtualType__lookup_bound
]))(self
, var_mmodule
, var_resolved_reciever
) /* lookup_bound on <self:MVirtualType>*/;
5031 var_verbatim_bound
= var8
;
5032 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>*/;
5034 if (var_cleanup_virtual
){
5039 /* <var_resolved_reciever:nullable Object(MType)> isa MNullableType */
5040 cltype
= type_model__MNullableType
.color
;
5041 idtype
= type_model__MNullableType
.id
;
5042 if(cltype
>= var_resolved_reciever
->type
->table_size
) {
5045 var10
= var_resolved_reciever
->type
->type_table
[cltype
] == idtype
;
5048 var11
= ((val
* (*)(val
*))(var_resolved_reciever
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_resolved_reciever
) /* mtype on <var_resolved_reciever:nullable Object(MNullableType)>*/;
5049 var_resolved_reciever
= var11
;
5052 /* <var_resolved_reciever:nullable Object(MType)> isa MClassType */
5053 cltype13
= type_model__MClassType
.color
;
5054 idtype14
= type_model__MClassType
.id
;
5055 if(cltype13
>= var_resolved_reciever
->type
->table_size
) {
5058 var12
= var_resolved_reciever
->type
->type_table
[cltype13
] == idtype14
;
5061 var_class_name
= var_resolved_reciever
== NULL ?
"null" : var_resolved_reciever
->type
->name
;
5062 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
5063 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1122);
5066 var15
= ((val
* (*)(val
*))(var_resolved_reciever
->class->vft
[COLOR_model__MClassType__mclass
]))(var_resolved_reciever
) /* mclass on <var_resolved_reciever:MType(MClassType)>*/;
5067 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClass__kind
]))(var15
) /* kind on <var15:MClass>*/;
5068 var17
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__enum_kind
]))(self
) /* enum_kind on <self:MVirtualType>*/;
5069 var18
= ((short int (*)(val
*, val
*))(var16
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var16
, var17
) /* == on <var16:MClassKind>*/;
5075 /* <var_res:MType> isa MVirtualType */
5076 cltype20
= type_model__MVirtualType
.color
;
5077 idtype21
= type_model__MVirtualType
.id
;
5078 if(cltype20
>= var_res
->type
->table_size
) {
5081 var19
= var_res
->type
->type_table
[cltype20
] == idtype21
;
5088 /* <var_res:MType> isa MClassType */
5089 cltype24
= type_model__MClassType
.color
;
5090 idtype25
= type_model__MClassType
.id
;
5091 if(cltype24
>= var_res
->type
->table_size
) {
5094 var23
= var_res
->type
->type_table
[cltype24
] == idtype25
;
5098 var26
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MClassType__mclass
]))(var_res
) /* mclass on <var_res:MType(MClassType)>*/;
5099 var27
= ((val
* (*)(val
*))(var26
->class->vft
[COLOR_model__MClass__kind
]))(var26
) /* kind on <var26:MClass>*/;
5100 var28
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__enum_kind
]))(self
) /* enum_kind on <self:MVirtualType>*/;
5101 var29
= ((short int (*)(val
*, val
*))(var27
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var27
, var28
) /* == on <var27:MClassKind>*/;
5116 /* method model#MVirtualType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
5117 val
* VIRTUAL_model__MVirtualType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5118 val
* var
/* : MType */;
5119 val
* var1
/* : MType */;
5120 var1
= model__MVirtualType__resolve_for(self
, p0
, p1
, p2
, p3
);
5125 /* method model#MVirtualType#can_resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule): Bool */
5126 short int model__MVirtualType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5127 short int var
/* : Bool */;
5128 val
* var_mtype
/* var mtype: MType */;
5129 val
* var_anchor
/* var anchor: nullable MClassType */;
5130 val
* var_mmodule
/* var mmodule: MModule */;
5131 short int var1
/* : Bool */;
5132 val
* var2
/* : null */;
5133 short int var3
/* : Bool */;
5134 val
* var4
/* : MType */;
5135 val
* var5
/* : MProperty */;
5136 short int var6
/* : Bool */;
5140 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5143 if (var_anchor
== NULL
) {
5144 var3
= 0; /* is null */
5146 var3
= 1; /* arg is null and recv is not */
5149 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5150 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1138);
5153 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>*/;
5157 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(self
) /* mproperty on <self:MVirtualType>*/;
5158 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>*/;
5164 /* method model#MVirtualType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
5165 short int VIRTUAL_model__MVirtualType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5166 short int var
/* : Bool */;
5167 short int var1
/* : Bool */;
5168 var1
= model__MVirtualType__can_resolve_for(self
, p0
, p1
, p2
);
5173 /* method model#MVirtualType#to_s for (self: MVirtualType): String */
5174 val
* model__MVirtualType__to_s(val
* self
) {
5175 val
* var
/* : String */;
5176 val
* var1
/* : MProperty */;
5177 val
* var2
/* : String */;
5178 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty
]))(self
) /* mproperty on <self:MVirtualType>*/;
5179 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__Object__to_s
]))(var1
) /* to_s on <var1:MProperty>*/;
5185 /* method model#MVirtualType#to_s for (self: Object): String */
5186 val
* VIRTUAL_model__MVirtualType__to_s(val
* self
) {
5187 val
* var
/* : String */;
5188 val
* var1
/* : String */;
5189 var1
= model__MVirtualType__to_s(self
);
5194 /* method model#MVirtualType#init for (self: MVirtualType, MProperty) */
5195 void model__MVirtualType__init(val
* self
, val
* p0
) {
5196 val
* var_mproperty
/* var mproperty: MProperty */;
5198 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MVirtualType>*/;
5199 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MVirtualType__mproperty_61d
]))(self
, var_mproperty
) /* mproperty= on <self:MVirtualType>*/;
5202 /* method model#MVirtualType#init for (self: Object, MProperty) */
5203 void VIRTUAL_model__MVirtualType__init(val
* self
, val
* p0
) {
5204 model__MVirtualType__init(self
, p0
);
5207 /* method model#MParameterType#mclass for (self: MParameterType): MClass */
5208 val
* model__MParameterType__mclass(val
* self
) {
5209 val
* var
/* : MClass */;
5210 val
* var1
/* : MClass */;
5211 var1
= self
->attrs
[COLOR_model__MParameterType___64dmclass
].val
; /* @mclass on <self:MParameterType> */
5213 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclass");
5214 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1180);
5221 /* method model#MParameterType#mclass for (self: Object): MClass */
5222 val
* VIRTUAL_model__MParameterType__mclass(val
* self
) {
5223 val
* var
/* : MClass */;
5224 val
* var1
/* : MClass */;
5225 var1
= model__MParameterType__mclass(self
);
5230 /* method model#MParameterType#mclass= for (self: MParameterType, MClass) */
5231 void model__MParameterType__mclass_61d(val
* self
, val
* p0
) {
5232 self
->attrs
[COLOR_model__MParameterType___64dmclass
].val
= p0
; /* @mclass on <self:MParameterType> */
5235 /* method model#MParameterType#mclass= for (self: Object, MClass) */
5236 void VIRTUAL_model__MParameterType__mclass_61d(val
* self
, val
* p0
) {
5237 model__MParameterType__mclass_61d(self
, p0
);
5240 /* method model#MParameterType#model for (self: MParameterType): Model */
5241 val
* model__MParameterType__model(val
* self
) {
5242 val
* var
/* : Model */;
5243 val
* var1
/* : MClass */;
5244 val
* var2
/* : MModule */;
5245 val
* var3
/* : Model */;
5246 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5247 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MClass__intro_mmodule
]))(var1
) /* intro_mmodule on <var1:MClass>*/;
5248 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_mmodule__MModule__model
]))(var2
) /* model on <var2:MModule>*/;
5254 /* method model#MParameterType#model for (self: Object): Model */
5255 val
* VIRTUAL_model__MParameterType__model(val
* self
) {
5256 val
* var
/* : Model */;
5257 val
* var1
/* : Model */;
5258 var1
= model__MParameterType__model(self
);
5263 /* method model#MParameterType#rank for (self: MParameterType): Int */
5264 long model__MParameterType__rank(val
* self
) {
5265 long var
/* : Int */;
5266 long var1
/* : Int */;
5267 var1
= self
->attrs
[COLOR_model__MParameterType___64drank
].l
; /* @rank on <self:MParameterType> */
5272 /* method model#MParameterType#rank for (self: Object): Int */
5273 long VIRTUAL_model__MParameterType__rank(val
* self
) {
5274 long var
/* : Int */;
5275 long var1
/* : Int */;
5276 var1
= model__MParameterType__rank(self
);
5281 /* method model#MParameterType#rank= for (self: MParameterType, Int) */
5282 void model__MParameterType__rank_61d(val
* self
, long p0
) {
5283 self
->attrs
[COLOR_model__MParameterType___64drank
].l
= p0
; /* @rank on <self:MParameterType> */
5286 /* method model#MParameterType#rank= for (self: Object, Int) */
5287 void VIRTUAL_model__MParameterType__rank_61d(val
* self
, long p0
) {
5288 model__MParameterType__rank_61d(self
, p0
);
5291 /* method model#MParameterType#to_s for (self: MParameterType): String */
5292 val
* model__MParameterType__to_s(val
* self
) {
5293 val
* var
/* : String */;
5294 val
* var1
/* : Array[Object] */;
5295 long var2
/* : Int */;
5296 val
* var_
/* var : Array[Object] */;
5297 static val
* varonce
;
5298 val
* var3
/* : String */;
5299 char* var4
/* : NativeString */;
5300 long var5
/* : Int */;
5301 val
* var6
/* : String */;
5302 val
* var7
/* : MClass */;
5303 static val
* varonce8
;
5304 val
* var9
/* : String */;
5305 char* var10
/* : NativeString */;
5306 long var11
/* : Int */;
5307 val
* var12
/* : String */;
5308 long var13
/* : Int */;
5309 val
* var14
/* : nullable Object */;
5310 static val
* varonce15
;
5311 val
* var16
/* : String */;
5312 char* var17
/* : NativeString */;
5313 long var18
/* : Int */;
5314 val
* var19
/* : String */;
5315 val
* var20
/* : String */;
5316 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
5318 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
5325 var6
= string__NativeString__to_s_with_length(var4
, var5
);
5329 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
5330 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5331 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var7
) /* add on <var_:Array[Object]>*/;
5337 var12
= string__NativeString__to_s_with_length(var10
, var11
);
5341 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var9
) /* add on <var_:Array[Object]>*/;
5342 var13
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__rank
]))(self
) /* rank on <self:MParameterType>*/;
5343 var14
= BOX_kernel__Int(var13
); /* autobox from Int to nullable Object */
5344 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var14
) /* add on <var_:Array[Object]>*/;
5350 var19
= string__NativeString__to_s_with_length(var17
, var18
);
5354 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var16
) /* add on <var_:Array[Object]>*/;
5355 var20
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
5361 /* method model#MParameterType#to_s for (self: Object): String */
5362 val
* VIRTUAL_model__MParameterType__to_s(val
* self
) {
5363 val
* var
/* : String */;
5364 val
* var1
/* : String */;
5365 var1
= model__MParameterType__to_s(self
);
5370 /* method model#MParameterType#lookup_bound for (self: MParameterType, MModule, MType): MType */
5371 val
* model__MParameterType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
5372 val
* var
/* : MType */;
5373 val
* var_mmodule
/* var mmodule: MModule */;
5374 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
5375 short int var1
/* : Bool */;
5376 short int var2
/* : Bool */;
5377 val
* var3
/* : MClass */;
5378 val
* var_goalclass
/* var goalclass: MClass */;
5379 val
* var4
/* : Set[MClassType] */;
5380 val
* var_supertypes
/* var supertypes: Set[MClassType] */;
5381 val
* var5
/* : Iterator[nullable Object] */;
5382 short int var6
/* : Bool */;
5383 val
* var7
/* : nullable Object */;
5384 val
* var_t
/* var t: MClassType */;
5385 val
* var8
/* : MClass */;
5386 short int var9
/* : Bool */;
5387 val
* var10
/* : Array[MType] */;
5388 long var11
/* : Int */;
5389 val
* var12
/* : nullable Object */;
5390 val
* var_res
/* var res: MType */;
5392 var_resolved_receiver
= p1
;
5393 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
5396 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5397 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1200);
5400 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5401 var_goalclass
= var3
;
5402 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>*/;
5403 var_supertypes
= var4
;
5404 var5
= ((val
* (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supertypes
) /* iterator on <var_supertypes:Set[MClassType]>*/;
5406 var6
= ((short int (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var5
) /* is_ok on <var5:Iterator[nullable Object]>*/;
5408 var7
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var5
) /* item on <var5:Iterator[nullable Object]>*/;
5410 var8
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MClassType__mclass
]))(var_t
) /* mclass on <var_t:MClassType>*/;
5411 var9
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var8
, var_goalclass
) /* == on <var8:MClass>*/;
5413 var10
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_model__MClassType__arguments
]))(var_t
) /* arguments on <var_t:MClassType>*/;
5414 var11
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__rank
]))(self
) /* rank on <self:MParameterType>*/;
5415 var12
= ((val
* (*)(val
*, long))(var10
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var10
, var11
) /* [] on <var10:Array[MType]>*/;
5421 CONTINUE_label
: (void)0;
5422 ((void (*)(val
*))(var5
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var5
) /* next on <var5:Iterator[nullable Object]>*/;
5424 BREAK_label
: (void)0;
5425 fprintf(stderr
, "Runtime error: %s", "Aborted");
5426 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1211);
5431 /* method model#MParameterType#lookup_bound for (self: Object, MModule, MType): MType */
5432 val
* VIRTUAL_model__MParameterType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
5433 val
* var
/* : MType */;
5434 val
* var1
/* : MType */;
5435 var1
= model__MParameterType__lookup_bound(self
, p0
, p1
);
5440 /* method model#MParameterType#resolve_for for (self: MParameterType, MType, nullable MClassType, MModule, Bool): MType */
5441 val
* model__MParameterType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5442 val
* var
/* : MType */;
5443 val
* var_mtype
/* var mtype: MType */;
5444 val
* var_anchor
/* var anchor: nullable MClassType */;
5445 val
* var_mmodule
/* var mmodule: MModule */;
5446 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
5447 short int var1
/* : Bool */;
5448 short int var2
/* : Bool */;
5449 short int var3
/* : Bool */;
5452 short int var_
/* var : Bool */;
5453 val
* var4
/* : MClass */;
5454 val
* var5
/* : MClass */;
5455 short int var6
/* : Bool */;
5456 val
* var7
/* : Array[MType] */;
5457 long var8
/* : Int */;
5458 val
* var9
/* : nullable Object */;
5459 short int var10
/* : Bool */;
5460 val
* var11
/* : null */;
5461 short int var12
/* : Bool */;
5462 val
* var13
/* : MClass */;
5463 val
* var14
/* : MClassType */;
5464 short int var15
/* : Bool */;
5465 val
* var16
/* : MType */;
5466 val
* var_resolved_receiver
/* var resolved_receiver: nullable Object */;
5467 short int var17
/* : Bool */;
5470 val
* var20
/* : MType */;
5471 short int var21
/* : Bool */;
5474 val
* var24
/* : MClass */;
5475 val
* var25
/* : MClass */;
5476 short int var26
/* : Bool */;
5477 val
* var27
/* : Array[MType] */;
5478 long var28
/* : Int */;
5479 val
* var29
/* : nullable Object */;
5480 short int var30
/* : Bool */;
5483 val
* var33
/* : MType */;
5484 short int var34
/* : Bool */;
5487 val
* var37
/* : MClass */;
5488 val
* var38
/* : MClass */;
5489 short int var39
/* : Bool */;
5490 val
* var40
/* : Array[MType] */;
5491 long var41
/* : Int */;
5492 val
* var42
/* : nullable Object */;
5493 val
* var_res
/* var res: MType */;
5494 short int var43
/* : Bool */;
5495 val
* var44
/* : null */;
5496 short int var45
/* : Bool */;
5497 val
* var46
/* : null */;
5498 short int var47
/* : Bool */;
5499 val
* var48
/* : MType */;
5500 val
* var49
/* : MType */;
5501 val
* var_verbatim_bound
/* var verbatim_bound: MType */;
5502 val
* var50
/* : MType */;
5503 val
* var_res51
/* var res: MType */;
5507 var_cleanup_virtual
= p3
;
5508 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>*/;
5510 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5511 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1216);
5514 /* <var_mtype:MType> isa MGenericType */
5515 cltype
= type_model__MGenericType
.color
;
5516 idtype
= type_model__MGenericType
.id
;
5517 if(cltype
>= var_mtype
->type
->table_size
) {
5520 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
5524 var4
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__mclass
]))(var_mtype
) /* mclass on <var_mtype:MType(MGenericType)>*/;
5525 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5526 var6
= ((short int (*)(val
*, val
*))(var4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var4
, var5
) /* == on <var4:MClass>*/;
5532 var7
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MClassType__arguments
]))(var_mtype
) /* arguments on <var_mtype:MType(MGenericType)>*/;
5533 var8
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__rank
]))(self
) /* rank on <self:MParameterType>*/;
5534 var9
= ((val
* (*)(val
*, long))(var7
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var7
, var8
) /* [] on <var7:Array[MType]>*/;
5539 var10
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5542 if (var_anchor
== NULL
) {
5543 var12
= 0; /* is null */
5545 var12
= 1; /* arg is null and recv is not */
5548 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5549 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1229);
5552 var13
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__mclass
]))(var_anchor
) /* mclass on <var_anchor:nullable MClassType(MClassType)>*/;
5553 var14
= ((val
* (*)(val
*))(var13
->class->vft
[COLOR_model__MClass__mclass_type
]))(var13
) /* mclass_type on <var13:MClass>*/;
5555 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>*/;
5556 var_resolved_receiver
= var16
;
5558 var_resolved_receiver
= var_mtype
;
5560 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
5561 cltype18
= type_model__MNullableType
.color
;
5562 idtype19
= type_model__MNullableType
.id
;
5563 if(cltype18
>= var_resolved_receiver
->type
->table_size
) {
5566 var17
= var_resolved_receiver
->type
->type_table
[cltype18
] == idtype19
;
5569 var20
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_resolved_receiver
) /* mtype on <var_resolved_receiver:nullable Object(MNullableType)>*/;
5570 var_resolved_receiver
= var20
;
5573 /* <var_resolved_receiver:nullable Object(MType)> isa MParameterType */
5574 cltype22
= type_model__MParameterType
.color
;
5575 idtype23
= type_model__MParameterType
.id
;
5576 if(cltype22
>= var_resolved_receiver
->type
->table_size
) {
5579 var21
= var_resolved_receiver
->type
->type_table
[cltype22
] == idtype23
;
5582 var24
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MParameterType__mclass
]))(var_resolved_receiver
) /* mclass on <var_resolved_receiver:nullable Object(MParameterType)>*/;
5583 if (var_anchor
== NULL
) {
5584 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5585 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1236);
5588 var25
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__mclass
]))(var_anchor
) /* mclass on <var_anchor:nullable MClassType>*/;
5590 var26
= ((short int (*)(val
*, val
*))(var24
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var24
, var25
) /* == on <var24:MClass>*/;
5592 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5593 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1236);
5596 if (var_anchor
== NULL
) {
5597 fprintf(stderr
, "Runtime error: %s", "Reciever is null");
5598 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1237);
5601 var27
= ((val
* (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MClassType__arguments
]))(var_anchor
) /* arguments on <var_anchor:nullable MClassType>*/;
5603 var28
= ((long (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MParameterType__rank
]))(var_resolved_receiver
) /* rank on <var_resolved_receiver:nullable Object(MParameterType)>*/;
5604 var29
= ((val
* (*)(val
*, long))(var27
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var27
, var28
) /* [] on <var27:Array[MType]>*/;
5605 var_resolved_receiver
= var29
;
5606 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
5607 cltype31
= type_model__MNullableType
.color
;
5608 idtype32
= type_model__MNullableType
.id
;
5609 if(cltype31
>= var_resolved_receiver
->type
->table_size
) {
5612 var30
= var_resolved_receiver
->type
->type_table
[cltype31
] == idtype32
;
5615 var33
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_resolved_receiver
) /* mtype on <var_resolved_receiver:nullable Object(MNullableType)>*/;
5616 var_resolved_receiver
= var33
;
5621 /* <var_resolved_receiver:nullable Object(MType)> isa MClassType */
5622 cltype35
= type_model__MClassType
.color
;
5623 idtype36
= type_model__MClassType
.id
;
5624 if(cltype35
>= var_resolved_receiver
->type
->table_size
) {
5627 var34
= var_resolved_receiver
->type
->type_table
[cltype35
] == idtype36
;
5630 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5631 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1240);
5634 var37
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MClassType__mclass
]))(var_resolved_receiver
) /* mclass on <var_resolved_receiver:nullable Object(MClassType)>*/;
5635 var38
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5636 var39
= ((short int (*)(val
*, val
*))(var37
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var37
, var38
) /* == on <var37:MClass>*/;
5638 var40
= ((val
* (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MClassType__arguments
]))(var_resolved_receiver
) /* arguments on <var_resolved_receiver:nullable Object(MClassType)>*/;
5639 var41
= ((long (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__rank
]))(self
) /* rank on <self:MParameterType>*/;
5640 var42
= ((val
* (*)(val
*, long))(var40
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var40
, var41
) /* [] on <var40:Array[MType]>*/;
5646 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)>*/;
5649 if (var_anchor
== NULL
) {
5650 var45
= 0; /* is null */
5652 var45
= 1; /* arg is null and recv is not */
5655 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5656 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1251);
5661 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)>*/;
5662 var_resolved_receiver
= var48
;
5665 var49
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MParameterType__lookup_bound
]))(self
, var_mmodule
, var_resolved_receiver
) /* lookup_bound on <self:MParameterType>*/;
5666 var_verbatim_bound
= var49
;
5667 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>*/;
5674 /* method model#MParameterType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
5675 val
* VIRTUAL_model__MParameterType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5676 val
* var
/* : MType */;
5677 val
* var1
/* : MType */;
5678 var1
= model__MParameterType__resolve_for(self
, p0
, p1
, p2
, p3
);
5683 /* method model#MParameterType#can_resolve_for for (self: MParameterType, MType, nullable MClassType, MModule): Bool */
5684 short int model__MParameterType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5685 short int var
/* : Bool */;
5686 val
* var_mtype
/* var mtype: MType */;
5687 val
* var_anchor
/* var anchor: nullable MClassType */;
5688 val
* var_mmodule
/* var mmodule: MModule */;
5689 short int var1
/* : Bool */;
5690 val
* var2
/* : null */;
5691 short int var3
/* : Bool */;
5692 val
* var4
/* : MType */;
5693 val
* var5
/* : Set[MClassDef] */;
5694 val
* var6
/* : MClass */;
5695 val
* var7
/* : MClassDef */;
5696 short int var8
/* : Bool */;
5700 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
5703 if (var_anchor
== NULL
) {
5704 var3
= 0; /* is null */
5706 var3
= 1; /* arg is null and recv is not */
5709 fprintf(stderr
, "Runtime error: %s", "Assert failed");
5710 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1267);
5713 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>*/;
5717 var5
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var_mmodule
) /* collect_mclassdefs on <var_mtype:MType>*/;
5718 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass
]))(self
) /* mclass on <self:MParameterType>*/;
5719 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_model__MClass__intro
]))(var6
) /* intro on <var6:MClass>*/;
5720 var8
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var5
, var7
) /* has on <var5:Set[MClassDef]>*/;
5726 /* method model#MParameterType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
5727 short int VIRTUAL_model__MParameterType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5728 short int var
/* : Bool */;
5729 short int var1
/* : Bool */;
5730 var1
= model__MParameterType__can_resolve_for(self
, p0
, p1
, p2
);
5735 /* method model#MParameterType#init for (self: MParameterType, MClass, Int) */
5736 void model__MParameterType__init(val
* self
, val
* p0
, long p1
) {
5737 val
* var_mclass
/* var mclass: MClass */;
5738 long var_rank
/* var rank: Int */;
5741 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MParameterType>*/;
5742 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MParameterType__mclass_61d
]))(self
, var_mclass
) /* mclass= on <self:MParameterType>*/;
5743 ((void (*)(val
*, long))(self
->class->vft
[COLOR_model__MParameterType__rank_61d
]))(self
, var_rank
) /* rank= on <self:MParameterType>*/;
5746 /* method model#MParameterType#init for (self: Object, MClass, Int) */
5747 void VIRTUAL_model__MParameterType__init(val
* self
, val
* p0
, long p1
) {
5748 model__MParameterType__init(self
, p0
, p1
);
5751 /* method model#MNullableType#mtype for (self: MNullableType): MType */
5752 val
* model__MNullableType__mtype(val
* self
) {
5753 val
* var
/* : MType */;
5754 val
* var1
/* : MType */;
5755 var1
= self
->attrs
[COLOR_model__MNullableType___64dmtype
].val
; /* @mtype on <self:MNullableType> */
5757 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mtype");
5758 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1284);
5765 /* method model#MNullableType#mtype for (self: Object): MType */
5766 val
* VIRTUAL_model__MNullableType__mtype(val
* self
) {
5767 val
* var
/* : MType */;
5768 val
* var1
/* : MType */;
5769 var1
= model__MNullableType__mtype(self
);
5774 /* method model#MNullableType#mtype= for (self: MNullableType, MType) */
5775 void model__MNullableType__mtype_61d(val
* self
, val
* p0
) {
5776 self
->attrs
[COLOR_model__MNullableType___64dmtype
].val
= p0
; /* @mtype on <self:MNullableType> */
5779 /* method model#MNullableType#mtype= for (self: Object, MType) */
5780 void VIRTUAL_model__MNullableType__mtype_61d(val
* self
, val
* p0
) {
5781 model__MNullableType__mtype_61d(self
, p0
);
5784 /* method model#MNullableType#model for (self: MNullableType): Model */
5785 val
* model__MNullableType__model(val
* self
) {
5786 val
* var
/* : Model */;
5787 val
* var1
/* : MType */;
5788 val
* var2
/* : Model */;
5789 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5790 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MType__model
]))(var1
) /* model on <var1:MType>*/;
5796 /* method model#MNullableType#model for (self: Object): Model */
5797 val
* VIRTUAL_model__MNullableType__model(val
* self
) {
5798 val
* var
/* : Model */;
5799 val
* var1
/* : Model */;
5800 var1
= model__MNullableType__model(self
);
5805 /* method model#MNullableType#init for (self: MNullableType, MType) */
5806 void model__MNullableType__init(val
* self
, val
* p0
) {
5807 val
* var_mtype
/* var mtype: MType */;
5808 static val
* varonce
;
5809 val
* var
/* : String */;
5810 char* var1
/* : NativeString */;
5811 long var2
/* : Int */;
5812 val
* var3
/* : String */;
5813 val
* var4
/* : Array[Object] */;
5814 long var5
/* : Int */;
5815 val
* var6
/* : NativeArray[Object] */;
5816 val
* var7
/* : String */;
5818 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MNullableType>*/;
5819 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype_61d
]))(self
, var_mtype
) /* mtype= on <self:MNullableType>*/;
5825 var3
= string__NativeString__to_s_with_length(var1
, var2
);
5829 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
5830 { /* var4 = array_instance Array[Object] */
5832 var6
= NEW_array__NativeArray(var5
, &type_array__NativeArraykernel__Object
);
5833 ((struct instance_array__NativeArray
*)var6
)->values
[0] = (val
*) var
;
5834 ((struct instance_array__NativeArray
*)var6
)->values
[1] = (val
*) var_mtype
;
5835 ((void (*)(val
*, val
*, long))(var4
->class->vft
[COLOR_array__Array__with_native
]))(var4
, var6
, var5
) /* with_native on <var4:Array[Object]>*/;
5837 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_string__Object__to_s
]))(var4
) /* to_s on <var4:Array[Object]>*/;
5838 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MNullableType__to_s_61d
]))(self
, var7
) /* to_s= on <self:MNullableType>*/;
5841 /* method model#MNullableType#init for (self: Object, MType) */
5842 void VIRTUAL_model__MNullableType__init(val
* self
, val
* p0
) {
5843 model__MNullableType__init(self
, p0
);
5846 /* method model#MNullableType#to_s for (self: MNullableType): String */
5847 val
* model__MNullableType__to_s(val
* self
) {
5848 val
* var
/* : String */;
5849 val
* var1
/* : String */;
5850 var1
= self
->attrs
[COLOR_model__MNullableType___64dto_s
].val
; /* @to_s on <self:MNullableType> */
5852 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
5853 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1295);
5860 /* method model#MNullableType#to_s for (self: Object): String */
5861 val
* VIRTUAL_model__MNullableType__to_s(val
* self
) {
5862 val
* var
/* : String */;
5863 val
* var1
/* : String */;
5864 var1
= model__MNullableType__to_s(self
);
5869 /* method model#MNullableType#to_s= for (self: MNullableType, String) */
5870 void model__MNullableType__to_s_61d(val
* self
, val
* p0
) {
5871 self
->attrs
[COLOR_model__MNullableType___64dto_s
].val
= p0
; /* @to_s on <self:MNullableType> */
5874 /* method model#MNullableType#to_s= for (self: Object, String) */
5875 void VIRTUAL_model__MNullableType__to_s_61d(val
* self
, val
* p0
) {
5876 model__MNullableType__to_s_61d(self
, p0
);
5879 /* method model#MNullableType#need_anchor for (self: MNullableType): Bool */
5880 short int model__MNullableType__need_anchor(val
* self
) {
5881 short int var
/* : Bool */;
5882 val
* var1
/* : MType */;
5883 short int var2
/* : Bool */;
5884 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5885 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_model__MType__need_anchor
]))(var1
) /* need_anchor on <var1:MType>*/;
5891 /* method model#MNullableType#need_anchor for (self: Object): Bool */
5892 short int VIRTUAL_model__MNullableType__need_anchor(val
* self
) {
5893 short int var
/* : Bool */;
5894 short int var1
/* : Bool */;
5895 var1
= model__MNullableType__need_anchor(self
);
5900 /* method model#MNullableType#as_nullable for (self: MNullableType): MType */
5901 val
* model__MNullableType__as_nullable(val
* self
) {
5902 val
* var
/* : MType */;
5908 /* method model#MNullableType#as_nullable for (self: Object): MType */
5909 val
* VIRTUAL_model__MNullableType__as_nullable(val
* self
) {
5910 val
* var
/* : MType */;
5911 val
* var1
/* : MType */;
5912 var1
= model__MNullableType__as_nullable(self
);
5917 /* method model#MNullableType#resolve_for for (self: MNullableType, MType, nullable MClassType, MModule, Bool): MType */
5918 val
* model__MNullableType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5919 val
* var
/* : MType */;
5920 val
* var_mtype
/* var mtype: MType */;
5921 val
* var_anchor
/* var anchor: nullable MClassType */;
5922 val
* var_mmodule
/* var mmodule: MModule */;
5923 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
5924 val
* var1
/* : MType */;
5925 val
* var2
/* : MType */;
5926 val
* var_res
/* var res: MType */;
5927 val
* var3
/* : MType */;
5931 var_cleanup_virtual
= p3
;
5932 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5933 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>*/;
5935 var3
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__as_nullable
]))(var_res
) /* as_nullable on <var_res:MType>*/;
5941 /* method model#MNullableType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
5942 val
* VIRTUAL_model__MNullableType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
5943 val
* var
/* : MType */;
5944 val
* var1
/* : MType */;
5945 var1
= model__MNullableType__resolve_for(self
, p0
, p1
, p2
, p3
);
5950 /* method model#MNullableType#can_resolve_for for (self: MNullableType, MType, nullable MClassType, MModule): Bool */
5951 short int model__MNullableType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5952 short int var
/* : Bool */;
5953 val
* var_mtype
/* var mtype: MType */;
5954 val
* var_anchor
/* var anchor: nullable MClassType */;
5955 val
* var_mmodule
/* var mmodule: MModule */;
5956 val
* var1
/* : MType */;
5957 short int var2
/* : Bool */;
5961 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5962 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>*/;
5968 /* method model#MNullableType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
5969 short int VIRTUAL_model__MNullableType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5970 short int var
/* : Bool */;
5971 short int var1
/* : Bool */;
5972 var1
= model__MNullableType__can_resolve_for(self
, p0
, p1
, p2
);
5977 /* method model#MNullableType#depth for (self: MNullableType): Int */
5978 long model__MNullableType__depth(val
* self
) {
5979 long var
/* : Int */;
5980 val
* var1
/* : MType */;
5981 long var2
/* : Int */;
5982 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
5983 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_model__MType__depth
]))(var1
) /* depth on <var1:MType>*/;
5989 /* method model#MNullableType#depth for (self: Object): Int */
5990 long VIRTUAL_model__MNullableType__depth(val
* self
) {
5991 long var
/* : Int */;
5992 long var1
/* : Int */;
5993 var1
= model__MNullableType__depth(self
);
5998 /* method model#MNullableType#length for (self: MNullableType): Int */
5999 long model__MNullableType__length(val
* self
) {
6000 long var
/* : Int */;
6001 val
* var1
/* : MType */;
6002 long var2
/* : Int */;
6003 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6004 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_model__MType__length
]))(var1
) /* length on <var1:MType>*/;
6010 /* method model#MNullableType#length for (self: Object): Int */
6011 long VIRTUAL_model__MNullableType__length(val
* self
) {
6012 long var
/* : Int */;
6013 long var1
/* : Int */;
6014 var1
= model__MNullableType__length(self
);
6019 /* method model#MNullableType#collect_mclassdefs for (self: MNullableType, MModule): Set[MClassDef] */
6020 val
* model__MNullableType__collect_mclassdefs(val
* self
, val
* p0
) {
6021 val
* var
/* : Set[MClassDef] */;
6022 val
* var_mmodule
/* var mmodule: MModule */;
6023 short int var1
/* : Bool */;
6024 short int var2
/* : Bool */;
6025 val
* var3
/* : MType */;
6026 val
* var4
/* : Set[MClassDef] */;
6028 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MNullableType>*/;
6031 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6032 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1316);
6035 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6036 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var3
, var_mmodule
) /* collect_mclassdefs on <var3:MType>*/;
6042 /* method model#MNullableType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
6043 val
* VIRTUAL_model__MNullableType__collect_mclassdefs(val
* self
, val
* p0
) {
6044 val
* var
/* : Set[MClassDef] */;
6045 val
* var1
/* : Set[MClassDef] */;
6046 var1
= model__MNullableType__collect_mclassdefs(self
, p0
);
6051 /* method model#MNullableType#collect_mclasses for (self: MNullableType, MModule): Set[MClass] */
6052 val
* model__MNullableType__collect_mclasses(val
* self
, val
* p0
) {
6053 val
* var
/* : Set[MClass] */;
6054 val
* var_mmodule
/* var mmodule: MModule */;
6055 short int var1
/* : Bool */;
6056 short int var2
/* : Bool */;
6057 val
* var3
/* : MType */;
6058 val
* var4
/* : Set[MClass] */;
6060 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MNullableType>*/;
6063 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6064 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1322);
6067 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6068 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_model__MType__collect_mclasses
]))(var3
, var_mmodule
) /* collect_mclasses on <var3:MType>*/;
6074 /* method model#MNullableType#collect_mclasses for (self: Object, MModule): Set[MClass] */
6075 val
* VIRTUAL_model__MNullableType__collect_mclasses(val
* self
, val
* p0
) {
6076 val
* var
/* : Set[MClass] */;
6077 val
* var1
/* : Set[MClass] */;
6078 var1
= model__MNullableType__collect_mclasses(self
, p0
);
6083 /* method model#MNullableType#collect_mtypes for (self: MNullableType, MModule): Set[MClassType] */
6084 val
* model__MNullableType__collect_mtypes(val
* self
, val
* p0
) {
6085 val
* var
/* : Set[MClassType] */;
6086 val
* var_mmodule
/* var mmodule: MModule */;
6087 short int var1
/* : Bool */;
6088 short int var2
/* : Bool */;
6089 val
* var3
/* : MType */;
6090 val
* var4
/* : Set[MClassType] */;
6092 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MNullableType>*/;
6095 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6096 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1328);
6099 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MNullableType__mtype
]))(self
) /* mtype on <self:MNullableType>*/;
6100 var4
= ((val
* (*)(val
*, val
*))(var3
->class->vft
[COLOR_model__MType__collect_mtypes
]))(var3
, var_mmodule
) /* collect_mtypes on <var3:MType>*/;
6106 /* method model#MNullableType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
6107 val
* VIRTUAL_model__MNullableType__collect_mtypes(val
* self
, val
* p0
) {
6108 val
* var
/* : Set[MClassType] */;
6109 val
* var1
/* : Set[MClassType] */;
6110 var1
= model__MNullableType__collect_mtypes(self
, p0
);
6115 /* method model#MNullType#model for (self: MNullType): Model */
6116 val
* model__MNullType__model(val
* self
) {
6117 val
* var
/* : Model */;
6118 val
* var1
/* : Model */;
6119 var1
= self
->attrs
[COLOR_model__MNullType___64dmodel
].val
; /* @model on <self:MNullType> */
6121 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @model");
6122 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1338);
6129 /* method model#MNullType#model for (self: Object): Model */
6130 val
* VIRTUAL_model__MNullType__model(val
* self
) {
6131 val
* var
/* : Model */;
6132 val
* var1
/* : Model */;
6133 var1
= model__MNullType__model(self
);
6138 /* method model#MNullType#model= for (self: MNullType, Model) */
6139 void model__MNullType__model_61d(val
* self
, val
* p0
) {
6140 self
->attrs
[COLOR_model__MNullType___64dmodel
].val
= p0
; /* @model on <self:MNullType> */
6143 /* method model#MNullType#model= for (self: Object, Model) */
6144 void VIRTUAL_model__MNullType__model_61d(val
* self
, val
* p0
) {
6145 model__MNullType__model_61d(self
, p0
);
6148 /* method model#MNullType#init for (self: MNullType, Model) */
6149 void model__MNullType__init(val
* self
, val
* p0
) {
6150 val
* var_model
/* var model: Model */;
6152 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MNullType>*/;
6153 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MNullType__model_61d
]))(self
, var_model
) /* model= on <self:MNullType>*/;
6156 /* method model#MNullType#init for (self: Object, Model) */
6157 void VIRTUAL_model__MNullType__init(val
* self
, val
* p0
) {
6158 model__MNullType__init(self
, p0
);
6161 /* method model#MNullType#to_s for (self: MNullType): String */
6162 val
* model__MNullType__to_s(val
* self
) {
6163 val
* var
/* : String */;
6164 static val
* varonce
;
6165 val
* var1
/* : String */;
6166 char* var2
/* : NativeString */;
6167 long var3
/* : Int */;
6168 val
* var4
/* : String */;
6174 var4
= string__NativeString__to_s_with_length(var2
, var3
);
6183 /* method model#MNullType#to_s for (self: Object): String */
6184 val
* VIRTUAL_model__MNullType__to_s(val
* self
) {
6185 val
* var
/* : String */;
6186 val
* var1
/* : String */;
6187 var1
= model__MNullType__to_s(self
);
6192 /* method model#MNullType#as_nullable for (self: MNullType): MType */
6193 val
* model__MNullType__as_nullable(val
* self
) {
6194 val
* var
/* : MType */;
6200 /* method model#MNullType#as_nullable for (self: Object): MType */
6201 val
* VIRTUAL_model__MNullType__as_nullable(val
* self
) {
6202 val
* var
/* : MType */;
6203 val
* var1
/* : MType */;
6204 var1
= model__MNullType__as_nullable(self
);
6209 /* method model#MNullType#need_anchor for (self: MNullType): Bool */
6210 short int model__MNullType__need_anchor(val
* self
) {
6211 short int var
/* : Bool */;
6212 short int var1
/* : Bool */;
6219 /* method model#MNullType#need_anchor for (self: Object): Bool */
6220 short int VIRTUAL_model__MNullType__need_anchor(val
* self
) {
6221 short int var
/* : Bool */;
6222 short int var1
/* : Bool */;
6223 var1
= model__MNullType__need_anchor(self
);
6228 /* method model#MNullType#resolve_for for (self: MNullType, MType, nullable MClassType, MModule, Bool): MType */
6229 val
* model__MNullType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6230 val
* var
/* : MType */;
6231 val
* var_mtype
/* var mtype: MType */;
6232 val
* var_anchor
/* var anchor: nullable MClassType */;
6233 val
* var_mmodule
/* var mmodule: MModule */;
6234 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
6238 var_cleanup_virtual
= p3
;
6244 /* method model#MNullType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
6245 val
* VIRTUAL_model__MNullType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6246 val
* var
/* : MType */;
6247 val
* var1
/* : MType */;
6248 var1
= model__MNullType__resolve_for(self
, p0
, p1
, p2
, p3
);
6253 /* method model#MNullType#can_resolve_for for (self: MNullType, MType, nullable MClassType, MModule): Bool */
6254 short int model__MNullType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6255 short int var
/* : Bool */;
6256 val
* var_mtype
/* var mtype: MType */;
6257 val
* var_anchor
/* var anchor: nullable MClassType */;
6258 val
* var_mmodule
/* var mmodule: MModule */;
6259 short int var1
/* : Bool */;
6269 /* method model#MNullType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
6270 short int VIRTUAL_model__MNullType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6271 short int var
/* : Bool */;
6272 short int var1
/* : Bool */;
6273 var1
= model__MNullType__can_resolve_for(self
, p0
, p1
, p2
);
6278 /* method model#MNullType#collect_mclassdefs for (self: MNullType, MModule): Set[MClassDef] */
6279 val
* model__MNullType__collect_mclassdefs(val
* self
, val
* p0
) {
6280 val
* var
/* : Set[MClassDef] */;
6281 val
* var_mmodule
/* var mmodule: MModule */;
6282 val
* var1
/* : HashSet[MClassDef] */;
6284 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef
);
6285 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MClassDef]>*/;
6291 /* method model#MNullType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
6292 val
* VIRTUAL_model__MNullType__collect_mclassdefs(val
* self
, val
* p0
) {
6293 val
* var
/* : Set[MClassDef] */;
6294 val
* var1
/* : Set[MClassDef] */;
6295 var1
= model__MNullType__collect_mclassdefs(self
, p0
);
6300 /* method model#MNullType#collect_mclasses for (self: MNullType, MModule): Set[MClass] */
6301 val
* model__MNullType__collect_mclasses(val
* self
, val
* p0
) {
6302 val
* var
/* : Set[MClass] */;
6303 val
* var_mmodule
/* var mmodule: MModule */;
6304 val
* var1
/* : HashSet[MClass] */;
6306 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
6307 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MClass]>*/;
6313 /* method model#MNullType#collect_mclasses for (self: Object, MModule): Set[MClass] */
6314 val
* VIRTUAL_model__MNullType__collect_mclasses(val
* self
, val
* p0
) {
6315 val
* var
/* : Set[MClass] */;
6316 val
* var1
/* : Set[MClass] */;
6317 var1
= model__MNullType__collect_mclasses(self
, p0
);
6322 /* method model#MNullType#collect_mtypes for (self: MNullType, MModule): Set[MClassType] */
6323 val
* model__MNullType__collect_mtypes(val
* self
, val
* p0
) {
6324 val
* var
/* : Set[MClassType] */;
6325 val
* var_mmodule
/* var mmodule: MModule */;
6326 val
* var1
/* : HashSet[MClassType] */;
6328 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType
);
6329 ((void (*)(val
*))(var1
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var1
) /* init on <var1:HashSet[MClassType]>*/;
6335 /* method model#MNullType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
6336 val
* VIRTUAL_model__MNullType__collect_mtypes(val
* self
, val
* p0
) {
6337 val
* var
/* : Set[MClassType] */;
6338 val
* var1
/* : Set[MClassType] */;
6339 var1
= model__MNullType__collect_mtypes(self
, p0
);
6344 /* method model#MSignature#mparameters for (self: MSignature): Array[MParameter] */
6345 val
* model__MSignature__mparameters(val
* self
) {
6346 val
* var
/* : Array[MParameter] */;
6347 val
* var1
/* : Array[MParameter] */;
6348 var1
= self
->attrs
[COLOR_model__MSignature___64dmparameters
].val
; /* @mparameters on <self:MSignature> */
6350 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mparameters");
6351 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1360);
6358 /* method model#MSignature#mparameters for (self: Object): Array[MParameter] */
6359 val
* VIRTUAL_model__MSignature__mparameters(val
* self
) {
6360 val
* var
/* : Array[MParameter] */;
6361 val
* var1
/* : Array[MParameter] */;
6362 var1
= model__MSignature__mparameters(self
);
6367 /* method model#MSignature#mparameters= for (self: MSignature, Array[MParameter]) */
6368 void model__MSignature__mparameters_61d(val
* self
, val
* p0
) {
6369 self
->attrs
[COLOR_model__MSignature___64dmparameters
].val
= p0
; /* @mparameters on <self:MSignature> */
6372 /* method model#MSignature#mparameters= for (self: Object, Array[MParameter]) */
6373 void VIRTUAL_model__MSignature__mparameters_61d(val
* self
, val
* p0
) {
6374 model__MSignature__mparameters_61d(self
, p0
);
6377 /* method model#MSignature#return_mtype for (self: MSignature): nullable MType */
6378 val
* model__MSignature__return_mtype(val
* self
) {
6379 val
* var
/* : nullable MType */;
6380 val
* var1
/* : nullable MType */;
6381 var1
= self
->attrs
[COLOR_model__MSignature___64dreturn_mtype
].val
; /* @return_mtype on <self:MSignature> */
6386 /* method model#MSignature#return_mtype for (self: Object): nullable MType */
6387 val
* VIRTUAL_model__MSignature__return_mtype(val
* self
) {
6388 val
* var
/* : nullable MType */;
6389 val
* var1
/* : nullable MType */;
6390 var1
= model__MSignature__return_mtype(self
);
6395 /* method model#MSignature#return_mtype= for (self: MSignature, nullable MType) */
6396 void model__MSignature__return_mtype_61d(val
* self
, val
* p0
) {
6397 self
->attrs
[COLOR_model__MSignature___64dreturn_mtype
].val
= p0
; /* @return_mtype on <self:MSignature> */
6400 /* method model#MSignature#return_mtype= for (self: Object, nullable MType) */
6401 void VIRTUAL_model__MSignature__return_mtype_61d(val
* self
, val
* p0
) {
6402 model__MSignature__return_mtype_61d(self
, p0
);
6405 /* method model#MSignature#depth for (self: MSignature): Int */
6406 long model__MSignature__depth(val
* self
) {
6407 long var
/* : Int */;
6408 long var1
/* : Int */;
6409 long var_dmax
/* var dmax: Int */;
6410 val
* var2
/* : nullable MType */;
6411 val
* var_t
/* var t: nullable MType */;
6412 val
* var3
/* : null */;
6413 short int var4
/* : Bool */;
6414 long var5
/* : Int */;
6415 val
* var6
/* : Array[MParameter] */;
6416 val
* var7
/* : Iterator[nullable Object] */;
6417 short int var8
/* : Bool */;
6418 val
* var9
/* : nullable Object */;
6419 val
* var_p
/* var p: MParameter */;
6420 val
* var10
/* : MType */;
6421 long var11
/* : Int */;
6422 long var_d
/* var d: Int */;
6423 short int var12
/* : Bool */;
6424 short int var14
/* : Bool */;
6427 const char* var_class_name
;
6428 short int var15
/* : Bool */;
6429 long var16
/* : Int */;
6430 long var17
/* : Int */;
6431 long var19
/* : Int */;
6434 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype
]))(self
) /* return_mtype on <self:MSignature>*/;
6437 if (var_t
== NULL
) {
6438 var4
= 0; /* is null */
6440 var4
= 1; /* arg is null and recv is not */
6443 var5
= ((long (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__depth
]))(var_t
) /* depth on <var_t:nullable MType(MType)>*/;
6447 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6448 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Array[MParameter]>*/;
6450 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
6452 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
6454 var10
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__mtype
]))(var_p
) /* mtype on <var_p:MParameter>*/;
6455 var11
= ((long (*)(val
*))(var10
->class->vft
[COLOR_model__MType__depth
]))(var10
) /* depth on <var10:MType>*/;
6457 { /* Inline kernel#Int#> (var_d,var_dmax) */
6458 /* Covariant cast for argument 0 (i) <var_dmax:Int> isa OTHER */
6459 /* <var_dmax:Int> isa OTHER */
6460 var14
= 1; /* easy <var_dmax:Int> isa OTHER*/
6462 var_class_name
= type_kernel__Int
.name
;
6463 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6464 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
6467 var15
= var_d
> var_dmax
;
6470 RET_LABEL13
:(void)0;
6476 CONTINUE_label
: (void)0;
6477 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
6479 BREAK_label
: (void)0;
6481 { /* Inline kernel#Int#+ (var_dmax,var16) */
6482 var19
= var_dmax
+ var16
;
6485 RET_LABEL18
:(void)0;
6492 /* method model#MSignature#depth for (self: Object): Int */
6493 long VIRTUAL_model__MSignature__depth(val
* self
) {
6494 long var
/* : Int */;
6495 long var1
/* : Int */;
6496 var1
= model__MSignature__depth(self
);
6501 /* method model#MSignature#length for (self: MSignature): Int */
6502 long model__MSignature__length(val
* self
) {
6503 long var
/* : Int */;
6504 long var1
/* : Int */;
6505 long var_res
/* var res: Int */;
6506 val
* var2
/* : nullable MType */;
6507 val
* var_t
/* var t: nullable MType */;
6508 val
* var3
/* : null */;
6509 short int var4
/* : Bool */;
6510 long var5
/* : Int */;
6511 long var6
/* : Int */;
6512 long var8
/* : Int */;
6513 val
* var9
/* : Array[MParameter] */;
6514 val
* var10
/* : Iterator[nullable Object] */;
6515 short int var11
/* : Bool */;
6516 val
* var12
/* : nullable Object */;
6517 val
* var_p
/* var p: MParameter */;
6518 val
* var13
/* : MType */;
6519 long var14
/* : Int */;
6520 long var15
/* : Int */;
6521 long var17
/* : Int */;
6524 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype
]))(self
) /* return_mtype on <self:MSignature>*/;
6527 if (var_t
== NULL
) {
6528 var4
= 0; /* is null */
6530 var4
= 1; /* arg is null and recv is not */
6533 var5
= ((long (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__length
]))(var_t
) /* length on <var_t:nullable MType(MType)>*/;
6534 { /* Inline kernel#Int#+ (var_res,var5) */
6535 var8
= var_res
+ var5
;
6543 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6544 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Array[MParameter]>*/;
6546 var11
= ((short int (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var10
) /* is_ok on <var10:Iterator[nullable Object]>*/;
6548 var12
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var10
) /* item on <var10:Iterator[nullable Object]>*/;
6550 var13
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_model__MParameter__mtype
]))(var_p
) /* mtype on <var_p:MParameter>*/;
6551 var14
= ((long (*)(val
*))(var13
->class->vft
[COLOR_model__MType__length
]))(var13
) /* length on <var13:MType>*/;
6552 { /* Inline kernel#Int#+ (var_res,var14) */
6553 var17
= var_res
+ var14
;
6556 RET_LABEL16
:(void)0;
6559 CONTINUE_label
: (void)0;
6560 ((void (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var10
) /* next on <var10:Iterator[nullable Object]>*/;
6562 BREAK_label
: (void)0;
6568 /* method model#MSignature#length for (self: Object): Int */
6569 long VIRTUAL_model__MSignature__length(val
* self
) {
6570 long var
/* : Int */;
6571 long var1
/* : Int */;
6572 var1
= model__MSignature__length(self
);
6577 /* method model#MSignature#init for (self: MSignature, Array[MParameter], nullable MType) */
6578 void model__MSignature__init(val
* self
, val
* p0
, val
* p1
) {
6579 val
* var_mparameters
/* var mparameters: Array[MParameter] */;
6580 val
* var_return_mtype
/* var return_mtype: nullable MType */;
6581 long var
/* : Int */;
6582 long var1
/* : Int */;
6583 long var3
/* : Int */;
6584 long var_vararg_rank
/* var vararg_rank: Int */;
6585 val
* var4
/* : Range[Int] */;
6586 long var5
/* : Int */;
6587 long var6
/* : Int */;
6588 val
* var7
/* : Discrete */;
6589 val
* var8
/* : Discrete */;
6590 val
* var9
/* : Iterator[nullable Object] */;
6591 short int var10
/* : Bool */;
6592 val
* var11
/* : nullable Object */;
6593 long var_i
/* var i: Int */;
6594 long var12
/* : Int */;
6595 val
* var13
/* : nullable Object */;
6596 val
* var_parameter
/* var parameter: MParameter */;
6597 short int var14
/* : Bool */;
6598 long var15
/* : Int */;
6599 long var16
/* : Int */;
6600 long var18
/* : Int */;
6601 short int var19
/* : Bool */;
6602 short int var21
/* : Bool */;
6603 var_mparameters
= p0
;
6604 var_return_mtype
= p1
;
6605 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MType__init
]))(self
) /* init on <self:MSignature>*/;
6607 { /* Inline kernel#Int#unary - (var) */
6613 var_vararg_rank
= var1
;
6614 var4
= NEW_range__Range(&type_range__Rangekernel__Int
);
6616 var6
= ((long (*)(val
*))(var_mparameters
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_mparameters
) /* length on <var_mparameters:Array[MParameter]>*/;
6617 var7
= BOX_kernel__Int(var5
); /* autobox from Int to Discrete */
6618 var8
= BOX_kernel__Int(var6
); /* autobox from Int to Discrete */
6619 ((void (*)(val
*, val
*, val
*))(var4
->class->vft
[COLOR_range__Range__without_last
]))(var4
, var7
, var8
) /* without_last on <var4:Range[Int]>*/;
6620 var9
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var4
) /* iterator on <var4:Range[Int]>*/;
6622 var10
= ((short int (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var9
) /* is_ok on <var9:Iterator[nullable Object]>*/;
6624 var11
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var9
) /* item on <var9:Iterator[nullable Object]>*/;
6625 var12
= ((struct instance_kernel__Int
*)var11
)->value
; /* autounbox from nullable Object to Int */;
6627 var13
= ((val
* (*)(val
*, long))(var_mparameters
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_mparameters
, var_i
) /* [] on <var_mparameters:Array[MParameter]>*/;
6628 var_parameter
= var13
;
6629 var14
= ((short int (*)(val
*))(var_parameter
->class->vft
[COLOR_model__MParameter__is_vararg
]))(var_parameter
) /* is_vararg on <var_parameter:MParameter>*/;
6632 { /* Inline kernel#Int#unary - (var15) */
6636 RET_LABEL17
:(void)0;
6638 { /* Inline kernel#Int#== (var_vararg_rank,var16) */
6639 var21
= var_vararg_rank
== var16
;
6642 RET_LABEL20
:(void)0;
6645 fprintf(stderr
, "Runtime error: %s", "Assert failed");
6646 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1396);
6649 var_vararg_rank
= var_i
;
6652 CONTINUE_label
: (void)0;
6653 ((void (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var9
) /* next on <var9:Iterator[nullable Object]>*/;
6655 BREAK_label
: (void)0;
6656 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters_61d
]))(self
, var_mparameters
) /* mparameters= on <self:MSignature>*/;
6657 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype_61d
]))(self
, var_return_mtype
) /* return_mtype= on <self:MSignature>*/;
6658 ((void (*)(val
*, long))(self
->class->vft
[COLOR_model__MSignature__vararg_rank_61d
]))(self
, var_vararg_rank
) /* vararg_rank= on <self:MSignature>*/;
6661 /* method model#MSignature#init for (self: Object, Array[MParameter], nullable MType) */
6662 void VIRTUAL_model__MSignature__init(val
* self
, val
* p0
, val
* p1
) {
6663 model__MSignature__init(self
, p0
, p1
);
6666 /* method model#MSignature#vararg_rank for (self: MSignature): Int */
6667 long model__MSignature__vararg_rank(val
* self
) {
6668 long var
/* : Int */;
6669 long var1
/* : Int */;
6670 var1
= self
->attrs
[COLOR_model__MSignature___64dvararg_rank
].l
; /* @vararg_rank on <self:MSignature> */
6675 /* method model#MSignature#vararg_rank for (self: Object): Int */
6676 long VIRTUAL_model__MSignature__vararg_rank(val
* self
) {
6677 long var
/* : Int */;
6678 long var1
/* : Int */;
6679 var1
= model__MSignature__vararg_rank(self
);
6684 /* method model#MSignature#vararg_rank= for (self: MSignature, Int) */
6685 void model__MSignature__vararg_rank_61d(val
* self
, long p0
) {
6686 self
->attrs
[COLOR_model__MSignature___64dvararg_rank
].l
= p0
; /* @vararg_rank on <self:MSignature> */
6689 /* method model#MSignature#vararg_rank= for (self: Object, Int) */
6690 void VIRTUAL_model__MSignature__vararg_rank_61d(val
* self
, long p0
) {
6691 model__MSignature__vararg_rank_61d(self
, p0
);
6694 /* method model#MSignature#arity for (self: MSignature): Int */
6695 long model__MSignature__arity(val
* self
) {
6696 long var
/* : Int */;
6697 val
* var1
/* : Array[MParameter] */;
6698 long var2
/* : Int */;
6699 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6700 var2
= ((long (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var1
) /* length on <var1:Array[MParameter]>*/;
6706 /* method model#MSignature#arity for (self: Object): Int */
6707 long VIRTUAL_model__MSignature__arity(val
* self
) {
6708 long var
/* : Int */;
6709 long var1
/* : Int */;
6710 var1
= model__MSignature__arity(self
);
6715 /* method model#MSignature#to_s for (self: MSignature): String */
6716 val
* model__MSignature__to_s(val
* self
) {
6717 val
* var
/* : String */;
6718 val
* var1
/* : Buffer */;
6719 val
* var_b
/* var b: Buffer */;
6720 val
* var2
/* : Array[MParameter] */;
6721 short int var3
/* : Bool */;
6722 short int var4
/* : Bool */;
6723 static val
* varonce
;
6724 val
* var5
/* : String */;
6725 char* var6
/* : NativeString */;
6726 long var7
/* : Int */;
6727 val
* var8
/* : String */;
6728 val
* var9
/* : Range[Int] */;
6729 long var10
/* : Int */;
6730 val
* var11
/* : Array[MParameter] */;
6731 long var12
/* : Int */;
6732 val
* var13
/* : Discrete */;
6733 val
* var14
/* : Discrete */;
6734 val
* var15
/* : Iterator[nullable Object] */;
6735 short int var16
/* : Bool */;
6736 val
* var17
/* : nullable Object */;
6737 long var_i
/* var i: Int */;
6738 long var18
/* : Int */;
6739 val
* var19
/* : Array[MParameter] */;
6740 val
* var20
/* : nullable Object */;
6741 val
* var_mparameter
/* var mparameter: MParameter */;
6742 long var21
/* : Int */;
6743 short int var22
/* : Bool */;
6744 short int var24
/* : Bool */;
6747 const char* var_class_name
;
6748 short int var25
/* : Bool */;
6749 static val
* varonce26
;
6750 val
* var27
/* : String */;
6751 char* var28
/* : NativeString */;
6752 long var29
/* : Int */;
6753 val
* var30
/* : String */;
6754 val
* var31
/* : String */;
6755 static val
* varonce32
;
6756 val
* var33
/* : String */;
6757 char* var34
/* : NativeString */;
6758 long var35
/* : Int */;
6759 val
* var36
/* : String */;
6760 val
* var37
/* : MType */;
6761 val
* var38
/* : String */;
6762 short int var39
/* : Bool */;
6763 static val
* varonce40
;
6764 val
* var41
/* : String */;
6765 char* var42
/* : NativeString */;
6766 long var43
/* : Int */;
6767 val
* var44
/* : String */;
6768 static val
* varonce45
;
6769 val
* var46
/* : String */;
6770 char* var47
/* : NativeString */;
6771 long var48
/* : Int */;
6772 val
* var49
/* : String */;
6773 val
* var50
/* : nullable MType */;
6774 val
* var_ret
/* var ret: nullable MType */;
6775 val
* var51
/* : null */;
6776 short int var52
/* : Bool */;
6777 static val
* varonce53
;
6778 val
* var54
/* : String */;
6779 char* var55
/* : NativeString */;
6780 long var56
/* : Int */;
6781 val
* var57
/* : String */;
6782 val
* var58
/* : String */;
6783 val
* var59
/* : String */;
6784 var1
= NEW_string__Buffer(&type_string__Buffer
);
6785 ((void (*)(val
*))(var1
->class->vft
[COLOR_string__Buffer__init
]))(var1
) /* init on <var1:Buffer>*/;
6787 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6788 var3
= ((short int (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var2
) /* is_empty on <var2:Array[MParameter]>*/;
6796 var8
= string__NativeString__to_s_with_length(var6
, var7
);
6800 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var5
) /* append on <var_b:Buffer>*/;
6801 var9
= NEW_range__Range(&type_range__Rangekernel__Int
);
6803 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6804 var12
= ((long (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var11
) /* length on <var11:Array[MParameter]>*/;
6805 var13
= BOX_kernel__Int(var10
); /* autobox from Int to Discrete */
6806 var14
= BOX_kernel__Int(var12
); /* autobox from Int to Discrete */
6807 ((void (*)(val
*, val
*, val
*))(var9
->class->vft
[COLOR_range__Range__without_last
]))(var9
, var13
, var14
) /* without_last on <var9:Range[Int]>*/;
6808 var15
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var9
) /* iterator on <var9:Range[Int]>*/;
6810 var16
= ((short int (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var15
) /* is_ok on <var15:Iterator[nullable Object]>*/;
6812 var17
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var15
) /* item on <var15:Iterator[nullable Object]>*/;
6813 var18
= ((struct instance_kernel__Int
*)var17
)->value
; /* autounbox from nullable Object to Int */;
6815 var19
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6816 var20
= ((val
* (*)(val
*, long))(var19
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var19
, var_i
) /* [] on <var19:Array[MParameter]>*/;
6817 var_mparameter
= var20
;
6819 { /* Inline kernel#Int#> (var_i,var21) */
6820 /* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
6821 /* <var21:Int> isa OTHER */
6822 var24
= 1; /* easy <var21:Int> isa OTHER*/
6824 var_class_name
= type_kernel__Int
.name
;
6825 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
6826 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 263);
6829 var25
= var_i
> var21
;
6832 RET_LABEL23
:(void)0;
6840 var30
= string__NativeString__to_s_with_length(var28
, var29
);
6844 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var27
) /* append on <var_b:Buffer>*/;
6847 var31
= ((val
* (*)(val
*))(var_mparameter
->class->vft
[COLOR_model__MParameter__name
]))(var_mparameter
) /* name on <var_mparameter:MParameter>*/;
6848 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var31
) /* append on <var_b:Buffer>*/;
6854 var36
= string__NativeString__to_s_with_length(var34
, var35
);
6858 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var33
) /* append on <var_b:Buffer>*/;
6859 var37
= ((val
* (*)(val
*))(var_mparameter
->class->vft
[COLOR_model__MParameter__mtype
]))(var_mparameter
) /* mtype on <var_mparameter:MParameter>*/;
6860 var38
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:MType>*/;
6861 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var38
) /* append on <var_b:Buffer>*/;
6862 var39
= ((short int (*)(val
*))(var_mparameter
->class->vft
[COLOR_model__MParameter__is_vararg
]))(var_mparameter
) /* is_vararg on <var_mparameter:MParameter>*/;
6869 var44
= string__NativeString__to_s_with_length(var42
, var43
);
6873 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var41
) /* append on <var_b:Buffer>*/;
6876 CONTINUE_label
: (void)0;
6877 ((void (*)(val
*))(var15
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var15
) /* next on <var15:Iterator[nullable Object]>*/;
6879 BREAK_label
: (void)0;
6885 var49
= string__NativeString__to_s_with_length(var47
, var48
);
6889 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var46
) /* append on <var_b:Buffer>*/;
6892 var50
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype
]))(self
) /* return_mtype on <self:MSignature>*/;
6895 if (var_ret
== NULL
) {
6896 var52
= 0; /* is null */
6898 var52
= 1; /* arg is null and recv is not */
6906 var57
= string__NativeString__to_s_with_length(var55
, var56
);
6910 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var54
) /* append on <var_b:Buffer>*/;
6911 var58
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_string__Object__to_s
]))(var_ret
) /* to_s on <var_ret:nullable MType(MType)>*/;
6912 ((void (*)(val
*, val
*))(var_b
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_b
, var58
) /* append on <var_b:Buffer>*/;
6915 var59
= ((val
* (*)(val
*))(var_b
->class->vft
[COLOR_string__Object__to_s
]))(var_b
) /* to_s on <var_b:Buffer>*/;
6921 /* method model#MSignature#to_s for (self: Object): String */
6922 val
* VIRTUAL_model__MSignature__to_s(val
* self
) {
6923 val
* var
/* : String */;
6924 val
* var1
/* : String */;
6925 var1
= model__MSignature__to_s(self
);
6930 /* method model#MSignature#resolve_for for (self: MSignature, MType, nullable MClassType, MModule, Bool): MSignature */
6931 val
* model__MSignature__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6932 val
* var
/* : MSignature */;
6933 val
* var_mtype
/* var mtype: MType */;
6934 val
* var_anchor
/* var anchor: nullable MClassType */;
6935 val
* var_mmodule
/* var mmodule: MModule */;
6936 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
6937 val
* var1
/* : Array[MParameter] */;
6938 val
* var_params
/* var params: Array[MParameter] */;
6939 val
* var2
/* : Array[MParameter] */;
6940 val
* var3
/* : Iterator[nullable Object] */;
6941 short int var4
/* : Bool */;
6942 val
* var5
/* : nullable Object */;
6943 val
* var_p
/* var p: MParameter */;
6944 val
* var6
/* : MParameter */;
6945 val
* var7
/* : nullable MType */;
6946 val
* var_ret
/* var ret: nullable MType */;
6947 val
* var8
/* : null */;
6948 short int var9
/* : Bool */;
6949 val
* var10
/* : MType */;
6950 val
* var11
/* : MSignature */;
6951 val
* var_res
/* var res: MSignature */;
6955 var_cleanup_virtual
= p3
;
6956 var1
= NEW_array__Array(&type_array__Arraymodel__MParameter
);
6957 ((void (*)(val
*))(var1
->class->vft
[COLOR_array__Array__init
]))(var1
) /* init on <var1:Array[MParameter]>*/;
6959 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__mparameters
]))(self
) /* mparameters on <self:MSignature>*/;
6960 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[MParameter]>*/;
6962 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
6964 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
6966 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>*/;
6967 ((void (*)(val
*, val
*))(var_params
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_params
, var6
) /* add on <var_params:Array[MParameter]>*/;
6968 CONTINUE_label
: (void)0;
6969 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
6971 BREAK_label
: (void)0;
6972 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MSignature__return_mtype
]))(self
) /* return_mtype on <self:MSignature>*/;
6975 if (var_ret
== NULL
) {
6976 var9
= 0; /* is null */
6978 var9
= 1; /* arg is null and recv is not */
6981 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)>*/;
6985 var11
= NEW_model__MSignature(&type_model__MSignature
);
6986 ((void (*)(val
*, val
*, val
*))(var11
->class->vft
[COLOR_model__MSignature__init
]))(var11
, var_params
, var_ret
) /* init on <var11:MSignature>*/;
6993 /* method model#MSignature#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
6994 val
* VIRTUAL_model__MSignature__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6995 val
* var
/* : MType */;
6996 val
* var1
/* : MSignature */;
6997 var1
= model__MSignature__resolve_for(self
, p0
, p1
, p2
, p3
);
7002 /* method model#MParameter#name for (self: MParameter): String */
7003 val
* model__MParameter__name(val
* self
) {
7004 val
* var
/* : String */;
7005 val
* var1
/* : String */;
7006 var1
= self
->attrs
[COLOR_model__MParameter___64dname
].val
; /* @name on <self:MParameter> */
7008 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @name");
7009 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1455);
7016 /* method model#MParameter#name for (self: Object): String */
7017 val
* VIRTUAL_model__MParameter__name(val
* self
) {
7018 val
* var
/* : String */;
7019 val
* var1
/* : String */;
7020 var1
= model__MParameter__name(self
);
7025 /* method model#MParameter#name= for (self: MParameter, String) */
7026 void model__MParameter__name_61d(val
* self
, val
* p0
) {
7027 self
->attrs
[COLOR_model__MParameter___64dname
].val
= p0
; /* @name on <self:MParameter> */
7030 /* method model#MParameter#name= for (self: Object, String) */
7031 void VIRTUAL_model__MParameter__name_61d(val
* self
, val
* p0
) {
7032 model__MParameter__name_61d(self
, p0
);
7035 /* method model#MParameter#mtype for (self: MParameter): MType */
7036 val
* model__MParameter__mtype(val
* self
) {
7037 val
* var
/* : MType */;
7038 val
* var1
/* : MType */;
7039 var1
= self
->attrs
[COLOR_model__MParameter___64dmtype
].val
; /* @mtype on <self:MParameter> */
7041 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mtype");
7042 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1458);
7049 /* method model#MParameter#mtype for (self: Object): MType */
7050 val
* VIRTUAL_model__MParameter__mtype(val
* self
) {
7051 val
* var
/* : MType */;
7052 val
* var1
/* : MType */;
7053 var1
= model__MParameter__mtype(self
);
7058 /* method model#MParameter#mtype= for (self: MParameter, MType) */
7059 void model__MParameter__mtype_61d(val
* self
, val
* p0
) {
7060 self
->attrs
[COLOR_model__MParameter___64dmtype
].val
= p0
; /* @mtype on <self:MParameter> */
7063 /* method model#MParameter#mtype= for (self: Object, MType) */
7064 void VIRTUAL_model__MParameter__mtype_61d(val
* self
, val
* p0
) {
7065 model__MParameter__mtype_61d(self
, p0
);
7068 /* method model#MParameter#is_vararg for (self: MParameter): Bool */
7069 short int model__MParameter__is_vararg(val
* self
) {
7070 short int var
/* : Bool */;
7071 short int var1
/* : Bool */;
7072 var1
= self
->attrs
[COLOR_model__MParameter___64dis_vararg
].s
; /* @is_vararg on <self:MParameter> */
7077 /* method model#MParameter#is_vararg for (self: Object): Bool */
7078 short int VIRTUAL_model__MParameter__is_vararg(val
* self
) {
7079 short int var
/* : Bool */;
7080 short int var1
/* : Bool */;
7081 var1
= model__MParameter__is_vararg(self
);
7086 /* method model#MParameter#is_vararg= for (self: MParameter, Bool) */
7087 void model__MParameter__is_vararg_61d(val
* self
, short int p0
) {
7088 self
->attrs
[COLOR_model__MParameter___64dis_vararg
].s
= p0
; /* @is_vararg on <self:MParameter> */
7091 /* method model#MParameter#is_vararg= for (self: Object, Bool) */
7092 void VIRTUAL_model__MParameter__is_vararg_61d(val
* self
, short int p0
) {
7093 model__MParameter__is_vararg_61d(self
, p0
);
7096 /* method model#MParameter#resolve_for for (self: MParameter, MType, nullable MClassType, MModule, Bool): MParameter */
7097 val
* model__MParameter__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7098 val
* var
/* : MParameter */;
7099 val
* var_mtype
/* var mtype: MType */;
7100 val
* var_anchor
/* var anchor: nullable MClassType */;
7101 val
* var_mmodule
/* var mmodule: MModule */;
7102 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
7103 val
* var1
/* : MType */;
7104 short int var2
/* : Bool */;
7105 short int var3
/* : Bool */;
7106 val
* var4
/* : MType */;
7107 val
* var5
/* : MType */;
7108 val
* var_newtype
/* var newtype: MType */;
7109 val
* var6
/* : MParameter */;
7110 val
* var7
/* : String */;
7111 short int var8
/* : Bool */;
7112 val
* var_res
/* var res: MParameter */;
7116 var_cleanup_virtual
= p3
;
7117 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameter__mtype
]))(self
) /* mtype on <self:MParameter>*/;
7118 var2
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_model__MType__need_anchor
]))(var1
) /* need_anchor on <var1:MType>*/;
7125 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameter__mtype
]))(self
) /* mtype on <self:MParameter>*/;
7126 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>*/;
7128 var6
= NEW_model__MParameter(&type_model__MParameter
);
7129 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MParameter__name
]))(self
) /* name on <self:MParameter>*/;
7130 var8
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MParameter__is_vararg
]))(self
) /* is_vararg on <self:MParameter>*/;
7131 ((void (*)(val
*, val
*, val
*, short int))(var6
->class->vft
[COLOR_model__MParameter__init
]))(var6
, var7
, var_newtype
, var8
) /* init on <var6:MParameter>*/;
7138 /* method model#MParameter#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MParameter */
7139 val
* VIRTUAL_model__MParameter__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7140 val
* var
/* : MParameter */;
7141 val
* var1
/* : MParameter */;
7142 var1
= model__MParameter__resolve_for(self
, p0
, p1
, p2
, p3
);
7147 /* method model#MParameter#init for (self: MParameter, String, MType, Bool) */
7148 void model__MParameter__init(val
* self
, val
* p0
, val
* p1
, short int p2
) {
7149 self
->attrs
[COLOR_model__MParameter___64dname
].val
= p0
; /* @name on <self:MParameter> */
7150 self
->attrs
[COLOR_model__MParameter___64dmtype
].val
= p1
; /* @mtype on <self:MParameter> */
7151 self
->attrs
[COLOR_model__MParameter___64dis_vararg
].s
= p2
; /* @is_vararg on <self:MParameter> */
7154 /* method model#MParameter#init for (self: Object, String, MType, Bool) */
7155 void VIRTUAL_model__MParameter__init(val
* self
, val
* p0
, val
* p1
, short int p2
) {
7156 model__MParameter__init(self
, p0
, p1
, p2
);
7159 /* method model#MProperty#intro_mclassdef for (self: MProperty): MClassDef */
7160 val
* model__MProperty__intro_mclassdef(val
* self
) {
7161 val
* var
/* : MClassDef */;
7162 val
* var1
/* : MClassDef */;
7163 var1
= self
->attrs
[COLOR_model__MProperty___64dintro_mclassdef
].val
; /* @intro_mclassdef on <self:MProperty> */
7165 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @intro_mclassdef");
7166 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1489);
7173 /* method model#MProperty#intro_mclassdef for (self: Object): MClassDef */
7174 val
* VIRTUAL_model__MProperty__intro_mclassdef(val
* self
) {
7175 val
* var
/* : MClassDef */;
7176 val
* var1
/* : MClassDef */;
7177 var1
= model__MProperty__intro_mclassdef(self
);
7182 /* method model#MProperty#intro_mclassdef= for (self: MProperty, MClassDef) */
7183 void model__MProperty__intro_mclassdef_61d(val
* self
, val
* p0
) {
7184 self
->attrs
[COLOR_model__MProperty___64dintro_mclassdef
].val
= p0
; /* @intro_mclassdef on <self:MProperty> */
7187 /* method model#MProperty#intro_mclassdef= for (self: Object, MClassDef) */
7188 void VIRTUAL_model__MProperty__intro_mclassdef_61d(val
* self
, val
* p0
) {
7189 model__MProperty__intro_mclassdef_61d(self
, p0
);
7192 /* method model#MProperty#name for (self: MProperty): String */
7193 val
* model__MProperty__name(val
* self
) {
7194 val
* var
/* : String */;
7195 val
* var1
/* : String */;
7196 var1
= self
->attrs
[COLOR_model__MProperty___64dname
].val
; /* @name on <self:MProperty> */
7198 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @name");
7199 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1494);
7206 /* method model#MProperty#name for (self: Object): String */
7207 val
* VIRTUAL_model__MProperty__name(val
* self
) {
7208 val
* var
/* : String */;
7209 val
* var1
/* : String */;
7210 var1
= model__MProperty__name(self
);
7215 /* method model#MProperty#name= for (self: MProperty, String) */
7216 void model__MProperty__name_61d(val
* self
, val
* p0
) {
7217 self
->attrs
[COLOR_model__MProperty___64dname
].val
= p0
; /* @name on <self:MProperty> */
7220 /* method model#MProperty#name= for (self: Object, String) */
7221 void VIRTUAL_model__MProperty__name_61d(val
* self
, val
* p0
) {
7222 model__MProperty__name_61d(self
, p0
);
7225 /* method model#MProperty#full_name for (self: MProperty): String */
7226 val
* model__MProperty__full_name(val
* self
) {
7227 val
* var
/* : String */;
7228 val
* var1
/* : Array[Object] */;
7229 long var2
/* : Int */;
7230 val
* var_
/* var : Array[Object] */;
7231 static val
* varonce
;
7232 val
* var3
/* : String */;
7233 char* var4
/* : NativeString */;
7234 long var5
/* : Int */;
7235 val
* var6
/* : String */;
7236 val
* var7
/* : MClassDef */;
7237 val
* var8
/* : MModule */;
7238 val
* var9
/* : String */;
7239 static val
* varonce10
;
7240 val
* var11
/* : String */;
7241 char* var12
/* : NativeString */;
7242 long var13
/* : Int */;
7243 val
* var14
/* : String */;
7244 val
* var15
/* : MClassDef */;
7245 val
* var16
/* : MClass */;
7246 val
* var17
/* : String */;
7247 static val
* varonce18
;
7248 val
* var19
/* : String */;
7249 char* var20
/* : NativeString */;
7250 long var21
/* : Int */;
7251 val
* var22
/* : String */;
7252 val
* var23
/* : String */;
7253 static val
* varonce24
;
7254 val
* var25
/* : String */;
7255 char* var26
/* : NativeString */;
7256 long var27
/* : Int */;
7257 val
* var28
/* : String */;
7258 val
* var29
/* : String */;
7259 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
7261 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
7268 var6
= string__NativeString__to_s_with_length(var4
, var5
);
7272 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
7273 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(self
) /* intro_mclassdef on <self:MProperty>*/;
7274 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var7
) /* mmodule on <var7:MClassDef>*/;
7275 var9
= ((val
* (*)(val
*))(var8
->class->vft
[COLOR_mmodule__MModule__full_name
]))(var8
) /* full_name on <var8:MModule>*/;
7276 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var9
) /* add on <var_:Array[Object]>*/;
7282 var14
= string__NativeString__to_s_with_length(var12
, var13
);
7286 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var11
) /* add on <var_:Array[Object]>*/;
7287 var15
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__intro_mclassdef
]))(self
) /* intro_mclassdef on <self:MProperty>*/;
7288 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClassDef__mclass
]))(var15
) /* mclass on <var15:MClassDef>*/;
7289 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_model__MClass__name
]))(var16
) /* name on <var16:MClass>*/;
7290 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var17
) /* add on <var_:Array[Object]>*/;
7296 var22
= string__NativeString__to_s_with_length(var20
, var21
);
7300 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var19
) /* add on <var_:Array[Object]>*/;
7301 var23
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__name
]))(self
) /* name on <self:MProperty>*/;
7302 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var23
) /* add on <var_:Array[Object]>*/;
7308 var28
= string__NativeString__to_s_with_length(var26
, var27
);
7312 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var25
) /* add on <var_:Array[Object]>*/;
7313 var29
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
7319 /* method model#MProperty#full_name for (self: Object): String */
7320 val
* VIRTUAL_model__MProperty__full_name(val
* self
) {
7321 val
* var
/* : String */;
7322 val
* var1
/* : String */;
7323 var1
= model__MProperty__full_name(self
);
7328 /* method model#MProperty#visibility for (self: MProperty): MVisibility */
7329 val
* model__MProperty__visibility(val
* self
) {
7330 val
* var
/* : MVisibility */;
7331 val
* var1
/* : MVisibility */;
7332 var1
= self
->attrs
[COLOR_model__MProperty___64dvisibility
].val
; /* @visibility on <self:MProperty> */
7334 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @visibility");
7335 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1504);
7342 /* method model#MProperty#visibility for (self: Object): MVisibility */
7343 val
* VIRTUAL_model__MProperty__visibility(val
* self
) {
7344 val
* var
/* : MVisibility */;
7345 val
* var1
/* : MVisibility */;
7346 var1
= model__MProperty__visibility(self
);
7351 /* method model#MProperty#visibility= for (self: MProperty, MVisibility) */
7352 void model__MProperty__visibility_61d(val
* self
, val
* p0
) {
7353 self
->attrs
[COLOR_model__MProperty___64dvisibility
].val
= p0
; /* @visibility on <self:MProperty> */
7356 /* method model#MProperty#visibility= for (self: Object, MVisibility) */
7357 void VIRTUAL_model__MProperty__visibility_61d(val
* self
, val
* p0
) {
7358 model__MProperty__visibility_61d(self
, p0
);
7361 /* method model#MProperty#init for (self: MProperty, MClassDef, String, MVisibility) */
7362 void model__MProperty__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7363 val
* var_intro_mclassdef
/* var intro_mclassdef: MClassDef */;
7364 val
* var_name
/* var name: String */;
7365 val
* var_visibility
/* var visibility: MVisibility */;
7366 val
* var
/* : Array[MProperty] */;
7367 val
* var1
/* : MModule */;
7368 val
* var2
/* : Model */;
7369 val
* var_model
/* var model: Model */;
7370 val
* var3
/* : MultiHashMap[String, MProperty] */;
7371 val
* var4
/* : Array[MProperty] */;
7372 var_intro_mclassdef
= p0
;
7374 var_visibility
= p2
;
7375 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__intro_mclassdef_61d
]))(self
, var_intro_mclassdef
) /* intro_mclassdef= on <self:MProperty>*/;
7376 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__name_61d
]))(self
, var_name
) /* name= on <self:MProperty>*/;
7377 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__visibility_61d
]))(self
, var_visibility
) /* visibility= on <self:MProperty>*/;
7378 var
= ((val
* (*)(val
*))(var_intro_mclassdef
->class->vft
[COLOR_model__MClassDef__intro_mproperties
]))(var_intro_mclassdef
) /* intro_mproperties on <var_intro_mclassdef:MClassDef>*/;
7379 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var
, self
) /* add on <var:Array[MProperty]>*/;
7380 var1
= ((val
* (*)(val
*))(var_intro_mclassdef
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_intro_mclassdef
) /* mmodule on <var_intro_mclassdef:MClassDef>*/;
7381 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_mmodule__MModule__model
]))(var1
) /* model on <var1:MModule>*/;
7383 var3
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mproperties_by_name
]))(var_model
) /* mproperties_by_name on <var_model:Model>*/;
7384 ((void (*)(val
*, val
*, val
*))(var3
->class->vft
[COLOR_more_collections__MultiHashMap__add_one
]))(var3
, var_name
, self
) /* add_one on <var3:MultiHashMap[String, MProperty]>*/;
7385 var4
= ((val
* (*)(val
*))(var_model
->class->vft
[COLOR_model__Model__mproperties
]))(var_model
) /* mproperties on <var_model:Model>*/;
7386 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var4
, self
) /* add on <var4:Array[MProperty]>*/;
7389 /* method model#MProperty#init for (self: Object, MClassDef, String, MVisibility) */
7390 void VIRTUAL_model__MProperty__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7391 model__MProperty__init(self
, p0
, p1
, p2
);
7394 /* method model#MProperty#mpropdefs for (self: MProperty): Array[MPropDef] */
7395 val
* model__MProperty__mpropdefs(val
* self
) {
7396 val
* var
/* : Array[MPropDef] */;
7397 val
* var1
/* : Array[MPropDef] */;
7398 var1
= self
->attrs
[COLOR_model__MProperty___64dmpropdefs
].val
; /* @mpropdefs on <self:MProperty> */
7400 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mpropdefs");
7401 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1518);
7408 /* method model#MProperty#mpropdefs for (self: Object): Array[MPropDef] */
7409 val
* VIRTUAL_model__MProperty__mpropdefs(val
* self
) {
7410 val
* var
/* : Array[MPropDef] */;
7411 val
* var1
/* : Array[MPropDef] */;
7412 var1
= model__MProperty__mpropdefs(self
);
7417 /* method model#MProperty#mpropdefs= for (self: MProperty, Array[MPropDef]) */
7418 void model__MProperty__mpropdefs_61d(val
* self
, val
* p0
) {
7419 short int var
/* : Bool */;
7422 const struct type
* type_struct
;
7423 const char* var_class_name
;
7424 /* Covariant cast for argument 0 (mpropdefs) <p0:Array[MPropDef]> isa Array[MPROPDEF] */
7425 /* <p0:Array[MPropDef]> isa Array[MPROPDEF] */
7426 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arraymodel__MProperty_VTMPROPDEF
];
7427 cltype
= type_struct
->color
;
7428 idtype
= type_struct
->id
;
7429 if(cltype
>= p0
->type
->table_size
) {
7432 var
= p0
->type
->type_table
[cltype
] == idtype
;
7435 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
7436 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[MPROPDEF]", var_class_name
);
7437 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1518);
7440 self
->attrs
[COLOR_model__MProperty___64dmpropdefs
].val
= p0
; /* @mpropdefs on <self:MProperty> */
7443 /* method model#MProperty#mpropdefs= for (self: Object, Array[MPropDef]) */
7444 void VIRTUAL_model__MProperty__mpropdefs_61d(val
* self
, val
* p0
) {
7445 model__MProperty__mpropdefs_61d(self
, p0
);
7448 /* method model#MProperty#intro for (self: MProperty): MPropDef */
7449 val
* model__MProperty__intro(val
* self
) {
7450 val
* var
/* : MPropDef */;
7451 val
* var1
/* : Array[MPropDef] */;
7452 val
* var2
/* : nullable Object */;
7453 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(self
) /* mpropdefs on <self:MProperty>*/;
7454 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var1
) /* first on <var1:Array[MPropDef]>*/;
7460 /* method model#MProperty#intro for (self: Object): MPropDef */
7461 val
* VIRTUAL_model__MProperty__intro(val
* self
) {
7462 val
* var
/* : MPropDef */;
7463 val
* var1
/* : MPropDef */;
7464 var1
= model__MProperty__intro(self
);
7469 /* method model#MProperty#to_s for (self: MProperty): String */
7470 val
* model__MProperty__to_s(val
* self
) {
7471 val
* var
/* : String */;
7472 val
* var1
/* : String */;
7473 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__name
]))(self
) /* name on <self:MProperty>*/;
7479 /* method model#MProperty#to_s for (self: Object): String */
7480 val
* VIRTUAL_model__MProperty__to_s(val
* self
) {
7481 val
* var
/* : String */;
7482 val
* var1
/* : String */;
7483 var1
= model__MProperty__to_s(self
);
7488 /* method model#MProperty#lookup_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
7489 val
* model__MProperty__lookup_definitions(val
* self
, val
* p0
, val
* p1
) {
7490 val
* var
/* : Array[MPropDef] */;
7491 val
* var_mmodule
/* var mmodule: MModule */;
7492 val
* var_mtype
/* var mtype: MType */;
7493 short int var1
/* : Bool */;
7494 short int var2
/* : Bool */;
7495 short int var3
/* : Bool */;
7498 val
* var4
/* : MType */;
7499 val
* var5
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7500 val
* var6
/* : nullable Object */;
7501 val
* var_cache
/* var cache: nullable Array[MPropDef] */;
7502 val
* var7
/* : null */;
7503 short int var8
/* : Bool */;
7504 val
* var9
/* : Array[MPropDef] */;
7505 val
* var_candidates
/* var candidates: Array[MPropDef] */;
7506 val
* var10
/* : Array[MPropDef] */;
7507 val
* var11
/* : Iterator[nullable Object] */;
7508 short int var12
/* : Bool */;
7509 val
* var13
/* : nullable Object */;
7510 val
* var_mpropdef
/* var mpropdef: MPropDef */;
7511 val
* var14
/* : POSetElement[MModule] */;
7512 val
* var15
/* : MClassDef */;
7513 val
* var16
/* : MModule */;
7514 short int var17
/* : Bool */;
7515 short int var18
/* : Bool */;
7516 val
* var19
/* : null */;
7517 val
* var20
/* : MClassDef */;
7518 val
* var21
/* : MClassType */;
7519 short int var22
/* : Bool */;
7520 short int var23
/* : Bool */;
7521 long var24
/* : Int */;
7522 long var25
/* : Int */;
7523 short int var26
/* : Bool */;
7524 short int var28
/* : Bool */;
7527 const char* var_class_name
;
7528 short int var31
/* : Bool */;
7529 val
* var32
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7530 val
* var33
/* : Array[MPropDef] */;
7531 val
* var_res
/* var res: Array[MPropDef] */;
7532 val
* var34
/* : Iterator[nullable Object] */;
7533 short int var35
/* : Bool */;
7534 val
* var36
/* : nullable Object */;
7535 val
* var_pd1
/* var pd1: MPropDef */;
7536 val
* var37
/* : MClassDef */;
7537 val
* var_cd1
/* var cd1: MClassDef */;
7538 val
* var38
/* : MClass */;
7539 val
* var_c1
/* var c1: MClass */;
7540 short int var39
/* : Bool */;
7541 short int var_keep
/* var keep: Bool */;
7542 val
* var40
/* : Iterator[nullable Object] */;
7543 short int var41
/* : Bool */;
7544 val
* var42
/* : nullable Object */;
7545 val
* var_pd2
/* var pd2: MPropDef */;
7546 short int var43
/* : Bool */;
7547 val
* var45
/* : MClassDef */;
7548 val
* var_cd2
/* var cd2: MClassDef */;
7549 val
* var46
/* : MClass */;
7550 val
* var_c2
/* var c2: MClass */;
7551 val
* var47
/* : MClassType */;
7552 val
* var48
/* : MClassType */;
7553 short int var49
/* : Bool */;
7554 val
* var50
/* : MModule */;
7555 val
* var51
/* : POSetElement[MModule] */;
7556 val
* var52
/* : MModule */;
7557 short int var53
/* : Bool */;
7558 short int var54
/* : Bool */;
7559 val
* var55
/* : MClassType */;
7560 val
* var56
/* : null */;
7561 val
* var57
/* : MClassType */;
7562 short int var58
/* : Bool */;
7563 short int var59
/* : Bool */;
7564 short int var61
/* : Bool */;
7565 static val
* varonce
;
7566 val
* var62
/* : String */;
7567 char* var63
/* : NativeString */;
7568 long var64
/* : Int */;
7569 val
* var65
/* : String */;
7570 static val
* varonce66
;
7571 val
* var67
/* : String */;
7572 char* var68
/* : NativeString */;
7573 long var69
/* : Int */;
7574 val
* var70
/* : String */;
7575 val
* var71
/* : String */;
7576 val
* var72
/* : Array[Object] */;
7577 long var73
/* : Int */;
7578 val
* var74
/* : NativeArray[Object] */;
7579 val
* var75
/* : String */;
7580 val
* var76
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7583 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
7586 fprintf(stderr
, "Runtime error: %s", "Assert failed");
7587 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1540);
7590 /* <var_mtype:MType> isa MNullableType */
7591 cltype
= type_model__MNullableType
.color
;
7592 idtype
= type_model__MNullableType
.id
;
7593 if(cltype
>= var_mtype
->type
->table_size
) {
7596 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7599 var4
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
7603 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_definitions_cache
]))(self
) /* lookup_definitions_cache on <self:MProperty>*/;
7604 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]]>*/;
7607 if (var_cache
== NULL
) {
7608 var8
= 0; /* is null */
7610 var8
= 1; /* arg is null and recv is not */
7617 var9
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraymodel__MProperty_VTMPROPDEF
]);
7618 ((void (*)(val
*))(var9
->class->vft
[COLOR_array__Array__init
]))(var9
) /* init on <var9:Array[MPropDef]>*/;
7619 var_candidates
= var9
;
7620 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(self
) /* mpropdefs on <self:MProperty>*/;
7621 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[MPropDef]>*/;
7623 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
7625 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
7626 var_mpropdef
= var13
;
7627 var14
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
7628 var15
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
7629 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var15
) /* mmodule on <var15:MClassDef>*/;
7630 var17
= ((short int (*)(val
*, val
*))(var14
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var14
, var16
) /* <= on <var14:POSetElement[MModule]>*/;
7633 goto CONTINUE_label
;
7637 var20
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
7638 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var20
) /* bound_mtype on <var20:MClassDef>*/;
7639 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>*/;
7642 goto CONTINUE_label
;
7645 ((void (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidates
, var_mpropdef
) /* add on <var_candidates:Array[MPropDef]>*/;
7646 CONTINUE_label
: (void)0;
7647 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
7649 BREAK_label
: (void)0;
7650 var24
= ((long (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidates
) /* length on <var_candidates:Array[MPropDef]>*/;
7652 { /* Inline kernel#Int#<= (var24,var25) */
7653 /* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
7654 /* <var25:Int> isa OTHER */
7655 var28
= 1; /* easy <var25:Int> isa OTHER*/
7657 var_class_name
= type_kernel__Int
.name
;
7658 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7659 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
7662 var31
= var24
<= var25
;
7665 RET_LABEL27
:(void)0;
7668 var32
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_definitions_cache
]))(self
) /* lookup_definitions_cache on <self:MProperty>*/;
7669 ((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]]>*/;
7670 var
= var_candidates
;
7674 var33
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraymodel__MProperty_VTMPROPDEF
]);
7675 ((void (*)(val
*))(var33
->class->vft
[COLOR_array__Array__init
]))(var33
) /* init on <var33:Array[MPropDef]>*/;
7677 var34
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_candidates
) /* iterator on <var_candidates:Array[MPropDef]>*/;
7679 var35
= ((short int (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var34
) /* is_ok on <var34:Iterator[nullable Object]>*/;
7681 var36
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var34
) /* item on <var34:Iterator[nullable Object]>*/;
7683 var37
= ((val
* (*)(val
*))(var_pd1
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pd1
) /* mclassdef on <var_pd1:MPropDef>*/;
7685 var38
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd1
) /* mclass on <var_cd1:MClassDef>*/;
7689 var40
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_candidates
) /* iterator on <var_candidates:Array[MPropDef]>*/;
7691 var41
= ((short int (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var40
) /* is_ok on <var40:Iterator[nullable Object]>*/;
7693 var42
= ((val
* (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var40
) /* item on <var40:Iterator[nullable Object]>*/;
7695 var43
= ((short int (*)(val
*, val
*))(var_pd2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pd2
, var_pd1
) /* == on <var_pd2:MPropDef>*/;
7697 goto CONTINUE_label44
;
7700 var45
= ((val
* (*)(val
*))(var_pd2
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pd2
) /* mclassdef on <var_pd2:MPropDef>*/;
7702 var46
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd2
) /* mclass on <var_cd2:MClassDef>*/;
7704 var47
= ((val
* (*)(val
*))(var_c2
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c2
) /* mclass_type on <var_c2:MClass>*/;
7705 var48
= ((val
* (*)(val
*))(var_c1
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c1
) /* mclass_type on <var_c1:MClass>*/;
7706 var49
= ((short int (*)(val
*, val
*))(var47
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var47
, var48
) /* == on <var47:MClassType>*/;
7708 var50
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_cd2
) /* mmodule on <var_cd2:MClassDef>*/;
7709 var51
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var50
) /* in_importation on <var50:MModule>*/;
7710 var52
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_cd1
) /* mmodule on <var_cd1:MClassDef>*/;
7711 var53
= ((short int (*)(val
*, val
*))(var51
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var51
, var52
) /* <= on <var51:POSetElement[MModule]>*/;
7719 var55
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_cd2
) /* bound_mtype on <var_cd2:MClassDef>*/;
7721 var57
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_cd1
) /* bound_mtype on <var_cd1:MClassDef>*/;
7722 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>*/;
7730 CONTINUE_label44
: (void)0;
7731 ((void (*)(val
*))(var40
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var40
) /* next on <var40:Iterator[nullable Object]>*/;
7733 BREAK_label44
: (void)0;
7735 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_pd1
) /* add on <var_res:Array[MPropDef]>*/;
7738 CONTINUE_label60
: (void)0;
7739 ((void (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var34
) /* next on <var34:Iterator[nullable Object]>*/;
7741 BREAK_label60
: (void)0;
7742 var61
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_res
) /* is_empty on <var_res:Array[MPropDef]>*/;
7747 var63
= "All lost! ";
7749 var65
= string__NativeString__to_s_with_length(var63
, var64
);
7758 var70
= string__NativeString__to_s_with_length(var68
, var69
);
7762 var71
= ((val
* (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_string__Collection__join
]))(var_candidates
, var67
) /* join on <var_candidates:Array[MPropDef]>*/;
7763 var72
= NEW_array__Array(&type_array__Arraykernel__Object
);
7764 { /* var72 = array_instance Array[Object] */
7766 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArraykernel__Object
);
7767 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var62
;
7768 ((struct instance_array__NativeArray
*)var74
)->values
[1] = (val
*) var71
;
7769 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Object]>*/;
7771 var75
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_string__Object__to_s
]))(var72
) /* to_s on <var72:Array[Object]>*/;
7772 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var75
) /* print on <self:MProperty>*/;
7775 var76
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_definitions_cache
]))(self
) /* lookup_definitions_cache on <self:MProperty>*/;
7776 ((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]]>*/;
7782 /* method model#MProperty#lookup_definitions for (self: Object, MModule, MType): Array[MPropDef] */
7783 val
* VIRTUAL_model__MProperty__lookup_definitions(val
* self
, val
* p0
, val
* p1
) {
7784 val
* var
/* : Array[MPropDef] */;
7785 val
* var1
/* : Array[MPropDef] */;
7786 var1
= model__MProperty__lookup_definitions(self
, p0
, p1
);
7791 /* method model#MProperty#lookup_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
7792 val
* model__MProperty__lookup_definitions_cache(val
* self
) {
7793 val
* var
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7794 val
* var1
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7795 var1
= self
->attrs
[COLOR_model__MProperty___64dlookup_definitions_cache
].val
; /* @lookup_definitions_cache on <self:MProperty> */
7797 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @lookup_definitions_cache");
7798 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1597);
7805 /* method model#MProperty#lookup_definitions_cache for (self: Object): HashMap2[MModule, MType, Array[MPropDef]] */
7806 val
* VIRTUAL_model__MProperty__lookup_definitions_cache(val
* self
) {
7807 val
* var
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7808 val
* var1
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
7809 var1
= model__MProperty__lookup_definitions_cache(self
);
7814 /* method model#MProperty#lookup_definitions_cache= for (self: MProperty, HashMap2[MModule, MType, Array[MPropDef]]) */
7815 void model__MProperty__lookup_definitions_cache_61d(val
* self
, val
* p0
) {
7816 short int var
/* : Bool */;
7819 const struct type
* type_struct
;
7820 const char* var_class_name
;
7821 /* Covariant cast for argument 0 (lookup_definitions_cache) <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
7822 /* <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
7823 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2mmodule__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF
];
7824 cltype
= type_struct
->color
;
7825 idtype
= type_struct
->id
;
7826 if(cltype
>= p0
->type
->table_size
) {
7829 var
= p0
->type
->type_table
[cltype
] == idtype
;
7832 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
7833 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap2[MModule, MType, Array[MPROPDEF]]", var_class_name
);
7834 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1597);
7837 self
->attrs
[COLOR_model__MProperty___64dlookup_definitions_cache
].val
= p0
; /* @lookup_definitions_cache on <self:MProperty> */
7840 /* method model#MProperty#lookup_definitions_cache= for (self: Object, HashMap2[MModule, MType, Array[MPropDef]]) */
7841 void VIRTUAL_model__MProperty__lookup_definitions_cache_61d(val
* self
, val
* p0
) {
7842 model__MProperty__lookup_definitions_cache_61d(self
, p0
);
7845 /* method model#MProperty#lookup_super_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
7846 val
* model__MProperty__lookup_super_definitions(val
* self
, val
* p0
, val
* p1
) {
7847 val
* var
/* : Array[MPropDef] */;
7848 val
* var_mmodule
/* var mmodule: MModule */;
7849 val
* var_mtype
/* var mtype: MType */;
7850 short int var1
/* : Bool */;
7851 short int var2
/* : Bool */;
7852 short int var3
/* : Bool */;
7855 val
* var4
/* : MType */;
7856 val
* var5
/* : Array[MPropDef] */;
7857 val
* var_candidates
/* var candidates: Array[MPropDef] */;
7858 val
* var6
/* : Array[MPropDef] */;
7859 val
* var7
/* : Iterator[nullable Object] */;
7860 short int var8
/* : Bool */;
7861 val
* var9
/* : nullable Object */;
7862 val
* var_mpropdef
/* var mpropdef: MPropDef */;
7863 val
* var10
/* : POSetElement[MModule] */;
7864 val
* var11
/* : MClassDef */;
7865 val
* var12
/* : MModule */;
7866 short int var13
/* : Bool */;
7867 short int var14
/* : Bool */;
7868 val
* var15
/* : null */;
7869 val
* var16
/* : MClassDef */;
7870 val
* var17
/* : MClassType */;
7871 short int var18
/* : Bool */;
7872 short int var19
/* : Bool */;
7873 short int var20
/* : Bool */;
7874 val
* var21
/* : MClassDef */;
7875 val
* var22
/* : MClassType */;
7876 short int var23
/* : Bool */;
7877 short int var_
/* var : Bool */;
7878 val
* var24
/* : MClassDef */;
7879 val
* var25
/* : MModule */;
7880 short int var26
/* : Bool */;
7881 long var27
/* : Int */;
7882 long var28
/* : Int */;
7883 short int var29
/* : Bool */;
7884 short int var31
/* : Bool */;
7887 const char* var_class_name
;
7888 short int var34
/* : Bool */;
7889 val
* var35
/* : Array[MPropDef] */;
7890 val
* var_res
/* var res: Array[MPropDef] */;
7891 val
* var36
/* : Iterator[nullable Object] */;
7892 short int var37
/* : Bool */;
7893 val
* var38
/* : nullable Object */;
7894 val
* var_pd1
/* var pd1: MPropDef */;
7895 val
* var39
/* : MClassDef */;
7896 val
* var_cd1
/* var cd1: MClassDef */;
7897 val
* var40
/* : MClass */;
7898 val
* var_c1
/* var c1: MClass */;
7899 short int var41
/* : Bool */;
7900 short int var_keep
/* var keep: Bool */;
7901 val
* var42
/* : Iterator[nullable Object] */;
7902 short int var43
/* : Bool */;
7903 val
* var44
/* : nullable Object */;
7904 val
* var_pd2
/* var pd2: MPropDef */;
7905 short int var45
/* : Bool */;
7906 val
* var47
/* : MClassDef */;
7907 val
* var_cd2
/* var cd2: MClassDef */;
7908 val
* var48
/* : MClass */;
7909 val
* var_c2
/* var c2: MClass */;
7910 val
* var49
/* : MClassType */;
7911 val
* var50
/* : MClassType */;
7912 short int var51
/* : Bool */;
7913 val
* var52
/* : MModule */;
7914 val
* var53
/* : POSetElement[MModule] */;
7915 val
* var54
/* : MModule */;
7916 short int var55
/* : Bool */;
7917 short int var56
/* : Bool */;
7918 val
* var57
/* : MClassType */;
7919 val
* var58
/* : null */;
7920 val
* var59
/* : MClassType */;
7921 short int var60
/* : Bool */;
7922 short int var61
/* : Bool */;
7923 short int var63
/* : Bool */;
7924 static val
* varonce
;
7925 val
* var64
/* : String */;
7926 char* var65
/* : NativeString */;
7927 long var66
/* : Int */;
7928 val
* var67
/* : String */;
7929 static val
* varonce68
;
7930 val
* var69
/* : String */;
7931 char* var70
/* : NativeString */;
7932 long var71
/* : Int */;
7933 val
* var72
/* : String */;
7934 val
* var73
/* : String */;
7935 val
* var74
/* : Array[Object] */;
7936 long var75
/* : Int */;
7937 val
* var76
/* : NativeArray[Object] */;
7938 val
* var77
/* : String */;
7941 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
7944 fprintf(stderr
, "Runtime error: %s", "Assert failed");
7945 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1609);
7948 /* <var_mtype:MType> isa MNullableType */
7949 cltype
= type_model__MNullableType
.color
;
7950 idtype
= type_model__MNullableType
.id
;
7951 if(cltype
>= var_mtype
->type
->table_size
) {
7954 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
7957 var4
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
7961 var5
= NEW_array__Array(&type_array__Arraymodel__MPropDef
);
7962 ((void (*)(val
*))(var5
->class->vft
[COLOR_array__Array__init
]))(var5
) /* init on <var5:Array[MPropDef]>*/;
7963 var_candidates
= var5
;
7964 var6
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(self
) /* mpropdefs on <self:MProperty>*/;
7965 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var6
) /* iterator on <var6:Array[MPropDef]>*/;
7967 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
7969 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
7970 var_mpropdef
= var9
;
7971 var10
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
7972 var11
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
7973 var12
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var11
) /* mmodule on <var11:MClassDef>*/;
7974 var13
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var10
, var12
) /* <= on <var10:POSetElement[MModule]>*/;
7977 goto CONTINUE_label
;
7981 var16
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
7982 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var16
) /* bound_mtype on <var16:MClassDef>*/;
7983 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>*/;
7986 goto CONTINUE_label
;
7989 var21
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
7990 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var21
) /* bound_mtype on <var21:MClassDef>*/;
7991 var23
= ((short int (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mtype
, var22
) /* == on <var_mtype:MType>*/;
7994 var24
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
7995 var25
= ((val
* (*)(val
*))(var24
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var24
) /* mmodule on <var24:MClassDef>*/;
7996 var26
= ((short int (*)(val
*, val
*))(var_mmodule
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_mmodule
, var25
) /* == on <var_mmodule:MModule>*/;
8002 goto CONTINUE_label
;
8005 ((void (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidates
, var_mpropdef
) /* add on <var_candidates:Array[MPropDef]>*/;
8006 CONTINUE_label
: (void)0;
8007 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
8009 BREAK_label
: (void)0;
8010 var27
= ((long (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidates
) /* length on <var_candidates:Array[MPropDef]>*/;
8012 { /* Inline kernel#Int#<= (var27,var28) */
8013 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
8014 /* <var28:Int> isa OTHER */
8015 var31
= 1; /* easy <var28:Int> isa OTHER*/
8017 var_class_name
= type_kernel__Int
.name
;
8018 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
8019 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
8022 var34
= var27
<= var28
;
8025 RET_LABEL30
:(void)0;
8028 var
= var_candidates
;
8032 var35
= NEW_array__Array(&type_array__Arraymodel__MPropDef
);
8033 ((void (*)(val
*))(var35
->class->vft
[COLOR_array__Array__init
]))(var35
) /* init on <var35:Array[MPropDef]>*/;
8035 var36
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_candidates
) /* iterator on <var_candidates:Array[MPropDef]>*/;
8037 var37
= ((short int (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var36
) /* is_ok on <var36:Iterator[nullable Object]>*/;
8039 var38
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var36
) /* item on <var36:Iterator[nullable Object]>*/;
8041 var39
= ((val
* (*)(val
*))(var_pd1
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pd1
) /* mclassdef on <var_pd1:MPropDef>*/;
8043 var40
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd1
) /* mclass on <var_cd1:MClassDef>*/;
8047 var42
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_candidates
) /* iterator on <var_candidates:Array[MPropDef]>*/;
8049 var43
= ((short int (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var42
) /* is_ok on <var42:Iterator[nullable Object]>*/;
8051 var44
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var42
) /* item on <var42:Iterator[nullable Object]>*/;
8053 var45
= ((short int (*)(val
*, val
*))(var_pd2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pd2
, var_pd1
) /* == on <var_pd2:MPropDef>*/;
8055 goto CONTINUE_label46
;
8058 var47
= ((val
* (*)(val
*))(var_pd2
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_pd2
) /* mclassdef on <var_pd2:MPropDef>*/;
8060 var48
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__mclass
]))(var_cd2
) /* mclass on <var_cd2:MClassDef>*/;
8062 var49
= ((val
* (*)(val
*))(var_c2
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c2
) /* mclass_type on <var_c2:MClass>*/;
8063 var50
= ((val
* (*)(val
*))(var_c1
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_c1
) /* mclass_type on <var_c1:MClass>*/;
8064 var51
= ((short int (*)(val
*, val
*))(var49
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var49
, var50
) /* == on <var49:MClassType>*/;
8066 var52
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_cd2
) /* mmodule on <var_cd2:MClassDef>*/;
8067 var53
= ((val
* (*)(val
*))(var52
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var52
) /* in_importation on <var52:MModule>*/;
8068 var54
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_cd1
) /* mmodule on <var_cd1:MClassDef>*/;
8069 var55
= ((short int (*)(val
*, val
*))(var53
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var53
, var54
) /* <= on <var53:POSetElement[MModule]>*/;
8077 var57
= ((val
* (*)(val
*))(var_cd2
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_cd2
) /* bound_mtype on <var_cd2:MClassDef>*/;
8079 var59
= ((val
* (*)(val
*))(var_cd1
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_cd1
) /* bound_mtype on <var_cd1:MClassDef>*/;
8080 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>*/;
8088 CONTINUE_label46
: (void)0;
8089 ((void (*)(val
*))(var42
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var42
) /* next on <var42:Iterator[nullable Object]>*/;
8091 BREAK_label46
: (void)0;
8093 ((void (*)(val
*, val
*))(var_res
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_res
, var_pd1
) /* add on <var_res:Array[MPropDef]>*/;
8096 CONTINUE_label62
: (void)0;
8097 ((void (*)(val
*))(var36
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var36
) /* next on <var36:Iterator[nullable Object]>*/;
8099 BREAK_label62
: (void)0;
8100 var63
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_abstract_collection__Collection__is_empty
]))(var_res
) /* is_empty on <var_res:Array[MPropDef]>*/;
8105 var65
= "All lost! ";
8107 var67
= string__NativeString__to_s_with_length(var65
, var66
);
8116 var72
= string__NativeString__to_s_with_length(var70
, var71
);
8120 var73
= ((val
* (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_string__Collection__join
]))(var_candidates
, var69
) /* join on <var_candidates:Array[MPropDef]>*/;
8121 var74
= NEW_array__Array(&type_array__Arraykernel__Object
);
8122 { /* var74 = array_instance Array[Object] */
8124 var76
= NEW_array__NativeArray(var75
, &type_array__NativeArraykernel__Object
);
8125 ((struct instance_array__NativeArray
*)var76
)->values
[0] = (val
*) var64
;
8126 ((struct instance_array__NativeArray
*)var76
)->values
[1] = (val
*) var73
;
8127 ((void (*)(val
*, val
*, long))(var74
->class->vft
[COLOR_array__Array__with_native
]))(var74
, var76
, var75
) /* with_native on <var74:Array[Object]>*/;
8129 var77
= ((val
* (*)(val
*))(var74
->class->vft
[COLOR_string__Object__to_s
]))(var74
) /* to_s on <var74:Array[Object]>*/;
8130 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_file__Object__print
]))(self
, var77
) /* print on <self:MProperty>*/;
8138 /* method model#MProperty#lookup_super_definitions for (self: Object, MModule, MType): Array[MPropDef] */
8139 val
* VIRTUAL_model__MProperty__lookup_super_definitions(val
* self
, val
* p0
, val
* p1
) {
8140 val
* var
/* : Array[MPropDef] */;
8141 val
* var1
/* : Array[MPropDef] */;
8142 var1
= model__MProperty__lookup_super_definitions(self
, p0
, p1
);
8147 /* method model#MProperty#lookup_first_definition for (self: MProperty, MModule, MType): MPropDef */
8148 val
* model__MProperty__lookup_first_definition(val
* self
, val
* p0
, val
* p1
) {
8149 val
* var
/* : MPropDef */;
8150 val
* var_mmodule
/* var mmodule: MModule */;
8151 val
* var_mtype
/* var mtype: MType */;
8152 short int var1
/* : Bool */;
8153 val
* var2
/* : Array[MPropDef] */;
8154 val
* var3
/* : nullable Object */;
8157 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>*/;
8159 fprintf(stderr
, "Runtime error: %s", "Assert failed");
8160 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1671);
8163 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>*/;
8164 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var2
) /* first on <var2:Array[MPropDef]>*/;
8170 /* method model#MProperty#lookup_first_definition for (self: Object, MModule, MType): MPropDef */
8171 val
* VIRTUAL_model__MProperty__lookup_first_definition(val
* self
, val
* p0
, val
* p1
) {
8172 val
* var
/* : MPropDef */;
8173 val
* var1
/* : MPropDef */;
8174 var1
= model__MProperty__lookup_first_definition(self
, p0
, p1
);
8179 /* method model#MProperty#lookup_all_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
8180 val
* model__MProperty__lookup_all_definitions(val
* self
, val
* p0
, val
* p1
) {
8181 val
* var
/* : Array[MPropDef] */;
8182 val
* var_mmodule
/* var mmodule: MModule */;
8183 val
* var_mtype
/* var mtype: MType */;
8184 short int var1
/* : Bool */;
8185 short int var2
/* : Bool */;
8186 short int var3
/* : Bool */;
8189 val
* var4
/* : MType */;
8190 val
* var5
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8191 val
* var6
/* : nullable Object */;
8192 val
* var_cache
/* var cache: nullable Array[MPropDef] */;
8193 val
* var7
/* : null */;
8194 short int var8
/* : Bool */;
8195 val
* var9
/* : Array[MPropDef] */;
8196 val
* var_candidates
/* var candidates: Array[MPropDef] */;
8197 val
* var10
/* : Array[MPropDef] */;
8198 val
* var11
/* : Iterator[nullable Object] */;
8199 short int var12
/* : Bool */;
8200 val
* var13
/* : nullable Object */;
8201 val
* var_mpropdef
/* var mpropdef: MPropDef */;
8202 val
* var14
/* : POSetElement[MModule] */;
8203 val
* var15
/* : MClassDef */;
8204 val
* var16
/* : MModule */;
8205 short int var17
/* : Bool */;
8206 short int var18
/* : Bool */;
8207 val
* var19
/* : null */;
8208 val
* var20
/* : MClassDef */;
8209 val
* var21
/* : MClassType */;
8210 short int var22
/* : Bool */;
8211 short int var23
/* : Bool */;
8212 long var24
/* : Int */;
8213 long var25
/* : Int */;
8214 short int var26
/* : Bool */;
8215 short int var28
/* : Bool */;
8218 const char* var_class_name
;
8219 short int var31
/* : Bool */;
8220 val
* var32
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8221 val
* var33
/* : Array[nullable Object] */;
8222 val
* var34
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8225 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
8228 fprintf(stderr
, "Runtime error: %s", "Assert failed");
8229 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1679);
8232 /* <var_mtype:MType> isa MNullableType */
8233 cltype
= type_model__MNullableType
.color
;
8234 idtype
= type_model__MNullableType
.id
;
8235 if(cltype
>= var_mtype
->type
->table_size
) {
8238 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
8241 var4
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MNullableType__mtype
]))(var_mtype
) /* mtype on <var_mtype:MType(MNullableType)>*/;
8245 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_all_definitions_cache
]))(self
) /* lookup_all_definitions_cache on <self:MProperty>*/;
8246 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]]>*/;
8249 if (var_cache
== NULL
) {
8250 var8
= 0; /* is null */
8252 var8
= 1; /* arg is null and recv is not */
8259 var9
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arraymodel__MProperty_VTMPROPDEF
]);
8260 ((void (*)(val
*))(var9
->class->vft
[COLOR_array__Array__init
]))(var9
) /* init on <var9:Array[MPropDef]>*/;
8261 var_candidates
= var9
;
8262 var10
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(self
) /* mpropdefs on <self:MProperty>*/;
8263 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var10
) /* iterator on <var10:Array[MPropDef]>*/;
8265 var12
= ((short int (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var11
) /* is_ok on <var11:Iterator[nullable Object]>*/;
8267 var13
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var11
) /* item on <var11:Iterator[nullable Object]>*/;
8268 var_mpropdef
= var13
;
8269 var14
= ((val
* (*)(val
*))(var_mmodule
->class->vft
[COLOR_mmodule__MModule__in_importation
]))(var_mmodule
) /* in_importation on <var_mmodule:MModule>*/;
8270 var15
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
8271 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var15
) /* mmodule on <var15:MClassDef>*/;
8272 var17
= ((short int (*)(val
*, val
*))(var14
->class->vft
[COLOR_poset__POSetElement___60d_61d
]))(var14
, var16
) /* <= on <var14:POSetElement[MModule]>*/;
8275 goto CONTINUE_label
;
8279 var20
= ((val
* (*)(val
*))(var_mpropdef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mpropdef
) /* mclassdef on <var_mpropdef:MPropDef>*/;
8280 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var20
) /* bound_mtype on <var20:MClassDef>*/;
8281 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>*/;
8284 goto CONTINUE_label
;
8287 ((void (*)(val
*, val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_candidates
, var_mpropdef
) /* add on <var_candidates:Array[MPropDef]>*/;
8288 CONTINUE_label
: (void)0;
8289 ((void (*)(val
*))(var11
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var11
) /* next on <var11:Iterator[nullable Object]>*/;
8291 BREAK_label
: (void)0;
8292 var24
= ((long (*)(val
*))(var_candidates
->class->vft
[COLOR_abstract_collection__Collection__length
]))(var_candidates
) /* length on <var_candidates:Array[MPropDef]>*/;
8294 { /* Inline kernel#Int#<= (var24,var25) */
8295 /* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
8296 /* <var25:Int> isa OTHER */
8297 var28
= 1; /* easy <var25:Int> isa OTHER*/
8299 var_class_name
= type_kernel__Int
.name
;
8300 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
8301 fprintf(stderr
, " (%s:%d)\n", "lib/standard/kernel.nit", 260);
8304 var31
= var24
<= var25
;
8307 RET_LABEL27
:(void)0;
8310 var32
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_all_definitions_cache
]))(self
) /* lookup_all_definitions_cache on <self:MProperty>*/;
8311 ((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]]>*/;
8312 var
= var_candidates
;
8316 ((void (*)(val
*, val
*))(var_mmodule
->class->vft
[COLOR_model__MModule__linearize_mpropdefs
]))(var_mmodule
, var_candidates
) /* linearize_mpropdefs on <var_mmodule:MModule>*/;
8317 var33
= ((val
* (*)(val
*))(var_candidates
->class->vft
[COLOR_array__AbstractArrayRead__reversed
]))(var_candidates
) /* reversed on <var_candidates:Array[MPropDef]>*/;
8318 var_candidates
= var33
;
8319 var34
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MProperty__lookup_all_definitions_cache
]))(self
) /* lookup_all_definitions_cache on <self:MProperty>*/;
8320 ((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]]>*/;
8321 var
= var_candidates
;
8326 /* method model#MProperty#lookup_all_definitions for (self: Object, MModule, MType): Array[MPropDef] */
8327 val
* VIRTUAL_model__MProperty__lookup_all_definitions(val
* self
, val
* p0
, val
* p1
) {
8328 val
* var
/* : Array[MPropDef] */;
8329 val
* var1
/* : Array[MPropDef] */;
8330 var1
= model__MProperty__lookup_all_definitions(self
, p0
, p1
);
8335 /* method model#MProperty#lookup_all_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
8336 val
* model__MProperty__lookup_all_definitions_cache(val
* self
) {
8337 val
* var
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8338 val
* var1
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8339 var1
= self
->attrs
[COLOR_model__MProperty___64dlookup_all_definitions_cache
].val
; /* @lookup_all_definitions_cache on <self:MProperty> */
8341 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @lookup_all_definitions_cache");
8342 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1708);
8349 /* method model#MProperty#lookup_all_definitions_cache for (self: Object): HashMap2[MModule, MType, Array[MPropDef]] */
8350 val
* VIRTUAL_model__MProperty__lookup_all_definitions_cache(val
* self
) {
8351 val
* var
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8352 val
* var1
/* : HashMap2[MModule, MType, Array[MPropDef]] */;
8353 var1
= model__MProperty__lookup_all_definitions_cache(self
);
8358 /* method model#MProperty#lookup_all_definitions_cache= for (self: MProperty, HashMap2[MModule, MType, Array[MPropDef]]) */
8359 void model__MProperty__lookup_all_definitions_cache_61d(val
* self
, val
* p0
) {
8360 short int var
/* : Bool */;
8363 const struct type
* type_struct
;
8364 const char* var_class_name
;
8365 /* Covariant cast for argument 0 (lookup_all_definitions_cache) <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
8366 /* <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
8367 type_struct
= self
->type
->resolution_table
->types
[COLOR_more_collections__HashMap2mmodule__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF
];
8368 cltype
= type_struct
->color
;
8369 idtype
= type_struct
->id
;
8370 if(cltype
>= p0
->type
->table_size
) {
8373 var
= p0
->type
->type_table
[cltype
] == idtype
;
8376 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
8377 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap2[MModule, MType, Array[MPROPDEF]]", var_class_name
);
8378 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1708);
8381 self
->attrs
[COLOR_model__MProperty___64dlookup_all_definitions_cache
].val
= p0
; /* @lookup_all_definitions_cache on <self:MProperty> */
8384 /* method model#MProperty#lookup_all_definitions_cache= for (self: Object, HashMap2[MModule, MType, Array[MPropDef]]) */
8385 void VIRTUAL_model__MProperty__lookup_all_definitions_cache_61d(val
* self
, val
* p0
) {
8386 model__MProperty__lookup_all_definitions_cache_61d(self
, p0
);
8389 /* method model#MMethod#init for (self: MMethod, MClassDef, String, MVisibility) */
8390 void model__MMethod__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8391 val
* var_intro_mclassdef
/* var intro_mclassdef: MClassDef */;
8392 val
* var_name
/* var name: String */;
8393 val
* var_visibility
/* var visibility: MVisibility */;
8394 var_intro_mclassdef
= p0
;
8396 var_visibility
= p2
;
8397 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__init
]))(self
, p0
, p1
, p2
) /* init on <self:MMethod>*/;
8400 /* method model#MMethod#init for (self: Object, MClassDef, String, MVisibility) */
8401 void VIRTUAL_model__MMethod__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8402 model__MMethod__init(self
, p0
, p1
, p2
);
8405 /* method model#MMethod#is_init for (self: MMethod): Bool */
8406 short int model__MMethod__is_init(val
* self
) {
8407 short int var
/* : Bool */;
8408 short int var1
/* : Bool */;
8409 var1
= self
->attrs
[COLOR_model__MMethod___64dis_init
].s
; /* @is_init on <self:MMethod> */
8414 /* method model#MMethod#is_init for (self: Object): Bool */
8415 short int VIRTUAL_model__MMethod__is_init(val
* self
) {
8416 short int var
/* : Bool */;
8417 short int var1
/* : Bool */;
8418 var1
= model__MMethod__is_init(self
);
8423 /* method model#MMethod#is_init= for (self: MMethod, Bool) */
8424 void model__MMethod__is_init_61d(val
* self
, short int p0
) {
8425 self
->attrs
[COLOR_model__MMethod___64dis_init
].s
= p0
; /* @is_init on <self:MMethod> */
8428 /* method model#MMethod#is_init= for (self: Object, Bool) */
8429 void VIRTUAL_model__MMethod__is_init_61d(val
* self
, short int p0
) {
8430 model__MMethod__is_init_61d(self
, p0
);
8433 /* method model#MMethod#is_new for (self: MMethod): Bool */
8434 short int model__MMethod__is_new(val
* self
) {
8435 short int var
/* : Bool */;
8436 short int var1
/* : Bool */;
8437 var1
= self
->attrs
[COLOR_model__MMethod___64dis_new
].s
; /* @is_new on <self:MMethod> */
8442 /* method model#MMethod#is_new for (self: Object): Bool */
8443 short int VIRTUAL_model__MMethod__is_new(val
* self
) {
8444 short int var
/* : Bool */;
8445 short int var1
/* : Bool */;
8446 var1
= model__MMethod__is_new(self
);
8451 /* method model#MMethod#is_new= for (self: MMethod, Bool) */
8452 void model__MMethod__is_new_61d(val
* self
, short int p0
) {
8453 self
->attrs
[COLOR_model__MMethod___64dis_new
].s
= p0
; /* @is_new on <self:MMethod> */
8456 /* method model#MMethod#is_new= for (self: Object, Bool) */
8457 void VIRTUAL_model__MMethod__is_new_61d(val
* self
, short int p0
) {
8458 model__MMethod__is_new_61d(self
, p0
);
8461 /* method model#MMethod#is_init_for for (self: MMethod, MClass): Bool */
8462 short int model__MMethod__is_init_for(val
* self
, val
* p0
) {
8463 short int var
/* : Bool */;
8464 val
* var_mclass
/* var mclass: MClass */;
8465 short int var1
/* : Bool */;
8467 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MMethod__is_init
]))(self
) /* is_init on <self:MMethod>*/;
8473 /* method model#MMethod#is_init_for for (self: Object, MClass): Bool */
8474 short int VIRTUAL_model__MMethod__is_init_for(val
* self
, val
* p0
) {
8475 short int var
/* : Bool */;
8476 short int var1
/* : Bool */;
8477 var1
= model__MMethod__is_init_for(self
, p0
);
8482 /* method model#MAttribute#init for (self: MAttribute, MClassDef, String, MVisibility) */
8483 void model__MAttribute__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8484 val
* var_intro_mclassdef
/* var intro_mclassdef: MClassDef */;
8485 val
* var_name
/* var name: String */;
8486 val
* var_visibility
/* var visibility: MVisibility */;
8487 var_intro_mclassdef
= p0
;
8489 var_visibility
= p2
;
8490 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__init
]))(self
, p0
, p1
, p2
) /* init on <self:MAttribute>*/;
8493 /* method model#MAttribute#init for (self: Object, MClassDef, String, MVisibility) */
8494 void VIRTUAL_model__MAttribute__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8495 model__MAttribute__init(self
, p0
, p1
, p2
);
8498 /* method model#MVirtualTypeProp#init for (self: MVirtualTypeProp, MClassDef, String, MVisibility) */
8499 void model__MVirtualTypeProp__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8500 val
* var_intro_mclassdef
/* var intro_mclassdef: MClassDef */;
8501 val
* var_name
/* var name: String */;
8502 val
* var_visibility
/* var visibility: MVisibility */;
8503 var_intro_mclassdef
= p0
;
8505 var_visibility
= p2
;
8506 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MProperty__init
]))(self
, p0
, p1
, p2
) /* init on <self:MVirtualTypeProp>*/;
8509 /* method model#MVirtualTypeProp#init for (self: Object, MClassDef, String, MVisibility) */
8510 void VIRTUAL_model__MVirtualTypeProp__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8511 model__MVirtualTypeProp__init(self
, p0
, p1
, p2
);
8514 /* method model#MVirtualTypeProp#mvirtualtype for (self: MVirtualTypeProp): MVirtualType */
8515 val
* model__MVirtualTypeProp__mvirtualtype(val
* self
) {
8516 val
* var
/* : MVirtualType */;
8517 val
* var1
/* : MVirtualType */;
8518 var1
= self
->attrs
[COLOR_model__MVirtualTypeProp___64dmvirtualtype
].val
; /* @mvirtualtype on <self:MVirtualTypeProp> */
8520 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mvirtualtype");
8521 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1762);
8528 /* method model#MVirtualTypeProp#mvirtualtype for (self: Object): MVirtualType */
8529 val
* VIRTUAL_model__MVirtualTypeProp__mvirtualtype(val
* self
) {
8530 val
* var
/* : MVirtualType */;
8531 val
* var1
/* : MVirtualType */;
8532 var1
= model__MVirtualTypeProp__mvirtualtype(self
);
8537 /* method model#MVirtualTypeProp#mvirtualtype= for (self: MVirtualTypeProp, MVirtualType) */
8538 void model__MVirtualTypeProp__mvirtualtype_61d(val
* self
, val
* p0
) {
8539 self
->attrs
[COLOR_model__MVirtualTypeProp___64dmvirtualtype
].val
= p0
; /* @mvirtualtype on <self:MVirtualTypeProp> */
8542 /* method model#MVirtualTypeProp#mvirtualtype= for (self: Object, MVirtualType) */
8543 void VIRTUAL_model__MVirtualTypeProp__mvirtualtype_61d(val
* self
, val
* p0
) {
8544 model__MVirtualTypeProp__mvirtualtype_61d(self
, p0
);
8547 /* method model#MPropDef#location for (self: MPropDef): Location */
8548 val
* model__MPropDef__location(val
* self
) {
8549 val
* var
/* : Location */;
8550 val
* var1
/* : Location */;
8551 var1
= self
->attrs
[COLOR_model__MPropDef___64dlocation
].val
; /* @location on <self:MPropDef> */
8553 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @location");
8554 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1779);
8561 /* method model#MPropDef#location for (self: Object): Location */
8562 val
* VIRTUAL_model__MPropDef__location(val
* self
) {
8563 val
* var
/* : Location */;
8564 val
* var1
/* : Location */;
8565 var1
= model__MPropDef__location(self
);
8570 /* method model#MPropDef#location= for (self: MPropDef, Location) */
8571 void model__MPropDef__location_61d(val
* self
, val
* p0
) {
8572 self
->attrs
[COLOR_model__MPropDef___64dlocation
].val
= p0
; /* @location on <self:MPropDef> */
8575 /* method model#MPropDef#location= for (self: Object, Location) */
8576 void VIRTUAL_model__MPropDef__location_61d(val
* self
, val
* p0
) {
8577 model__MPropDef__location_61d(self
, p0
);
8580 /* method model#MPropDef#mclassdef for (self: MPropDef): MClassDef */
8581 val
* model__MPropDef__mclassdef(val
* self
) {
8582 val
* var
/* : MClassDef */;
8583 val
* var1
/* : MClassDef */;
8584 var1
= self
->attrs
[COLOR_model__MPropDef___64dmclassdef
].val
; /* @mclassdef on <self:MPropDef> */
8586 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mclassdef");
8587 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1782);
8594 /* method model#MPropDef#mclassdef for (self: Object): MClassDef */
8595 val
* VIRTUAL_model__MPropDef__mclassdef(val
* self
) {
8596 val
* var
/* : MClassDef */;
8597 val
* var1
/* : MClassDef */;
8598 var1
= model__MPropDef__mclassdef(self
);
8603 /* method model#MPropDef#mclassdef= for (self: MPropDef, MClassDef) */
8604 void model__MPropDef__mclassdef_61d(val
* self
, val
* p0
) {
8605 self
->attrs
[COLOR_model__MPropDef___64dmclassdef
].val
= p0
; /* @mclassdef on <self:MPropDef> */
8608 /* method model#MPropDef#mclassdef= for (self: Object, MClassDef) */
8609 void VIRTUAL_model__MPropDef__mclassdef_61d(val
* self
, val
* p0
) {
8610 model__MPropDef__mclassdef_61d(self
, p0
);
8613 /* method model#MPropDef#mproperty for (self: MPropDef): MProperty */
8614 val
* model__MPropDef__mproperty(val
* self
) {
8615 val
* var
/* : MProperty */;
8616 val
* var1
/* : MProperty */;
8617 var1
= self
->attrs
[COLOR_model__MPropDef___64dmproperty
].val
; /* @mproperty on <self:MPropDef> */
8619 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @mproperty");
8620 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1785);
8627 /* method model#MPropDef#mproperty for (self: Object): MProperty */
8628 val
* VIRTUAL_model__MPropDef__mproperty(val
* self
) {
8629 val
* var
/* : MProperty */;
8630 val
* var1
/* : MProperty */;
8631 var1
= model__MPropDef__mproperty(self
);
8636 /* method model#MPropDef#mproperty= for (self: MPropDef, MProperty) */
8637 void model__MPropDef__mproperty_61d(val
* self
, val
* p0
) {
8638 short int var
/* : Bool */;
8641 const struct type
* type_struct
;
8642 const char* var_class_name
;
8643 /* Covariant cast for argument 0 (mproperty) <p0:MProperty> isa MPROPERTY */
8644 /* <p0:MProperty> isa MPROPERTY */
8645 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
8646 cltype
= type_struct
->color
;
8647 idtype
= type_struct
->id
;
8648 if(cltype
>= p0
->type
->table_size
) {
8651 var
= p0
->type
->type_table
[cltype
] == idtype
;
8654 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
8655 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
8656 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1785);
8659 self
->attrs
[COLOR_model__MPropDef___64dmproperty
].val
= p0
; /* @mproperty on <self:MPropDef> */
8662 /* method model#MPropDef#mproperty= for (self: Object, MProperty) */
8663 void VIRTUAL_model__MPropDef__mproperty_61d(val
* self
, val
* p0
) {
8664 model__MPropDef__mproperty_61d(self
, p0
);
8667 /* method model#MPropDef#init for (self: MPropDef, MClassDef, MProperty, Location) */
8668 void model__MPropDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8669 short int var
/* : Bool */;
8672 const struct type
* type_struct
;
8673 const char* var_class_name
;
8674 val
* var_mclassdef
/* var mclassdef: MClassDef */;
8675 val
* var_mproperty
/* var mproperty: MProperty */;
8676 val
* var_location
/* var location: Location */;
8677 val
* var1
/* : Array[MPropDef] */;
8678 val
* var2
/* : Array[MPropDef] */;
8679 static val
* varonce
;
8680 val
* var3
/* : String */;
8681 char* var4
/* : NativeString */;
8682 long var5
/* : Int */;
8683 val
* var6
/* : String */;
8684 val
* var7
/* : Array[Object] */;
8685 long var8
/* : Int */;
8686 val
* var9
/* : NativeArray[Object] */;
8687 val
* var10
/* : String */;
8688 /* Covariant cast for argument 1 (mproperty) <p1:MProperty> isa MPROPERTY */
8689 /* <p1: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
>= p1
->type
->table_size
) {
8696 var
= p1
->type
->type_table
[cltype
] == idtype
;
8699 var_class_name
= p1
== NULL ?
"null" : p1
->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", 1788);
8707 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__mclassdef_61d
]))(self
, var_mclassdef
) /* mclassdef= on <self:MPropDef>*/;
8708 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__mproperty_61d
]))(self
, var_mproperty
) /* mproperty= on <self:MPropDef>*/;
8709 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__location_61d
]))(self
, var_location
) /* location= on <self:MPropDef>*/;
8710 var1
= ((val
* (*)(val
*))(var_mclassdef
->class->vft
[COLOR_model__MClassDef__mpropdefs
]))(var_mclassdef
) /* mpropdefs on <var_mclassdef:MClassDef>*/;
8711 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var1
, self
) /* add on <var1:Array[MPropDef]>*/;
8712 var2
= ((val
* (*)(val
*))(var_mproperty
->class->vft
[COLOR_model__MProperty__mpropdefs
]))(var_mproperty
) /* mpropdefs on <var_mproperty:MProperty>*/;
8713 ((void (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var2
, self
) /* add on <var2:Array[MPropDef]>*/;
8719 var6
= string__NativeString__to_s_with_length(var4
, var5
);
8723 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
8724 { /* var7 = array_instance Array[Object] */
8726 var9
= NEW_array__NativeArray(var8
, &type_array__NativeArraykernel__Object
);
8727 ((struct instance_array__NativeArray
*)var9
)->values
[0] = (val
*) var_mclassdef
;
8728 ((struct instance_array__NativeArray
*)var9
)->values
[1] = (val
*) var3
;
8729 ((struct instance_array__NativeArray
*)var9
)->values
[2] = (val
*) var_mproperty
;
8730 ((void (*)(val
*, val
*, long))(var7
->class->vft
[COLOR_array__Array__with_native
]))(var7
, var9
, var8
) /* with_native on <var7:Array[Object]>*/;
8732 var10
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_string__Object__to_s
]))(var7
) /* to_s on <var7:Array[Object]>*/;
8733 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__to_s_61d
]))(self
, var10
) /* to_s= on <self:MPropDef>*/;
8736 /* method model#MPropDef#init for (self: Object, MClassDef, MProperty, Location) */
8737 void VIRTUAL_model__MPropDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8738 model__MPropDef__init(self
, p0
, p1
, p2
);
8741 /* method model#MPropDef#to_s for (self: MPropDef): String */
8742 val
* model__MPropDef__to_s(val
* self
) {
8743 val
* var
/* : String */;
8744 val
* var1
/* : String */;
8745 var1
= self
->attrs
[COLOR_model__MPropDef___64dto_s
].val
; /* @to_s on <self:MPropDef> */
8747 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
8748 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1798);
8755 /* method model#MPropDef#to_s for (self: Object): String */
8756 val
* VIRTUAL_model__MPropDef__to_s(val
* self
) {
8757 val
* var
/* : String */;
8758 val
* var1
/* : String */;
8759 var1
= model__MPropDef__to_s(self
);
8764 /* method model#MPropDef#to_s= for (self: MPropDef, String) */
8765 void model__MPropDef__to_s_61d(val
* self
, val
* p0
) {
8766 self
->attrs
[COLOR_model__MPropDef___64dto_s
].val
= p0
; /* @to_s on <self:MPropDef> */
8769 /* method model#MPropDef#to_s= for (self: Object, String) */
8770 void VIRTUAL_model__MPropDef__to_s_61d(val
* self
, val
* p0
) {
8771 model__MPropDef__to_s_61d(self
, p0
);
8774 /* method model#MPropDef#is_intro for (self: MPropDef): Bool */
8775 short int model__MPropDef__is_intro(val
* self
) {
8776 short int var
/* : Bool */;
8777 val
* var1
/* : MProperty */;
8778 val
* var2
/* : MPropDef */;
8779 short int var3
/* : Bool */;
8780 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MPropDef__mproperty
]))(self
) /* mproperty on <self:MPropDef>*/;
8781 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MProperty__intro
]))(var1
) /* intro on <var1:MProperty>*/;
8782 var3
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var2
, self
) /* == on <var2:MPropDef>*/;
8788 /* method model#MPropDef#is_intro for (self: Object): Bool */
8789 short int VIRTUAL_model__MPropDef__is_intro(val
* self
) {
8790 short int var
/* : Bool */;
8791 short int var1
/* : Bool */;
8792 var1
= model__MPropDef__is_intro(self
);
8797 /* method model#MPropDef#lookup_next_definition for (self: MPropDef, MModule, MType): MPropDef */
8798 val
* model__MPropDef__lookup_next_definition(val
* self
, val
* p0
, val
* p1
) {
8799 val
* var
/* : MPropDef */;
8800 val
* var_mmodule
/* var mmodule: MModule */;
8801 val
* var_mtype
/* var mtype: MType */;
8802 short int var1
/* : Bool */;
8803 short int var2
/* : Bool */;
8804 val
* var3
/* : MProperty */;
8805 val
* var4
/* : Array[MPropDef] */;
8806 val
* var_mpropdefs
/* var mpropdefs: Array[MPropDef] */;
8807 val
* var5
/* : Iterator[nullable Object] */;
8808 val
* var_i
/* var i: ArrayIterator[MPropDef] */;
8809 short int var6
/* : Bool */;
8810 short int var7
/* : Bool */;
8811 short int var_
/* var : Bool */;
8812 val
* var8
/* : nullable Object */;
8813 short int var9
/* : Bool */;
8814 short int var10
/* : Bool */;
8815 short int var11
/* : Bool */;
8816 val
* var12
/* : nullable Object */;
8817 short int var13
/* : Bool */;
8820 const struct type
* type_struct
;
8821 const char* var_class_name
;
8824 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
8827 fprintf(stderr
, "Runtime error: %s", "Assert failed");
8828 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1812);
8831 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MPropDef__mproperty
]))(self
) /* mproperty on <self:MPropDef>*/;
8832 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>*/;
8833 var_mpropdefs
= var4
;
8834 var5
= ((val
* (*)(val
*))(var_mpropdefs
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_mpropdefs
) /* iterator on <var_mpropdefs:Array[MPropDef]>*/;
8837 var7
= ((short int (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_i
) /* is_ok on <var_i:ArrayIterator[MPropDef]>*/;
8840 var8
= ((val
* (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_i
) /* item on <var_i:ArrayIterator[MPropDef]>*/;
8841 var9
= ((short int (*)(val
*, val
*))(var8
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var8
, self
) /* != on <var8:nullable Object(MPropDef)>*/;
8847 ((void (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_i
) /* next on <var_i:ArrayIterator[MPropDef]>*/;
8848 CONTINUE_label
: (void)0;
8850 BREAK_label
: (void)0;
8851 var10
= ((short int (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_i
) /* is_ok on <var_i:ArrayIterator[MPropDef]>*/;
8853 fprintf(stderr
, "Runtime error: %s", "Assert \'has_property\' failed");
8854 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1817);
8857 ((void (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_i
) /* next on <var_i:ArrayIterator[MPropDef]>*/;
8858 var11
= ((short int (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_i
) /* is_ok on <var_i:ArrayIterator[MPropDef]>*/;
8860 fprintf(stderr
, "Runtime error: %s", "Assert \'has_next_property\' failed");
8861 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1819);
8864 var12
= ((val
* (*)(val
*))(var_i
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_i
) /* item on <var_i:ArrayIterator[MPropDef]>*/;
8865 /* <var12:nullable Object(MPropDef)> isa MPROPDEF */
8866 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPDEF
];
8867 cltype
= type_struct
->color
;
8868 idtype
= type_struct
->id
;
8869 if(cltype
>= var12
->type
->table_size
) {
8872 var13
= var12
->type
->type_table
[cltype
] == idtype
;
8875 var_class_name
= var12
== NULL ?
"null" : var12
->type
->name
;
8876 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name
);
8877 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1820);
8885 /* method model#MPropDef#lookup_next_definition for (self: Object, MModule, MType): MPropDef */
8886 val
* VIRTUAL_model__MPropDef__lookup_next_definition(val
* self
, val
* p0
, val
* p1
) {
8887 val
* var
/* : MPropDef */;
8888 val
* var1
/* : MPropDef */;
8889 var1
= model__MPropDef__lookup_next_definition(self
, p0
, p1
);
8894 /* method model#MMethodDef#init for (self: MMethodDef, MClassDef, MMethod, Location) */
8895 void model__MMethodDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8896 short int var
/* : Bool */;
8899 const struct type
* type_struct
;
8900 const char* var_class_name
;
8901 val
* var_mclassdef
/* var mclassdef: MClassDef */;
8902 val
* var_mproperty
/* var mproperty: MMethod */;
8903 val
* var_location
/* var location: Location */;
8904 /* Covariant cast for argument 1 (mproperty) <p1:MMethod> isa MPROPERTY */
8905 /* <p1:MMethod> isa MPROPERTY */
8906 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
8907 cltype
= type_struct
->color
;
8908 idtype
= type_struct
->id
;
8909 if(cltype
>= p1
->type
->table_size
) {
8912 var
= p1
->type
->type_table
[cltype
] == idtype
;
8915 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
8916 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
8917 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1831);
8923 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__init
]))(self
, p0
, p1
, p2
) /* init on <self:MMethodDef>*/;
8926 /* method model#MMethodDef#init for (self: Object, MClassDef, MMethod, Location) */
8927 void VIRTUAL_model__MMethodDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8928 model__MMethodDef__init(self
, p0
, p1
, p2
);
8931 /* method model#MMethodDef#msignature for (self: MMethodDef): nullable MSignature */
8932 val
* model__MMethodDef__msignature(val
* self
) {
8933 val
* var
/* : nullable MSignature */;
8934 val
* var1
/* : nullable MSignature */;
8935 var1
= self
->attrs
[COLOR_model__MMethodDef___64dmsignature
].val
; /* @msignature on <self:MMethodDef> */
8940 /* method model#MMethodDef#msignature for (self: Object): nullable MSignature */
8941 val
* VIRTUAL_model__MMethodDef__msignature(val
* self
) {
8942 val
* var
/* : nullable MSignature */;
8943 val
* var1
/* : nullable MSignature */;
8944 var1
= model__MMethodDef__msignature(self
);
8949 /* method model#MMethodDef#msignature= for (self: MMethodDef, nullable MSignature) */
8950 void model__MMethodDef__msignature_61d(val
* self
, val
* p0
) {
8951 self
->attrs
[COLOR_model__MMethodDef___64dmsignature
].val
= p0
; /* @msignature on <self:MMethodDef> */
8954 /* method model#MMethodDef#msignature= for (self: Object, nullable MSignature) */
8955 void VIRTUAL_model__MMethodDef__msignature_61d(val
* self
, val
* p0
) {
8956 model__MMethodDef__msignature_61d(self
, p0
);
8959 /* method model#MMethodDef#is_abstract for (self: MMethodDef): Bool */
8960 short int model__MMethodDef__is_abstract(val
* self
) {
8961 short int var
/* : Bool */;
8962 short int var1
/* : Bool */;
8963 var1
= self
->attrs
[COLOR_model__MMethodDef___64dis_abstract
].s
; /* @is_abstract on <self:MMethodDef> */
8968 /* method model#MMethodDef#is_abstract for (self: Object): Bool */
8969 short int VIRTUAL_model__MMethodDef__is_abstract(val
* self
) {
8970 short int var
/* : Bool */;
8971 short int var1
/* : Bool */;
8972 var1
= model__MMethodDef__is_abstract(self
);
8977 /* method model#MMethodDef#is_abstract= for (self: MMethodDef, Bool) */
8978 void model__MMethodDef__is_abstract_61d(val
* self
, short int p0
) {
8979 self
->attrs
[COLOR_model__MMethodDef___64dis_abstract
].s
= p0
; /* @is_abstract on <self:MMethodDef> */
8982 /* method model#MMethodDef#is_abstract= for (self: Object, Bool) */
8983 void VIRTUAL_model__MMethodDef__is_abstract_61d(val
* self
, short int p0
) {
8984 model__MMethodDef__is_abstract_61d(self
, p0
);
8987 /* method model#MAttributeDef#init for (self: MAttributeDef, MClassDef, MAttribute, Location) */
8988 void model__MAttributeDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8989 short int var
/* : Bool */;
8992 const struct type
* type_struct
;
8993 const char* var_class_name
;
8994 val
* var_mclassdef
/* var mclassdef: MClassDef */;
8995 val
* var_mproperty
/* var mproperty: MAttribute */;
8996 val
* var_location
/* var location: Location */;
8997 /* Covariant cast for argument 1 (mproperty) <p1:MAttribute> isa MPROPERTY */
8998 /* <p1:MAttribute> isa MPROPERTY */
8999 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
9000 cltype
= type_struct
->color
;
9001 idtype
= type_struct
->id
;
9002 if(cltype
>= p1
->type
->table_size
) {
9005 var
= p1
->type
->type_table
[cltype
] == idtype
;
9008 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
9009 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
9010 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1850);
9016 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__init
]))(self
, p0
, p1
, p2
) /* init on <self:MAttributeDef>*/;
9019 /* method model#MAttributeDef#init for (self: Object, MClassDef, MAttribute, Location) */
9020 void VIRTUAL_model__MAttributeDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9021 model__MAttributeDef__init(self
, p0
, p1
, p2
);
9024 /* method model#MAttributeDef#static_mtype for (self: MAttributeDef): nullable MType */
9025 val
* model__MAttributeDef__static_mtype(val
* self
) {
9026 val
* var
/* : nullable MType */;
9027 val
* var1
/* : nullable MType */;
9028 var1
= self
->attrs
[COLOR_model__MAttributeDef___64dstatic_mtype
].val
; /* @static_mtype on <self:MAttributeDef> */
9033 /* method model#MAttributeDef#static_mtype for (self: Object): nullable MType */
9034 val
* VIRTUAL_model__MAttributeDef__static_mtype(val
* self
) {
9035 val
* var
/* : nullable MType */;
9036 val
* var1
/* : nullable MType */;
9037 var1
= model__MAttributeDef__static_mtype(self
);
9042 /* method model#MAttributeDef#static_mtype= for (self: MAttributeDef, nullable MType) */
9043 void model__MAttributeDef__static_mtype_61d(val
* self
, val
* p0
) {
9044 self
->attrs
[COLOR_model__MAttributeDef___64dstatic_mtype
].val
= p0
; /* @static_mtype on <self:MAttributeDef> */
9047 /* method model#MAttributeDef#static_mtype= for (self: Object, nullable MType) */
9048 void VIRTUAL_model__MAttributeDef__static_mtype_61d(val
* self
, val
* p0
) {
9049 model__MAttributeDef__static_mtype_61d(self
, p0
);
9052 /* method model#MVirtualTypeDef#init for (self: MVirtualTypeDef, MClassDef, MVirtualTypeProp, Location) */
9053 void model__MVirtualTypeDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9054 short int var
/* : Bool */;
9057 const struct type
* type_struct
;
9058 const char* var_class_name
;
9059 val
* var_mclassdef
/* var mclassdef: MClassDef */;
9060 val
* var_mproperty
/* var mproperty: MVirtualTypeProp */;
9061 val
* var_location
/* var location: Location */;
9062 /* Covariant cast for argument 1 (mproperty) <p1:MVirtualTypeProp> isa MPROPERTY */
9063 /* <p1:MVirtualTypeProp> isa MPROPERTY */
9064 type_struct
= self
->type
->resolution_table
->types
[COLOR_model__MPropDef_VTMPROPERTY
];
9065 cltype
= type_struct
->color
;
9066 idtype
= type_struct
->id
;
9067 if(cltype
>= p1
->type
->table_size
) {
9070 var
= p1
->type
->type_table
[cltype
] == idtype
;
9073 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
9074 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name
);
9075 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1866);
9081 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MPropDef__init
]))(self
, p0
, p1
, p2
) /* init on <self:MVirtualTypeDef>*/;
9084 /* method model#MVirtualTypeDef#init for (self: Object, MClassDef, MVirtualTypeProp, Location) */
9085 void VIRTUAL_model__MVirtualTypeDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9086 model__MVirtualTypeDef__init(self
, p0
, p1
, p2
);
9089 /* method model#MVirtualTypeDef#bound for (self: MVirtualTypeDef): nullable MType */
9090 val
* model__MVirtualTypeDef__bound(val
* self
) {
9091 val
* var
/* : nullable MType */;
9092 val
* var1
/* : nullable MType */;
9093 var1
= self
->attrs
[COLOR_model__MVirtualTypeDef___64dbound
].val
; /* @bound on <self:MVirtualTypeDef> */
9098 /* method model#MVirtualTypeDef#bound for (self: Object): nullable MType */
9099 val
* VIRTUAL_model__MVirtualTypeDef__bound(val
* self
) {
9100 val
* var
/* : nullable MType */;
9101 val
* var1
/* : nullable MType */;
9102 var1
= model__MVirtualTypeDef__bound(self
);
9107 /* method model#MVirtualTypeDef#bound= for (self: MVirtualTypeDef, nullable MType) */
9108 void model__MVirtualTypeDef__bound_61d(val
* self
, val
* p0
) {
9109 self
->attrs
[COLOR_model__MVirtualTypeDef___64dbound
].val
= p0
; /* @bound on <self:MVirtualTypeDef> */
9112 /* method model#MVirtualTypeDef#bound= for (self: Object, nullable MType) */
9113 void VIRTUAL_model__MVirtualTypeDef__bound_61d(val
* self
, val
* p0
) {
9114 model__MVirtualTypeDef__bound_61d(self
, p0
);
9117 /* method model#MClassKind#to_s for (self: MClassKind): String */
9118 val
* model__MClassKind__to_s(val
* self
) {
9119 val
* var
/* : String */;
9120 val
* var1
/* : String */;
9121 var1
= self
->attrs
[COLOR_model__MClassKind___64dto_s
].val
; /* @to_s on <self:MClassKind> */
9123 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @to_s");
9124 fprintf(stderr
, " (%s:%d)\n", "src/model/model.nit", 1886);
9131 /* method model#MClassKind#to_s for (self: Object): String */
9132 val
* VIRTUAL_model__MClassKind__to_s(val
* self
) {
9133 val
* var
/* : String */;
9134 val
* var1
/* : String */;
9135 var1
= model__MClassKind__to_s(self
);
9140 /* method model#MClassKind#to_s= for (self: MClassKind, String) */
9141 void model__MClassKind__to_s_61d(val
* self
, val
* p0
) {
9142 self
->attrs
[COLOR_model__MClassKind___64dto_s
].val
= p0
; /* @to_s on <self:MClassKind> */
9145 /* method model#MClassKind#to_s= for (self: Object, String) */
9146 void VIRTUAL_model__MClassKind__to_s_61d(val
* self
, val
* p0
) {
9147 model__MClassKind__to_s_61d(self
, p0
);
9150 /* method model#MClassKind#need_init for (self: MClassKind): Bool */
9151 short int model__MClassKind__need_init(val
* self
) {
9152 short int var
/* : Bool */;
9153 short int var1
/* : Bool */;
9154 var1
= self
->attrs
[COLOR_model__MClassKind___64dneed_init
].s
; /* @need_init on <self:MClassKind> */
9159 /* method model#MClassKind#need_init for (self: Object): Bool */
9160 short int VIRTUAL_model__MClassKind__need_init(val
* self
) {
9161 short int var
/* : Bool */;
9162 short int var1
/* : Bool */;
9163 var1
= model__MClassKind__need_init(self
);
9168 /* method model#MClassKind#need_init= for (self: MClassKind, Bool) */
9169 void model__MClassKind__need_init_61d(val
* self
, short int p0
) {
9170 self
->attrs
[COLOR_model__MClassKind___64dneed_init
].s
= p0
; /* @need_init on <self:MClassKind> */
9173 /* method model#MClassKind#need_init= for (self: Object, Bool) */
9174 void VIRTUAL_model__MClassKind__need_init_61d(val
* self
, short int p0
) {
9175 model__MClassKind__need_init_61d(self
, p0
);
9178 /* method model#MClassKind#init for (self: MClassKind, String, Bool) */
9179 void model__MClassKind__init(val
* self
, val
* p0
, short int p1
) {
9180 val
* var_s
/* var s: String */;
9181 short int var_need_init
/* var need_init: Bool */;
9184 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MClassKind__to_s_61d
]))(self
, var_s
) /* to_s= on <self:MClassKind>*/;
9185 ((void (*)(val
*, short int))(self
->class->vft
[COLOR_model__MClassKind__need_init_61d
]))(self
, var_need_init
) /* need_init= on <self:MClassKind>*/;
9188 /* method model#MClassKind#init for (self: Object, String, Bool) */
9189 void VIRTUAL_model__MClassKind__init(val
* self
, val
* p0
, short int p1
) {
9190 model__MClassKind__init(self
, p0
, p1
);
9193 /* method model#Object#abstract_kind for (self: Object): MClassKind */
9194 val
* model__Object__abstract_kind(val
* self
) {
9195 val
* var
/* : MClassKind */;
9196 static val
* varonce
;
9197 static int varonce_guard
;
9198 val
* var1
/* : MClassKind */;
9199 val
* var2
/* : MClassKind */;
9200 static val
* varonce3
;
9201 val
* var4
/* : String */;
9202 char* var5
/* : NativeString */;
9203 long var6
/* : Int */;
9204 val
* var7
/* : String */;
9205 short int var8
/* : Bool */;
9206 if (varonce_guard
) {
9209 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9213 var5
= "abstract class";
9215 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9220 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9230 /* method model#Object#abstract_kind for (self: Object): MClassKind */
9231 val
* VIRTUAL_model__Object__abstract_kind(val
* self
) {
9232 val
* var
/* : MClassKind */;
9233 val
* var1
/* : MClassKind */;
9234 var1
= model__Object__abstract_kind(self
);
9239 /* method model#Object#concrete_kind for (self: Object): MClassKind */
9240 val
* model__Object__concrete_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
);
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>*/;
9276 /* method model#Object#concrete_kind for (self: Object): MClassKind */
9277 val
* VIRTUAL_model__Object__concrete_kind(val
* self
) {
9278 val
* var
/* : MClassKind */;
9279 val
* var1
/* : MClassKind */;
9280 var1
= model__Object__concrete_kind(self
);
9285 /* method model#Object#interface_kind for (self: Object): MClassKind */
9286 val
* model__Object__interface_kind(val
* self
) {
9287 val
* var
/* : MClassKind */;
9288 static val
* varonce
;
9289 static int varonce_guard
;
9290 val
* var1
/* : MClassKind */;
9291 val
* var2
/* : MClassKind */;
9292 static val
* varonce3
;
9293 val
* var4
/* : String */;
9294 char* var5
/* : NativeString */;
9295 long var6
/* : Int */;
9296 val
* var7
/* : String */;
9297 short int var8
/* : Bool */;
9298 if (varonce_guard
) {
9301 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9307 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9312 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9322 /* method model#Object#interface_kind for (self: Object): MClassKind */
9323 val
* VIRTUAL_model__Object__interface_kind(val
* self
) {
9324 val
* var
/* : MClassKind */;
9325 val
* var1
/* : MClassKind */;
9326 var1
= model__Object__interface_kind(self
);
9331 /* method model#Object#enum_kind for (self: Object): MClassKind */
9332 val
* model__Object__enum_kind(val
* self
) {
9333 val
* var
/* : MClassKind */;
9334 static val
* varonce
;
9335 static int varonce_guard
;
9336 val
* var1
/* : MClassKind */;
9337 val
* var2
/* : MClassKind */;
9338 static val
* varonce3
;
9339 val
* var4
/* : String */;
9340 char* var5
/* : NativeString */;
9341 long var6
/* : Int */;
9342 val
* var7
/* : String */;
9343 short int var8
/* : Bool */;
9344 if (varonce_guard
) {
9347 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9353 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9358 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9368 /* method model#Object#enum_kind for (self: Object): MClassKind */
9369 val
* VIRTUAL_model__Object__enum_kind(val
* self
) {
9370 val
* var
/* : MClassKind */;
9371 val
* var1
/* : MClassKind */;
9372 var1
= model__Object__enum_kind(self
);
9377 /* method model#Object#extern_kind for (self: Object): MClassKind */
9378 val
* model__Object__extern_kind(val
* self
) {
9379 val
* var
/* : MClassKind */;
9380 static val
* varonce
;
9381 static int varonce_guard
;
9382 val
* var1
/* : MClassKind */;
9383 val
* var2
/* : MClassKind */;
9384 static val
* varonce3
;
9385 val
* var4
/* : String */;
9386 char* var5
/* : NativeString */;
9387 long var6
/* : Int */;
9388 val
* var7
/* : String */;
9389 short int var8
/* : Bool */;
9390 if (varonce_guard
) {
9393 var2
= NEW_model__MClassKind(&type_model__MClassKind
);
9399 var7
= string__NativeString__to_s_with_length(var5
, var6
);
9404 ((void (*)(val
*, val
*, short int))(var2
->class->vft
[COLOR_model__MClassKind__init
]))(var2
, var4
, var8
) /* init on <var2:MClassKind>*/;
9414 /* method model#Object#extern_kind for (self: Object): MClassKind */
9415 val
* VIRTUAL_model__Object__extern_kind(val
* self
) {
9416 val
* var
/* : MClassKind */;
9417 val
* var1
/* : MClassKind */;
9418 var1
= model__Object__extern_kind(self
);