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___mclasses
].val
; /* _mclasses on <self:Model> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses");
9 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 34);
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 val
* var3
/* : Array[MClass] */;
21 { /* Inline model#Model#mclasses (self) on <self:Object(Model)> */
22 var3
= self
->attrs
[COLOR_model__Model___mclasses
].val
; /* _mclasses on <self:Object(Model)> */
23 if (unlikely(var3
== NULL
)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses");
25 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 34);
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___mproperties
].val
; /* _mproperties on <self:Model> */
40 if (unlikely(var1
== NULL
)) {
41 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties");
42 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 37);
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 val
* var3
/* : Array[MProperty] */;
54 { /* Inline model#Model#mproperties (self) on <self:Object(Model)> */
55 var3
= self
->attrs
[COLOR_model__Model___mproperties
].val
; /* _mproperties on <self:Object(Model)> */
56 if (unlikely(var3
== NULL
)) {
57 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties");
58 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 37);
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___mclassdef_hierarchy
].val
; /* _mclassdef_hierarchy on <self:Model> */
73 if (unlikely(var1
== NULL
)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
75 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
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 val
* var3
/* : POSet[MClassDef] */;
87 { /* Inline model#Model#mclassdef_hierarchy (self) on <self:Object(Model)> */
88 var3
= self
->attrs
[COLOR_model__Model___mclassdef_hierarchy
].val
; /* _mclassdef_hierarchy on <self:Object(Model)> */
89 if (unlikely(var3
== NULL
)) {
90 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
91 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
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___intro_mtype_specialization_hierarchy
].val
; /* _intro_mtype_specialization_hierarchy on <self:Model> */
106 if (unlikely(var1
== NULL
)) {
107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy");
108 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 46);
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 val
* var3
/* : POSet[MClassType] */;
120 { /* Inline model#Model#intro_mtype_specialization_hierarchy (self) on <self:Object(Model)> */
121 var3
= self
->attrs
[COLOR_model__Model___intro_mtype_specialization_hierarchy
].val
; /* _intro_mtype_specialization_hierarchy on <self:Object(Model)> */
122 if (unlikely(var3
== NULL
)) {
123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy");
124 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 46);
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___full_mtype_specialization_hierarchy
].val
; /* _full_mtype_specialization_hierarchy on <self:Model> */
139 if (unlikely(var1
== NULL
)) {
140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy");
141 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 57);
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 val
* var3
/* : POSet[MClassType] */;
153 { /* Inline model#Model#full_mtype_specialization_hierarchy (self) on <self:Object(Model)> */
154 var3
= self
->attrs
[COLOR_model__Model___full_mtype_specialization_hierarchy
].val
; /* _full_mtype_specialization_hierarchy on <self:Object(Model)> */
155 if (unlikely(var3
== NULL
)) {
156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy");
157 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 57);
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___mclasses_by_name
].val
; /* _mclasses_by_name on <self:Model> */
172 if (unlikely(var1
== NULL
)) {
173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
174 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
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 val
* var3
/* : MultiHashMap[String, MClass] */;
186 { /* Inline model#Model#mclasses_by_name (self) on <self:Object(Model)> */
187 var3
= self
->attrs
[COLOR_model__Model___mclasses_by_name
].val
; /* _mclasses_by_name on <self:Object(Model)> */
188 if (unlikely(var3
== NULL
)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
190 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
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 val
* var3
/* : MultiHashMap[String, MClass] */;
206 short int var4
/* : Bool */;
207 val
* var5
/* : MultiHashMap[String, MClass] */;
208 val
* var7
/* : MultiHashMap[String, MClass] */;
209 val
* var8
/* : nullable Object */;
210 val
* var9
/* : null */;
213 { /* Inline model#Model#mclasses_by_name (self) on <self:Model> */
214 var3
= self
->attrs
[COLOR_model__Model___mclasses_by_name
].val
; /* _mclasses_by_name on <self:Model> */
215 if (unlikely(var3
== NULL
)) {
216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
217 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
225 var4
= abstract_collection__MapRead__has_key(var1
, var_name
);
229 { /* Inline model#Model#mclasses_by_name (self) on <self:Model> */
230 var7
= self
->attrs
[COLOR_model__Model___mclasses_by_name
].val
; /* _mclasses_by_name on <self:Model> */
231 if (unlikely(var7
== NULL
)) {
232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
233 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
241 var8
= hash_collection__HashMap___91d_93d(var5
, var_name
);
253 /* method model#Model#get_mclasses_by_name for (self: Object, String): nullable Array[MClass] */
254 val
* VIRTUAL_model__Model__get_mclasses_by_name(val
* self
, val
* p0
) {
255 val
* var
/* : nullable Array[MClass] */;
256 val
* var1
/* : nullable Array[MClass] */;
257 var1
= model__Model__get_mclasses_by_name(self
, p0
);
262 /* method model#Model#mproperties_by_name for (self: Model): MultiHashMap[String, MProperty] */
263 val
* model__Model__mproperties_by_name(val
* self
) {
264 val
* var
/* : MultiHashMap[String, MProperty] */;
265 val
* var1
/* : MultiHashMap[String, MProperty] */;
266 var1
= self
->attrs
[COLOR_model__Model___mproperties_by_name
].val
; /* _mproperties_by_name on <self:Model> */
267 if (unlikely(var1
== NULL
)) {
268 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name");
269 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 84);
276 /* method model#Model#mproperties_by_name for (self: Object): MultiHashMap[String, MProperty] */
277 val
* VIRTUAL_model__Model__mproperties_by_name(val
* self
) {
278 val
* var
/* : MultiHashMap[String, MProperty] */;
279 val
* var1
/* : MultiHashMap[String, MProperty] */;
280 val
* var3
/* : MultiHashMap[String, MProperty] */;
281 { /* Inline model#Model#mproperties_by_name (self) on <self:Object(Model)> */
282 var3
= self
->attrs
[COLOR_model__Model___mproperties_by_name
].val
; /* _mproperties_by_name on <self:Object(Model)> */
283 if (unlikely(var3
== NULL
)) {
284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name");
285 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 84);
295 /* method model#Model#get_mproperties_by_name for (self: Model, String): nullable Array[MProperty] */
296 val
* model__Model__get_mproperties_by_name(val
* self
, val
* p0
) {
297 val
* var
/* : nullable Array[MProperty] */;
298 val
* var_name
/* var name: String */;
299 val
* var1
/* : MultiHashMap[String, MProperty] */;
300 val
* var3
/* : MultiHashMap[String, MProperty] */;
301 short int var4
/* : Bool */;
302 short int var5
/* : Bool */;
303 val
* var6
/* : null */;
304 val
* var7
/* : MultiHashMap[String, MProperty] */;
305 val
* var9
/* : MultiHashMap[String, MProperty] */;
306 val
* var10
/* : nullable Object */;
309 { /* Inline model#Model#mproperties_by_name (self) on <self:Model> */
310 var3
= self
->attrs
[COLOR_model__Model___mproperties_by_name
].val
; /* _mproperties_by_name on <self:Model> */
311 if (unlikely(var3
== NULL
)) {
312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name");
313 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 84);
321 var4
= abstract_collection__MapRead__has_key(var1
, var_name
);
330 { /* Inline model#Model#mproperties_by_name (self) on <self:Model> */
331 var9
= self
->attrs
[COLOR_model__Model___mproperties_by_name
].val
; /* _mproperties_by_name on <self:Model> */
332 if (unlikely(var9
== NULL
)) {
333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name");
334 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 84);
342 var10
= hash_collection__HashMap___91d_93d(var7
, var_name
);
350 /* method model#Model#get_mproperties_by_name for (self: Object, String): nullable Array[MProperty] */
351 val
* VIRTUAL_model__Model__get_mproperties_by_name(val
* self
, val
* p0
) {
352 val
* var
/* : nullable Array[MProperty] */;
353 val
* var1
/* : nullable Array[MProperty] */;
354 var1
= model__Model__get_mproperties_by_name(self
, p0
);
359 /* method model#Model#null_type for (self: Model): MNullType */
360 val
* model__Model__null_type(val
* self
) {
361 val
* var
/* : MNullType */;
362 val
* var1
/* : MNullType */;
363 var1
= self
->attrs
[COLOR_model__Model___null_type
].val
; /* _null_type on <self:Model> */
364 if (unlikely(var1
== NULL
)) {
365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
366 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 102);
373 /* method model#Model#null_type for (self: Object): MNullType */
374 val
* VIRTUAL_model__Model__null_type(val
* self
) {
375 val
* var
/* : MNullType */;
376 val
* var1
/* : MNullType */;
377 val
* var3
/* : MNullType */;
378 { /* Inline model#Model#null_type (self) on <self:Object(Model)> */
379 var3
= self
->attrs
[COLOR_model__Model___null_type
].val
; /* _null_type on <self:Object(Model)> */
380 if (unlikely(var3
== NULL
)) {
381 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
382 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 102);
392 /* method model#MModule#intro_mclasses for (self: MModule): Array[MClass] */
393 val
* model__MModule__intro_mclasses(val
* self
) {
394 val
* var
/* : Array[MClass] */;
395 val
* var1
/* : Array[MClass] */;
396 var1
= self
->attrs
[COLOR_model__MModule___intro_mclasses
].val
; /* _intro_mclasses on <self:MModule> */
397 if (unlikely(var1
== NULL
)) {
398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
399 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136);
406 /* method model#MModule#intro_mclasses for (self: Object): Array[MClass] */
407 val
* VIRTUAL_model__MModule__intro_mclasses(val
* self
) {
408 val
* var
/* : Array[MClass] */;
409 val
* var1
/* : Array[MClass] */;
410 val
* var3
/* : Array[MClass] */;
411 { /* Inline model#MModule#intro_mclasses (self) on <self:Object(MModule)> */
412 var3
= self
->attrs
[COLOR_model__MModule___intro_mclasses
].val
; /* _intro_mclasses on <self:Object(MModule)> */
413 if (unlikely(var3
== NULL
)) {
414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
415 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136);
425 /* method model#MModule#mclassdefs for (self: MModule): Array[MClassDef] */
426 val
* model__MModule__mclassdefs(val
* self
) {
427 val
* var
/* : Array[MClassDef] */;
428 val
* var1
/* : Array[MClassDef] */;
429 var1
= self
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <self:MModule> */
430 if (unlikely(var1
== NULL
)) {
431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
432 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
439 /* method model#MModule#mclassdefs for (self: Object): Array[MClassDef] */
440 val
* VIRTUAL_model__MModule__mclassdefs(val
* self
) {
441 val
* var
/* : Array[MClassDef] */;
442 val
* var1
/* : Array[MClassDef] */;
443 val
* var3
/* : Array[MClassDef] */;
444 { /* Inline model#MModule#mclassdefs (self) on <self:Object(MModule)> */
445 var3
= self
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <self:Object(MModule)> */
446 if (unlikely(var3
== NULL
)) {
447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
448 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
458 /* method model#MModule#flatten_mclass_hierarchy for (self: MModule): POSet[MClass] */
459 val
* model__MModule__flatten_mclass_hierarchy(val
* self
) {
460 val
* var
/* : POSet[MClass] */;
461 val
* var1
/* : nullable POSet[MClass] */;
462 val
* var3
/* : nullable POSet[MClass] */;
463 val
* var_res
/* var res: nullable POSet[MClass] */;
464 val
* var4
/* : null */;
465 short int var5
/* : Bool */;
466 short int var6
/* : Bool */;
467 val
* var_other
/* var other: nullable Object */;
468 short int var8
/* : Bool */;
469 short int var9
/* : Bool */;
470 short int var10
/* : Bool */;
471 val
* var11
/* : POSet[MClass] */;
472 val
* var12
/* : POSetElement[MModule] */;
473 val
* var14
/* : POSetElement[MModule] */;
474 val
* var15
/* : Collection[Object] */;
475 val
* var_
/* var : Collection[MModule] */;
476 val
* var16
/* : Iterator[nullable Object] */;
477 val
* var_17
/* var : Iterator[MModule] */;
478 short int var18
/* : Bool */;
479 val
* var19
/* : nullable Object */;
480 val
* var_m
/* var m: MModule */;
481 val
* var20
/* : Array[MClassDef] */;
482 val
* var22
/* : Array[MClassDef] */;
483 val
* var_23
/* var : Array[MClassDef] */;
484 val
* var24
/* : ArrayIterator[nullable Object] */;
485 val
* var_25
/* var : ArrayIterator[MClassDef] */;
486 short int var26
/* : Bool */;
487 val
* var27
/* : nullable Object */;
488 val
* var_cd
/* var cd: MClassDef */;
489 val
* var28
/* : MClass */;
490 val
* var30
/* : MClass */;
491 val
* var_c
/* var c: MClass */;
492 val
* var31
/* : POSetElement[Object] */;
493 val
* var32
/* : Array[MClassType] */;
494 val
* var34
/* : Array[MClassType] */;
495 val
* var_35
/* var : Array[MClassType] */;
496 val
* var36
/* : ArrayIterator[nullable Object] */;
497 val
* var_37
/* var : ArrayIterator[MClassType] */;
498 short int var38
/* : Bool */;
499 val
* var39
/* : nullable Object */;
500 val
* var_s
/* var s: MClassType */;
501 val
* var40
/* : MClass */;
502 val
* var42
/* : MClass */;
504 { /* Inline model#MModule#flatten_mclass_hierarchy_cache (self) on <self:MModule> */
505 var3
= self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
512 if (var_res
== NULL
) {
513 var5
= 0; /* is null */
515 var5
= 1; /* arg is null and recv is not */
518 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable POSet[MClass]> */
521 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable POSet[MClass](POSet[MClass])>*/;
536 var11
= NEW_poset__POSet(&type_poset__POSetmodel__MClass
);
538 ((void (*)(val
*))(var11
->class->vft
[COLOR_kernel__Object__init
]))(var11
) /* init on <var11:POSet[MClass]>*/;
542 { /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
543 var14
= self
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <self:MModule> */
544 if (unlikely(var14
== NULL
)) {
545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
546 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
554 var15
= poset__POSetElement__greaters(var12
);
558 var16
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Collection[MModule]>*/;
563 var18
= ((short int (*)(val
*))(var_17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_17
) /* is_ok on <var_17:Iterator[MModule]>*/;
567 var19
= ((val
* (*)(val
*))(var_17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_17
) /* item on <var_17:Iterator[MModule]>*/;
571 { /* Inline model#MModule#mclassdefs (var_m) on <var_m:MModule> */
572 var22
= var_m
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_m:MModule> */
573 if (unlikely(var22
== NULL
)) {
574 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
575 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
584 var24
= array__AbstractArrayRead__iterator(var_23
);
589 var26
= array__ArrayIterator__is_ok(var_25
);
593 var27
= array__ArrayIterator__item(var_25
);
597 { /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
598 var30
= var_cd
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_cd:MClassDef> */
599 if (unlikely(var30
== NULL
)) {
600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
601 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
610 var31
= poset__POSet__add_node(var_res
, var_c
);
613 { /* Inline model#MClassDef#supertypes (var_cd) on <var_cd:MClassDef> */
614 var34
= var_cd
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var_cd:MClassDef> */
615 if (unlikely(var34
== NULL
)) {
616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
617 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
626 var36
= array__AbstractArrayRead__iterator(var_35
);
631 var38
= array__ArrayIterator__is_ok(var_37
);
635 var39
= array__ArrayIterator__item(var_37
);
639 { /* Inline model#MClassType#mclass (var_s) on <var_s:MClassType> */
640 var42
= var_s
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_s:MClassType> */
641 if (unlikely(var42
== NULL
)) {
642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
643 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
651 poset__POSet__add_edge(var_res
, var_c
, var40
); /* Direct call poset#POSet#add_edge on <var_res:nullable POSet[MClass](POSet[MClass])>*/
654 array__ArrayIterator__next(var_37
); /* Direct call array#ArrayIterator#next on <var_37:ArrayIterator[MClassType]>*/
660 BREAK_label
: (void)0;
662 { /* Inline abstract_collection#Iterator#finish (var_37) on <var_37:ArrayIterator[MClassType]> */
667 array__ArrayIterator__next(var_25
); /* Direct call array#ArrayIterator#next on <var_25:ArrayIterator[MClassDef]>*/
673 BREAK_label44
: (void)0;
675 { /* Inline abstract_collection#Iterator#finish (var_25) on <var_25:ArrayIterator[MClassDef]> */
680 ((void (*)(val
*))(var_17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_17
) /* next on <var_17:Iterator[MModule]>*/;
686 BREAK_label46
: (void)0;
688 { /* Inline abstract_collection#Iterator#finish (var_17) on <var_17:Iterator[MModule]> */
693 { /* Inline model#MModule#flatten_mclass_hierarchy_cache= (self,var_res) on <self:MModule> */
694 self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
= var_res
; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
703 /* method model#MModule#flatten_mclass_hierarchy for (self: Object): POSet[MClass] */
704 val
* VIRTUAL_model__MModule__flatten_mclass_hierarchy(val
* self
) {
705 val
* var
/* : POSet[MClass] */;
706 val
* var1
/* : POSet[MClass] */;
707 var1
= model__MModule__flatten_mclass_hierarchy(self
);
712 /* method model#MModule#linearize_mclasses for (self: MModule, Array[MClass]) */
713 void model__MModule__linearize_mclasses(val
* self
, val
* p0
) {
714 val
* var_mclasses
/* var mclasses: Array[MClass] */;
715 val
* var
/* : POSet[MClass] */;
718 var
= model__MModule__flatten_mclass_hierarchy(self
);
721 sorter__Comparator__sort(var
, var_mclasses
); /* Direct call sorter#Comparator#sort on <var:POSet[MClass]>*/
725 /* method model#MModule#linearize_mclasses for (self: Object, Array[MClass]) */
726 void VIRTUAL_model__MModule__linearize_mclasses(val
* self
, val
* p0
) {
727 model__MModule__linearize_mclasses(self
, p0
); /* Direct call model#MModule#linearize_mclasses on <self:Object(MModule)>*/
730 /* method model#MModule#linearize_mclassdefs for (self: MModule, Array[MClassDef]) */
731 void model__MModule__linearize_mclassdefs(val
* self
, val
* p0
) {
732 val
* var_mclassdefs
/* var mclassdefs: Array[MClassDef] */;
733 val
* var
/* : MClassDefSorter */;
734 val
* var_sorter
/* var sorter: MClassDefSorter */;
736 var
= NEW_model__MClassDefSorter(&type_model__MClassDefSorter
);
738 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_model__MClassDefSorter__mmodule_61d
]))(var
, self
) /* mmodule= on <var:MClassDefSorter>*/;
741 ((void (*)(val
*))(var
->class->vft
[COLOR_kernel__Object__init
]))(var
) /* init on <var:MClassDefSorter>*/;
745 sorter__Comparator__sort(var_sorter
, var_mclassdefs
); /* Direct call sorter#Comparator#sort on <var_sorter:MClassDefSorter>*/
749 /* method model#MModule#linearize_mclassdefs for (self: Object, Array[MClassDef]) */
750 void VIRTUAL_model__MModule__linearize_mclassdefs(val
* self
, val
* p0
) {
751 model__MModule__linearize_mclassdefs(self
, p0
); /* Direct call model#MModule#linearize_mclassdefs on <self:Object(MModule)>*/
754 /* method model#MModule#linearize_mpropdefs for (self: MModule, Array[MPropDef]) */
755 void model__MModule__linearize_mpropdefs(val
* self
, val
* p0
) {
756 val
* var_mpropdefs
/* var mpropdefs: Array[MPropDef] */;
757 val
* var
/* : MPropDefSorter */;
758 val
* var_sorter
/* var sorter: MPropDefSorter */;
760 var
= NEW_model__MPropDefSorter(&type_model__MPropDefSorter
);
762 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_model__MPropDefSorter__mmodule_61d
]))(var
, self
) /* mmodule= on <var:MPropDefSorter>*/;
765 ((void (*)(val
*))(var
->class->vft
[COLOR_kernel__Object__init
]))(var
) /* init on <var:MPropDefSorter>*/;
769 sorter__Comparator__sort(var_sorter
, var_mpropdefs
); /* Direct call sorter#Comparator#sort on <var_sorter:MPropDefSorter>*/
773 /* method model#MModule#linearize_mpropdefs for (self: Object, Array[MPropDef]) */
774 void VIRTUAL_model__MModule__linearize_mpropdefs(val
* self
, val
* p0
) {
775 model__MModule__linearize_mpropdefs(self
, p0
); /* Direct call model#MModule#linearize_mpropdefs on <self:Object(MModule)>*/
778 /* method model#MModule#flatten_mclass_hierarchy_cache for (self: MModule): nullable POSet[MClass] */
779 val
* model__MModule__flatten_mclass_hierarchy_cache(val
* self
) {
780 val
* var
/* : nullable POSet[MClass] */;
781 val
* var1
/* : nullable POSet[MClass] */;
782 var1
= self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
787 /* method model#MModule#flatten_mclass_hierarchy_cache for (self: Object): nullable POSet[MClass] */
788 val
* VIRTUAL_model__MModule__flatten_mclass_hierarchy_cache(val
* self
) {
789 val
* var
/* : nullable POSet[MClass] */;
790 val
* var1
/* : nullable POSet[MClass] */;
791 val
* var3
/* : nullable POSet[MClass] */;
792 { /* Inline model#MModule#flatten_mclass_hierarchy_cache (self) on <self:Object(MModule)> */
793 var3
= self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
; /* _flatten_mclass_hierarchy_cache on <self:Object(MModule)> */
801 /* method model#MModule#flatten_mclass_hierarchy_cache= for (self: MModule, nullable POSet[MClass]) */
802 void model__MModule__flatten_mclass_hierarchy_cache_61d(val
* self
, val
* p0
) {
803 self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
= p0
; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
806 /* method model#MModule#flatten_mclass_hierarchy_cache= for (self: Object, nullable POSet[MClass]) */
807 void VIRTUAL_model__MModule__flatten_mclass_hierarchy_cache_61d(val
* self
, val
* p0
) {
808 { /* Inline model#MModule#flatten_mclass_hierarchy_cache= (self,p0) on <self:Object(MModule)> */
809 self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
= p0
; /* _flatten_mclass_hierarchy_cache on <self:Object(MModule)> */
814 /* method model#MModule#object_type for (self: MModule): MClassType */
815 val
* model__MModule__object_type(val
* self
) {
816 val
* var
/* : MClassType */;
817 val
* var1
/* : nullable MClassType */;
818 val
* var3
/* : nullable MClassType */;
819 val
* var_res
/* var res: nullable MClassType */;
820 val
* var4
/* : null */;
821 short int var5
/* : Bool */;
822 short int var6
/* : Bool */;
823 val
* var_other
/* var other: nullable Object */;
824 short int var8
/* : Bool */;
825 short int var9
/* : Bool */;
826 short int var10
/* : Bool */;
828 val
* var11
/* : String */;
829 char* var12
/* : NativeString */;
830 long var13
/* : Int */;
831 val
* var14
/* : FlatString */;
832 val
* var15
/* : MClass */;
833 val
* var16
/* : MClassType */;
834 val
* var18
/* : MClassType */;
836 { /* Inline model#MModule#object_type_cache (self) on <self:MModule> */
837 var3
= self
->attrs
[COLOR_model__MModule___object_type_cache
].val
; /* _object_type_cache on <self:MModule> */
844 if (var_res
== NULL
) {
845 var5
= 0; /* is null */
847 var5
= 1; /* arg is null and recv is not */
850 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable MClassType> */
853 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable MClassType(MClassType)>*/;
873 var14
= string__NativeString__to_s_with_length(var12
, var13
);
878 var15
= model__MModule__get_primitive_class(self
, var11
);
881 { /* Inline model#MClass#mclass_type (var15) on <var15:MClass> */
882 var18
= var15
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var15:MClass> */
883 if (unlikely(var18
== NULL
)) {
884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
885 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
894 { /* Inline model#MModule#object_type_cache= (self,var_res) on <self:MModule> */
895 self
->attrs
[COLOR_model__MModule___object_type_cache
].val
= var_res
; /* _object_type_cache on <self:MModule> */
904 /* method model#MModule#object_type for (self: Object): MClassType */
905 val
* VIRTUAL_model__MModule__object_type(val
* self
) {
906 val
* var
/* : MClassType */;
907 val
* var1
/* : MClassType */;
908 var1
= model__MModule__object_type(self
);
913 /* method model#MModule#object_type_cache for (self: MModule): nullable MClassType */
914 val
* model__MModule__object_type_cache(val
* self
) {
915 val
* var
/* : nullable MClassType */;
916 val
* var1
/* : nullable MClassType */;
917 var1
= self
->attrs
[COLOR_model__MModule___object_type_cache
].val
; /* _object_type_cache on <self:MModule> */
922 /* method model#MModule#object_type_cache for (self: Object): nullable MClassType */
923 val
* VIRTUAL_model__MModule__object_type_cache(val
* self
) {
924 val
* var
/* : nullable MClassType */;
925 val
* var1
/* : nullable MClassType */;
926 val
* var3
/* : nullable MClassType */;
927 { /* Inline model#MModule#object_type_cache (self) on <self:Object(MModule)> */
928 var3
= self
->attrs
[COLOR_model__MModule___object_type_cache
].val
; /* _object_type_cache on <self:Object(MModule)> */
936 /* method model#MModule#object_type_cache= for (self: MModule, nullable MClassType) */
937 void model__MModule__object_type_cache_61d(val
* self
, val
* p0
) {
938 self
->attrs
[COLOR_model__MModule___object_type_cache
].val
= p0
; /* _object_type_cache on <self:MModule> */
941 /* method model#MModule#object_type_cache= for (self: Object, nullable MClassType) */
942 void VIRTUAL_model__MModule__object_type_cache_61d(val
* self
, val
* p0
) {
943 { /* Inline model#MModule#object_type_cache= (self,p0) on <self:Object(MModule)> */
944 self
->attrs
[COLOR_model__MModule___object_type_cache
].val
= p0
; /* _object_type_cache on <self:Object(MModule)> */
949 /* method model#MModule#pointer_type for (self: MModule): MClassType */
950 val
* model__MModule__pointer_type(val
* self
) {
951 val
* var
/* : MClassType */;
952 short int var1
/* : Bool */;
953 val
* var2
/* : MClassType */;
955 val
* var3
/* : String */;
956 char* var4
/* : NativeString */;
957 long var5
/* : Int */;
958 val
* var6
/* : FlatString */;
959 val
* var7
/* : MClass */;
960 val
* var8
/* : MClassType */;
961 val
* var10
/* : MClassType */;
962 var1
= self
->attrs
[COLOR_model__MModule___pointer_type
].val
!= NULL
; /* _pointer_type on <self:MModule> */
964 var2
= self
->attrs
[COLOR_model__MModule___pointer_type
].val
; /* _pointer_type on <self:MModule> */
965 if (unlikely(var2
== NULL
)) {
966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pointer_type");
967 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 217);
976 var6
= string__NativeString__to_s_with_length(var4
, var5
);
981 var7
= model__MModule__get_primitive_class(self
, var3
);
984 { /* Inline model#MClass#mclass_type (var7) on <var7:MClass> */
985 var10
= var7
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var7:MClass> */
986 if (unlikely(var10
== NULL
)) {
987 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
988 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
995 self
->attrs
[COLOR_model__MModule___pointer_type
].val
= var8
; /* _pointer_type on <self:MModule> */
1002 /* method model#MModule#pointer_type for (self: Object): MClassType */
1003 val
* VIRTUAL_model__MModule__pointer_type(val
* self
) {
1004 val
* var
/* : MClassType */;
1005 val
* var1
/* : MClassType */;
1006 short int var3
/* : Bool */;
1007 val
* var4
/* : MClassType */;
1008 static val
* varonce
;
1009 val
* var5
/* : String */;
1010 char* var6
/* : NativeString */;
1011 long var7
/* : Int */;
1012 val
* var8
/* : FlatString */;
1013 val
* var9
/* : MClass */;
1014 val
* var10
/* : MClassType */;
1015 val
* var12
/* : MClassType */;
1016 { /* Inline model#MModule#pointer_type (self) on <self:Object(MModule)> */
1017 var3
= self
->attrs
[COLOR_model__MModule___pointer_type
].val
!= NULL
; /* _pointer_type on <self:Object(MModule)> */
1019 var4
= self
->attrs
[COLOR_model__MModule___pointer_type
].val
; /* _pointer_type on <self:Object(MModule)> */
1020 if (unlikely(var4
== NULL
)) {
1021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pointer_type");
1022 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 217);
1031 var8
= string__NativeString__to_s_with_length(var6
, var7
);
1036 var9
= model__MModule__get_primitive_class(self
, var5
);
1039 { /* Inline model#MClass#mclass_type (var9) on <var9:MClass> */
1040 var12
= var9
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var9:MClass> */
1041 if (unlikely(var12
== NULL
)) {
1042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1043 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
1047 RET_LABEL11
:(void)0;
1050 self
->attrs
[COLOR_model__MModule___pointer_type
].val
= var10
; /* _pointer_type on <self:Object(MModule)> */
1060 /* method model#MModule#bool_type for (self: MModule): MClassType */
1061 val
* model__MModule__bool_type(val
* self
) {
1062 val
* var
/* : MClassType */;
1063 val
* var1
/* : nullable MClassType */;
1064 val
* var3
/* : nullable MClassType */;
1065 val
* var_res
/* var res: nullable MClassType */;
1066 val
* var4
/* : null */;
1067 short int var5
/* : Bool */;
1068 short int var6
/* : Bool */;
1069 val
* var_other
/* var other: nullable Object */;
1070 short int var8
/* : Bool */;
1071 short int var9
/* : Bool */;
1072 short int var10
/* : Bool */;
1073 static val
* varonce
;
1074 val
* var11
/* : String */;
1075 char* var12
/* : NativeString */;
1076 long var13
/* : Int */;
1077 val
* var14
/* : FlatString */;
1078 val
* var15
/* : MClass */;
1079 val
* var16
/* : MClassType */;
1080 val
* var18
/* : MClassType */;
1082 { /* Inline model#MModule#bool_type_cache (self) on <self:MModule> */
1083 var3
= self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
; /* _bool_type_cache on <self:MModule> */
1090 if (var_res
== NULL
) {
1091 var5
= 0; /* is null */
1093 var5
= 1; /* arg is null and recv is not */
1096 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable MClassType> */
1099 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable MClassType(MClassType)>*/;
1119 var14
= string__NativeString__to_s_with_length(var12
, var13
);
1124 var15
= model__MModule__get_primitive_class(self
, var11
);
1127 { /* Inline model#MClass#mclass_type (var15) on <var15:MClass> */
1128 var18
= var15
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var15:MClass> */
1129 if (unlikely(var18
== NULL
)) {
1130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1131 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
1135 RET_LABEL17
:(void)0;
1140 { /* Inline model#MModule#bool_type_cache= (self,var_res) on <self:MModule> */
1141 self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
= var_res
; /* _bool_type_cache on <self:MModule> */
1142 RET_LABEL19
:(void)0;
1150 /* method model#MModule#bool_type for (self: Object): MClassType */
1151 val
* VIRTUAL_model__MModule__bool_type(val
* self
) {
1152 val
* var
/* : MClassType */;
1153 val
* var1
/* : MClassType */;
1154 var1
= model__MModule__bool_type(self
);
1159 /* method model#MModule#bool_type_cache for (self: MModule): nullable MClassType */
1160 val
* model__MModule__bool_type_cache(val
* self
) {
1161 val
* var
/* : nullable MClassType */;
1162 val
* var1
/* : nullable MClassType */;
1163 var1
= self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
; /* _bool_type_cache on <self:MModule> */
1168 /* method model#MModule#bool_type_cache for (self: Object): nullable MClassType */
1169 val
* VIRTUAL_model__MModule__bool_type_cache(val
* self
) {
1170 val
* var
/* : nullable MClassType */;
1171 val
* var1
/* : nullable MClassType */;
1172 val
* var3
/* : nullable MClassType */;
1173 { /* Inline model#MModule#bool_type_cache (self) on <self:Object(MModule)> */
1174 var3
= self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
; /* _bool_type_cache on <self:Object(MModule)> */
1182 /* method model#MModule#bool_type_cache= for (self: MModule, nullable MClassType) */
1183 void model__MModule__bool_type_cache_61d(val
* self
, val
* p0
) {
1184 self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
= p0
; /* _bool_type_cache on <self:MModule> */
1187 /* method model#MModule#bool_type_cache= for (self: Object, nullable MClassType) */
1188 void VIRTUAL_model__MModule__bool_type_cache_61d(val
* self
, val
* p0
) {
1189 { /* Inline model#MModule#bool_type_cache= (self,p0) on <self:Object(MModule)> */
1190 self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
= p0
; /* _bool_type_cache on <self:Object(MModule)> */
1195 /* method model#MModule#sys_type for (self: MModule): nullable MClassType */
1196 val
* model__MModule__sys_type(val
* self
) {
1197 val
* var
/* : nullable MClassType */;
1198 val
* var1
/* : Model */;
1199 val
* var3
/* : Model */;
1200 static val
* varonce
;
1201 val
* var4
/* : String */;
1202 char* var5
/* : NativeString */;
1203 long var6
/* : Int */;
1204 val
* var7
/* : FlatString */;
1205 val
* var8
/* : nullable Array[MClass] */;
1206 val
* var_clas
/* var clas: nullable Array[MClass] */;
1207 val
* var9
/* : null */;
1208 short int var10
/* : Bool */;
1209 short int var11
/* : Bool */;
1210 val
* var12
/* : null */;
1211 static val
* varonce13
;
1212 val
* var14
/* : String */;
1213 char* var15
/* : NativeString */;
1214 long var16
/* : Int */;
1215 val
* var17
/* : FlatString */;
1216 val
* var18
/* : MClass */;
1217 val
* var19
/* : MClassType */;
1218 val
* var21
/* : MClassType */;
1220 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1221 var3
= self
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <self:MModule> */
1222 if (unlikely(var3
== NULL
)) {
1223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1224 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
1236 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1241 var8
= model__Model__get_mclasses_by_name(var1
, var4
);
1245 if (var_clas
== NULL
) {
1246 var10
= 1; /* is null */
1248 var10
= 0; /* arg is null but recv is not */
1251 var11
= array__Array___61d_61d(var_clas
, var9
);
1265 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1270 var18
= model__MModule__get_primitive_class(self
, var14
);
1273 { /* Inline model#MClass#mclass_type (var18) on <var18:MClass> */
1274 var21
= var18
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var18:MClass> */
1275 if (unlikely(var21
== NULL
)) {
1276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1277 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
1281 RET_LABEL20
:(void)0;
1289 /* method model#MModule#sys_type for (self: Object): nullable MClassType */
1290 val
* VIRTUAL_model__MModule__sys_type(val
* self
) {
1291 val
* var
/* : nullable MClassType */;
1292 val
* var1
/* : nullable MClassType */;
1293 var1
= model__MModule__sys_type(self
);
1298 /* method model#MModule#finalizable_type for (self: MModule): nullable MClassType */
1299 val
* model__MModule__finalizable_type(val
* self
) {
1300 val
* var
/* : nullable MClassType */;
1301 val
* var1
/* : Model */;
1302 val
* var3
/* : Model */;
1303 static val
* varonce
;
1304 val
* var4
/* : String */;
1305 char* var5
/* : NativeString */;
1306 long var6
/* : Int */;
1307 val
* var7
/* : FlatString */;
1308 val
* var8
/* : nullable Array[MClass] */;
1309 val
* var_clas
/* var clas: nullable Array[MClass] */;
1310 val
* var9
/* : null */;
1311 short int var10
/* : Bool */;
1312 short int var11
/* : Bool */;
1313 val
* var12
/* : null */;
1314 static val
* varonce13
;
1315 val
* var14
/* : String */;
1316 char* var15
/* : NativeString */;
1317 long var16
/* : Int */;
1318 val
* var17
/* : FlatString */;
1319 val
* var18
/* : MClass */;
1320 val
* var19
/* : MClassType */;
1321 val
* var21
/* : MClassType */;
1323 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1324 var3
= self
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <self:MModule> */
1325 if (unlikely(var3
== NULL
)) {
1326 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1327 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
1337 var5
= "Finalizable";
1339 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1344 var8
= model__Model__get_mclasses_by_name(var1
, var4
);
1348 if (var_clas
== NULL
) {
1349 var10
= 1; /* is null */
1351 var10
= 0; /* arg is null but recv is not */
1354 var11
= array__Array___61d_61d(var_clas
, var9
);
1366 var15
= "Finalizable";
1368 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1373 var18
= model__MModule__get_primitive_class(self
, var14
);
1376 { /* Inline model#MClass#mclass_type (var18) on <var18:MClass> */
1377 var21
= var18
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var18:MClass> */
1378 if (unlikely(var21
== NULL
)) {
1379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1380 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
1384 RET_LABEL20
:(void)0;
1392 /* method model#MModule#finalizable_type for (self: Object): nullable MClassType */
1393 val
* VIRTUAL_model__MModule__finalizable_type(val
* self
) {
1394 val
* var
/* : nullable MClassType */;
1395 val
* var1
/* : nullable MClassType */;
1396 var1
= model__MModule__finalizable_type(self
);
1401 /* method model#MModule#get_primitive_class for (self: MModule, String): MClass */
1402 val
* model__MModule__get_primitive_class(val
* self
, val
* p0
) {
1403 val
* var
/* : MClass */;
1404 val
* var_name
/* var name: String */;
1405 val
* var1
/* : Model */;
1406 val
* var3
/* : Model */;
1407 val
* var4
/* : nullable Array[MClass] */;
1408 val
* var_cla
/* var cla: nullable Array[MClass] */;
1409 val
* var5
/* : null */;
1410 short int var6
/* : Bool */;
1411 short int var7
/* : Bool */;
1412 static val
* varonce
;
1413 val
* var8
/* : String */;
1414 char* var9
/* : NativeString */;
1415 long var10
/* : Int */;
1416 val
* var11
/* : FlatString */;
1417 short int var12
/* : Bool */;
1418 short int var13
/* : Bool */;
1419 val
* var14
/* : MClass */;
1420 val
* var15
/* : null */;
1421 val
* var16
/* : MClassKind */;
1422 val
* var17
/* : MVisibility */;
1423 val
* var_c
/* var c: MClass */;
1424 val
* var18
/* : MClassDef */;
1425 val
* var19
/* : MClassType */;
1426 val
* var21
/* : MClassType */;
1427 val
* var22
/* : Location */;
1428 val
* var23
/* : null */;
1429 long var24
/* : Int */;
1430 long var25
/* : Int */;
1431 long var26
/* : Int */;
1432 long var27
/* : Int */;
1433 val
* var_cladef
/* var cladef: MClassDef */;
1434 static val
* varonce28
;
1435 val
* var29
/* : String */;
1436 char* var30
/* : NativeString */;
1437 long var31
/* : Int */;
1438 val
* var32
/* : FlatString */;
1439 val
* var33
/* : Array[Object] */;
1440 long var34
/* : Int */;
1441 val
* var35
/* : NativeArray[Object] */;
1442 val
* var36
/* : String */;
1443 long var37
/* : Int */;
1444 long var39
/* : Int */;
1445 long var41
/* : Int */;
1446 long var42
/* : Int */;
1447 short int var43
/* : Bool */;
1448 short int var44
/* : Bool */;
1449 short int var46
/* : Bool */;
1450 short int var47
/* : Bool */;
1451 static val
* varonce48
;
1452 val
* var49
/* : String */;
1453 char* var50
/* : NativeString */;
1454 long var51
/* : Int */;
1455 val
* var52
/* : FlatString */;
1456 static val
* varonce53
;
1457 val
* var54
/* : String */;
1458 char* var55
/* : NativeString */;
1459 long var56
/* : Int */;
1460 val
* var57
/* : FlatString */;
1461 val
* var58
/* : Array[Object] */;
1462 long var59
/* : Int */;
1463 val
* var60
/* : NativeArray[Object] */;
1464 val
* var61
/* : String */;
1465 val
* var_msg
/* var msg: String */;
1466 val
* var_
/* var : nullable Array[MClass] */;
1467 val
* var62
/* : ArrayIterator[nullable Object] */;
1468 val
* var_63
/* var : ArrayIterator[MClass] */;
1469 short int var64
/* : Bool */;
1470 val
* var65
/* : nullable Object */;
1471 val
* var_c66
/* var c: MClass */;
1472 static val
* varonce67
;
1473 val
* var68
/* : String */;
1474 char* var69
/* : NativeString */;
1475 long var70
/* : Int */;
1476 val
* var71
/* : FlatString */;
1477 val
* var72
/* : String */;
1478 val
* var73
/* : Array[Object] */;
1479 long var74
/* : Int */;
1480 val
* var75
/* : NativeArray[Object] */;
1481 val
* var76
/* : String */;
1482 val
* var77
/* : String */;
1483 long var79
/* : Int */;
1484 val
* var81
/* : nullable Object */;
1487 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1488 var3
= self
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <self:MModule> */
1489 if (unlikely(var3
== NULL
)) {
1490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1491 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
1499 var4
= model__Model__get_mclasses_by_name(var1
, var_name
);
1503 if (var_cla
== NULL
) {
1504 var6
= 1; /* is null */
1506 var6
= 0; /* arg is null but recv is not */
1509 var7
= array__Array___61d_61d(var_cla
, var5
);
1518 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1523 var13
= string__FlatString___61d_61d(var_name
, var8
);
1527 var14
= NEW_model__MClass(&type_model__MClass
);
1530 var16
= model__Object__enum_kind(self
);
1533 var17
= model_base__Object__public_visibility(self
);
1536 model__MClass__init(var14
, self
, var_name
, var15
, var16
, var17
); /* Direct call model#MClass#init on <var14:MClass>*/
1539 var18
= NEW_model__MClassDef(&type_model__MClassDef
);
1541 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
1542 var21
= var_c
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
1543 if (unlikely(var21
== NULL
)) {
1544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1545 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
1549 RET_LABEL20
:(void)0;
1552 var22
= NEW_location__Location(&type_location__Location
);
1559 location__Location__init(var22
, var23
, var24
, var25
, var26
, var27
); /* Direct call location#Location#init on <var22:Location>*/
1562 model__MClassDef__init(var18
, self
, var19
, var22
); /* Direct call model#MClassDef#init on <var18:MClassDef>*/
1572 var30
= "Fatal Error: no primitive class ";
1574 var32
= string__NativeString__to_s_with_length(var30
, var31
);
1578 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
1579 { /* var33 = array_instance Array[Object] */
1581 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
1582 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var29
;
1583 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var_name
;
1585 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
1589 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
1592 file__Object__print(self
, var36
); /* Direct call file#Object#print on <self:MModule>*/
1596 { /* Inline kernel#Object#exit (self,var37) on <self:MModule> */
1598 RET_LABEL38
:(void)0;
1603 if (var_cla
== NULL
) {
1604 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1605 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 262);
1608 { /* Inline array#AbstractArrayRead#length (var_cla) on <var_cla:nullable Array[MClass]> */
1609 if (unlikely(var_cla
== NULL
)) {
1610 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1611 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 24);
1614 var41
= var_cla
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_cla:nullable Array[MClass]> */
1616 RET_LABEL40
:(void)0;
1621 { /* Inline kernel#Int#!= (var39,var42) on <var39:Int> */
1622 var46
= var39
== var42
;
1626 RET_LABEL45
:(void)0;
1634 var50
= "Fatal Error: more than one primitive class ";
1636 var52
= string__NativeString__to_s_with_length(var50
, var51
);
1645 var57
= string__NativeString__to_s_with_length(var55
, var56
);
1649 var58
= NEW_array__Array(&type_array__Arraykernel__Object
);
1650 { /* var58 = array_instance Array[Object] */
1652 var60
= NEW_array__NativeArray(var59
, &type_array__NativeArraykernel__Object
);
1653 ((struct instance_array__NativeArray
*)var60
)->values
[0] = (val
*) var49
;
1654 ((struct instance_array__NativeArray
*)var60
)->values
[1] = (val
*) var_name
;
1655 ((struct instance_array__NativeArray
*)var60
)->values
[2] = (val
*) var54
;
1657 ((void (*)(val
*, val
*, long))(var58
->class->vft
[COLOR_array__Array__with_native
]))(var58
, var60
, var59
) /* with_native on <var58:Array[Object]>*/;
1661 var61
= ((val
* (*)(val
*))(var58
->class->vft
[COLOR_string__Object__to_s
]))(var58
) /* to_s on <var58:Array[Object]>*/;
1666 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1667 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 264);
1670 var62
= array__AbstractArrayRead__iterator(var_
);
1675 var64
= array__ArrayIterator__is_ok(var_63
);
1679 var65
= array__ArrayIterator__item(var_63
);
1687 var71
= string__NativeString__to_s_with_length(var69
, var70
);
1692 var72
= model__MClass__full_name(var_c66
);
1694 var73
= NEW_array__Array(&type_array__Arraykernel__Object
);
1695 { /* var73 = array_instance Array[Object] */
1697 var75
= NEW_array__NativeArray(var74
, &type_array__NativeArraykernel__Object
);
1698 ((struct instance_array__NativeArray
*)var75
)->values
[0] = (val
*) var68
;
1699 ((struct instance_array__NativeArray
*)var75
)->values
[1] = (val
*) var72
;
1701 ((void (*)(val
*, val
*, long))(var73
->class->vft
[COLOR_array__Array__with_native
]))(var73
, var75
, var74
) /* with_native on <var73:Array[Object]>*/;
1705 var76
= ((val
* (*)(val
*))(var73
->class->vft
[COLOR_string__Object__to_s
]))(var73
) /* to_s on <var73:Array[Object]>*/;
1708 var77
= string__FlatString___43d(var_msg
, var76
);
1712 array__ArrayIterator__next(var_63
); /* Direct call array#ArrayIterator#next on <var_63:ArrayIterator[MClass]>*/
1718 BREAK_label
: (void)0;
1720 { /* Inline abstract_collection#Iterator#finish (var_63) on <var_63:ArrayIterator[MClass]> */
1721 RET_LABEL78
:(void)0;
1725 file__Object__print(self
, var_msg
); /* Direct call file#Object#print on <self:MModule>*/
1729 { /* Inline kernel#Object#exit (self,var79) on <self:MModule> */
1731 RET_LABEL80
:(void)0;
1736 if (var_cla
== NULL
) {
1737 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1738 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 268);
1741 var81
= abstract_collection__SequenceRead__first(var_cla
);
1748 /* method model#MModule#get_primitive_class for (self: Object, String): MClass */
1749 val
* VIRTUAL_model__MModule__get_primitive_class(val
* self
, val
* p0
) {
1750 val
* var
/* : MClass */;
1751 val
* var1
/* : MClass */;
1752 var1
= model__MModule__get_primitive_class(self
, p0
);
1757 /* method model#MModule#try_get_primitive_method for (self: MModule, String, MClass): nullable MMethod */
1758 val
* model__MModule__try_get_primitive_method(val
* self
, val
* p0
, val
* p1
) {
1759 val
* var
/* : nullable MMethod */;
1760 val
* var_name
/* var name: String */;
1761 val
* var_recv
/* var recv: MClass */;
1762 val
* var1
/* : Model */;
1763 val
* var3
/* : Model */;
1764 val
* var4
/* : nullable Array[MProperty] */;
1765 val
* var_props
/* var props: nullable Array[MProperty] */;
1766 val
* var5
/* : null */;
1767 short int var6
/* : Bool */;
1768 short int var7
/* : Bool */;
1769 val
* var8
/* : null */;
1770 val
* var9
/* : null */;
1771 val
* var_res
/* var res: nullable MMethod */;
1772 val
* var_
/* var : Array[MProperty] */;
1773 val
* var10
/* : ArrayIterator[nullable Object] */;
1774 val
* var_11
/* var : ArrayIterator[MProperty] */;
1775 short int var12
/* : Bool */;
1776 val
* var13
/* : nullable Object */;
1777 val
* var_mprop
/* var mprop: MProperty */;
1778 short int var14
/* : Bool */;
1781 val
* var15
/* : MClassDef */;
1782 val
* var17
/* : MClassDef */;
1783 val
* var_intro
/* var intro: MClassDef */;
1784 val
* var18
/* : Array[MClassDef] */;
1785 val
* var20
/* : Array[MClassDef] */;
1786 val
* var_21
/* var : Array[MClassDef] */;
1787 val
* var22
/* : ArrayIterator[nullable Object] */;
1788 val
* var_23
/* var : ArrayIterator[MClassDef] */;
1789 short int var24
/* : Bool */;
1790 val
* var25
/* : nullable Object */;
1791 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1792 val
* var26
/* : POSetElement[MModule] */;
1793 val
* var28
/* : POSetElement[MModule] */;
1794 val
* var29
/* : Collection[Object] */;
1795 val
* var30
/* : MModule */;
1796 val
* var32
/* : MModule */;
1797 short int var33
/* : Bool */;
1798 short int var34
/* : Bool */;
1799 val
* var35
/* : nullable POSetElement[MClassDef] */;
1800 val
* var37
/* : nullable POSetElement[MClassDef] */;
1801 val
* var38
/* : Collection[Object] */;
1802 short int var39
/* : Bool */;
1803 short int var40
/* : Bool */;
1804 val
* var41
/* : null */;
1805 short int var42
/* : Bool */;
1806 short int var43
/* : Bool */;
1807 val
* var_other
/* var other: nullable Object */;
1808 short int var45
/* : Bool */;
1809 short int var47
/* : Bool */;
1810 short int var48
/* : Bool */;
1811 short int var49
/* : Bool */;
1812 val
* var_other51
/* var other: nullable Object */;
1813 short int var52
/* : Bool */;
1814 short int var53
/* : Bool */;
1815 short int var54
/* : Bool */;
1816 static val
* varonce
;
1817 val
* var55
/* : String */;
1818 char* var56
/* : NativeString */;
1819 long var57
/* : Int */;
1820 val
* var58
/* : FlatString */;
1821 static val
* varonce59
;
1822 val
* var60
/* : String */;
1823 char* var61
/* : NativeString */;
1824 long var62
/* : Int */;
1825 val
* var63
/* : FlatString */;
1826 val
* var64
/* : String */;
1827 static val
* varonce65
;
1828 val
* var66
/* : String */;
1829 char* var67
/* : NativeString */;
1830 long var68
/* : Int */;
1831 val
* var69
/* : FlatString */;
1832 val
* var70
/* : String */;
1833 val
* var71
/* : Array[Object] */;
1834 long var72
/* : Int */;
1835 val
* var73
/* : NativeArray[Object] */;
1836 val
* var74
/* : String */;
1840 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1841 var3
= self
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <self:MModule> */
1842 if (unlikely(var3
== NULL
)) {
1843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1844 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
1852 var4
= model__Model__get_mproperties_by_name(var1
, var_name
);
1856 if (var_props
== NULL
) {
1857 var6
= 1; /* is null */
1859 var6
= 0; /* arg is null but recv is not */
1862 var7
= array__Array___61d_61d(var_props
, var5
);
1875 var10
= array__AbstractArrayRead__iterator(var_
);
1880 var12
= array__ArrayIterator__is_ok(var_11
);
1884 var13
= array__ArrayIterator__item(var_11
);
1887 /* <var_mprop:MProperty> isa MMethod */
1888 cltype
= type_model__MMethod
.color
;
1889 idtype
= type_model__MMethod
.id
;
1890 if(cltype
>= var_mprop
->type
->table_size
) {
1893 var14
= var_mprop
->type
->type_table
[cltype
] == idtype
;
1895 if (unlikely(!var14
)) {
1896 PRINT_ERROR("Runtime error: %s", "Assert failed");
1897 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 278);
1901 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
1902 var17
= var_mprop
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
1903 if (unlikely(var17
== NULL
)) {
1904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1905 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
1909 RET_LABEL16
:(void)0;
1914 { /* Inline model#MClass#mclassdefs (var_recv) on <var_recv:MClass> */
1915 var20
= var_recv
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <var_recv:MClass> */
1916 if (unlikely(var20
== NULL
)) {
1917 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
1918 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
1922 RET_LABEL19
:(void)0;
1927 var22
= array__AbstractArrayRead__iterator(var_21
);
1932 var24
= array__ArrayIterator__is_ok(var_23
);
1936 var25
= array__ArrayIterator__item(var_23
);
1938 var_mclassdef
= var25
;
1940 { /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
1941 var28
= self
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <self:MModule> */
1942 if (unlikely(var28
== NULL
)) {
1943 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1944 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
1948 RET_LABEL27
:(void)0;
1952 var29
= poset__POSetElement__greaters(var26
);
1955 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
1956 var32
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var_mclassdef:MClassDef> */
1957 if (unlikely(var32
== NULL
)) {
1958 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1959 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
1963 RET_LABEL31
:(void)0;
1967 var33
= ((short int (*)(val
*, val
*))(var29
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var29
, var30
) /* has on <var29:Collection[Object](Collection[MModule])>*/;
1975 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
1976 var37
= var_mclassdef
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <var_mclassdef:MClassDef> */
1978 RET_LABEL36
:(void)0;
1981 if (var35
== NULL
) {
1982 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1983 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 282);
1986 var38
= poset__POSetElement__greaters(var35
);
1989 var39
= ((short int (*)(val
*, val
*))(var38
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var38
, var_intro
) /* has on <var38:Collection[Object](Collection[MClassDef])>*/;
1997 if (var_res
== NULL
) {
1998 var42
= 1; /* is null */
2000 var42
= 0; /* arg is null but recv is not */
2003 { /* Inline kernel#Object#== (var_res,var41) on <var_res:nullable MMethod> */
2006 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MMethod(MMethod)> */
2007 var47
= var_res
== var_other
;
2010 RET_LABEL46
:(void)0;
2015 RET_LABEL44
:(void)0;
2020 var_res
= var_mprop
;
2023 { /* Inline kernel#Object#!= (var_res,var_mprop) on <var_res:nullable MMethod(MMethod)> */
2024 var_other51
= var_mprop
;
2026 var53
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other51
) /* == on <var_res:nullable MMethod(MMethod)>*/;
2032 RET_LABEL50
:(void)0;
2040 var56
= "Fatal Error: ambigous property name \'";
2042 var58
= string__NativeString__to_s_with_length(var56
, var57
);
2049 var61
= "\'; conflict between ";
2051 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2056 var64
= model__MProperty__full_name(var_mprop
);
2063 var69
= string__NativeString__to_s_with_length(var67
, var68
);
2068 var70
= model__MProperty__full_name(var_res
);
2070 var71
= NEW_array__Array(&type_array__Arraykernel__Object
);
2071 { /* var71 = array_instance Array[Object] */
2073 var73
= NEW_array__NativeArray(var72
, &type_array__NativeArraykernel__Object
);
2074 ((struct instance_array__NativeArray
*)var73
)->values
[0] = (val
*) var55
;
2075 ((struct instance_array__NativeArray
*)var73
)->values
[1] = (val
*) var_name
;
2076 ((struct instance_array__NativeArray
*)var73
)->values
[2] = (val
*) var60
;
2077 ((struct instance_array__NativeArray
*)var73
)->values
[3] = (val
*) var64
;
2078 ((struct instance_array__NativeArray
*)var73
)->values
[4] = (val
*) var66
;
2079 ((struct instance_array__NativeArray
*)var73
)->values
[5] = (val
*) var70
;
2081 ((void (*)(val
*, val
*, long))(var71
->class->vft
[COLOR_array__Array__with_native
]))(var71
, var73
, var72
) /* with_native on <var71:Array[Object]>*/;
2085 var74
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_string__Object__to_s
]))(var71
) /* to_s on <var71:Array[Object]>*/;
2088 file__Object__print(self
, var74
); /* Direct call file#Object#print on <self:MModule>*/
2090 PRINT_ERROR("Runtime error: %s", "Aborted");
2091 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 287);
2096 BREAK_label
: (void)0;
2098 array__ArrayIterator__next(var_23
); /* Direct call array#ArrayIterator#next on <var_23:ArrayIterator[MClassDef]>*/
2104 BREAK_label75
: (void)0;
2106 { /* Inline abstract_collection#Iterator#finish (var_23) on <var_23:ArrayIterator[MClassDef]> */
2107 RET_LABEL76
:(void)0;
2111 array__ArrayIterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[MProperty]>*/
2117 BREAK_label77
: (void)0;
2119 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[MProperty]> */
2120 RET_LABEL78
:(void)0;
2128 /* method model#MModule#try_get_primitive_method for (self: Object, String, MClass): nullable MMethod */
2129 val
* VIRTUAL_model__MModule__try_get_primitive_method(val
* self
, val
* p0
, val
* p1
) {
2130 val
* var
/* : nullable MMethod */;
2131 val
* var1
/* : nullable MMethod */;
2132 var1
= model__MModule__try_get_primitive_method(self
, p0
, p1
);
2137 /* method model#MClassDefSorter#mmodule for (self: MClassDefSorter): MModule */
2138 val
* model__MClassDefSorter__mmodule(val
* self
) {
2139 val
* var
/* : MModule */;
2140 val
* var1
/* : MModule */;
2141 var1
= self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
; /* _mmodule on <self:MClassDefSorter> */
2142 if (unlikely(var1
== NULL
)) {
2143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2144 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 298);
2151 /* method model#MClassDefSorter#mmodule for (self: Object): MModule */
2152 val
* VIRTUAL_model__MClassDefSorter__mmodule(val
* self
) {
2153 val
* var
/* : MModule */;
2154 val
* var1
/* : MModule */;
2155 val
* var3
/* : MModule */;
2156 { /* Inline model#MClassDefSorter#mmodule (self) on <self:Object(MClassDefSorter)> */
2157 var3
= self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
; /* _mmodule on <self:Object(MClassDefSorter)> */
2158 if (unlikely(var3
== NULL
)) {
2159 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2160 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 298);
2170 /* method model#MClassDefSorter#mmodule= for (self: MClassDefSorter, MModule) */
2171 void model__MClassDefSorter__mmodule_61d(val
* self
, val
* p0
) {
2172 self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
= p0
; /* _mmodule on <self:MClassDefSorter> */
2175 /* method model#MClassDefSorter#mmodule= for (self: Object, MModule) */
2176 void VIRTUAL_model__MClassDefSorter__mmodule_61d(val
* self
, val
* p0
) {
2177 { /* Inline model#MClassDefSorter#mmodule= (self,p0) on <self:Object(MClassDefSorter)> */
2178 self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
= p0
; /* _mmodule on <self:Object(MClassDefSorter)> */
2183 /* method model#MClassDefSorter#compare for (self: MClassDefSorter, MClassDef, MClassDef): Int */
2184 long model__MClassDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
2185 long var
/* : Int */;
2186 short int var1
/* : Bool */;
2189 const struct type
* type_struct
;
2190 const char* var_class_name
;
2191 short int var2
/* : Bool */;
2194 const struct type
* type_struct5
;
2195 const char* var_class_name6
;
2196 val
* var_a
/* var a: MClassDef */;
2197 val
* var_b
/* var b: MClassDef */;
2198 val
* var7
/* : MClass */;
2199 val
* var9
/* : MClass */;
2200 val
* var_ca
/* var ca: MClass */;
2201 val
* var10
/* : MClass */;
2202 val
* var12
/* : MClass */;
2203 val
* var_cb
/* var cb: MClass */;
2204 short int var13
/* : Bool */;
2205 short int var14
/* : Bool */;
2206 val
* var_other
/* var other: nullable Object */;
2207 short int var16
/* : Bool */;
2208 short int var17
/* : Bool */;
2209 short int var18
/* : Bool */;
2210 val
* var19
/* : MModule */;
2211 val
* var21
/* : MModule */;
2212 val
* var22
/* : POSet[MClass] */;
2213 long var23
/* : Int */;
2214 val
* var24
/* : MModule */;
2215 val
* var26
/* : MModule */;
2216 val
* var27
/* : Model */;
2217 val
* var29
/* : Model */;
2218 val
* var30
/* : POSet[MClassDef] */;
2219 val
* var32
/* : POSet[MClassDef] */;
2220 long var33
/* : Int */;
2221 /* Covariant cast for argument 0 (a) <p0:MClassDef> isa COMPARED */
2222 /* <p0:MClassDef> isa COMPARED */
2223 type_struct
= self
->type
->resolution_table
->types
[COLOR_sorter__Comparator_VTCOMPARED
];
2224 cltype
= type_struct
->color
;
2225 idtype
= type_struct
->id
;
2226 if(cltype
>= p0
->type
->table_size
) {
2229 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2231 if (unlikely(!var1
)) {
2232 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2233 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name
);
2234 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 299);
2237 /* Covariant cast for argument 1 (b) <p1:MClassDef> isa COMPARED */
2238 /* <p1:MClassDef> isa COMPARED */
2239 type_struct5
= self
->type
->resolution_table
->types
[COLOR_sorter__Comparator_VTCOMPARED
];
2240 cltype3
= type_struct5
->color
;
2241 idtype4
= type_struct5
->id
;
2242 if(cltype3
>= p1
->type
->table_size
) {
2245 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
2247 if (unlikely(!var2
)) {
2248 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
2249 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name6
);
2250 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 299);
2256 { /* Inline model#MClassDef#mclass (var_a) on <var_a:MClassDef> */
2257 var9
= var_a
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_a:MClassDef> */
2258 if (unlikely(var9
== NULL
)) {
2259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2260 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
2269 { /* Inline model#MClassDef#mclass (var_b) on <var_b:MClassDef> */
2270 var12
= var_b
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_b:MClassDef> */
2271 if (unlikely(var12
== NULL
)) {
2272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2273 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
2277 RET_LABEL11
:(void)0;
2282 { /* Inline kernel#Object#!= (var_ca,var_cb) on <var_ca:MClass> */
2285 var17
= ((short int (*)(val
*, val
*))(var_ca
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ca
, var_other
) /* == on <var_ca:MClass>*/;
2291 RET_LABEL15
:(void)0;
2297 { /* Inline model#MClassDefSorter#mmodule (self) on <self:MClassDefSorter> */
2298 var21
= self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
; /* _mmodule on <self:MClassDefSorter> */
2299 if (unlikely(var21
== NULL
)) {
2300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2301 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 298);
2305 RET_LABEL20
:(void)0;
2309 var22
= model__MModule__flatten_mclass_hierarchy(var19
);
2312 var23
= poset__POSet__compare(var22
, var_ca
, var_cb
);
2319 { /* Inline model#MClassDefSorter#mmodule (self) on <self:MClassDefSorter> */
2320 var26
= self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
; /* _mmodule on <self:MClassDefSorter> */
2321 if (unlikely(var26
== NULL
)) {
2322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2323 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 298);
2327 RET_LABEL25
:(void)0;
2331 { /* Inline mmodule#MModule#model (var24) on <var24:MModule> */
2332 var29
= var24
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var24:MModule> */
2333 if (unlikely(var29
== NULL
)) {
2334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2335 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
2339 RET_LABEL28
:(void)0;
2343 { /* Inline model#Model#mclassdef_hierarchy (var27) on <var27:Model> */
2344 var32
= var27
->attrs
[COLOR_model__Model___mclassdef_hierarchy
].val
; /* _mclassdef_hierarchy on <var27:Model> */
2345 if (unlikely(var32
== NULL
)) {
2346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
2347 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
2351 RET_LABEL31
:(void)0;
2355 var33
= poset__POSet__compare(var30
, var_a
, var_b
);
2362 /* method model#MClassDefSorter#compare for (self: Object, nullable Object, nullable Object): Int */
2363 long VIRTUAL_model__MClassDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
2364 long var
/* : Int */;
2365 long var1
/* : Int */;
2366 var1
= model__MClassDefSorter__compare(self
, p0
, p1
);
2371 /* method model#MClassDefSorter#init for (self: MClassDefSorter) */
2372 void model__MClassDefSorter__init(val
* self
) {
2374 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MClassDefSorter__init
]))(self
) /* init on <self:MClassDefSorter>*/;
2378 /* method model#MClassDefSorter#init for (self: Object) */
2379 void VIRTUAL_model__MClassDefSorter__init(val
* self
) {
2380 { /* Inline model#MClassDefSorter#init (self) on <self:Object(MClassDefSorter)> */
2382 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MClassDefSorter__init
]))(self
) /* init on <self:Object(MClassDefSorter)>*/;
2388 /* method model#MPropDefSorter#mmodule for (self: MPropDefSorter): MModule */
2389 val
* model__MPropDefSorter__mmodule(val
* self
) {
2390 val
* var
/* : MModule */;
2391 val
* var1
/* : MModule */;
2392 var1
= self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
; /* _mmodule on <self:MPropDefSorter> */
2393 if (unlikely(var1
== NULL
)) {
2394 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2395 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 311);
2402 /* method model#MPropDefSorter#mmodule for (self: Object): MModule */
2403 val
* VIRTUAL_model__MPropDefSorter__mmodule(val
* self
) {
2404 val
* var
/* : MModule */;
2405 val
* var1
/* : MModule */;
2406 val
* var3
/* : MModule */;
2407 { /* Inline model#MPropDefSorter#mmodule (self) on <self:Object(MPropDefSorter)> */
2408 var3
= self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
; /* _mmodule on <self:Object(MPropDefSorter)> */
2409 if (unlikely(var3
== NULL
)) {
2410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2411 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 311);
2421 /* method model#MPropDefSorter#mmodule= for (self: MPropDefSorter, MModule) */
2422 void model__MPropDefSorter__mmodule_61d(val
* self
, val
* p0
) {
2423 self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
= p0
; /* _mmodule on <self:MPropDefSorter> */
2426 /* method model#MPropDefSorter#mmodule= for (self: Object, MModule) */
2427 void VIRTUAL_model__MPropDefSorter__mmodule_61d(val
* self
, val
* p0
) {
2428 { /* Inline model#MPropDefSorter#mmodule= (self,p0) on <self:Object(MPropDefSorter)> */
2429 self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
= p0
; /* _mmodule on <self:Object(MPropDefSorter)> */
2434 /* method model#MPropDefSorter#compare for (self: MPropDefSorter, MPropDef, MPropDef): Int */
2435 long model__MPropDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
2436 long var
/* : Int */;
2437 short int var1
/* : Bool */;
2440 const struct type
* type_struct
;
2441 const char* var_class_name
;
2442 short int var2
/* : Bool */;
2445 const struct type
* type_struct5
;
2446 const char* var_class_name6
;
2447 val
* var_pa
/* var pa: MPropDef */;
2448 val
* var_pb
/* var pb: MPropDef */;
2449 val
* var7
/* : MClassDef */;
2450 val
* var9
/* : MClassDef */;
2451 val
* var_a
/* var a: MClassDef */;
2452 val
* var10
/* : MClassDef */;
2453 val
* var12
/* : MClassDef */;
2454 val
* var_b
/* var b: MClassDef */;
2455 val
* var13
/* : MClass */;
2456 val
* var15
/* : MClass */;
2457 val
* var_ca
/* var ca: MClass */;
2458 val
* var16
/* : MClass */;
2459 val
* var18
/* : MClass */;
2460 val
* var_cb
/* var cb: MClass */;
2461 short int var19
/* : Bool */;
2462 short int var20
/* : Bool */;
2463 val
* var_other
/* var other: nullable Object */;
2464 short int var22
/* : Bool */;
2465 short int var23
/* : Bool */;
2466 short int var24
/* : Bool */;
2467 val
* var25
/* : MModule */;
2468 val
* var27
/* : MModule */;
2469 val
* var28
/* : POSet[MClass] */;
2470 long var29
/* : Int */;
2471 val
* var30
/* : MModule */;
2472 val
* var32
/* : MModule */;
2473 val
* var33
/* : Model */;
2474 val
* var35
/* : Model */;
2475 val
* var36
/* : POSet[MClassDef] */;
2476 val
* var38
/* : POSet[MClassDef] */;
2477 long var39
/* : Int */;
2478 /* Covariant cast for argument 0 (pa) <p0:MPropDef> isa COMPARED */
2479 /* <p0:MPropDef> isa COMPARED */
2480 type_struct
= self
->type
->resolution_table
->types
[COLOR_sorter__Comparator_VTCOMPARED
];
2481 cltype
= type_struct
->color
;
2482 idtype
= type_struct
->id
;
2483 if(cltype
>= p0
->type
->table_size
) {
2486 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2488 if (unlikely(!var1
)) {
2489 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2490 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name
);
2491 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 312);
2494 /* Covariant cast for argument 1 (pb) <p1:MPropDef> isa COMPARED */
2495 /* <p1:MPropDef> isa COMPARED */
2496 type_struct5
= self
->type
->resolution_table
->types
[COLOR_sorter__Comparator_VTCOMPARED
];
2497 cltype3
= type_struct5
->color
;
2498 idtype4
= type_struct5
->id
;
2499 if(cltype3
>= p1
->type
->table_size
) {
2502 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
2504 if (unlikely(!var2
)) {
2505 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
2506 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name6
);
2507 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 312);
2513 { /* Inline model#MPropDef#mclassdef (var_pa) on <var_pa:MPropDef> */
2514 var9
= var_pa
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_pa:MPropDef> */
2515 if (unlikely(var9
== NULL
)) {
2516 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2517 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
2526 { /* Inline model#MPropDef#mclassdef (var_pb) on <var_pb:MPropDef> */
2527 var12
= var_pb
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_pb:MPropDef> */
2528 if (unlikely(var12
== NULL
)) {
2529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2530 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
2534 RET_LABEL11
:(void)0;
2539 { /* Inline model#MClassDef#mclass (var_a) on <var_a:MClassDef> */
2540 var15
= var_a
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_a:MClassDef> */
2541 if (unlikely(var15
== NULL
)) {
2542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2543 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
2547 RET_LABEL14
:(void)0;
2552 { /* Inline model#MClassDef#mclass (var_b) on <var_b:MClassDef> */
2553 var18
= var_b
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_b:MClassDef> */
2554 if (unlikely(var18
== NULL
)) {
2555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2556 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
2560 RET_LABEL17
:(void)0;
2565 { /* Inline kernel#Object#!= (var_ca,var_cb) on <var_ca:MClass> */
2568 var23
= ((short int (*)(val
*, val
*))(var_ca
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ca
, var_other
) /* == on <var_ca:MClass>*/;
2574 RET_LABEL21
:(void)0;
2580 { /* Inline model#MPropDefSorter#mmodule (self) on <self:MPropDefSorter> */
2581 var27
= self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
; /* _mmodule on <self:MPropDefSorter> */
2582 if (unlikely(var27
== NULL
)) {
2583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2584 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 311);
2588 RET_LABEL26
:(void)0;
2592 var28
= model__MModule__flatten_mclass_hierarchy(var25
);
2595 var29
= poset__POSet__compare(var28
, var_ca
, var_cb
);
2602 { /* Inline model#MPropDefSorter#mmodule (self) on <self:MPropDefSorter> */
2603 var32
= self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
; /* _mmodule on <self:MPropDefSorter> */
2604 if (unlikely(var32
== NULL
)) {
2605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2606 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 311);
2610 RET_LABEL31
:(void)0;
2614 { /* Inline mmodule#MModule#model (var30) on <var30:MModule> */
2615 var35
= var30
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var30:MModule> */
2616 if (unlikely(var35
== NULL
)) {
2617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2618 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
2622 RET_LABEL34
:(void)0;
2626 { /* Inline model#Model#mclassdef_hierarchy (var33) on <var33:Model> */
2627 var38
= var33
->attrs
[COLOR_model__Model___mclassdef_hierarchy
].val
; /* _mclassdef_hierarchy on <var33:Model> */
2628 if (unlikely(var38
== NULL
)) {
2629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
2630 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
2634 RET_LABEL37
:(void)0;
2638 var39
= poset__POSet__compare(var36
, var_a
, var_b
);
2645 /* method model#MPropDefSorter#compare for (self: Object, nullable Object, nullable Object): Int */
2646 long VIRTUAL_model__MPropDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
2647 long var
/* : Int */;
2648 long var1
/* : Int */;
2649 var1
= model__MPropDefSorter__compare(self
, p0
, p1
);
2654 /* method model#MPropDefSorter#init for (self: MPropDefSorter) */
2655 void model__MPropDefSorter__init(val
* self
) {
2657 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MPropDefSorter__init
]))(self
) /* init on <self:MPropDefSorter>*/;
2661 /* method model#MPropDefSorter#init for (self: Object) */
2662 void VIRTUAL_model__MPropDefSorter__init(val
* self
) {
2663 { /* Inline model#MPropDefSorter#init (self) on <self:Object(MPropDefSorter)> */
2665 ((void (*)(val
*))(self
->class->vft
[COLOR_model__MPropDefSorter__init
]))(self
) /* init on <self:Object(MPropDefSorter)>*/;
2671 /* method model#MClass#intro_mmodule for (self: MClass): MModule */
2672 val
* model__MClass__intro_mmodule(val
* self
) {
2673 val
* var
/* : MModule */;
2674 val
* var1
/* : MModule */;
2675 var1
= self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <self:MClass> */
2676 if (unlikely(var1
== NULL
)) {
2677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
2678 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
2685 /* method model#MClass#intro_mmodule for (self: Object): MModule */
2686 val
* VIRTUAL_model__MClass__intro_mmodule(val
* self
) {
2687 val
* var
/* : MModule */;
2688 val
* var1
/* : MModule */;
2689 val
* var3
/* : MModule */;
2690 { /* Inline model#MClass#intro_mmodule (self) on <self:Object(MClass)> */
2691 var3
= self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <self:Object(MClass)> */
2692 if (unlikely(var3
== NULL
)) {
2693 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
2694 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
2704 /* method model#MClass#intro_mmodule= for (self: MClass, MModule) */
2705 void model__MClass__intro_mmodule_61d(val
* self
, val
* p0
) {
2706 self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
= p0
; /* _intro_mmodule on <self:MClass> */
2709 /* method model#MClass#intro_mmodule= for (self: Object, MModule) */
2710 void VIRTUAL_model__MClass__intro_mmodule_61d(val
* self
, val
* p0
) {
2711 { /* Inline model#MClass#intro_mmodule= (self,p0) on <self:Object(MClass)> */
2712 self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
= p0
; /* _intro_mmodule on <self:Object(MClass)> */
2717 /* method model#MClass#name for (self: MClass): String */
2718 val
* model__MClass__name(val
* self
) {
2719 val
* var
/* : String */;
2720 val
* var1
/* : String */;
2721 var1
= self
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <self:MClass> */
2722 if (unlikely(var1
== NULL
)) {
2723 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2724 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
2731 /* method model#MClass#name for (self: Object): String */
2732 val
* VIRTUAL_model__MClass__name(val
* self
) {
2733 val
* var
/* : String */;
2734 val
* var1
/* : String */;
2735 val
* var3
/* : String */;
2736 { /* Inline model#MClass#name (self) on <self:Object(MClass)> */
2737 var3
= self
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <self:Object(MClass)> */
2738 if (unlikely(var3
== NULL
)) {
2739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2740 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
2750 /* method model#MClass#name= for (self: MClass, String) */
2751 void model__MClass__name_61d(val
* self
, val
* p0
) {
2752 self
->attrs
[COLOR_model__MClass___name
].val
= p0
; /* _name on <self:MClass> */
2755 /* method model#MClass#name= for (self: Object, String) */
2756 void VIRTUAL_model__MClass__name_61d(val
* self
, val
* p0
) {
2757 { /* Inline model#MClass#name= (self,p0) on <self:Object(MClass)> */
2758 self
->attrs
[COLOR_model__MClass___name
].val
= p0
; /* _name on <self:Object(MClass)> */
2763 /* method model#MClass#full_name for (self: MClass): String */
2764 val
* model__MClass__full_name(val
* self
) {
2765 val
* var
/* : String */;
2766 val
* var1
/* : MModule */;
2767 val
* var3
/* : MModule */;
2768 val
* var4
/* : String */;
2769 static val
* varonce
;
2770 val
* var5
/* : String */;
2771 char* var6
/* : NativeString */;
2772 long var7
/* : Int */;
2773 val
* var8
/* : FlatString */;
2774 val
* var9
/* : String */;
2775 val
* var11
/* : String */;
2776 val
* var12
/* : Array[Object] */;
2777 long var13
/* : Int */;
2778 val
* var14
/* : NativeArray[Object] */;
2779 val
* var15
/* : String */;
2781 { /* Inline model#MClass#intro_mmodule (self) on <self:MClass> */
2782 var3
= self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <self:MClass> */
2783 if (unlikely(var3
== NULL
)) {
2784 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
2785 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
2793 var4
= mmodule__MModule__full_name(var1
);
2800 var8
= string__NativeString__to_s_with_length(var6
, var7
);
2805 { /* Inline model#MClass#name (self) on <self:MClass> */
2806 var11
= self
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <self:MClass> */
2807 if (unlikely(var11
== NULL
)) {
2808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2809 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
2813 RET_LABEL10
:(void)0;
2816 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
2817 { /* var12 = array_instance Array[Object] */
2819 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
2820 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var4
;
2821 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var5
;
2822 ((struct instance_array__NativeArray
*)var14
)->values
[2] = (val
*) var9
;
2824 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
2828 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
2835 /* method model#MClass#full_name for (self: Object): String */
2836 val
* VIRTUAL_model__MClass__full_name(val
* self
) {
2837 val
* var
/* : String */;
2838 val
* var1
/* : String */;
2839 var1
= model__MClass__full_name(self
);
2844 /* method model#MClass#arity for (self: MClass): Int */
2845 long model__MClass__arity(val
* self
) {
2846 long var
/* : Int */;
2847 long var1
/* : Int */;
2848 var1
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:MClass> */
2853 /* method model#MClass#arity for (self: Object): Int */
2854 long VIRTUAL_model__MClass__arity(val
* self
) {
2855 long var
/* : Int */;
2856 long var1
/* : Int */;
2857 long var3
/* : Int */;
2858 { /* Inline model#MClass#arity (self) on <self:Object(MClass)> */
2859 var3
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:Object(MClass)> */
2867 /* method model#MClass#arity= for (self: MClass, Int) */
2868 void model__MClass__arity_61d(val
* self
, long p0
) {
2869 self
->attrs
[COLOR_model__MClass___arity
].l
= p0
; /* _arity on <self:MClass> */
2872 /* method model#MClass#arity= for (self: Object, Int) */
2873 void VIRTUAL_model__MClass__arity_61d(val
* self
, long p0
) {
2874 { /* Inline model#MClass#arity= (self,p0) on <self:Object(MClass)> */
2875 self
->attrs
[COLOR_model__MClass___arity
].l
= p0
; /* _arity on <self:Object(MClass)> */
2880 /* method model#MClass#mparameters for (self: MClass): Array[MParameterType] */
2881 val
* model__MClass__mparameters(val
* self
) {
2882 val
* var
/* : Array[MParameterType] */;
2883 val
* var1
/* : Array[MParameterType] */;
2884 var1
= self
->attrs
[COLOR_model__MClass___mparameters
].val
; /* _mparameters on <self:MClass> */
2885 if (unlikely(var1
== NULL
)) {
2886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2887 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 367);
2894 /* method model#MClass#mparameters for (self: Object): Array[MParameterType] */
2895 val
* VIRTUAL_model__MClass__mparameters(val
* self
) {
2896 val
* var
/* : Array[MParameterType] */;
2897 val
* var1
/* : Array[MParameterType] */;
2898 val
* var3
/* : Array[MParameterType] */;
2899 { /* Inline model#MClass#mparameters (self) on <self:Object(MClass)> */
2900 var3
= self
->attrs
[COLOR_model__MClass___mparameters
].val
; /* _mparameters on <self:Object(MClass)> */
2901 if (unlikely(var3
== NULL
)) {
2902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2903 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 367);
2913 /* method model#MClass#mparameters= for (self: MClass, Array[MParameterType]) */
2914 void model__MClass__mparameters_61d(val
* self
, val
* p0
) {
2915 self
->attrs
[COLOR_model__MClass___mparameters
].val
= p0
; /* _mparameters on <self:MClass> */
2918 /* method model#MClass#mparameters= for (self: Object, Array[MParameterType]) */
2919 void VIRTUAL_model__MClass__mparameters_61d(val
* self
, val
* p0
) {
2920 { /* Inline model#MClass#mparameters= (self,p0) on <self:Object(MClass)> */
2921 self
->attrs
[COLOR_model__MClass___mparameters
].val
= p0
; /* _mparameters on <self:Object(MClass)> */
2926 /* method model#MClass#kind for (self: MClass): MClassKind */
2927 val
* model__MClass__kind(val
* self
) {
2928 val
* var
/* : MClassKind */;
2929 val
* var1
/* : MClassKind */;
2930 var1
= self
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <self:MClass> */
2931 if (unlikely(var1
== NULL
)) {
2932 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2933 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
2940 /* method model#MClass#kind for (self: Object): MClassKind */
2941 val
* VIRTUAL_model__MClass__kind(val
* self
) {
2942 val
* var
/* : MClassKind */;
2943 val
* var1
/* : MClassKind */;
2944 val
* var3
/* : MClassKind */;
2945 { /* Inline model#MClass#kind (self) on <self:Object(MClass)> */
2946 var3
= self
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <self:Object(MClass)> */
2947 if (unlikely(var3
== NULL
)) {
2948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2949 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
2959 /* method model#MClass#kind= for (self: MClass, MClassKind) */
2960 void model__MClass__kind_61d(val
* self
, val
* p0
) {
2961 self
->attrs
[COLOR_model__MClass___kind
].val
= p0
; /* _kind on <self:MClass> */
2964 /* method model#MClass#kind= for (self: Object, MClassKind) */
2965 void VIRTUAL_model__MClass__kind_61d(val
* self
, val
* p0
) {
2966 { /* Inline model#MClass#kind= (self,p0) on <self:Object(MClass)> */
2967 self
->attrs
[COLOR_model__MClass___kind
].val
= p0
; /* _kind on <self:Object(MClass)> */
2972 /* method model#MClass#visibility for (self: MClass): MVisibility */
2973 val
* model__MClass__visibility(val
* self
) {
2974 val
* var
/* : MVisibility */;
2975 val
* var1
/* : MVisibility */;
2976 var1
= self
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <self:MClass> */
2977 if (unlikely(var1
== NULL
)) {
2978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
2979 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
2986 /* method model#MClass#visibility for (self: Object): MVisibility */
2987 val
* VIRTUAL_model__MClass__visibility(val
* self
) {
2988 val
* var
/* : MVisibility */;
2989 val
* var1
/* : MVisibility */;
2990 val
* var3
/* : MVisibility */;
2991 { /* Inline model#MClass#visibility (self) on <self:Object(MClass)> */
2992 var3
= self
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <self:Object(MClass)> */
2993 if (unlikely(var3
== NULL
)) {
2994 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
2995 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
3005 /* method model#MClass#visibility= for (self: MClass, MVisibility) */
3006 void model__MClass__visibility_61d(val
* self
, val
* p0
) {
3007 self
->attrs
[COLOR_model__MClass___visibility
].val
= p0
; /* _visibility on <self:MClass> */
3010 /* method model#MClass#visibility= for (self: Object, MVisibility) */
3011 void VIRTUAL_model__MClass__visibility_61d(val
* self
, val
* p0
) {
3012 { /* Inline model#MClass#visibility= (self,p0) on <self:Object(MClass)> */
3013 self
->attrs
[COLOR_model__MClass___visibility
].val
= p0
; /* _visibility on <self:Object(MClass)> */
3018 /* method model#MClass#init for (self: MClass, MModule, String, nullable Array[String], MClassKind, MVisibility) */
3019 void model__MClass__init(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
, val
* p4
) {
3020 val
* var_intro_mmodule
/* var intro_mmodule: MModule */;
3021 val
* var_name
/* var name: String */;
3022 val
* var_parameter_names
/* var parameter_names: nullable Array[String] */;
3023 val
* var_kind
/* var kind: MClassKind */;
3024 val
* var_visibility
/* var visibility: MVisibility */;
3025 val
* var
/* : null */;
3026 short int var3
/* : Bool */;
3027 short int var4
/* : Bool */;
3028 long var5
/* : Int */;
3029 long var7
/* : Int */;
3030 long var9
/* : Int */;
3031 val
* var13
/* : Array[MClass] */;
3032 val
* var15
/* : Array[MClass] */;
3033 val
* var16
/* : Model */;
3034 val
* var18
/* : Model */;
3035 val
* var_model
/* var model: Model */;
3036 val
* var19
/* : MultiHashMap[String, MClass] */;
3037 val
* var21
/* : MultiHashMap[String, MClass] */;
3038 val
* var22
/* : Array[MClass] */;
3039 val
* var24
/* : Array[MClass] */;
3040 long var25
/* : Int */;
3041 long var27
/* : Int */;
3042 long var28
/* : Int */;
3043 short int var29
/* : Bool */;
3044 short int var31
/* : Bool */;
3047 const char* var_class_name
;
3048 short int var32
/* : Bool */;
3049 val
* var33
/* : null */;
3050 short int var34
/* : Bool */;
3051 short int var35
/* : Bool */;
3052 val
* var_other
/* var other: nullable Object */;
3053 short int var37
/* : Bool */;
3054 short int var38
/* : Bool */;
3055 short int var39
/* : Bool */;
3056 val
* var40
/* : Array[MParameterType] */;
3057 val
* var_mparametertypes
/* var mparametertypes: Array[MParameterType] */;
3058 long var41
/* : Int */;
3059 long var_i
/* var i: Int */;
3060 long var42
/* : Int */;
3061 long var44
/* : Int */;
3062 long var_
/* var : Int */;
3063 short int var45
/* : Bool */;
3064 short int var47
/* : Bool */;
3067 const char* var_class_name50
;
3068 short int var51
/* : Bool */;
3069 val
* var52
/* : MParameterType */;
3070 val
* var53
/* : nullable Object */;
3071 val
* var_mparametertype
/* var mparametertype: MParameterType */;
3072 long var54
/* : Int */;
3073 long var55
/* : Int */;
3074 val
* var57
/* : MGenericType */;
3075 val
* var_mclass_type
/* var mclass_type: MGenericType */;
3076 val
* var59
/* : Array[MGenericType] */;
3077 val
* var61
/* : Array[MGenericType] */;
3078 val
* var62
/* : MClassType */;
3080 ((void (*)(val
*))(self
->class->vft
[COLOR_kernel__Object__init
]))(self
) /* init on <self:MClass>*/;
3082 var_intro_mmodule
= p0
;
3084 var_parameter_names
= p2
;
3086 var_visibility
= p4
;
3088 { /* Inline model#MClass#intro_mmodule= (self,var_intro_mmodule) on <self:MClass> */
3089 self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
= var_intro_mmodule
; /* _intro_mmodule on <self:MClass> */
3094 { /* Inline model#MClass#name= (self,var_name) on <self:MClass> */
3095 self
->attrs
[COLOR_model__MClass___name
].val
= var_name
; /* _name on <self:MClass> */
3100 if (var_parameter_names
== NULL
) {
3101 var3
= 1; /* is null */
3103 var3
= 0; /* arg is null but recv is not */
3106 var4
= array__Array___61d_61d(var_parameter_names
, var
);
3112 { /* Inline model#MClass#arity= (self,var5) on <self:MClass> */
3113 self
->attrs
[COLOR_model__MClass___arity
].l
= var5
; /* _arity on <self:MClass> */
3119 { /* Inline array#AbstractArrayRead#length (var_parameter_names) on <var_parameter_names:nullable Array[String](Array[String])> */
3120 var9
= var_parameter_names
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_parameter_names:nullable Array[String](Array[String])> */
3126 { /* Inline model#MClass#arity= (self,var7) on <self:MClass> */
3127 self
->attrs
[COLOR_model__MClass___arity
].l
= var7
; /* _arity on <self:MClass> */
3128 RET_LABEL10
:(void)0;
3133 { /* Inline model#MClass#kind= (self,var_kind) on <self:MClass> */
3134 self
->attrs
[COLOR_model__MClass___kind
].val
= var_kind
; /* _kind on <self:MClass> */
3135 RET_LABEL11
:(void)0;
3139 { /* Inline model#MClass#visibility= (self,var_visibility) on <self:MClass> */
3140 self
->attrs
[COLOR_model__MClass___visibility
].val
= var_visibility
; /* _visibility on <self:MClass> */
3141 RET_LABEL12
:(void)0;
3145 { /* Inline model#MModule#intro_mclasses (var_intro_mmodule) on <var_intro_mmodule:MModule> */
3146 var15
= var_intro_mmodule
->attrs
[COLOR_model__MModule___intro_mclasses
].val
; /* _intro_mclasses on <var_intro_mmodule:MModule> */
3147 if (unlikely(var15
== NULL
)) {
3148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
3149 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136);
3153 RET_LABEL14
:(void)0;
3157 array__Array__add(var13
, self
); /* Direct call array#Array#add on <var13:Array[MClass]>*/
3160 { /* Inline mmodule#MModule#model (var_intro_mmodule) on <var_intro_mmodule:MModule> */
3161 var18
= var_intro_mmodule
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var_intro_mmodule:MModule> */
3162 if (unlikely(var18
== NULL
)) {
3163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
3164 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
3168 RET_LABEL17
:(void)0;
3173 { /* Inline model#Model#mclasses_by_name (var_model) on <var_model:Model> */
3174 var21
= var_model
->attrs
[COLOR_model__Model___mclasses_by_name
].val
; /* _mclasses_by_name on <var_model:Model> */
3175 if (unlikely(var21
== NULL
)) {
3176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
3177 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
3181 RET_LABEL20
:(void)0;
3185 more_collections__MultiHashMap__add_one(var19
, var_name
, self
); /* Direct call more_collections#MultiHashMap#add_one on <var19:MultiHashMap[String, MClass]>*/
3188 { /* Inline model#Model#mclasses (var_model) on <var_model:Model> */
3189 var24
= var_model
->attrs
[COLOR_model__Model___mclasses
].val
; /* _mclasses on <var_model:Model> */
3190 if (unlikely(var24
== NULL
)) {
3191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses");
3192 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 34);
3196 RET_LABEL23
:(void)0;
3200 array__Array__add(var22
, self
); /* Direct call array#Array#add on <var22:Array[MClass]>*/
3203 { /* Inline model#MClass#arity (self) on <self:MClass> */
3204 var27
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:MClass> */
3206 RET_LABEL26
:(void)0;
3211 { /* Inline kernel#Int#> (var25,var28) on <var25:Int> */
3212 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
3213 /* <var28:Int> isa OTHER */
3214 var31
= 1; /* easy <var28:Int> isa OTHER*/
3215 if (unlikely(!var31
)) {
3216 var_class_name
= type_kernel__Int
.name
;
3217 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
3218 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
3221 var32
= var25
> var28
;
3224 RET_LABEL30
:(void)0;
3229 if (var_parameter_names
== NULL
) {
3230 var34
= 0; /* is null */
3232 var34
= 1; /* arg is null and recv is not */
3235 { /* Inline kernel#Object#!= (var_parameter_names,var33) on <var_parameter_names:nullable Array[String]> */
3238 var38
= ((short int (*)(val
*, val
*))(var_parameter_names
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_parameter_names
, var_other
) /* == on <var_parameter_names:nullable Array[String](Array[String])>*/;
3244 RET_LABEL36
:(void)0;
3248 if (unlikely(!var34
)) {
3249 PRINT_ERROR("Runtime error: %s", "Assert failed");
3250 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 397);
3253 var40
= NEW_array__Array(&type_array__Arraymodel__MParameterType
);
3255 ((void (*)(val
*))(var40
->class->vft
[COLOR_kernel__Object__init
]))(var40
) /* init on <var40:Array[MParameterType]>*/;
3257 var_mparametertypes
= var40
;
3261 { /* Inline model#MClass#arity (self) on <self:MClass> */
3262 var44
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:MClass> */
3264 RET_LABEL43
:(void)0;
3270 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
3271 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3272 /* <var_:Int> isa OTHER */
3273 var47
= 1; /* easy <var_:Int> isa OTHER*/
3274 if (unlikely(!var47
)) {
3275 var_class_name50
= type_kernel__Int
.name
;
3276 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50
);
3277 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
3280 var51
= var_i
< var_
;
3283 RET_LABEL46
:(void)0;
3287 var52
= NEW_model__MParameterType(&type_model__MParameterType
);
3289 var53
= array__Array___91d_93d(var_parameter_names
, var_i
);
3292 model__MParameterType__init(var52
, self
, var_i
, var53
); /* Direct call model#MParameterType#init on <var52:MParameterType>*/
3294 var_mparametertype
= var52
;
3296 array__Array__add(var_mparametertypes
, var_mparametertype
); /* Direct call array#Array#add on <var_mparametertypes:Array[MParameterType]>*/
3300 var55
= kernel__Int__successor(var_i
, var54
);
3307 BREAK_label
: (void)0;
3309 { /* Inline model#MClass#mparameters= (self,var_mparametertypes) on <self:MClass> */
3310 self
->attrs
[COLOR_model__MClass___mparameters
].val
= var_mparametertypes
; /* _mparameters on <self:MClass> */
3311 RET_LABEL56
:(void)0;
3314 var57
= NEW_model__MGenericType(&type_model__MGenericType
);
3316 model__MGenericType__init(var57
, self
, var_mparametertypes
); /* Direct call model#MGenericType#init on <var57:MGenericType>*/
3318 var_mclass_type
= var57
;
3320 { /* Inline model#MClass#mclass_type= (self,var_mclass_type) on <self:MClass> */
3321 self
->attrs
[COLOR_model__MClass___mclass_type
].val
= var_mclass_type
; /* _mclass_type on <self:MClass> */
3322 RET_LABEL58
:(void)0;
3326 { /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
3327 var61
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:MClass> */
3328 if (unlikely(var61
== NULL
)) {
3329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3330 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
3334 RET_LABEL60
:(void)0;
3338 array__Array__add(var59
, var_mclass_type
); /* Direct call array#Array#add on <var59:Array[MGenericType]>*/
3341 var62
= NEW_model__MClassType(&type_model__MClassType
);
3343 model__MClassType__init(var62
, self
); /* Direct call model#MClassType#init on <var62:MClassType>*/
3346 { /* Inline model#MClass#mclass_type= (self,var62) on <self:MClass> */
3347 self
->attrs
[COLOR_model__MClass___mclass_type
].val
= var62
; /* _mclass_type on <self:MClass> */
3348 RET_LABEL63
:(void)0;
3354 /* method model#MClass#init for (self: Object, MModule, String, nullable Array[String], MClassKind, MVisibility) */
3355 void VIRTUAL_model__MClass__init(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
, val
* p4
) {
3356 model__MClass__init(self
, p0
, p1
, p2
, p3
, p4
); /* Direct call model#MClass#init on <self:Object(MClass)>*/
3359 /* method model#MClass#model for (self: MClass): Model */
3360 val
* model__MClass__model(val
* self
) {
3361 val
* var
/* : Model */;
3362 val
* var1
/* : MModule */;
3363 val
* var3
/* : MModule */;
3364 val
* var4
/* : Model */;
3365 val
* var6
/* : Model */;
3367 { /* Inline model#MClass#intro_mmodule (self) on <self:MClass> */
3368 var3
= self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <self:MClass> */
3369 if (unlikely(var3
== NULL
)) {
3370 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
3371 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
3379 { /* Inline mmodule#MModule#model (var1) on <var1:MModule> */
3380 var6
= var1
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var1:MModule> */
3381 if (unlikely(var6
== NULL
)) {
3382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
3383 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
3395 /* method model#MClass#model for (self: Object): Model */
3396 val
* VIRTUAL_model__MClass__model(val
* self
) {
3397 val
* var
/* : Model */;
3398 val
* var1
/* : Model */;
3399 var1
= model__MClass__model(self
);
3404 /* method model#MClass#mclassdefs for (self: MClass): Array[MClassDef] */
3405 val
* model__MClass__mclassdefs(val
* self
) {
3406 val
* var
/* : Array[MClassDef] */;
3407 val
* var1
/* : Array[MClassDef] */;
3408 var1
= self
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <self:MClass> */
3409 if (unlikely(var1
== NULL
)) {
3410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
3411 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
3418 /* method model#MClass#mclassdefs for (self: Object): Array[MClassDef] */
3419 val
* VIRTUAL_model__MClass__mclassdefs(val
* self
) {
3420 val
* var
/* : Array[MClassDef] */;
3421 val
* var1
/* : Array[MClassDef] */;
3422 val
* var3
/* : Array[MClassDef] */;
3423 { /* Inline model#MClass#mclassdefs (self) on <self:Object(MClass)> */
3424 var3
= self
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <self:Object(MClass)> */
3425 if (unlikely(var3
== NULL
)) {
3426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
3427 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
3437 /* method model#MClass#to_s for (self: MClass): String */
3438 val
* model__MClass__to_s(val
* self
) {
3439 val
* var
/* : String */;
3440 val
* var1
/* : String */;
3441 val
* var3
/* : String */;
3443 { /* Inline model#MClass#name (self) on <self:MClass> */
3444 var3
= self
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <self:MClass> */
3445 if (unlikely(var3
== NULL
)) {
3446 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3447 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
3459 /* method model#MClass#to_s for (self: Object): String */
3460 val
* VIRTUAL_model__MClass__to_s(val
* self
) {
3461 val
* var
/* : String */;
3462 val
* var1
/* : String */;
3463 var1
= model__MClass__to_s(self
);
3468 /* method model#MClass#intro for (self: MClass): MClassDef */
3469 val
* model__MClass__intro(val
* self
) {
3470 val
* var
/* : MClassDef */;
3471 val
* var1
/* : MClassDef */;
3472 var1
= self
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <self:MClass> */
3473 if (unlikely(var1
== NULL
)) {
3474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3475 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
3482 /* method model#MClass#intro for (self: Object): MClassDef */
3483 val
* VIRTUAL_model__MClass__intro(val
* self
) {
3484 val
* var
/* : MClassDef */;
3485 val
* var1
/* : MClassDef */;
3486 val
* var3
/* : MClassDef */;
3487 { /* Inline model#MClass#intro (self) on <self:Object(MClass)> */
3488 var3
= self
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <self:Object(MClass)> */
3489 if (unlikely(var3
== NULL
)) {
3490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3491 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
3501 /* method model#MClass#intro= for (self: MClass, MClassDef) */
3502 void model__MClass__intro_61d(val
* self
, val
* p0
) {
3503 self
->attrs
[COLOR_model__MClass___intro
].val
= p0
; /* _intro on <self:MClass> */
3506 /* method model#MClass#intro= for (self: Object, MClassDef) */
3507 void VIRTUAL_model__MClass__intro_61d(val
* self
, val
* p0
) {
3508 { /* Inline model#MClass#intro= (self,p0) on <self:Object(MClass)> */
3509 self
->attrs
[COLOR_model__MClass___intro
].val
= p0
; /* _intro on <self:Object(MClass)> */
3514 /* method model#MClass#in_hierarchy for (self: MClass, MModule): POSetElement[MClass] */
3515 val
* model__MClass__in_hierarchy(val
* self
, val
* p0
) {
3516 val
* var
/* : POSetElement[MClass] */;
3517 val
* var_mmodule
/* var mmodule: MModule */;
3518 val
* var1
/* : POSet[MClass] */;
3519 val
* var2
/* : POSetElement[Object] */;
3522 var1
= model__MModule__flatten_mclass_hierarchy(var_mmodule
);
3525 var2
= poset__POSet___91d_93d(var1
, self
);
3532 /* method model#MClass#in_hierarchy for (self: Object, MModule): POSetElement[MClass] */
3533 val
* VIRTUAL_model__MClass__in_hierarchy(val
* self
, val
* p0
) {
3534 val
* var
/* : POSetElement[MClass] */;
3535 val
* var1
/* : POSetElement[MClass] */;
3536 var1
= model__MClass__in_hierarchy(self
, p0
);
3541 /* method model#MClass#mclass_type for (self: MClass): MClassType */
3542 val
* model__MClass__mclass_type(val
* self
) {
3543 val
* var
/* : MClassType */;
3544 val
* var1
/* : MClassType */;
3545 var1
= self
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <self:MClass> */
3546 if (unlikely(var1
== NULL
)) {
3547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3548 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
3555 /* method model#MClass#mclass_type for (self: Object): MClassType */
3556 val
* VIRTUAL_model__MClass__mclass_type(val
* self
) {
3557 val
* var
/* : MClassType */;
3558 val
* var1
/* : MClassType */;
3559 val
* var3
/* : MClassType */;
3560 { /* Inline model#MClass#mclass_type (self) on <self:Object(MClass)> */
3561 var3
= self
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <self:Object(MClass)> */
3562 if (unlikely(var3
== NULL
)) {
3563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3564 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
3574 /* method model#MClass#mclass_type= for (self: MClass, MClassType) */
3575 void model__MClass__mclass_type_61d(val
* self
, val
* p0
) {
3576 self
->attrs
[COLOR_model__MClass___mclass_type
].val
= p0
; /* _mclass_type on <self:MClass> */
3579 /* method model#MClass#mclass_type= for (self: Object, MClassType) */
3580 void VIRTUAL_model__MClass__mclass_type_61d(val
* self
, val
* p0
) {
3581 { /* Inline model#MClass#mclass_type= (self,p0) on <self:Object(MClass)> */
3582 self
->attrs
[COLOR_model__MClass___mclass_type
].val
= p0
; /* _mclass_type on <self:Object(MClass)> */
3587 /* method model#MClass#get_mtype for (self: MClass, Array[MType]): MClassType */
3588 val
* model__MClass__get_mtype(val
* self
, val
* p0
) {
3589 val
* var
/* : MClassType */;
3590 val
* var_mtype_arguments
/* var mtype_arguments: Array[MType] */;
3591 long var1
/* : Int */;
3592 long var3
/* : Int */;
3593 long var4
/* : Int */;
3594 long var6
/* : Int */;
3595 short int var7
/* : Bool */;
3596 short int var8
/* : Bool */;
3597 short int var10
/* : Bool */;
3598 long var11
/* : Int */;
3599 long var13
/* : Int */;
3600 long var14
/* : Int */;
3601 short int var15
/* : Bool */;
3602 short int var16
/* : Bool */;
3603 short int var18
/* : Bool */;
3604 val
* var19
/* : MClassType */;
3605 val
* var21
/* : MClassType */;
3606 val
* var22
/* : Array[MGenericType] */;
3607 val
* var24
/* : Array[MGenericType] */;
3608 val
* var_
/* var : Array[MGenericType] */;
3609 val
* var25
/* : ArrayIterator[nullable Object] */;
3610 val
* var_26
/* var : ArrayIterator[MGenericType] */;
3611 short int var27
/* : Bool */;
3612 val
* var28
/* : nullable Object */;
3613 val
* var_t
/* var t: MGenericType */;
3614 val
* var29
/* : Array[MType] */;
3615 val
* var31
/* : Array[MType] */;
3616 short int var32
/* : Bool */;
3617 short int var33
/* : Bool */;
3618 val
* var35
/* : MGenericType */;
3619 val
* var_res
/* var res: MGenericType */;
3620 val
* var36
/* : Array[MGenericType] */;
3621 val
* var38
/* : Array[MGenericType] */;
3622 var_mtype_arguments
= p0
;
3624 { /* Inline array#AbstractArrayRead#length (var_mtype_arguments) on <var_mtype_arguments:Array[MType]> */
3625 var3
= var_mtype_arguments
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_mtype_arguments:Array[MType]> */
3631 { /* Inline model#MClass#arity (self) on <self:MClass> */
3632 var6
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:MClass> */
3638 { /* Inline kernel#Int#== (var1,var4) on <var1:Int> */
3639 var10
= var1
== var4
;
3646 if (unlikely(!var7
)) {
3647 PRINT_ERROR("Runtime error: %s", "Assert failed");
3648 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 458);
3652 { /* Inline model#MClass#arity (self) on <self:MClass> */
3653 var13
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:MClass> */
3655 RET_LABEL12
:(void)0;
3660 { /* Inline kernel#Int#== (var11,var14) on <var11:Int> */
3661 var18
= var11
== var14
;
3664 RET_LABEL17
:(void)0;
3670 { /* Inline model#MClass#mclass_type (self) on <self:MClass> */
3671 var21
= self
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <self:MClass> */
3672 if (unlikely(var21
== NULL
)) {
3673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3674 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
3678 RET_LABEL20
:(void)0;
3686 { /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
3687 var24
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:MClass> */
3688 if (unlikely(var24
== NULL
)) {
3689 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3690 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
3694 RET_LABEL23
:(void)0;
3699 var25
= array__AbstractArrayRead__iterator(var_
);
3704 var27
= array__ArrayIterator__is_ok(var_26
);
3708 var28
= array__ArrayIterator__item(var_26
);
3712 { /* Inline model#MClassType#arguments (var_t) on <var_t:MGenericType> */
3713 var31
= var_t
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_t:MGenericType> */
3714 if (unlikely(var31
== NULL
)) {
3715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
3716 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
3720 RET_LABEL30
:(void)0;
3724 var33
= array__Array___61d_61d(var29
, var_mtype_arguments
);
3733 array__ArrayIterator__next(var_26
); /* Direct call array#ArrayIterator#next on <var_26:ArrayIterator[MGenericType]>*/
3739 BREAK_label
: (void)0;
3741 { /* Inline abstract_collection#Iterator#finish (var_26) on <var_26:ArrayIterator[MGenericType]> */
3742 RET_LABEL34
:(void)0;
3745 var35
= NEW_model__MGenericType(&type_model__MGenericType
);
3747 model__MGenericType__init(var35
, self
, var_mtype_arguments
); /* Direct call model#MGenericType#init on <var35:MGenericType>*/
3751 { /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
3752 var38
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:MClass> */
3753 if (unlikely(var38
== NULL
)) {
3754 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3755 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
3759 RET_LABEL37
:(void)0;
3763 array__Array__add(var36
, var_res
); /* Direct call array#Array#add on <var36:Array[MGenericType]>*/
3770 /* method model#MClass#get_mtype for (self: Object, Array[MType]): MClassType */
3771 val
* VIRTUAL_model__MClass__get_mtype(val
* self
, val
* p0
) {
3772 val
* var
/* : MClassType */;
3773 val
* var1
/* : MClassType */;
3774 var1
= model__MClass__get_mtype(self
, p0
);
3779 /* method model#MClass#get_mtype_cache for (self: MClass): Array[MGenericType] */
3780 val
* model__MClass__get_mtype_cache(val
* self
) {
3781 val
* var
/* : Array[MGenericType] */;
3782 val
* var1
/* : Array[MGenericType] */;
3783 var1
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:MClass> */
3784 if (unlikely(var1
== NULL
)) {
3785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3786 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
3793 /* method model#MClass#get_mtype_cache for (self: Object): Array[MGenericType] */
3794 val
* VIRTUAL_model__MClass__get_mtype_cache(val
* self
) {
3795 val
* var
/* : Array[MGenericType] */;
3796 val
* var1
/* : Array[MGenericType] */;
3797 val
* var3
/* : Array[MGenericType] */;
3798 { /* Inline model#MClass#get_mtype_cache (self) on <self:Object(MClass)> */
3799 var3
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:Object(MClass)> */
3800 if (unlikely(var3
== NULL
)) {
3801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3802 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
3812 /* method model#MClassDef#mmodule for (self: MClassDef): MModule */
3813 val
* model__MClassDef__mmodule(val
* self
) {
3814 val
* var
/* : MModule */;
3815 val
* var1
/* : MModule */;
3816 var1
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
3817 if (unlikely(var1
== NULL
)) {
3818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3819 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
3826 /* method model#MClassDef#mmodule for (self: Object): MModule */
3827 val
* VIRTUAL_model__MClassDef__mmodule(val
* self
) {
3828 val
* var
/* : MModule */;
3829 val
* var1
/* : MModule */;
3830 val
* var3
/* : MModule */;
3831 { /* Inline model#MClassDef#mmodule (self) on <self:Object(MClassDef)> */
3832 var3
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:Object(MClassDef)> */
3833 if (unlikely(var3
== NULL
)) {
3834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3835 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
3845 /* method model#MClassDef#mmodule= for (self: MClassDef, MModule) */
3846 void model__MClassDef__mmodule_61d(val
* self
, val
* p0
) {
3847 self
->attrs
[COLOR_model__MClassDef___mmodule
].val
= p0
; /* _mmodule on <self:MClassDef> */
3850 /* method model#MClassDef#mmodule= for (self: Object, MModule) */
3851 void VIRTUAL_model__MClassDef__mmodule_61d(val
* self
, val
* p0
) {
3852 { /* Inline model#MClassDef#mmodule= (self,p0) on <self:Object(MClassDef)> */
3853 self
->attrs
[COLOR_model__MClassDef___mmodule
].val
= p0
; /* _mmodule on <self:Object(MClassDef)> */
3858 /* method model#MClassDef#mclass for (self: MClassDef): MClass */
3859 val
* model__MClassDef__mclass(val
* self
) {
3860 val
* var
/* : MClass */;
3861 val
* var1
/* : MClass */;
3862 var1
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
3863 if (unlikely(var1
== NULL
)) {
3864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3865 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
3872 /* method model#MClassDef#mclass for (self: Object): MClass */
3873 val
* VIRTUAL_model__MClassDef__mclass(val
* self
) {
3874 val
* var
/* : MClass */;
3875 val
* var1
/* : MClass */;
3876 val
* var3
/* : MClass */;
3877 { /* Inline model#MClassDef#mclass (self) on <self:Object(MClassDef)> */
3878 var3
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:Object(MClassDef)> */
3879 if (unlikely(var3
== NULL
)) {
3880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3881 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
3891 /* method model#MClassDef#mclass= for (self: MClassDef, MClass) */
3892 void model__MClassDef__mclass_61d(val
* self
, val
* p0
) {
3893 self
->attrs
[COLOR_model__MClassDef___mclass
].val
= p0
; /* _mclass on <self:MClassDef> */
3896 /* method model#MClassDef#mclass= for (self: Object, MClass) */
3897 void VIRTUAL_model__MClassDef__mclass_61d(val
* self
, val
* p0
) {
3898 { /* Inline model#MClassDef#mclass= (self,p0) on <self:Object(MClassDef)> */
3899 self
->attrs
[COLOR_model__MClassDef___mclass
].val
= p0
; /* _mclass on <self:Object(MClassDef)> */
3904 /* method model#MClassDef#bound_mtype for (self: MClassDef): MClassType */
3905 val
* model__MClassDef__bound_mtype(val
* self
) {
3906 val
* var
/* : MClassType */;
3907 val
* var1
/* : MClassType */;
3908 var1
= self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <self:MClassDef> */
3909 if (unlikely(var1
== NULL
)) {
3910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3911 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
3918 /* method model#MClassDef#bound_mtype for (self: Object): MClassType */
3919 val
* VIRTUAL_model__MClassDef__bound_mtype(val
* self
) {
3920 val
* var
/* : MClassType */;
3921 val
* var1
/* : MClassType */;
3922 val
* var3
/* : MClassType */;
3923 { /* Inline model#MClassDef#bound_mtype (self) on <self:Object(MClassDef)> */
3924 var3
= self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <self:Object(MClassDef)> */
3925 if (unlikely(var3
== NULL
)) {
3926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3927 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
3937 /* method model#MClassDef#bound_mtype= for (self: MClassDef, MClassType) */
3938 void model__MClassDef__bound_mtype_61d(val
* self
, val
* p0
) {
3939 self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
= p0
; /* _bound_mtype on <self:MClassDef> */
3942 /* method model#MClassDef#bound_mtype= for (self: Object, MClassType) */
3943 void VIRTUAL_model__MClassDef__bound_mtype_61d(val
* self
, val
* p0
) {
3944 { /* Inline model#MClassDef#bound_mtype= (self,p0) on <self:Object(MClassDef)> */
3945 self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
= p0
; /* _bound_mtype on <self:Object(MClassDef)> */
3950 /* method model#MClassDef#location= for (self: MClassDef, Location) */
3951 void model__MClassDef__location_61d(val
* self
, val
* p0
) {
3952 self
->attrs
[COLOR_model__MClassDef___location
].val
= p0
; /* _location on <self:MClassDef> */
3955 /* method model#MClassDef#location= for (self: Object, Location) */
3956 void VIRTUAL_model__MClassDef__location_61d(val
* self
, val
* p0
) {
3957 { /* Inline model#MClassDef#location= (self,p0) on <self:Object(MClassDef)> */
3958 self
->attrs
[COLOR_model__MClassDef___location
].val
= p0
; /* _location on <self:Object(MClassDef)> */
3963 /* method model#MClassDef#to_s for (self: MClassDef): String */
3964 val
* model__MClassDef__to_s(val
* self
) {
3965 val
* var
/* : String */;
3966 val
* var1
/* : String */;
3967 var1
= self
->attrs
[COLOR_model__MClassDef___to_s
].val
; /* _to_s on <self:MClassDef> */
3968 if (unlikely(var1
== NULL
)) {
3969 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
3970 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 510);
3977 /* method model#MClassDef#to_s for (self: Object): String */
3978 val
* VIRTUAL_model__MClassDef__to_s(val
* self
) {
3979 val
* var
/* : String */;
3980 val
* var1
/* : String */;
3981 val
* var3
/* : String */;
3982 { /* Inline model#MClassDef#to_s (self) on <self:Object(MClassDef)> */
3983 var3
= self
->attrs
[COLOR_model__MClassDef___to_s
].val
; /* _to_s on <self:Object(MClassDef)> */
3984 if (unlikely(var3
== NULL
)) {
3985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
3986 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 510);
3996 /* method model#MClassDef#to_s= for (self: MClassDef, String) */
3997 void model__MClassDef__to_s_61d(val
* self
, val
* p0
) {
3998 self
->attrs
[COLOR_model__MClassDef___to_s
].val
= p0
; /* _to_s on <self:MClassDef> */
4001 /* method model#MClassDef#to_s= for (self: Object, String) */
4002 void VIRTUAL_model__MClassDef__to_s_61d(val
* self
, val
* p0
) {
4003 { /* Inline model#MClassDef#to_s= (self,p0) on <self:Object(MClassDef)> */
4004 self
->attrs
[COLOR_model__MClassDef___to_s
].val
= p0
; /* _to_s on <self:Object(MClassDef)> */
4009 /* method model#MClassDef#init for (self: MClassDef, MModule, MClassType, Location) */
4010 void model__MClassDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4011 val
* var_mmodule
/* var mmodule: MModule */;
4012 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
4013 val
* var_location
/* var location: Location */;
4014 val
* var
/* : MClass */;
4015 val
* var4
/* : MClass */;
4016 val
* var7
/* : Array[MClassDef] */;
4017 val
* var9
/* : Array[MClassDef] */;
4018 val
* var10
/* : MClass */;
4019 val
* var12
/* : MClass */;
4020 val
* var13
/* : Array[MClassDef] */;
4021 val
* var15
/* : Array[MClassDef] */;
4022 val
* var16
/* : MClass */;
4023 val
* var18
/* : MClass */;
4024 val
* var19
/* : MModule */;
4025 val
* var21
/* : MModule */;
4026 short int var22
/* : Bool */;
4027 short int var23
/* : Bool */;
4028 val
* var_other
/* var other: nullable Object */;
4029 short int var25
/* : Bool */;
4030 short int var27
/* : Bool */;
4031 val
* var28
/* : MClass */;
4032 val
* var30
/* : MClass */;
4033 short int var31
/* : Bool */;
4034 short int var32
/* : Bool */;
4035 val
* var33
/* : MClass */;
4036 val
* var35
/* : MClass */;
4037 static val
* varonce
;
4038 val
* var37
/* : String */;
4039 char* var38
/* : NativeString */;
4040 long var39
/* : Int */;
4041 val
* var40
/* : FlatString */;
4042 val
* var41
/* : MClass */;
4043 val
* var43
/* : MClass */;
4044 val
* var44
/* : Array[Object] */;
4045 long var45
/* : Int */;
4046 val
* var46
/* : NativeArray[Object] */;
4047 val
* var47
/* : String */;
4049 ((void (*)(val
*))(self
->class->vft
[COLOR_kernel__Object__init
]))(self
) /* init on <self:MClassDef>*/;
4052 var_bound_mtype
= p1
;
4055 { /* Inline model#MClassDef#bound_mtype= (self,var_bound_mtype) on <self:MClassDef> */
4056 self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
= var_bound_mtype
; /* _bound_mtype on <self:MClassDef> */
4061 { /* Inline model#MClassDef#mmodule= (self,var_mmodule) on <self:MClassDef> */
4062 self
->attrs
[COLOR_model__MClassDef___mmodule
].val
= var_mmodule
; /* _mmodule on <self:MClassDef> */
4067 { /* Inline model#MClassType#mclass (var_bound_mtype) on <var_bound_mtype:MClassType> */
4068 var4
= var_bound_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_bound_mtype:MClassType> */
4069 if (unlikely(var4
== NULL
)) {
4070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4071 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
4079 { /* Inline model#MClassDef#mclass= (self,var) on <self:MClassDef> */
4080 self
->attrs
[COLOR_model__MClassDef___mclass
].val
= var
; /* _mclass on <self:MClassDef> */
4085 { /* Inline model#MClassDef#location= (self,var_location) on <self:MClassDef> */
4086 self
->attrs
[COLOR_model__MClassDef___location
].val
= var_location
; /* _location on <self:MClassDef> */
4091 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
4092 var9
= var_mmodule
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
4093 if (unlikely(var9
== NULL
)) {
4094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
4095 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
4103 array__Array__add(var7
, self
); /* Direct call array#Array#add on <var7:Array[MClassDef]>*/
4106 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4107 var12
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4108 if (unlikely(var12
== NULL
)) {
4109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4110 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
4114 RET_LABEL11
:(void)0;
4118 { /* Inline model#MClass#mclassdefs (var10) on <var10:MClass> */
4119 var15
= var10
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <var10:MClass> */
4120 if (unlikely(var15
== NULL
)) {
4121 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
4122 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
4126 RET_LABEL14
:(void)0;
4130 array__Array__add(var13
, self
); /* Direct call array#Array#add on <var13:Array[MClassDef]>*/
4133 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4134 var18
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4135 if (unlikely(var18
== NULL
)) {
4136 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4137 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
4141 RET_LABEL17
:(void)0;
4145 { /* Inline model#MClass#intro_mmodule (var16) on <var16:MClass> */
4146 var21
= var16
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var16:MClass> */
4147 if (unlikely(var21
== NULL
)) {
4148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4149 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
4153 RET_LABEL20
:(void)0;
4157 { /* Inline kernel#Object#== (var19,var_mmodule) on <var19:MModule> */
4158 var_other
= var_mmodule
;
4160 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:MModule> */
4161 var27
= var19
== var_other
;
4164 RET_LABEL26
:(void)0;
4169 RET_LABEL24
:(void)0;
4175 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4176 var30
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4177 if (unlikely(var30
== NULL
)) {
4178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4179 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
4183 RET_LABEL29
:(void)0;
4186 var31
= var28
->attrs
[COLOR_model__MClass___intro
].val
!= NULL
; /* _intro on <var28:MClass> */
4188 if (unlikely(!var32
)) {
4189 PRINT_ERROR("Runtime error: %s", "Assert failed");
4190 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 523);
4194 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4195 var35
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4196 if (unlikely(var35
== NULL
)) {
4197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4198 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
4202 RET_LABEL34
:(void)0;
4206 { /* Inline model#MClass#intro= (var33,self) on <var33:MClass> */
4207 var33
->attrs
[COLOR_model__MClass___intro
].val
= self
; /* _intro on <var33:MClass> */
4208 RET_LABEL36
:(void)0;
4218 var40
= string__NativeString__to_s_with_length(var38
, var39
);
4223 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4224 var43
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4225 if (unlikely(var43
== NULL
)) {
4226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4227 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
4231 RET_LABEL42
:(void)0;
4234 var44
= NEW_array__Array(&type_array__Arraykernel__Object
);
4235 { /* var44 = array_instance Array[Object] */
4237 var46
= NEW_array__NativeArray(var45
, &type_array__NativeArraykernel__Object
);
4238 ((struct instance_array__NativeArray
*)var46
)->values
[0] = (val
*) var_mmodule
;
4239 ((struct instance_array__NativeArray
*)var46
)->values
[1] = (val
*) var37
;
4240 ((struct instance_array__NativeArray
*)var46
)->values
[2] = (val
*) var41
;
4242 ((void (*)(val
*, val
*, long))(var44
->class->vft
[COLOR_array__Array__with_native
]))(var44
, var46
, var45
) /* with_native on <var44:Array[Object]>*/;
4246 var47
= ((val
* (*)(val
*))(var44
->class->vft
[COLOR_string__Object__to_s
]))(var44
) /* to_s on <var44:Array[Object]>*/;
4249 { /* Inline model#MClassDef#to_s= (self,var47) on <self:MClassDef> */
4250 self
->attrs
[COLOR_model__MClassDef___to_s
].val
= var47
; /* _to_s on <self:MClassDef> */
4251 RET_LABEL48
:(void)0;
4256 /* method model#MClassDef#init for (self: Object, MModule, MClassType, Location) */
4257 void VIRTUAL_model__MClassDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4258 model__MClassDef__init(self
, p0
, p1
, p2
); /* Direct call model#MClassDef#init on <self:Object(MClassDef)>*/
4261 /* method model#MClassDef#name for (self: MClassDef): String */
4262 val
* model__MClassDef__name(val
* self
) {
4263 val
* var
/* : String */;
4264 val
* var1
/* : MClass */;
4265 val
* var3
/* : MClass */;
4266 val
* var4
/* : String */;
4267 val
* var6
/* : String */;
4269 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4270 var3
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4271 if (unlikely(var3
== NULL
)) {
4272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4273 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
4281 { /* Inline model#MClass#name (var1) on <var1:MClass> */
4282 var6
= var1
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var1:MClass> */
4283 if (unlikely(var6
== NULL
)) {
4284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4285 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
4297 /* method model#MClassDef#name for (self: Object): String */
4298 val
* VIRTUAL_model__MClassDef__name(val
* self
) {
4299 val
* var
/* : String */;
4300 val
* var1
/* : String */;
4301 var1
= model__MClassDef__name(self
);
4306 /* method model#MClassDef#model for (self: MClassDef): Model */
4307 val
* model__MClassDef__model(val
* self
) {
4308 val
* var
/* : Model */;
4309 val
* var1
/* : MModule */;
4310 val
* var3
/* : MModule */;
4311 val
* var4
/* : Model */;
4312 val
* var6
/* : Model */;
4314 { /* Inline model#MClassDef#mmodule (self) on <self:MClassDef> */
4315 var3
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
4316 if (unlikely(var3
== NULL
)) {
4317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4318 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
4326 { /* Inline mmodule#MModule#model (var1) on <var1:MModule> */
4327 var6
= var1
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var1:MModule> */
4328 if (unlikely(var6
== NULL
)) {
4329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4330 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
4342 /* method model#MClassDef#model for (self: Object): Model */
4343 val
* VIRTUAL_model__MClassDef__model(val
* self
) {
4344 val
* var
/* : Model */;
4345 val
* var1
/* : Model */;
4346 var1
= model__MClassDef__model(self
);
4351 /* method model#MClassDef#supertypes for (self: MClassDef): Array[MClassType] */
4352 val
* model__MClassDef__supertypes(val
* self
) {
4353 val
* var
/* : Array[MClassType] */;
4354 val
* var1
/* : Array[MClassType] */;
4355 var1
= self
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <self:MClassDef> */
4356 if (unlikely(var1
== NULL
)) {
4357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
4358 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
4365 /* method model#MClassDef#supertypes for (self: Object): Array[MClassType] */
4366 val
* VIRTUAL_model__MClassDef__supertypes(val
* self
) {
4367 val
* var
/* : Array[MClassType] */;
4368 val
* var1
/* : Array[MClassType] */;
4369 val
* var3
/* : Array[MClassType] */;
4370 { /* Inline model#MClassDef#supertypes (self) on <self:Object(MClassDef)> */
4371 var3
= self
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <self:Object(MClassDef)> */
4372 if (unlikely(var3
== NULL
)) {
4373 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
4374 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
4384 /* method model#MClassDef#set_supertypes for (self: MClassDef, Array[MClassType]) */
4385 void model__MClassDef__set_supertypes(val
* self
, val
* p0
) {
4386 val
* var_supertypes
/* var supertypes: Array[MClassType] */;
4387 val
* var
/* : nullable POSetElement[MClassDef] */;
4388 val
* var2
/* : nullable POSetElement[MClassDef] */;
4389 val
* var3
/* : null */;
4390 short int var4
/* : Bool */;
4391 short int var5
/* : Bool */;
4392 val
* var_other
/* var other: nullable Object */;
4393 short int var7
/* : Bool */;
4394 short int var9
/* : Bool */;
4395 val
* var10
/* : MModule */;
4396 val
* var12
/* : MModule */;
4397 val
* var_mmodule
/* var mmodule: MModule */;
4398 val
* var13
/* : Model */;
4399 val
* var15
/* : Model */;
4400 val
* var_model
/* var model: Model */;
4401 val
* var16
/* : MClassType */;
4402 val
* var18
/* : MClassType */;
4403 val
* var_mtype
/* var mtype: MClassType */;
4404 val
* var_
/* var : Array[MClassType] */;
4405 val
* var19
/* : ArrayIterator[nullable Object] */;
4406 val
* var_20
/* var : ArrayIterator[MClassType] */;
4407 short int var21
/* : Bool */;
4408 val
* var22
/* : nullable Object */;
4409 val
* var_supertype
/* var supertype: MClassType */;
4410 val
* var23
/* : Array[MClassType] */;
4411 val
* var25
/* : Array[MClassType] */;
4412 val
* var26
/* : POSet[MClassType] */;
4413 val
* var28
/* : POSet[MClassType] */;
4414 short int var29
/* : Bool */;
4415 val
* var30
/* : MClass */;
4416 val
* var32
/* : MClass */;
4417 val
* var33
/* : MModule */;
4418 val
* var35
/* : MModule */;
4419 short int var36
/* : Bool */;
4420 short int var37
/* : Bool */;
4421 short int var39
/* : Bool */;
4422 short int var41
/* : Bool */;
4423 short int var_42
/* var : Bool */;
4424 val
* var43
/* : MClass */;
4425 val
* var45
/* : MClass */;
4426 val
* var46
/* : MModule */;
4427 val
* var48
/* : MModule */;
4428 short int var49
/* : Bool */;
4429 short int var50
/* : Bool */;
4430 short int var52
/* : Bool */;
4431 short int var54
/* : Bool */;
4432 val
* var55
/* : POSet[MClassType] */;
4433 val
* var57
/* : POSet[MClassType] */;
4434 var_supertypes
= p0
;
4436 { /* Inline model#MClassDef#in_hierarchy (self) on <self:MClassDef> */
4437 var2
= self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <self:MClassDef> */
4444 var4
= 1; /* is null */
4446 var4
= 0; /* arg is null but recv is not */
4449 { /* Inline kernel#Object#== (var,var3) on <var:nullable POSetElement[MClassDef]> */
4452 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable POSetElement[MClassDef](POSetElement[MClassDef])> */
4453 var9
= var
== var_other
;
4465 if (unlikely(!var4
)) {
4466 PRINT_ERROR("Runtime error: %s", "Assert \'unique_invocation\' failed");
4467 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 544);
4471 { /* Inline model#MClassDef#mmodule (self) on <self:MClassDef> */
4472 var12
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
4473 if (unlikely(var12
== NULL
)) {
4474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4475 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
4479 RET_LABEL11
:(void)0;
4482 var_mmodule
= var10
;
4484 { /* Inline mmodule#MModule#model (var_mmodule) on <var_mmodule:MModule> */
4485 var15
= var_mmodule
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var_mmodule:MModule> */
4486 if (unlikely(var15
== NULL
)) {
4487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4488 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
4492 RET_LABEL14
:(void)0;
4497 { /* Inline model#MClassDef#bound_mtype (self) on <self:MClassDef> */
4498 var18
= self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <self:MClassDef> */
4499 if (unlikely(var18
== NULL
)) {
4500 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4501 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4505 RET_LABEL17
:(void)0;
4509 var_
= var_supertypes
;
4511 var19
= array__AbstractArrayRead__iterator(var_
);
4516 var21
= array__ArrayIterator__is_ok(var_20
);
4520 var22
= array__ArrayIterator__item(var_20
);
4522 var_supertype
= var22
;
4524 { /* Inline model#MClassDef#supertypes (self) on <self:MClassDef> */
4525 var25
= self
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <self:MClassDef> */
4526 if (unlikely(var25
== NULL
)) {
4527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
4528 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
4532 RET_LABEL24
:(void)0;
4536 array__Array__add(var23
, var_supertype
); /* Direct call array#Array#add on <var23:Array[MClassType]>*/
4539 { /* Inline model#Model#full_mtype_specialization_hierarchy (var_model) on <var_model:Model> */
4540 var28
= var_model
->attrs
[COLOR_model__Model___full_mtype_specialization_hierarchy
].val
; /* _full_mtype_specialization_hierarchy on <var_model:Model> */
4541 if (unlikely(var28
== NULL
)) {
4542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy");
4543 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 57);
4547 RET_LABEL27
:(void)0;
4551 poset__POSet__add_edge(var26
, var_mtype
, var_supertype
); /* Direct call poset#POSet#add_edge on <var26:POSet[MClassType]>*/
4554 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4555 var32
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4556 if (unlikely(var32
== NULL
)) {
4557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4558 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
4562 RET_LABEL31
:(void)0;
4566 { /* Inline model#MClass#intro_mmodule (var30) on <var30:MClass> */
4567 var35
= var30
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var30:MClass> */
4568 if (unlikely(var35
== NULL
)) {
4569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4570 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
4574 RET_LABEL34
:(void)0;
4578 { /* Inline kernel#Object#== (var33,var_mmodule) on <var33:MModule> */
4579 var_other
= var_mmodule
;
4581 { /* Inline kernel#Object#is_same_instance (var33,var_other) on <var33:MModule> */
4582 var41
= var33
== var_other
;
4585 RET_LABEL40
:(void)0;
4590 RET_LABEL38
:(void)0;
4597 { /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
4598 var45
= var_supertype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_supertype:MClassType> */
4599 if (unlikely(var45
== NULL
)) {
4600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4601 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
4605 RET_LABEL44
:(void)0;
4609 { /* Inline model#MClass#intro_mmodule (var43) on <var43:MClass> */
4610 var48
= var43
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var43:MClass> */
4611 if (unlikely(var48
== NULL
)) {
4612 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4613 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
4617 RET_LABEL47
:(void)0;
4621 { /* Inline kernel#Object#== (var46,var_mmodule) on <var46:MModule> */
4622 var_other
= var_mmodule
;
4624 { /* Inline kernel#Object#is_same_instance (var46,var_other) on <var46:MModule> */
4625 var54
= var46
== var_other
;
4628 RET_LABEL53
:(void)0;
4633 RET_LABEL51
:(void)0;
4643 { /* Inline model#Model#intro_mtype_specialization_hierarchy (var_model) on <var_model:Model> */
4644 var57
= var_model
->attrs
[COLOR_model__Model___intro_mtype_specialization_hierarchy
].val
; /* _intro_mtype_specialization_hierarchy on <var_model:Model> */
4645 if (unlikely(var57
== NULL
)) {
4646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy");
4647 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 46);
4651 RET_LABEL56
:(void)0;
4655 poset__POSet__add_edge(var55
, var_mtype
, var_supertype
); /* Direct call poset#POSet#add_edge on <var55:POSet[MClassType]>*/
4660 array__ArrayIterator__next(var_20
); /* Direct call array#ArrayIterator#next on <var_20:ArrayIterator[MClassType]>*/
4666 BREAK_label
: (void)0;
4668 { /* Inline abstract_collection#Iterator#finish (var_20) on <var_20:ArrayIterator[MClassType]> */
4669 RET_LABEL58
:(void)0;
4674 /* method model#MClassDef#set_supertypes for (self: Object, Array[MClassType]) */
4675 void VIRTUAL_model__MClassDef__set_supertypes(val
* self
, val
* p0
) {
4676 model__MClassDef__set_supertypes(self
, p0
); /* Direct call model#MClassDef#set_supertypes on <self:Object(MClassDef)>*/
4679 /* method model#MClassDef#add_in_hierarchy for (self: MClassDef) */
4680 void model__MClassDef__add_in_hierarchy(val
* self
) {
4681 val
* var
/* : nullable POSetElement[MClassDef] */;
4682 val
* var2
/* : nullable POSetElement[MClassDef] */;
4683 val
* var3
/* : null */;
4684 short int var4
/* : Bool */;
4685 short int var5
/* : Bool */;
4686 val
* var_other
/* var other: nullable Object */;
4687 short int var7
/* : Bool */;
4688 short int var9
/* : Bool */;
4689 val
* var10
/* : MModule */;
4690 val
* var12
/* : MModule */;
4691 val
* var13
/* : Model */;
4692 val
* var15
/* : Model */;
4693 val
* var_model
/* var model: Model */;
4694 val
* var16
/* : POSet[MClassDef] */;
4695 val
* var18
/* : POSet[MClassDef] */;
4696 val
* var19
/* : POSetElement[Object] */;
4697 val
* var_res
/* var res: POSetElement[MClassDef] */;
4698 val
* var21
/* : MClassType */;
4699 val
* var23
/* : MClassType */;
4700 val
* var_mtype
/* var mtype: MClassType */;
4701 val
* var24
/* : MModule */;
4702 val
* var26
/* : MModule */;
4703 val
* var27
/* : Set[MClassDef] */;
4704 val
* var_
/* var : Set[MClassDef] */;
4705 val
* var28
/* : Iterator[nullable Object] */;
4706 val
* var_29
/* var : Iterator[MClassDef] */;
4707 short int var30
/* : Bool */;
4708 val
* var31
/* : nullable Object */;
4709 val
* var_mclassdef
/* var mclassdef: MClassDef */;
4710 val
* var32
/* : POSet[Object] */;
4711 val
* var34
/* : POSet[Object] */;
4713 { /* Inline model#MClassDef#in_hierarchy (self) on <self:MClassDef> */
4714 var2
= self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <self:MClassDef> */
4721 var4
= 1; /* is null */
4723 var4
= 0; /* arg is null but recv is not */
4726 { /* Inline kernel#Object#== (var,var3) on <var:nullable POSetElement[MClassDef]> */
4729 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable POSetElement[MClassDef](POSetElement[MClassDef])> */
4730 var9
= var
== var_other
;
4742 if (unlikely(!var4
)) {
4743 PRINT_ERROR("Runtime error: %s", "Assert \'unique_invocation\' failed");
4744 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 569);
4748 { /* Inline model#MClassDef#mmodule (self) on <self:MClassDef> */
4749 var12
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
4750 if (unlikely(var12
== NULL
)) {
4751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4752 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
4756 RET_LABEL11
:(void)0;
4760 { /* Inline mmodule#MModule#model (var10) on <var10:MModule> */
4761 var15
= var10
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var10:MModule> */
4762 if (unlikely(var15
== NULL
)) {
4763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4764 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
4768 RET_LABEL14
:(void)0;
4773 { /* Inline model#Model#mclassdef_hierarchy (var_model) on <var_model:Model> */
4774 var18
= var_model
->attrs
[COLOR_model__Model___mclassdef_hierarchy
].val
; /* _mclassdef_hierarchy on <var_model:Model> */
4775 if (unlikely(var18
== NULL
)) {
4776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
4777 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
4781 RET_LABEL17
:(void)0;
4785 var19
= poset__POSet__add_node(var16
, self
);
4789 { /* Inline model#MClassDef#in_hierarchy= (self,var_res) on <self:MClassDef> */
4790 self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
= var_res
; /* _in_hierarchy on <self:MClassDef> */
4791 RET_LABEL20
:(void)0;
4795 { /* Inline model#MClassDef#bound_mtype (self) on <self:MClassDef> */
4796 var23
= self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <self:MClassDef> */
4797 if (unlikely(var23
== NULL
)) {
4798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4799 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
4803 RET_LABEL22
:(void)0;
4808 { /* Inline model#MClassDef#mmodule (self) on <self:MClassDef> */
4809 var26
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
4810 if (unlikely(var26
== NULL
)) {
4811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4812 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
4816 RET_LABEL25
:(void)0;
4820 var27
= model__MClassType__collect_mclassdefs(var_mtype
, var24
);
4824 var28
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MClassDef]>*/;
4829 var30
= ((short int (*)(val
*))(var_29
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_29
) /* is_ok on <var_29:Iterator[MClassDef]>*/;
4833 var31
= ((val
* (*)(val
*))(var_29
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_29
) /* item on <var_29:Iterator[MClassDef]>*/;
4835 var_mclassdef
= var31
;
4837 { /* Inline poset#POSetElement#poset (var_res) on <var_res:POSetElement[MClassDef]> */
4838 var34
= var_res
->attrs
[COLOR_poset__POSetElement___poset
].val
; /* _poset on <var_res:POSetElement[MClassDef]> */
4839 if (unlikely(var34
== NULL
)) {
4840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
4841 PRINT_ERROR(" (%s:%d)\n", "../lib/poset.nit", 239);
4845 RET_LABEL33
:(void)0;
4849 poset__POSet__add_edge(var32
, self
, var_mclassdef
); /* Direct call poset#POSet#add_edge on <var32:POSet[Object](POSet[MClassDef])>*/
4852 ((void (*)(val
*))(var_29
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_29
) /* next on <var_29:Iterator[MClassDef]>*/;
4858 BREAK_label
: (void)0;
4860 { /* Inline abstract_collection#Iterator#finish (var_29) on <var_29:Iterator[MClassDef]> */
4861 RET_LABEL35
:(void)0;
4866 /* method model#MClassDef#add_in_hierarchy for (self: Object) */
4867 void VIRTUAL_model__MClassDef__add_in_hierarchy(val
* self
) {
4868 model__MClassDef__add_in_hierarchy(self
); /* Direct call model#MClassDef#add_in_hierarchy on <self:Object(MClassDef)>*/
4871 /* method model#MClassDef#in_hierarchy for (self: MClassDef): nullable POSetElement[MClassDef] */
4872 val
* model__MClassDef__in_hierarchy(val
* self
) {
4873 val
* var
/* : nullable POSetElement[MClassDef] */;
4874 val
* var1
/* : nullable POSetElement[MClassDef] */;
4875 var1
= self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <self:MClassDef> */
4880 /* method model#MClassDef#in_hierarchy for (self: Object): nullable POSetElement[MClassDef] */
4881 val
* VIRTUAL_model__MClassDef__in_hierarchy(val
* self
) {
4882 val
* var
/* : nullable POSetElement[MClassDef] */;
4883 val
* var1
/* : nullable POSetElement[MClassDef] */;
4884 val
* var3
/* : nullable POSetElement[MClassDef] */;
4885 { /* Inline model#MClassDef#in_hierarchy (self) on <self:Object(MClassDef)> */
4886 var3
= self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <self:Object(MClassDef)> */
4894 /* method model#MClassDef#in_hierarchy= for (self: MClassDef, nullable POSetElement[MClassDef]) */
4895 void model__MClassDef__in_hierarchy_61d(val
* self
, val
* p0
) {
4896 self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
= p0
; /* _in_hierarchy on <self:MClassDef> */
4899 /* method model#MClassDef#in_hierarchy= for (self: Object, nullable POSetElement[MClassDef]) */
4900 void VIRTUAL_model__MClassDef__in_hierarchy_61d(val
* self
, val
* p0
) {
4901 { /* Inline model#MClassDef#in_hierarchy= (self,p0) on <self:Object(MClassDef)> */
4902 self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
= p0
; /* _in_hierarchy on <self:Object(MClassDef)> */
4907 /* method model#MClassDef#is_intro for (self: MClassDef): Bool */
4908 short int model__MClassDef__is_intro(val
* self
) {
4909 short int var
/* : Bool */;
4910 val
* var1
/* : MClass */;
4911 val
* var3
/* : MClass */;
4912 val
* var4
/* : MClassDef */;
4913 val
* var6
/* : MClassDef */;
4914 short int var7
/* : Bool */;
4915 short int var8
/* : Bool */;
4916 val
* var_other
/* var other: nullable Object */;
4917 short int var10
/* : Bool */;
4918 short int var12
/* : Bool */;
4920 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4921 var3
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4922 if (unlikely(var3
== NULL
)) {
4923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4924 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
4932 { /* Inline model#MClass#intro (var1) on <var1:MClass> */
4933 var6
= var1
->attrs
[COLOR_model__MClass___intro
].val
; /* _intro on <var1:MClass> */
4934 if (unlikely(var6
== NULL
)) {
4935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4936 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
4944 { /* Inline kernel#Object#== (var4,self) on <var4:MClassDef> */
4947 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MClassDef> */
4948 var12
= var4
== var_other
;
4951 RET_LABEL11
:(void)0;
4965 /* method model#MClassDef#is_intro for (self: Object): Bool */
4966 short int VIRTUAL_model__MClassDef__is_intro(val
* self
) {
4967 short int var
/* : Bool */;
4968 short int var1
/* : Bool */;
4969 var1
= model__MClassDef__is_intro(self
);
4974 /* method model#MClassDef#intro_mproperties for (self: MClassDef): Array[MProperty] */
4975 val
* model__MClassDef__intro_mproperties(val
* self
) {
4976 val
* var
/* : Array[MProperty] */;
4977 val
* var1
/* : Array[MProperty] */;
4978 var1
= self
->attrs
[COLOR_model__MClassDef___intro_mproperties
].val
; /* _intro_mproperties on <self:MClassDef> */
4979 if (unlikely(var1
== NULL
)) {
4980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
4981 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 588);
4988 /* method model#MClassDef#intro_mproperties for (self: Object): Array[MProperty] */
4989 val
* VIRTUAL_model__MClassDef__intro_mproperties(val
* self
) {
4990 val
* var
/* : Array[MProperty] */;
4991 val
* var1
/* : Array[MProperty] */;
4992 val
* var3
/* : Array[MProperty] */;
4993 { /* Inline model#MClassDef#intro_mproperties (self) on <self:Object(MClassDef)> */
4994 var3
= self
->attrs
[COLOR_model__MClassDef___intro_mproperties
].val
; /* _intro_mproperties on <self:Object(MClassDef)> */
4995 if (unlikely(var3
== NULL
)) {
4996 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
4997 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 588);
5007 /* method model#MClassDef#mpropdefs for (self: MClassDef): Array[MPropDef] */
5008 val
* model__MClassDef__mpropdefs(val
* self
) {
5009 val
* var
/* : Array[MPropDef] */;
5010 val
* var1
/* : Array[MPropDef] */;
5011 var1
= self
->attrs
[COLOR_model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <self:MClassDef> */
5012 if (unlikely(var1
== NULL
)) {
5013 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
5014 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 591);
5021 /* method model#MClassDef#mpropdefs for (self: Object): Array[MPropDef] */
5022 val
* VIRTUAL_model__MClassDef__mpropdefs(val
* self
) {
5023 val
* var
/* : Array[MPropDef] */;
5024 val
* var1
/* : Array[MPropDef] */;
5025 val
* var3
/* : Array[MPropDef] */;
5026 { /* Inline model#MClassDef#mpropdefs (self) on <self:Object(MClassDef)> */
5027 var3
= self
->attrs
[COLOR_model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <self:Object(MClassDef)> */
5028 if (unlikely(var3
== NULL
)) {
5029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
5030 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 591);
5040 /* method model#MType#name for (self: MType): String */
5041 val
* model__MType__name(val
* self
) {
5042 val
* var
/* : String */;
5043 val
* var1
/* : String */;
5045 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__Object__to_s
]))(self
) /* to_s on <self:MType>*/;
5052 /* method model#MType#name for (self: Object): String */
5053 val
* VIRTUAL_model__MType__name(val
* self
) {
5054 val
* var
/* : String */;
5055 val
* var1
/* : String */;
5056 var1
= model__MType__name(self
);
5061 /* method model#MType#is_subtype for (self: MType, MModule, nullable MClassType, MType): Bool */
5062 short int model__MType__is_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5063 short int var
/* : Bool */;
5064 val
* var_mmodule
/* var mmodule: MModule */;
5065 val
* var_anchor
/* var anchor: nullable MClassType */;
5066 val
* var_sup
/* var sup: MType */;
5067 val
* var_sub
/* var sub: MType */;
5068 short int var1
/* : Bool */;
5069 short int var2
/* : Bool */;
5070 val
* var_other
/* var other: nullable Object */;
5071 short int var4
/* : Bool */;
5072 short int var6
/* : Bool */;
5073 short int var7
/* : Bool */;
5074 val
* var8
/* : null */;
5075 short int var9
/* : Bool */;
5076 short int var10
/* : Bool */;
5077 short int var12
/* : Bool */;
5078 short int var14
/* : Bool */;
5079 short int var15
/* : Bool */;
5080 short int var16
/* : Bool */;
5081 short int var17
/* : Bool */;
5082 short int var18
/* : Bool */;
5083 val
* var19
/* : null */;
5084 short int var20
/* : Bool */;
5085 val
* var21
/* : null */;
5086 short int var22
/* : Bool */;
5087 short int var23
/* : Bool */;
5088 short int var24
/* : Bool */;
5091 short int var_
/* var : Bool */;
5092 short int var25
/* : Bool */;
5095 val
* var28
/* : null */;
5096 short int var29
/* : Bool */;
5097 short int var30
/* : Bool */;
5098 val
* var_other32
/* var other: nullable Object */;
5099 short int var33
/* : Bool */;
5100 short int var34
/* : Bool */;
5101 short int var35
/* : Bool */;
5102 val
* var36
/* : MClass */;
5103 val
* var38
/* : MClass */;
5104 val
* var39
/* : MClassType */;
5105 val
* var41
/* : MClassType */;
5106 short int var42
/* : Bool */;
5107 val
* var43
/* : MType */;
5108 short int var44
/* : Bool */;
5109 short int var45
/* : Bool */;
5112 short int var_48
/* var : Bool */;
5113 short int var49
/* : Bool */;
5116 val
* var52
/* : null */;
5117 short int var53
/* : Bool */;
5118 short int var54
/* : Bool */;
5119 short int var56
/* : Bool */;
5120 short int var57
/* : Bool */;
5121 short int var58
/* : Bool */;
5122 val
* var59
/* : MClass */;
5123 val
* var61
/* : MClass */;
5124 val
* var62
/* : MClassType */;
5125 val
* var64
/* : MClassType */;
5126 short int var65
/* : Bool */;
5127 val
* var66
/* : MType */;
5128 short int var67
/* : Bool */;
5129 short int var_sup_accept_null
/* var sup_accept_null: Bool */;
5130 short int var68
/* : Bool */;
5133 short int var71
/* : Bool */;
5134 val
* var72
/* : MType */;
5135 val
* var74
/* : MType */;
5136 short int var75
/* : Bool */;
5139 short int var78
/* : Bool */;
5140 short int var79
/* : Bool */;
5143 short int var82
/* : Bool */;
5144 short int var83
/* : Bool */;
5145 val
* var84
/* : MType */;
5146 val
* var86
/* : MType */;
5147 short int var87
/* : Bool */;
5150 short int var90
/* : Bool */;
5151 short int var91
/* : Bool */;
5154 short int var_94
/* var : Bool */;
5155 short int var95
/* : Bool */;
5158 short int var98
/* : Bool */;
5159 short int var99
/* : Bool */;
5160 short int var101
/* : Bool */;
5161 short int var103
/* : Bool */;
5162 short int var104
/* : Bool */;
5163 short int var105
/* : Bool */;
5166 short int var_108
/* var : Bool */;
5167 short int var109
/* : Bool */;
5170 val
* var112
/* : null */;
5171 short int var113
/* : Bool */;
5172 short int var114
/* : Bool */;
5173 short int var116
/* : Bool */;
5174 short int var117
/* : Bool */;
5175 short int var118
/* : Bool */;
5176 val
* var119
/* : MType */;
5177 short int var120
/* : Bool */;
5180 short int var123
/* : Bool */;
5181 short int var124
/* : Bool */;
5182 val
* var125
/* : MType */;
5183 val
* var127
/* : MType */;
5184 short int var128
/* : Bool */;
5187 short int var131
/* : Bool */;
5190 short int var134
/* : Bool */;
5193 short int var137
/* : Bool */;
5194 short int var138
/* : Bool */;
5197 short int var141
/* : Bool */;
5198 short int var142
/* : Bool */;
5199 short int var144
/* : Bool */;
5200 short int var146
/* : Bool */;
5201 short int var147
/* : Bool */;
5202 val
* var148
/* : null */;
5203 short int var149
/* : Bool */;
5204 short int var150
/* : Bool */;
5205 short int var152
/* : Bool */;
5206 short int var154
/* : Bool */;
5207 val
* var155
/* : MClassType */;
5208 val
* var_resolved_sub
/* var resolved_sub: MClassType */;
5209 val
* var156
/* : Set[MClass] */;
5210 val
* var157
/* : MClass */;
5211 val
* var159
/* : MClass */;
5212 short int var160
/* : Bool */;
5213 short int var_res
/* var res: Bool */;
5214 short int var161
/* : Bool */;
5215 short int var162
/* : Bool */;
5216 short int var163
/* : Bool */;
5217 short int var165
/* : Bool */;
5218 short int var166
/* : Bool */;
5219 short int var167
/* : Bool */;
5222 short int var170
/* : Bool */;
5223 short int var171
/* : Bool */;
5224 val
* var172
/* : MClass */;
5225 val
* var174
/* : MClass */;
5226 val
* var175
/* : MClassType */;
5227 val
* var_sub2
/* var sub2: MClassType */;
5228 val
* var176
/* : MClass */;
5229 val
* var178
/* : MClass */;
5230 val
* var179
/* : MClass */;
5231 val
* var181
/* : MClass */;
5232 short int var182
/* : Bool */;
5233 short int var183
/* : Bool */;
5234 short int var185
/* : Bool */;
5235 short int var187
/* : Bool */;
5236 long var188
/* : Int */;
5237 long var_i
/* var i: Int */;
5238 val
* var189
/* : MClass */;
5239 val
* var191
/* : MClass */;
5240 long var192
/* : Int */;
5241 long var194
/* : Int */;
5242 long var_195
/* var : Int */;
5243 short int var196
/* : Bool */;
5244 short int var198
/* : Bool */;
5247 const char* var_class_name
;
5248 short int var201
/* : Bool */;
5249 val
* var202
/* : Array[MType] */;
5250 val
* var204
/* : Array[MType] */;
5251 val
* var205
/* : nullable Object */;
5252 val
* var_sub_arg
/* var sub_arg: MType */;
5253 val
* var206
/* : Array[MType] */;
5254 val
* var208
/* : Array[MType] */;
5255 val
* var209
/* : nullable Object */;
5256 val
* var_sup_arg
/* var sup_arg: MType */;
5257 short int var210
/* : Bool */;
5258 short int var211
/* : Bool */;
5259 short int var212
/* : Bool */;
5260 short int var213
/* : Bool */;
5261 short int var215
/* : Bool */;
5262 short int var216
/* : Bool */;
5263 long var217
/* : Int */;
5264 long var218
/* : Int */;
5265 short int var219
/* : Bool */;
5271 { /* Inline kernel#Object#== (var_sub,var_sup) on <var_sub:MType> */
5272 var_other
= var_sup
;
5274 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:MType> */
5275 var6
= var_sub
== var_other
;
5294 if (var_anchor
== NULL
) {
5295 var9
= 1; /* is null */
5297 var9
= 0; /* arg is null but recv is not */
5300 { /* Inline kernel#Object#== (var_anchor,var8) on <var_anchor:nullable MClassType> */
5303 { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on <var_anchor:nullable MClassType(MClassType)> */
5304 var14
= var_anchor
== var_other
;
5307 RET_LABEL13
:(void)0;
5312 RET_LABEL11
:(void)0;
5318 var15
= ((short int (*)(val
*))(var_sub
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sub
) /* need_anchor on <var_sub:MType>*/;
5321 if (unlikely(!var16
)) {
5322 PRINT_ERROR("Runtime error: %s", "Assert failed");
5323 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 637);
5327 var17
= ((short int (*)(val
*))(var_sup
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sup
) /* need_anchor on <var_sup:MType>*/;
5330 if (unlikely(!var18
)) {
5331 PRINT_ERROR("Runtime error: %s", "Assert failed");
5332 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 638);
5338 var20
= ((short int (*)(val
*, val
*, val
*, val
*))(var_sub
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_sub
, var_anchor
, var19
, var_mmodule
) /* can_resolve_for on <var_sub:MType>*/;
5340 if (unlikely(!var20
)) {
5341 PRINT_ERROR("Runtime error: %s", "Assert failed");
5342 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 640);
5347 var22
= ((short int (*)(val
*, val
*, val
*, val
*))(var_sup
->class->vft
[COLOR_model__MType__can_resolve_for
]))(var_sup
, var_anchor
, var21
, var_mmodule
) /* can_resolve_for on <var_sup:MType>*/;
5349 if (unlikely(!var22
)) {
5350 PRINT_ERROR("Runtime error: %s", "Assert failed");
5351 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 641);
5355 /* <var_sub:MType> isa MParameterType */
5356 cltype
= type_model__MParameterType
.color
;
5357 idtype
= type_model__MParameterType
.id
;
5358 if(cltype
>= var_sub
->type
->table_size
) {
5361 var24
= var_sub
->type
->type_table
[cltype
] == idtype
;
5367 /* <var_sub:MType> isa MVirtualType */
5368 cltype26
= type_model__MVirtualType
.color
;
5369 idtype27
= type_model__MVirtualType
.id
;
5370 if(cltype26
>= var_sub
->type
->table_size
) {
5373 var25
= var_sub
->type
->type_table
[cltype26
] == idtype27
;
5379 if (var_anchor
== NULL
) {
5380 var29
= 0; /* is null */
5382 var29
= 1; /* arg is null and recv is not */
5385 { /* Inline kernel#Object#!= (var_anchor,var28) on <var_anchor:nullable MClassType> */
5386 var_other32
= var28
;
5388 var34
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other32
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
5394 RET_LABEL31
:(void)0;
5398 if (unlikely(!var29
)) {
5399 PRINT_ERROR("Runtime error: %s", "Assert failed");
5400 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 648);
5404 { /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
5405 var38
= var_anchor
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
5406 if (unlikely(var38
== NULL
)) {
5407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5408 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5412 RET_LABEL37
:(void)0;
5416 { /* Inline model#MClass#mclass_type (var36) on <var36:MClass> */
5417 var41
= var36
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var36:MClass> */
5418 if (unlikely(var41
== NULL
)) {
5419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5420 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
5424 RET_LABEL40
:(void)0;
5429 var43
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_sub
->class->vft
[COLOR_model__MType__resolve_for
]))(var_sub
, var39
, var_anchor
, var_mmodule
, var42
) /* resolve_for on <var_sub:MType>*/;
5434 /* <var_sup:MType> isa MParameterType */
5435 cltype46
= type_model__MParameterType
.color
;
5436 idtype47
= type_model__MParameterType
.id
;
5437 if(cltype46
>= var_sup
->type
->table_size
) {
5440 var45
= var_sup
->type
->type_table
[cltype46
] == idtype47
;
5446 /* <var_sup:MType> isa MVirtualType */
5447 cltype50
= type_model__MVirtualType
.color
;
5448 idtype51
= type_model__MVirtualType
.id
;
5449 if(cltype50
>= var_sup
->type
->table_size
) {
5452 var49
= var_sup
->type
->type_table
[cltype50
] == idtype51
;
5458 if (var_anchor
== NULL
) {
5459 var53
= 0; /* is null */
5461 var53
= 1; /* arg is null and recv is not */
5464 { /* Inline kernel#Object#!= (var_anchor,var52) on <var_anchor:nullable MClassType> */
5465 var_other32
= var52
;
5467 var57
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other32
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
5473 RET_LABEL55
:(void)0;
5477 if (unlikely(!var53
)) {
5478 PRINT_ERROR("Runtime error: %s", "Assert failed");
5479 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 652);
5483 { /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
5484 var61
= var_anchor
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
5485 if (unlikely(var61
== NULL
)) {
5486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5487 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5491 RET_LABEL60
:(void)0;
5495 { /* Inline model#MClass#mclass_type (var59) on <var59:MClass> */
5496 var64
= var59
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var59:MClass> */
5497 if (unlikely(var64
== NULL
)) {
5498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5499 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
5503 RET_LABEL63
:(void)0;
5508 var66
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_sup
->class->vft
[COLOR_model__MType__resolve_for
]))(var_sup
, var62
, var_anchor
, var_mmodule
, var65
) /* resolve_for on <var_sup:MType>*/;
5514 var_sup_accept_null
= var67
;
5515 /* <var_sup:MType> isa MNullableType */
5516 cltype69
= type_model__MNullableType
.color
;
5517 idtype70
= type_model__MNullableType
.id
;
5518 if(cltype69
>= var_sup
->type
->table_size
) {
5521 var68
= var_sup
->type
->type_table
[cltype69
] == idtype70
;
5525 var_sup_accept_null
= var71
;
5527 { /* Inline model#MNullableType#mtype (var_sup) on <var_sup:MType(MNullableType)> */
5528 var74
= var_sup
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_sup:MType(MNullableType)> */
5529 if (unlikely(var74
== NULL
)) {
5530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5531 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
5535 RET_LABEL73
:(void)0;
5540 /* <var_sup:MType> isa MNullType */
5541 cltype76
= type_model__MNullType
.color
;
5542 idtype77
= type_model__MNullType
.id
;
5543 if(cltype76
>= var_sup
->type
->table_size
) {
5546 var75
= var_sup
->type
->type_table
[cltype76
] == idtype77
;
5550 var_sup_accept_null
= var78
;
5554 /* <var_sub:MType> isa MNullableType */
5555 cltype80
= type_model__MNullableType
.color
;
5556 idtype81
= type_model__MNullableType
.id
;
5557 if(cltype80
>= var_sub
->type
->table_size
) {
5560 var79
= var_sub
->type
->type_table
[cltype80
] == idtype81
;
5563 var82
= !var_sup_accept_null
;
5571 { /* Inline model#MNullableType#mtype (var_sub) on <var_sub:MType(MNullableType)> */
5572 var86
= var_sub
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_sub:MType(MNullableType)> */
5573 if (unlikely(var86
== NULL
)) {
5574 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5575 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
5579 RET_LABEL85
:(void)0;
5584 /* <var_sub:MType> isa MNullType */
5585 cltype88
= type_model__MNullType
.color
;
5586 idtype89
= type_model__MNullType
.id
;
5587 if(cltype88
>= var_sub
->type
->table_size
) {
5590 var87
= var_sub
->type
->type_table
[cltype88
] == idtype89
;
5593 var
= var_sup_accept_null
;
5598 /* <var_sup:MType> isa MParameterType */
5599 cltype92
= type_model__MParameterType
.color
;
5600 idtype93
= type_model__MParameterType
.id
;
5601 if(cltype92
>= var_sup
->type
->table_size
) {
5604 var91
= var_sup
->type
->type_table
[cltype92
] == idtype93
;
5610 /* <var_sup:MType> isa MVirtualType */
5611 cltype96
= type_model__MVirtualType
.color
;
5612 idtype97
= type_model__MVirtualType
.id
;
5613 if(cltype96
>= var_sup
->type
->table_size
) {
5616 var95
= var_sup
->type
->type_table
[cltype96
] == idtype97
;
5622 { /* Inline kernel#Object#== (var_sub,var_sup) on <var_sub:MType> */
5623 var_other
= var_sup
;
5625 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:MType> */
5626 var103
= var_sub
== var_other
;
5629 RET_LABEL102
:(void)0;
5634 RET_LABEL100
:(void)0;
5642 /* <var_sub:MType> isa MParameterType */
5643 cltype106
= type_model__MParameterType
.color
;
5644 idtype107
= type_model__MParameterType
.id
;
5645 if(cltype106
>= var_sub
->type
->table_size
) {
5648 var105
= var_sub
->type
->type_table
[cltype106
] == idtype107
;
5654 /* <var_sub:MType> isa MVirtualType */
5655 cltype110
= type_model__MVirtualType
.color
;
5656 idtype111
= type_model__MVirtualType
.id
;
5657 if(cltype110
>= var_sub
->type
->table_size
) {
5660 var109
= var_sub
->type
->type_table
[cltype110
] == idtype111
;
5666 if (var_anchor
== NULL
) {
5667 var113
= 0; /* is null */
5669 var113
= 1; /* arg is null and recv is not */
5672 { /* Inline kernel#Object#!= (var_anchor,var112) on <var_anchor:nullable MClassType> */
5673 var_other32
= var112
;
5675 var117
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other32
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
5681 RET_LABEL115
:(void)0;
5685 if (unlikely(!var113
)) {
5686 PRINT_ERROR("Runtime error: %s", "Assert failed");
5687 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 684);
5691 var119
= ((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>*/;
5694 /* <var_sub:MType> isa MNullableType */
5695 cltype121
= type_model__MNullableType
.color
;
5696 idtype122
= type_model__MNullableType
.id
;
5697 if(cltype121
>= var_sub
->type
->table_size
) {
5700 var120
= var_sub
->type
->type_table
[cltype121
] == idtype122
;
5703 var123
= !var_sup_accept_null
;
5711 { /* Inline model#MNullableType#mtype (var_sub) on <var_sub:MType(MNullableType)> */
5712 var127
= var_sub
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_sub:MType(MNullableType)> */
5713 if (unlikely(var127
== NULL
)) {
5714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5715 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
5719 RET_LABEL126
:(void)0;
5724 /* <var_sub:MType> isa MNullType */
5725 cltype129
= type_model__MNullType
.color
;
5726 idtype130
= type_model__MNullType
.id
;
5727 if(cltype129
>= var_sub
->type
->table_size
) {
5730 var128
= var_sub
->type
->type_table
[cltype129
] == idtype130
;
5733 var
= var_sup_accept_null
;
5740 /* <var_sub:MType> isa MClassType */
5741 cltype132
= type_model__MClassType
.color
;
5742 idtype133
= type_model__MClassType
.id
;
5743 if(cltype132
>= var_sub
->type
->table_size
) {
5746 var131
= var_sub
->type
->type_table
[cltype132
] == idtype133
;
5748 if (unlikely(!var131
)) {
5749 PRINT_ERROR("Runtime error: %s", "Assert failed");
5750 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 696);
5753 /* <var_sup:MType> isa MNullType */
5754 cltype135
= type_model__MNullType
.color
;
5755 idtype136
= type_model__MNullType
.id
;
5756 if(cltype135
>= var_sup
->type
->table_size
) {
5759 var134
= var_sup
->type
->type_table
[cltype135
] == idtype136
;
5767 /* <var_sup:MType> isa MClassType */
5768 cltype139
= type_model__MClassType
.color
;
5769 idtype140
= type_model__MClassType
.id
;
5770 if(cltype139
>= var_sup
->type
->table_size
) {
5773 var138
= var_sup
->type
->type_table
[cltype139
] == idtype140
;
5775 if (unlikely(!var138
)) {
5776 PRINT_ERROR("Runtime error: %s", "Assert failed");
5777 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 703);
5781 { /* Inline kernel#Object#== (var_sub,var_sup) on <var_sub:MType(MClassType)> */
5782 var_other
= var_sup
;
5784 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:MType(MClassType)> */
5785 var146
= var_sub
== var_other
;
5788 RET_LABEL145
:(void)0;
5793 RET_LABEL143
:(void)0;
5804 if (var_anchor
== NULL
) {
5805 var149
= 1; /* is null */
5807 var149
= 0; /* arg is null but recv is not */
5810 { /* Inline kernel#Object#== (var_anchor,var148) on <var_anchor:nullable MClassType> */
5813 { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on <var_anchor:nullable MClassType(MClassType)> */
5814 var154
= var_anchor
== var_other
;
5817 RET_LABEL153
:(void)0;
5822 RET_LABEL151
:(void)0;
5827 var_anchor
= var_sub
;
5831 var155
= model__MClassType__anchor_to(var_sub
, var_mmodule
, var_anchor
);
5833 var_resolved_sub
= var155
;
5835 var156
= model__MClassType__collect_mclasses(var_resolved_sub
, var_mmodule
);
5838 { /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MClassType)> */
5839 var159
= var_sup
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sup:MType(MClassType)> */
5840 if (unlikely(var159
== NULL
)) {
5841 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5842 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5846 RET_LABEL158
:(void)0;
5850 var160
= ((short int (*)(val
*, val
*))(var156
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var156
, var157
) /* has on <var156:Set[MClass]>*/;
5855 { /* Inline kernel#Bool#== (var_res,var161) on <var_res:Bool> */
5856 var165
= var_res
== var161
;
5859 RET_LABEL164
:(void)0;
5869 /* <var_sup:MType(MClassType)> isa MGenericType */
5870 cltype168
= type_model__MGenericType
.color
;
5871 idtype169
= type_model__MGenericType
.id
;
5872 if(cltype168
>= var_sup
->type
->table_size
) {
5875 var167
= var_sup
->type
->type_table
[cltype168
] == idtype169
;
5885 { /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MGenericType)> */
5886 var174
= var_sup
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sup:MType(MGenericType)> */
5887 if (unlikely(var174
== NULL
)) {
5888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5889 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5893 RET_LABEL173
:(void)0;
5897 var175
= model__MType__supertype_to(var_sub
, var_mmodule
, var_anchor
, var172
);
5901 { /* Inline model#MClassType#mclass (var_sub2) on <var_sub2:MClassType> */
5902 var178
= var_sub2
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sub2:MClassType> */
5903 if (unlikely(var178
== NULL
)) {
5904 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5905 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5909 RET_LABEL177
:(void)0;
5913 { /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MGenericType)> */
5914 var181
= var_sup
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sup:MType(MGenericType)> */
5915 if (unlikely(var181
== NULL
)) {
5916 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5917 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5921 RET_LABEL180
:(void)0;
5925 { /* Inline kernel#Object#== (var176,var179) on <var176:MClass> */
5928 { /* Inline kernel#Object#is_same_instance (var176,var_other) on <var176:MClass> */
5929 var187
= var176
== var_other
;
5932 RET_LABEL186
:(void)0;
5937 RET_LABEL184
:(void)0;
5941 if (unlikely(!var182
)) {
5942 PRINT_ERROR("Runtime error: %s", "Assert failed");
5943 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 715);
5949 { /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MGenericType)> */
5950 var191
= var_sup
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sup:MType(MGenericType)> */
5951 if (unlikely(var191
== NULL
)) {
5952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5953 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
5957 RET_LABEL190
:(void)0;
5961 { /* Inline model#MClass#arity (var189) on <var189:MClass> */
5962 var194
= var189
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var189:MClass> */
5964 RET_LABEL193
:(void)0;
5970 { /* Inline kernel#Int#< (var_i,var_195) on <var_i:Int> */
5971 /* Covariant cast for argument 0 (i) <var_195:Int> isa OTHER */
5972 /* <var_195:Int> isa OTHER */
5973 var198
= 1; /* easy <var_195:Int> isa OTHER*/
5974 if (unlikely(!var198
)) {
5975 var_class_name
= type_kernel__Int
.name
;
5976 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
5977 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
5980 var201
= var_i
< var_195
;
5983 RET_LABEL197
:(void)0;
5988 { /* Inline model#MClassType#arguments (var_sub2) on <var_sub2:MClassType> */
5989 var204
= var_sub2
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_sub2:MClassType> */
5990 if (unlikely(var204
== NULL
)) {
5991 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
5992 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
5996 RET_LABEL203
:(void)0;
6000 var205
= array__Array___91d_93d(var202
, var_i
);
6002 var_sub_arg
= var205
;
6004 { /* Inline model#MClassType#arguments (var_sup) on <var_sup:MType(MGenericType)> */
6005 var208
= var_sup
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_sup:MType(MGenericType)> */
6006 if (unlikely(var208
== NULL
)) {
6007 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6008 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
6012 RET_LABEL207
:(void)0;
6016 var209
= array__Array___91d_93d(var206
, var_i
);
6018 var_sup_arg
= var209
;
6020 var210
= model__MType__is_subtype(var_sub_arg
, var_mmodule
, var_anchor
, var_sup_arg
);
6025 { /* Inline kernel#Bool#== (var_res,var211) on <var_res:Bool> */
6026 var215
= var_res
== var211
;
6029 RET_LABEL214
:(void)0;
6041 var218
= kernel__Int__successor(var_i
, var217
);
6048 BREAK_label
: (void)0;
6055 /* method model#MType#is_subtype for (self: Object, MModule, nullable MClassType, MType): Bool */
6056 short int VIRTUAL_model__MType__is_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6057 short int var
/* : Bool */;
6058 short int var1
/* : Bool */;
6059 var1
= model__MType__is_subtype(self
, p0
, p1
, p2
);
6064 /* method model#MType#anchor_to for (self: MType, MModule, MClassType): MType */
6065 val
* model__MType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
6066 val
* var
/* : MType */;
6067 val
* var_mmodule
/* var mmodule: MModule */;
6068 val
* var_anchor
/* var anchor: MClassType */;
6069 short int var1
/* : Bool */;
6070 short int var2
/* : Bool */;
6071 short int var3
/* : Bool */;
6072 short int var4
/* : Bool */;
6073 val
* var5
/* : null */;
6074 short int var6
/* : Bool */;
6075 val
* var7
/* : MType */;
6076 val
* var_res
/* var res: MType */;
6077 short int var8
/* : Bool */;
6078 short int var9
/* : Bool */;
6082 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
6091 var3
= ((short int (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MType__need_anchor
]))(var_anchor
) /* need_anchor on <var_anchor:MClassType>*/;
6094 if (unlikely(!var4
)) {
6095 PRINT_ERROR("Runtime error: %s", "Assert failed");
6096 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 760);
6102 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>*/;
6106 var8
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__need_anchor
]))(var_res
) /* need_anchor on <var_res:MType>*/;
6109 if (unlikely(!var9
)) {
6110 PRINT_ERROR("Runtime error: %s", "Assert failed");
6111 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 763);
6119 /* method model#MType#anchor_to for (self: Object, MModule, MClassType): MType */
6120 val
* VIRTUAL_model__MType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
6121 val
* var
/* : MType */;
6122 val
* var1
/* : MType */;
6123 var1
= model__MType__anchor_to(self
, p0
, p1
);
6128 /* method model#MType#need_anchor for (self: MType): Bool */
6129 short int model__MType__need_anchor(val
* self
) {
6130 short int var
/* : Bool */;
6131 short int var1
/* : Bool */;
6138 /* method model#MType#need_anchor for (self: Object): Bool */
6139 short int VIRTUAL_model__MType__need_anchor(val
* self
) {
6140 short int var
/* : Bool */;
6141 short int var1
/* : Bool */;
6142 var1
= model__MType__need_anchor(self
);
6147 /* method model#MType#supertype_to for (self: MType, MModule, nullable MClassType, MClass): MClassType */
6148 val
* model__MType__supertype_to(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6149 val
* var
/* : MClassType */;
6150 val
* var_mmodule
/* var mmodule: MModule */;
6151 val
* var_anchor
/* var anchor: nullable MClassType */;
6152 val
* var_super_mclass
/* var super_mclass: MClass */;
6153 long var1
/* : Int */;
6154 long var3
/* : Int */;
6155 long var4
/* : Int */;
6156 short int var5
/* : Bool */;
6157 short int var6
/* : Bool */;
6158 short int var8
/* : Bool */;
6159 val
* var9
/* : MClassType */;
6160 val
* var11
/* : MClassType */;
6161 short int var12
/* : Bool */;
6162 short int var13
/* : Bool */;
6165 short int var_
/* var : Bool */;
6166 val
* var14
/* : MClass */;
6167 val
* var16
/* : MClass */;
6168 short int var17
/* : Bool */;
6169 short int var18
/* : Bool */;
6170 val
* var_other
/* var other: nullable Object */;
6171 short int var20
/* : Bool */;
6172 short int var22
/* : Bool */;
6173 short int var23
/* : Bool */;
6174 val
* var24
/* : null */;
6175 short int var25
/* : Bool */;
6176 short int var26
/* : Bool */;
6177 val
* var_other28
/* var other: nullable Object */;
6178 short int var29
/* : Bool */;
6179 short int var30
/* : Bool */;
6180 short int var31
/* : Bool */;
6181 val
* var32
/* : MType */;
6182 val
* var_resolved_self
/* var resolved_self: nullable Object */;
6183 val
* var33
/* : Set[MClassType] */;
6184 val
* var_supertypes
/* var supertypes: Set[MClassType] */;
6185 val
* var_34
/* var : Set[MClassType] */;
6186 val
* var35
/* : Iterator[nullable Object] */;
6187 val
* var_36
/* var : Iterator[MClassType] */;
6188 short int var37
/* : Bool */;
6189 val
* var38
/* : nullable Object */;
6190 val
* var_supertype
/* var supertype: MClassType */;
6191 val
* var39
/* : MClass */;
6192 val
* var41
/* : MClass */;
6193 short int var42
/* : Bool */;
6194 short int var43
/* : Bool */;
6195 short int var45
/* : Bool */;
6196 short int var47
/* : Bool */;
6197 short int var48
/* : Bool */;
6198 val
* var49
/* : MType */;
6201 var_super_mclass
= p2
;
6203 { /* Inline model#MClass#arity (var_super_mclass) on <var_super_mclass:MClass> */
6204 var3
= var_super_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_super_mclass:MClass> */
6211 { /* Inline kernel#Int#== (var1,var4) on <var1:Int> */
6212 var8
= var1
== var4
;
6221 { /* Inline model#MClass#mclass_type (var_super_mclass) on <var_super_mclass:MClass> */
6222 var11
= var_super_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_super_mclass:MClass> */
6223 if (unlikely(var11
== NULL
)) {
6224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6225 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
6229 RET_LABEL10
:(void)0;
6236 /* <self:MType> isa MClassType */
6237 cltype
= type_model__MClassType
.color
;
6238 idtype
= type_model__MClassType
.id
;
6239 if(cltype
>= self
->type
->table_size
) {
6242 var13
= self
->type
->type_table
[cltype
] == idtype
;
6247 { /* Inline model#MClassType#mclass (self) on <self:MType(MClassType)> */
6248 var16
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MType(MClassType)> */
6249 if (unlikely(var16
== NULL
)) {
6250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6251 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6255 RET_LABEL15
:(void)0;
6259 { /* Inline kernel#Object#== (var14,var_super_mclass) on <var14:MClass> */
6260 var_other
= var_super_mclass
;
6262 { /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:MClass> */
6263 var22
= var14
== var_other
;
6266 RET_LABEL21
:(void)0;
6271 RET_LABEL19
:(void)0;
6285 var23
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
6289 if (var_anchor
== NULL
) {
6290 var25
= 0; /* is null */
6292 var25
= 1; /* arg is null and recv is not */
6295 { /* Inline kernel#Object#!= (var_anchor,var24) on <var_anchor:nullable MClassType> */
6296 var_other28
= var24
;
6298 var30
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other28
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
6304 RET_LABEL27
:(void)0;
6308 if (unlikely(!var25
)) {
6309 PRINT_ERROR("Runtime error: %s", "Assert failed");
6310 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 789);
6314 var32
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MType__anchor_to
]))(self
, var_mmodule
, var_anchor
) /* anchor_to on <self:MType>*/;
6316 var_resolved_self
= var32
;
6318 var_resolved_self
= self
;
6321 var33
= ((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)>*/;
6323 var_supertypes
= var33
;
6324 var_34
= var_supertypes
;
6326 var35
= ((val
* (*)(val
*))(var_34
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_34
) /* iterator on <var_34:Set[MClassType]>*/;
6331 var37
= ((short int (*)(val
*))(var_36
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_36
) /* is_ok on <var_36:Iterator[MClassType]>*/;
6335 var38
= ((val
* (*)(val
*))(var_36
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_36
) /* item on <var_36:Iterator[MClassType]>*/;
6337 var_supertype
= var38
;
6339 { /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
6340 var41
= var_supertype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_supertype:MClassType> */
6341 if (unlikely(var41
== NULL
)) {
6342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6343 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6347 RET_LABEL40
:(void)0;
6351 { /* Inline kernel#Object#== (var39,var_super_mclass) on <var39:MClass> */
6352 var_other
= var_super_mclass
;
6354 { /* Inline kernel#Object#is_same_instance (var39,var_other) on <var39:MClass> */
6355 var47
= var39
== var_other
;
6358 RET_LABEL46
:(void)0;
6363 RET_LABEL44
:(void)0;
6370 var49
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_supertype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_supertype
, self
, var_anchor
, var_mmodule
, var48
) /* resolve_for on <var_supertype:MClassType>*/;
6377 ((void (*)(val
*))(var_36
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_36
) /* next on <var_36:Iterator[MClassType]>*/;
6383 BREAK_label
: (void)0;
6385 { /* Inline abstract_collection#Iterator#finish (var_36) on <var_36:Iterator[MClassType]> */
6386 RET_LABEL50
:(void)0;
6389 PRINT_ERROR("Runtime error: %s", "Aborted");
6390 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 801);
6395 /* method model#MType#supertype_to for (self: Object, MModule, nullable MClassType, MClass): MClassType */
6396 val
* VIRTUAL_model__MType__supertype_to(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6397 val
* var
/* : MClassType */;
6398 val
* var1
/* : MClassType */;
6399 var1
= model__MType__supertype_to(self
, p0
, p1
, p2
);
6404 /* method model#MType#can_resolve_for for (self: MType, MType, nullable MClassType, MModule): Bool */
6405 short int model__MType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6406 short int var
/* : Bool */;
6407 const char* var_class_name
;
6408 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6409 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name
);
6410 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 874);
6415 /* method model#MType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
6416 short int VIRTUAL_model__MType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6417 short int var
/* : Bool */;
6418 short int var1
/* : Bool */;
6419 const char* var_class_name
;
6420 { /* Inline model#MType#can_resolve_for (self,p0,p1,p2) on <self:Object(MType)> */
6421 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6422 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name
);
6423 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 874);
6431 /* method model#MType#as_nullable for (self: MType): MType */
6432 val
* model__MType__as_nullable(val
* self
) {
6433 val
* var
/* : MType */;
6434 val
* var1
/* : nullable MType */;
6435 val
* var3
/* : nullable MType */;
6436 val
* var_res
/* var res: nullable MType */;
6437 val
* var4
/* : null */;
6438 short int var5
/* : Bool */;
6439 short int var6
/* : Bool */;
6440 val
* var_other
/* var other: nullable Object */;
6441 short int var8
/* : Bool */;
6442 short int var9
/* : Bool */;
6443 short int var10
/* : Bool */;
6444 val
* var11
/* : MNullableType */;
6446 { /* Inline model#MType#as_nullable_cache (self) on <self:MType> */
6447 var3
= self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
; /* _as_nullable_cache on <self:MType> */
6454 if (var_res
== NULL
) {
6455 var5
= 0; /* is null */
6457 var5
= 1; /* arg is null and recv is not */
6460 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable MType> */
6463 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable MType(MType)>*/;
6478 var11
= NEW_model__MNullableType(&type_model__MNullableType
);
6480 model__MNullableType__init(var11
, self
); /* Direct call model#MNullableType#init on <var11:MNullableType>*/
6484 { /* Inline model#MType#as_nullable_cache= (self,var_res) on <self:MType> */
6485 self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
= var_res
; /* _as_nullable_cache on <self:MType> */
6486 RET_LABEL12
:(void)0;
6494 /* method model#MType#as_nullable for (self: Object): MType */
6495 val
* VIRTUAL_model__MType__as_nullable(val
* self
) {
6496 val
* var
/* : MType */;
6497 val
* var1
/* : MType */;
6498 var1
= model__MType__as_nullable(self
);
6503 /* method model#MType#as_notnullable for (self: MType): MType */
6504 val
* model__MType__as_notnullable(val
* self
) {
6505 val
* var
/* : MType */;
6511 /* method model#MType#as_notnullable for (self: Object): MType */
6512 val
* VIRTUAL_model__MType__as_notnullable(val
* self
) {
6513 val
* var
/* : MType */;
6514 val
* var1
/* : MType */;
6515 var1
= model__MType__as_notnullable(self
);
6520 /* method model#MType#as_nullable_cache for (self: MType): nullable MType */
6521 val
* model__MType__as_nullable_cache(val
* self
) {
6522 val
* var
/* : nullable MType */;
6523 val
* var1
/* : nullable MType */;
6524 var1
= self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
; /* _as_nullable_cache on <self:MType> */
6529 /* method model#MType#as_nullable_cache for (self: Object): nullable MType */
6530 val
* VIRTUAL_model__MType__as_nullable_cache(val
* self
) {
6531 val
* var
/* : nullable MType */;
6532 val
* var1
/* : nullable MType */;
6533 val
* var3
/* : nullable MType */;
6534 { /* Inline model#MType#as_nullable_cache (self) on <self:Object(MType)> */
6535 var3
= self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
; /* _as_nullable_cache on <self:Object(MType)> */
6543 /* method model#MType#as_nullable_cache= for (self: MType, nullable MType) */
6544 void model__MType__as_nullable_cache_61d(val
* self
, val
* p0
) {
6545 self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
= p0
; /* _as_nullable_cache on <self:MType> */
6548 /* method model#MType#as_nullable_cache= for (self: Object, nullable MType) */
6549 void VIRTUAL_model__MType__as_nullable_cache_61d(val
* self
, val
* p0
) {
6550 { /* Inline model#MType#as_nullable_cache= (self,p0) on <self:Object(MType)> */
6551 self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
= p0
; /* _as_nullable_cache on <self:Object(MType)> */
6556 /* method model#MType#length for (self: MType): Int */
6557 long model__MType__length(val
* self
) {
6558 long var
/* : Int */;
6559 long var1
/* : Int */;
6566 /* method model#MType#length for (self: Object): Int */
6567 long VIRTUAL_model__MType__length(val
* self
) {
6568 long var
/* : Int */;
6569 long var1
/* : Int */;
6570 var1
= model__MType__length(self
);
6575 /* method model#MType#collect_mclassdefs for (self: MType, MModule): Set[MClassDef] */
6576 val
* model__MType__collect_mclassdefs(val
* self
, val
* p0
) {
6577 val
* var
/* : Set[MClassDef] */;
6578 const char* var_class_name
;
6579 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6580 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name
);
6581 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 946);
6586 /* method model#MType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
6587 val
* VIRTUAL_model__MType__collect_mclassdefs(val
* self
, val
* p0
) {
6588 val
* var
/* : Set[MClassDef] */;
6589 val
* var1
/* : Set[MClassDef] */;
6590 const char* var_class_name
;
6591 { /* Inline model#MType#collect_mclassdefs (self,p0) on <self:Object(MType)> */
6592 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6593 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name
);
6594 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 946);
6602 /* method model#MType#collect_mclasses for (self: MType, MModule): Set[MClass] */
6603 val
* model__MType__collect_mclasses(val
* self
, val
* p0
) {
6604 val
* var
/* : Set[MClass] */;
6605 const char* var_class_name
;
6606 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6607 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name
);
6608 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 956);
6613 /* method model#MType#collect_mclasses for (self: Object, MModule): Set[MClass] */
6614 val
* VIRTUAL_model__MType__collect_mclasses(val
* self
, val
* p0
) {
6615 val
* var
/* : Set[MClass] */;
6616 val
* var1
/* : Set[MClass] */;
6617 const char* var_class_name
;
6618 { /* Inline model#MType#collect_mclasses (self,p0) on <self:Object(MType)> */
6619 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6620 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name
);
6621 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 956);
6629 /* method model#MType#collect_mtypes for (self: MType, MModule): Set[MClassType] */
6630 val
* model__MType__collect_mtypes(val
* self
, val
* p0
) {
6631 val
* var
/* : Set[MClassType] */;
6632 const char* var_class_name
;
6633 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6634 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name
);
6635 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 962);
6640 /* method model#MType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
6641 val
* VIRTUAL_model__MType__collect_mtypes(val
* self
, val
* p0
) {
6642 val
* var
/* : Set[MClassType] */;
6643 val
* var1
/* : Set[MClassType] */;
6644 const char* var_class_name
;
6645 { /* Inline model#MType#collect_mtypes (self,p0) on <self:Object(MType)> */
6646 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6647 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name
);
6648 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 962);
6656 /* method model#MType#has_mproperty for (self: MType, MModule, MProperty): Bool */
6657 short int model__MType__has_mproperty(val
* self
, val
* p0
, val
* p1
) {
6658 short int var
/* : Bool */;
6659 val
* var_mmodule
/* var mmodule: MModule */;
6660 val
* var_mproperty
/* var mproperty: MProperty */;
6661 short int var1
/* : Bool */;
6662 short int var2
/* : Bool */;
6663 val
* var3
/* : Set[MClassDef] */;
6664 val
* var4
/* : MClassDef */;
6665 val
* var6
/* : MClassDef */;
6666 short int var7
/* : Bool */;
6670 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
6673 if (unlikely(!var2
)) {
6674 PRINT_ERROR("Runtime error: %s", "Assert failed");
6675 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 975);
6679 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(self
, var_mmodule
) /* collect_mclassdefs on <self:MType>*/;
6682 { /* Inline model#MProperty#intro_mclassdef (var_mproperty) on <var_mproperty:MProperty> */
6683 var6
= var_mproperty
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mproperty:MProperty> */
6684 if (unlikely(var6
== NULL
)) {
6685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6686 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
6694 var7
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var4
) /* has on <var3:Set[MClassDef]>*/;
6701 /* method model#MType#has_mproperty for (self: Object, MModule, MProperty): Bool */
6702 short int VIRTUAL_model__MType__has_mproperty(val
* self
, val
* p0
, val
* p1
) {
6703 short int var
/* : Bool */;
6704 short int var1
/* : Bool */;
6705 var1
= model__MType__has_mproperty(self
, p0
, p1
);
6710 /* method model#MClassType#mclass for (self: MClassType): MClass */
6711 val
* model__MClassType__mclass(val
* self
) {
6712 val
* var
/* : MClass */;
6713 val
* var1
/* : MClass */;
6714 var1
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
6715 if (unlikely(var1
== NULL
)) {
6716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6717 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6724 /* method model#MClassType#mclass for (self: Object): MClass */
6725 val
* VIRTUAL_model__MClassType__mclass(val
* self
) {
6726 val
* var
/* : MClass */;
6727 val
* var1
/* : MClass */;
6728 val
* var3
/* : MClass */;
6729 { /* Inline model#MClassType#mclass (self) on <self:Object(MClassType)> */
6730 var3
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:Object(MClassType)> */
6731 if (unlikely(var3
== NULL
)) {
6732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6733 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6743 /* method model#MClassType#mclass= for (self: MClassType, MClass) */
6744 void model__MClassType__mclass_61d(val
* self
, val
* p0
) {
6745 self
->attrs
[COLOR_model__MClassType___mclass
].val
= p0
; /* _mclass on <self:MClassType> */
6748 /* method model#MClassType#mclass= for (self: Object, MClass) */
6749 void VIRTUAL_model__MClassType__mclass_61d(val
* self
, val
* p0
) {
6750 { /* Inline model#MClassType#mclass= (self,p0) on <self:Object(MClassType)> */
6751 self
->attrs
[COLOR_model__MClassType___mclass
].val
= p0
; /* _mclass on <self:Object(MClassType)> */
6756 /* method model#MClassType#model for (self: MClassType): Model */
6757 val
* model__MClassType__model(val
* self
) {
6758 val
* var
/* : Model */;
6759 val
* var1
/* : MClass */;
6760 val
* var3
/* : MClass */;
6761 val
* var4
/* : MModule */;
6762 val
* var6
/* : MModule */;
6763 val
* var7
/* : Model */;
6764 val
* var9
/* : Model */;
6766 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
6767 var3
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
6768 if (unlikely(var3
== NULL
)) {
6769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6770 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6778 { /* Inline model#MClass#intro_mmodule (var1) on <var1:MClass> */
6779 var6
= var1
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var1:MClass> */
6780 if (unlikely(var6
== NULL
)) {
6781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
6782 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
6790 { /* Inline mmodule#MModule#model (var4) on <var4:MModule> */
6791 var9
= var4
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var4:MModule> */
6792 if (unlikely(var9
== NULL
)) {
6793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
6794 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
6806 /* method model#MClassType#model for (self: Object): Model */
6807 val
* VIRTUAL_model__MClassType__model(val
* self
) {
6808 val
* var
/* : Model */;
6809 val
* var1
/* : Model */;
6810 var1
= model__MClassType__model(self
);
6815 /* method model#MClassType#init for (self: MClassType, MClass) */
6816 void model__MClassType__init(val
* self
, val
* p0
) {
6817 val
* var_mclass
/* var mclass: MClass */;
6819 ((void (*)(val
*))(self
->class->vft
[COLOR_kernel__Object__init
]))(self
) /* init on <self:MClassType>*/;
6823 { /* Inline model#MClassType#mclass= (self,var_mclass) on <self:MClassType> */
6824 self
->attrs
[COLOR_model__MClassType___mclass
].val
= var_mclass
; /* _mclass on <self:MClassType> */
6830 /* method model#MClassType#init for (self: Object, MClass) */
6831 void VIRTUAL_model__MClassType__init(val
* self
, val
* p0
) {
6832 model__MClassType__init(self
, p0
); /* Direct call model#MClassType#init on <self:Object(MClassType)>*/
6835 /* method model#MClassType#arguments for (self: MClassType): Array[MType] */
6836 val
* model__MClassType__arguments(val
* self
) {
6837 val
* var
/* : Array[MType] */;
6838 val
* var1
/* : Array[MType] */;
6839 var1
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:MClassType> */
6840 if (unlikely(var1
== NULL
)) {
6841 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6842 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
6849 /* method model#MClassType#arguments for (self: Object): Array[MType] */
6850 val
* VIRTUAL_model__MClassType__arguments(val
* self
) {
6851 val
* var
/* : Array[MType] */;
6852 val
* var1
/* : Array[MType] */;
6853 val
* var3
/* : Array[MType] */;
6854 { /* Inline model#MClassType#arguments (self) on <self:Object(MClassType)> */
6855 var3
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:Object(MClassType)> */
6856 if (unlikely(var3
== NULL
)) {
6857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6858 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
6868 /* method model#MClassType#arguments= for (self: MClassType, Array[MType]) */
6869 void model__MClassType__arguments_61d(val
* self
, val
* p0
) {
6870 self
->attrs
[COLOR_model__MClassType___arguments
].val
= p0
; /* _arguments on <self:MClassType> */
6873 /* method model#MClassType#arguments= for (self: Object, Array[MType]) */
6874 void VIRTUAL_model__MClassType__arguments_61d(val
* self
, val
* p0
) {
6875 { /* Inline model#MClassType#arguments= (self,p0) on <self:Object(MClassType)> */
6876 self
->attrs
[COLOR_model__MClassType___arguments
].val
= p0
; /* _arguments on <self:Object(MClassType)> */
6881 /* method model#MClassType#to_s for (self: MClassType): String */
6882 val
* model__MClassType__to_s(val
* self
) {
6883 val
* var
/* : String */;
6884 val
* var1
/* : MClass */;
6885 val
* var3
/* : MClass */;
6886 val
* var4
/* : String */;
6888 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
6889 var3
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
6890 if (unlikely(var3
== NULL
)) {
6891 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6892 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
6900 var4
= model__MClass__to_s(var1
);
6907 /* method model#MClassType#to_s for (self: Object): String */
6908 val
* VIRTUAL_model__MClassType__to_s(val
* self
) {
6909 val
* var
/* : String */;
6910 val
* var1
/* : String */;
6911 var1
= model__MClassType__to_s(self
);
6916 /* method model#MClassType#need_anchor for (self: MClassType): Bool */
6917 short int model__MClassType__need_anchor(val
* self
) {
6918 short int var
/* : Bool */;
6919 short int var1
/* : Bool */;
6926 /* method model#MClassType#need_anchor for (self: Object): Bool */
6927 short int VIRTUAL_model__MClassType__need_anchor(val
* self
) {
6928 short int var
/* : Bool */;
6929 short int var1
/* : Bool */;
6930 var1
= model__MClassType__need_anchor(self
);
6935 /* method model#MClassType#anchor_to for (self: MClassType, MModule, MClassType): MClassType */
6936 val
* model__MClassType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
6937 val
* var
/* : MClassType */;
6938 val
* var_mmodule
/* var mmodule: MModule */;
6939 val
* var_anchor
/* var anchor: MClassType */;
6940 val
* var1
/* : MType */;
6941 short int var2
/* : Bool */;
6944 const char* var_class_name
;
6948 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__anchor_to
]))(self
, p0
, p1
) /* anchor_to on <self:MClassType>*/;
6950 /* <var1:MType> isa MClassType */
6951 cltype
= type_model__MClassType
.color
;
6952 idtype
= type_model__MClassType
.id
;
6953 if(cltype
>= var1
->type
->table_size
) {
6956 var2
= var1
->type
->type_table
[cltype
] == idtype
;
6958 if (unlikely(!var2
)) {
6959 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
6960 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6961 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1006);
6969 /* method model#MClassType#anchor_to for (self: Object, MModule, MClassType): MType */
6970 val
* VIRTUAL_model__MClassType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
6971 val
* var
/* : MType */;
6972 val
* var1
/* : MClassType */;
6973 var1
= model__MClassType__anchor_to(self
, p0
, p1
);
6978 /* method model#MClassType#resolve_for for (self: MClassType, MType, nullable MClassType, MModule, Bool): MClassType */
6979 val
* model__MClassType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6980 val
* var
/* : MClassType */;
6981 val
* var_mtype
/* var mtype: MType */;
6982 val
* var_anchor
/* var anchor: nullable MClassType */;
6983 val
* var_mmodule
/* var mmodule: MModule */;
6984 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
6988 var_cleanup_virtual
= p3
;
6994 /* method model#MClassType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
6995 val
* VIRTUAL_model__MClassType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6996 val
* var
/* : MType */;
6997 val
* var1
/* : MClassType */;
6998 var1
= model__MClassType__resolve_for(self
, p0
, p1
, p2
, p3
);
7003 /* method model#MClassType#can_resolve_for for (self: MClassType, MType, nullable MClassType, MModule): Bool */
7004 short int model__MClassType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7005 short int var
/* : Bool */;
7006 val
* var_mtype
/* var mtype: MType */;
7007 val
* var_anchor
/* var anchor: nullable MClassType */;
7008 val
* var_mmodule
/* var mmodule: MModule */;
7009 short int var1
/* : Bool */;
7019 /* method model#MClassType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
7020 short int VIRTUAL_model__MClassType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7021 short int var
/* : Bool */;
7022 short int var1
/* : Bool */;
7023 var1
= model__MClassType__can_resolve_for(self
, p0
, p1
, p2
);
7028 /* method model#MClassType#collect_mclassdefs for (self: MClassType, MModule): Set[MClassDef] */
7029 val
* model__MClassType__collect_mclassdefs(val
* self
, val
* p0
) {
7030 val
* var
/* : Set[MClassDef] */;
7031 val
* var_mmodule
/* var mmodule: MModule */;
7032 short int var1
/* : Bool */;
7033 short int var2
/* : Bool */;
7034 val
* var3
/* : HashMap[MModule, Set[MClassDef]] */;
7035 val
* var5
/* : HashMap[MModule, Set[MClassDef]] */;
7036 val
* var_cache
/* var cache: HashMap[MModule, Set[MClassDef]] */;
7037 short int var6
/* : Bool */;
7038 short int var7
/* : Bool */;
7039 val
* var8
/* : nullable Object */;
7042 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
7045 if (unlikely(!var2
)) {
7046 PRINT_ERROR("Runtime error: %s", "Assert failed");
7047 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1015);
7051 { /* Inline model#MClassType#collect_mclassdefs_cache (self) on <self:MClassType> */
7052 var5
= self
->attrs
[COLOR_model__MClassType___collect_mclassdefs_cache
].val
; /* _collect_mclassdefs_cache on <self:MClassType> */
7053 if (unlikely(var5
== NULL
)) {
7054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
7055 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1073);
7064 var6
= abstract_collection__MapRead__has_key(var_cache
, var_mmodule
);
7069 model__MClassType__collect_things(self
, var_mmodule
); /* Direct call model#MClassType#collect_things on <self:MClassType>*/
7074 var8
= hash_collection__HashMap___91d_93d(var_cache
, var_mmodule
);
7081 /* method model#MClassType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
7082 val
* VIRTUAL_model__MClassType__collect_mclassdefs(val
* self
, val
* p0
) {
7083 val
* var
/* : Set[MClassDef] */;
7084 val
* var1
/* : Set[MClassDef] */;
7085 var1
= model__MClassType__collect_mclassdefs(self
, p0
);
7090 /* method model#MClassType#collect_mclasses for (self: MClassType, MModule): Set[MClass] */
7091 val
* model__MClassType__collect_mclasses(val
* self
, val
* p0
) {
7092 val
* var
/* : Set[MClass] */;
7093 val
* var_mmodule
/* var mmodule: MModule */;
7094 short int var1
/* : Bool */;
7095 short int var2
/* : Bool */;
7096 val
* var3
/* : HashMap[MModule, Set[MClass]] */;
7097 val
* var5
/* : HashMap[MModule, Set[MClass]] */;
7098 val
* var_cache
/* var cache: HashMap[MModule, Set[MClass]] */;
7099 short int var6
/* : Bool */;
7100 short int var7
/* : Bool */;
7101 val
* var8
/* : nullable Object */;
7104 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
7107 if (unlikely(!var2
)) {
7108 PRINT_ERROR("Runtime error: %s", "Assert failed");
7109 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1025);
7113 { /* Inline model#MClassType#collect_mclasses_cache (self) on <self:MClassType> */
7114 var5
= self
->attrs
[COLOR_model__MClassType___collect_mclasses_cache
].val
; /* _collect_mclasses_cache on <self:MClassType> */
7115 if (unlikely(var5
== NULL
)) {
7116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
7117 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1074);
7126 var6
= abstract_collection__MapRead__has_key(var_cache
, var_mmodule
);
7131 model__MClassType__collect_things(self
, var_mmodule
); /* Direct call model#MClassType#collect_things on <self:MClassType>*/
7136 var8
= hash_collection__HashMap___91d_93d(var_cache
, var_mmodule
);
7143 /* method model#MClassType#collect_mclasses for (self: Object, MModule): Set[MClass] */
7144 val
* VIRTUAL_model__MClassType__collect_mclasses(val
* self
, val
* p0
) {
7145 val
* var
/* : Set[MClass] */;
7146 val
* var1
/* : Set[MClass] */;
7147 var1
= model__MClassType__collect_mclasses(self
, p0
);
7152 /* method model#MClassType#collect_mtypes for (self: MClassType, MModule): Set[MClassType] */
7153 val
* model__MClassType__collect_mtypes(val
* self
, val
* p0
) {
7154 val
* var
/* : Set[MClassType] */;
7155 val
* var_mmodule
/* var mmodule: MModule */;
7156 short int var1
/* : Bool */;
7157 short int var2
/* : Bool */;
7158 val
* var3
/* : HashMap[MModule, Set[MClassType]] */;
7159 val
* var5
/* : HashMap[MModule, Set[MClassType]] */;
7160 val
* var_cache
/* var cache: HashMap[MModule, Set[MClassType]] */;
7161 short int var6
/* : Bool */;
7162 short int var7
/* : Bool */;
7163 val
* var8
/* : nullable Object */;
7166 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
7169 if (unlikely(!var2
)) {
7170 PRINT_ERROR("Runtime error: %s", "Assert failed");
7171 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1035);
7175 { /* Inline model#MClassType#collect_mtypes_cache (self) on <self:MClassType> */
7176 var5
= self
->attrs
[COLOR_model__MClassType___collect_mtypes_cache
].val
; /* _collect_mtypes_cache on <self:MClassType> */
7177 if (unlikely(var5
== NULL
)) {
7178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
7179 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1075);
7188 var6
= abstract_collection__MapRead__has_key(var_cache
, var_mmodule
);
7193 model__MClassType__collect_things(self
, var_mmodule
); /* Direct call model#MClassType#collect_things on <self:MClassType>*/
7198 var8
= hash_collection__HashMap___91d_93d(var_cache
, var_mmodule
);
7205 /* method model#MClassType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
7206 val
* VIRTUAL_model__MClassType__collect_mtypes(val
* self
, val
* p0
) {
7207 val
* var
/* : Set[MClassType] */;
7208 val
* var1
/* : Set[MClassType] */;
7209 var1
= model__MClassType__collect_mtypes(self
, p0
);
7214 /* method model#MClassType#collect_things for (self: MClassType, MModule) */
7215 void model__MClassType__collect_things(val
* self
, val
* p0
) {
7216 val
* var_mmodule
/* var mmodule: MModule */;
7217 val
* var
/* : HashSet[MClassDef] */;
7218 val
* var_res
/* var res: HashSet[MClassDef] */;
7219 val
* var1
/* : HashSet[MClass] */;
7220 val
* var_seen
/* var seen: HashSet[MClass] */;
7221 val
* var2
/* : HashSet[MClassType] */;
7222 val
* var_types
/* var types: HashSet[MClassType] */;
7223 val
* var3
/* : MClass */;
7224 val
* var5
/* : MClass */;
7225 val
* var6
/* : Array[MClass] */;
7226 long var7
/* : Int */;
7227 val
* var_
/* var : Array[MClass] */;
7228 val
* var8
/* : MClass */;
7229 val
* var10
/* : MClass */;
7230 val
* var_todo
/* var todo: Array[MClass] */;
7231 short int var11
/* : Bool */;
7232 short int var12
/* : Bool */;
7233 val
* var13
/* : nullable Object */;
7234 val
* var_mclass
/* var mclass: MClass */;
7235 val
* var14
/* : Array[MClassDef] */;
7236 val
* var16
/* : Array[MClassDef] */;
7237 val
* var_17
/* var : Array[MClassDef] */;
7238 val
* var18
/* : ArrayIterator[nullable Object] */;
7239 val
* var_19
/* var : ArrayIterator[MClassDef] */;
7240 short int var20
/* : Bool */;
7241 val
* var21
/* : nullable Object */;
7242 val
* var_mclassdef
/* var mclassdef: MClassDef */;
7243 val
* var22
/* : POSetElement[MModule] */;
7244 val
* var24
/* : POSetElement[MModule] */;
7245 val
* var25
/* : MModule */;
7246 val
* var27
/* : MModule */;
7247 short int var28
/* : Bool */;
7248 short int var29
/* : Bool */;
7249 val
* var30
/* : Array[MClassType] */;
7250 val
* var32
/* : Array[MClassType] */;
7251 val
* var_33
/* var : Array[MClassType] */;
7252 val
* var34
/* : ArrayIterator[nullable Object] */;
7253 val
* var_35
/* var : ArrayIterator[MClassType] */;
7254 short int var36
/* : Bool */;
7255 val
* var37
/* : nullable Object */;
7256 val
* var_supertype
/* var supertype: MClassType */;
7257 val
* var38
/* : MClass */;
7258 val
* var40
/* : MClass */;
7259 val
* var_superclass
/* var superclass: MClass */;
7260 short int var41
/* : Bool */;
7261 val
* var48
/* : HashMap[MModule, Set[MClassDef]] */;
7262 val
* var50
/* : HashMap[MModule, Set[MClassDef]] */;
7263 val
* var51
/* : HashMap[MModule, Set[MClass]] */;
7264 val
* var53
/* : HashMap[MModule, Set[MClass]] */;
7265 val
* var54
/* : HashMap[MModule, Set[MClassType]] */;
7266 val
* var56
/* : HashMap[MModule, Set[MClassType]] */;
7268 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef
);
7270 ((void (*)(val
*))(var
->class->vft
[COLOR_kernel__Object__init
]))(var
) /* init on <var:HashSet[MClassDef]>*/;
7273 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
7275 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:HashSet[MClass]>*/;
7278 var2
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType
);
7280 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:HashSet[MClassType]>*/;
7284 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
7285 var5
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
7286 if (unlikely(var5
== NULL
)) {
7287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7288 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
7296 hash_collection__HashSet__add(var_seen
, var3
); /* Direct call hash_collection#HashSet#add on <var_seen:HashSet[MClass]>*/
7298 var6
= NEW_array__Array(&type_array__Arraymodel__MClass
);
7301 array__Array__with_capacity(var6
, var7
); /* Direct call array#Array#with_capacity on <var6:Array[MClass]>*/
7305 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
7306 var10
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
7307 if (unlikely(var10
== NULL
)) {
7308 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7309 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
7317 array__AbstractArray__push(var_
, var8
); /* Direct call array#AbstractArray#push on <var_:Array[MClass]>*/
7322 var11
= array__AbstractArrayRead__is_empty(var_todo
);
7327 var13
= array__AbstractArray__pop(var_todo
);
7331 { /* Inline model#MClass#mclassdefs (var_mclass) on <var_mclass:MClass> */
7332 var16
= var_mclass
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <var_mclass:MClass> */
7333 if (unlikely(var16
== NULL
)) {
7334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
7335 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
7339 RET_LABEL15
:(void)0;
7344 var18
= array__AbstractArrayRead__iterator(var_17
);
7349 var20
= array__ArrayIterator__is_ok(var_19
);
7353 var21
= array__ArrayIterator__item(var_19
);
7355 var_mclassdef
= var21
;
7357 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
7358 var24
= var_mmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mmodule:MModule> */
7359 if (unlikely(var24
== NULL
)) {
7360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
7361 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
7365 RET_LABEL23
:(void)0;
7369 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
7370 var27
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var_mclassdef:MClassDef> */
7371 if (unlikely(var27
== NULL
)) {
7372 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7373 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
7377 RET_LABEL26
:(void)0;
7381 var28
= poset__POSetElement___60d_61d(var22
, var25
);
7389 hash_collection__HashSet__add(var_res
, var_mclassdef
); /* Direct call hash_collection#HashSet#add on <var_res:HashSet[MClassDef]>*/
7392 { /* Inline model#MClassDef#supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
7393 var32
= var_mclassdef
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var_mclassdef:MClassDef> */
7394 if (unlikely(var32
== NULL
)) {
7395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
7396 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
7400 RET_LABEL31
:(void)0;
7405 var34
= array__AbstractArrayRead__iterator(var_33
);
7410 var36
= array__ArrayIterator__is_ok(var_35
);
7414 var37
= array__ArrayIterator__item(var_35
);
7416 var_supertype
= var37
;
7418 hash_collection__HashSet__add(var_types
, var_supertype
); /* Direct call hash_collection#HashSet#add on <var_types:HashSet[MClassType]>*/
7421 { /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
7422 var40
= var_supertype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_supertype:MClassType> */
7423 if (unlikely(var40
== NULL
)) {
7424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7425 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
7429 RET_LABEL39
:(void)0;
7432 var_superclass
= var38
;
7434 var41
= hash_collection__HashSet__has(var_seen
, var_superclass
);
7441 hash_collection__HashSet__add(var_seen
, var_superclass
); /* Direct call hash_collection#HashSet#add on <var_seen:HashSet[MClass]>*/
7444 array__Array__add(var_todo
, var_superclass
); /* Direct call array#Array#add on <var_todo:Array[MClass]>*/
7446 BREAK_label42
: (void)0;
7448 array__ArrayIterator__next(var_35
); /* Direct call array#ArrayIterator#next on <var_35:ArrayIterator[MClassType]>*/
7454 BREAK_label43
: (void)0;
7456 { /* Inline abstract_collection#Iterator#finish (var_35) on <var_35:ArrayIterator[MClassType]> */
7457 RET_LABEL44
:(void)0;
7460 BREAK_label
: (void)0;
7462 array__ArrayIterator__next(var_19
); /* Direct call array#ArrayIterator#next on <var_19:ArrayIterator[MClassDef]>*/
7468 BREAK_label45
: (void)0;
7470 { /* Inline abstract_collection#Iterator#finish (var_19) on <var_19:ArrayIterator[MClassDef]> */
7471 RET_LABEL46
:(void)0;
7478 BREAK_label47
: (void)0;
7480 { /* Inline model#MClassType#collect_mclassdefs_cache (self) on <self:MClassType> */
7481 var50
= self
->attrs
[COLOR_model__MClassType___collect_mclassdefs_cache
].val
; /* _collect_mclassdefs_cache on <self:MClassType> */
7482 if (unlikely(var50
== NULL
)) {
7483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
7484 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1073);
7488 RET_LABEL49
:(void)0;
7492 hash_collection__HashMap___91d_93d_61d(var48
, var_mmodule
, var_res
); /* Direct call hash_collection#HashMap#[]= on <var48:HashMap[MModule, Set[MClassDef]]>*/
7495 { /* Inline model#MClassType#collect_mclasses_cache (self) on <self:MClassType> */
7496 var53
= self
->attrs
[COLOR_model__MClassType___collect_mclasses_cache
].val
; /* _collect_mclasses_cache on <self:MClassType> */
7497 if (unlikely(var53
== NULL
)) {
7498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
7499 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1074);
7503 RET_LABEL52
:(void)0;
7507 hash_collection__HashMap___91d_93d_61d(var51
, var_mmodule
, var_seen
); /* Direct call hash_collection#HashMap#[]= on <var51:HashMap[MModule, Set[MClass]]>*/
7510 { /* Inline model#MClassType#collect_mtypes_cache (self) on <self:MClassType> */
7511 var56
= self
->attrs
[COLOR_model__MClassType___collect_mtypes_cache
].val
; /* _collect_mtypes_cache on <self:MClassType> */
7512 if (unlikely(var56
== NULL
)) {
7513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
7514 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1075);
7518 RET_LABEL55
:(void)0;
7522 hash_collection__HashMap___91d_93d_61d(var54
, var_mmodule
, var_types
); /* Direct call hash_collection#HashMap#[]= on <var54:HashMap[MModule, Set[MClassType]]>*/
7526 /* method model#MClassType#collect_things for (self: Object, MModule) */
7527 void VIRTUAL_model__MClassType__collect_things(val
* self
, val
* p0
) {
7528 model__MClassType__collect_things(self
, p0
); /* Direct call model#MClassType#collect_things on <self:Object(MClassType)>*/
7531 /* method model#MClassType#collect_mclassdefs_cache for (self: MClassType): HashMap[MModule, Set[MClassDef]] */
7532 val
* model__MClassType__collect_mclassdefs_cache(val
* self
) {
7533 val
* var
/* : HashMap[MModule, Set[MClassDef]] */;
7534 val
* var1
/* : HashMap[MModule, Set[MClassDef]] */;
7535 var1
= self
->attrs
[COLOR_model__MClassType___collect_mclassdefs_cache
].val
; /* _collect_mclassdefs_cache on <self:MClassType> */
7536 if (unlikely(var1
== NULL
)) {
7537 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
7538 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1073);
7545 /* method model#MClassType#collect_mclassdefs_cache for (self: Object): HashMap[MModule, Set[MClassDef]] */
7546 val
* VIRTUAL_model__MClassType__collect_mclassdefs_cache(val
* self
) {
7547 val
* var
/* : HashMap[MModule, Set[MClassDef]] */;
7548 val
* var1
/* : HashMap[MModule, Set[MClassDef]] */;
7549 val
* var3
/* : HashMap[MModule, Set[MClassDef]] */;
7550 { /* Inline model#MClassType#collect_mclassdefs_cache (self) on <self:Object(MClassType)> */
7551 var3
= self
->attrs
[COLOR_model__MClassType___collect_mclassdefs_cache
].val
; /* _collect_mclassdefs_cache on <self:Object(MClassType)> */
7552 if (unlikely(var3
== NULL
)) {
7553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
7554 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1073);
7564 /* method model#MClassType#collect_mclasses_cache for (self: MClassType): HashMap[MModule, Set[MClass]] */
7565 val
* model__MClassType__collect_mclasses_cache(val
* self
) {
7566 val
* var
/* : HashMap[MModule, Set[MClass]] */;
7567 val
* var1
/* : HashMap[MModule, Set[MClass]] */;
7568 var1
= self
->attrs
[COLOR_model__MClassType___collect_mclasses_cache
].val
; /* _collect_mclasses_cache on <self:MClassType> */
7569 if (unlikely(var1
== NULL
)) {
7570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
7571 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1074);
7578 /* method model#MClassType#collect_mclasses_cache for (self: Object): HashMap[MModule, Set[MClass]] */
7579 val
* VIRTUAL_model__MClassType__collect_mclasses_cache(val
* self
) {
7580 val
* var
/* : HashMap[MModule, Set[MClass]] */;
7581 val
* var1
/* : HashMap[MModule, Set[MClass]] */;
7582 val
* var3
/* : HashMap[MModule, Set[MClass]] */;
7583 { /* Inline model#MClassType#collect_mclasses_cache (self) on <self:Object(MClassType)> */
7584 var3
= self
->attrs
[COLOR_model__MClassType___collect_mclasses_cache
].val
; /* _collect_mclasses_cache on <self:Object(MClassType)> */
7585 if (unlikely(var3
== NULL
)) {
7586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
7587 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1074);
7597 /* method model#MClassType#collect_mtypes_cache for (self: MClassType): HashMap[MModule, Set[MClassType]] */
7598 val
* model__MClassType__collect_mtypes_cache(val
* self
) {
7599 val
* var
/* : HashMap[MModule, Set[MClassType]] */;
7600 val
* var1
/* : HashMap[MModule, Set[MClassType]] */;
7601 var1
= self
->attrs
[COLOR_model__MClassType___collect_mtypes_cache
].val
; /* _collect_mtypes_cache on <self:MClassType> */
7602 if (unlikely(var1
== NULL
)) {
7603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
7604 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1075);
7611 /* method model#MClassType#collect_mtypes_cache for (self: Object): HashMap[MModule, Set[MClassType]] */
7612 val
* VIRTUAL_model__MClassType__collect_mtypes_cache(val
* self
) {
7613 val
* var
/* : HashMap[MModule, Set[MClassType]] */;
7614 val
* var1
/* : HashMap[MModule, Set[MClassType]] */;
7615 val
* var3
/* : HashMap[MModule, Set[MClassType]] */;
7616 { /* Inline model#MClassType#collect_mtypes_cache (self) on <self:Object(MClassType)> */
7617 var3
= self
->attrs
[COLOR_model__MClassType___collect_mtypes_cache
].val
; /* _collect_mtypes_cache on <self:Object(MClassType)> */
7618 if (unlikely(var3
== NULL
)) {
7619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
7620 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1075);
7630 /* method model#MGenericType#init for (self: MGenericType, MClass, Array[MType]) */
7631 void model__MGenericType__init(val
* self
, val
* p0
, val
* p1
) {
7632 val
* var_mclass
/* var mclass: MClass */;
7633 val
* var_arguments
/* var arguments: Array[MType] */;
7634 val
* var
/* : MClass */;
7635 val
* var2
/* : MClass */;
7636 long var3
/* : Int */;
7637 long var5
/* : Int */;
7638 long var6
/* : Int */;
7639 long var8
/* : Int */;
7640 short int var9
/* : Bool */;
7641 short int var10
/* : Bool */;
7642 short int var12
/* : Bool */;
7643 short int var14
/* : Bool */;
7644 val
* var_
/* var : Array[MType] */;
7645 val
* var16
/* : ArrayIterator[nullable Object] */;
7646 val
* var_17
/* var : ArrayIterator[MType] */;
7647 short int var18
/* : Bool */;
7648 val
* var19
/* : nullable Object */;
7649 val
* var_t
/* var t: MType */;
7650 short int var20
/* : Bool */;
7651 short int var21
/* : Bool */;
7652 static val
* varonce
;
7653 val
* var24
/* : String */;
7654 char* var25
/* : NativeString */;
7655 long var26
/* : Int */;
7656 val
* var27
/* : FlatString */;
7657 static val
* varonce28
;
7658 val
* var29
/* : String */;
7659 char* var30
/* : NativeString */;
7660 long var31
/* : Int */;
7661 val
* var32
/* : FlatString */;
7662 val
* var33
/* : String */;
7663 static val
* varonce34
;
7664 val
* var35
/* : String */;
7665 char* var36
/* : NativeString */;
7666 long var37
/* : Int */;
7667 val
* var38
/* : FlatString */;
7668 val
* var39
/* : Array[Object] */;
7669 long var40
/* : Int */;
7670 val
* var41
/* : NativeArray[Object] */;
7671 val
* var42
/* : String */;
7675 model__MClassType__init(self
, var_mclass
); /* Direct call model#MClassType#init on <self:MGenericType>*/
7678 { /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
7679 var2
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MGenericType> */
7680 if (unlikely(var2
== NULL
)) {
7681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7682 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
7690 { /* Inline model#MClass#arity (var) on <var:MClass> */
7691 var5
= var
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var:MClass> */
7697 { /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[MType]> */
7698 var8
= var_arguments
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_arguments:Array[MType]> */
7704 { /* Inline kernel#Int#== (var3,var6) on <var3:Int> */
7705 var12
= var3
== var6
;
7708 RET_LABEL11
:(void)0;
7712 if (unlikely(!var9
)) {
7713 PRINT_ERROR("Runtime error: %s", "Assert failed");
7714 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1087);
7718 { /* Inline model#MClassType#arguments= (self,var_arguments) on <self:MGenericType> */
7719 self
->attrs
[COLOR_model__MClassType___arguments
].val
= var_arguments
; /* _arguments on <self:MGenericType> */
7720 RET_LABEL13
:(void)0;
7725 { /* Inline model#MGenericType#need_anchor= (self,var14) on <self:MGenericType> */
7726 self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
= var14
; /* _need_anchor on <self:MGenericType> */
7727 RET_LABEL15
:(void)0;
7730 var_
= var_arguments
;
7732 var16
= array__AbstractArrayRead__iterator(var_
);
7737 var18
= array__ArrayIterator__is_ok(var_17
);
7741 var19
= array__ArrayIterator__item(var_17
);
7745 var20
= ((short int (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__need_anchor
]))(var_t
) /* need_anchor on <var_t:MType>*/;
7750 { /* Inline model#MGenericType#need_anchor= (self,var21) on <self:MGenericType> */
7751 self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
= var21
; /* _need_anchor on <self:MGenericType> */
7752 RET_LABEL22
:(void)0;
7759 array__ArrayIterator__next(var_17
); /* Direct call array#ArrayIterator#next on <var_17:ArrayIterator[MType]>*/
7765 BREAK_label
: (void)0;
7767 { /* Inline abstract_collection#Iterator#finish (var_17) on <var_17:ArrayIterator[MType]> */
7768 RET_LABEL23
:(void)0;
7776 var27
= string__NativeString__to_s_with_length(var25
, var26
);
7785 var32
= string__NativeString__to_s_with_length(var30
, var31
);
7790 var33
= string__Collection__join(var_arguments
, var29
);
7797 var38
= string__NativeString__to_s_with_length(var36
, var37
);
7801 var39
= NEW_array__Array(&type_array__Arraykernel__Object
);
7802 { /* var39 = array_instance Array[Object] */
7804 var41
= NEW_array__NativeArray(var40
, &type_array__NativeArraykernel__Object
);
7805 ((struct instance_array__NativeArray
*)var41
)->values
[0] = (val
*) var_mclass
;
7806 ((struct instance_array__NativeArray
*)var41
)->values
[1] = (val
*) var24
;
7807 ((struct instance_array__NativeArray
*)var41
)->values
[2] = (val
*) var33
;
7808 ((struct instance_array__NativeArray
*)var41
)->values
[3] = (val
*) var35
;
7810 ((void (*)(val
*, val
*, long))(var39
->class->vft
[COLOR_array__Array__with_native
]))(var39
, var41
, var40
) /* with_native on <var39:Array[Object]>*/;
7814 var42
= ((val
* (*)(val
*))(var39
->class->vft
[COLOR_string__Object__to_s
]))(var39
) /* to_s on <var39:Array[Object]>*/;
7817 { /* Inline model#MGenericType#to_s= (self,var42) on <self:MGenericType> */
7818 self
->attrs
[COLOR_model__MGenericType___to_s
].val
= var42
; /* _to_s on <self:MGenericType> */
7819 RET_LABEL43
:(void)0;
7824 /* method model#MGenericType#init for (self: Object, MClass, Array[MType]) */
7825 void VIRTUAL_model__MGenericType__init(val
* self
, val
* p0
, val
* p1
) {
7826 model__MGenericType__init(self
, p0
, p1
); /* Direct call model#MGenericType#init on <self:Object(MGenericType)>*/
7829 /* method model#MGenericType#to_s for (self: MGenericType): String */
7830 val
* model__MGenericType__to_s(val
* self
) {
7831 val
* var
/* : String */;
7832 val
* var1
/* : String */;
7833 var1
= self
->attrs
[COLOR_model__MGenericType___to_s
].val
; /* _to_s on <self:MGenericType> */
7834 if (unlikely(var1
== NULL
)) {
7835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
7836 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1101);
7843 /* method model#MGenericType#to_s for (self: Object): String */
7844 val
* VIRTUAL_model__MGenericType__to_s(val
* self
) {
7845 val
* var
/* : String */;
7846 val
* var1
/* : String */;
7847 val
* var3
/* : String */;
7848 { /* Inline model#MGenericType#to_s (self) on <self:Object(MGenericType)> */
7849 var3
= self
->attrs
[COLOR_model__MGenericType___to_s
].val
; /* _to_s on <self:Object(MGenericType)> */
7850 if (unlikely(var3
== NULL
)) {
7851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
7852 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1101);
7862 /* method model#MGenericType#to_s= for (self: MGenericType, String) */
7863 void model__MGenericType__to_s_61d(val
* self
, val
* p0
) {
7864 self
->attrs
[COLOR_model__MGenericType___to_s
].val
= p0
; /* _to_s on <self:MGenericType> */
7867 /* method model#MGenericType#to_s= for (self: Object, String) */
7868 void VIRTUAL_model__MGenericType__to_s_61d(val
* self
, val
* p0
) {
7869 { /* Inline model#MGenericType#to_s= (self,p0) on <self:Object(MGenericType)> */
7870 self
->attrs
[COLOR_model__MGenericType___to_s
].val
= p0
; /* _to_s on <self:Object(MGenericType)> */
7875 /* method model#MGenericType#need_anchor for (self: MGenericType): Bool */
7876 short int model__MGenericType__need_anchor(val
* self
) {
7877 short int var
/* : Bool */;
7878 short int var1
/* : Bool */;
7879 var1
= self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <self:MGenericType> */
7884 /* method model#MGenericType#need_anchor for (self: Object): Bool */
7885 short int VIRTUAL_model__MGenericType__need_anchor(val
* self
) {
7886 short int var
/* : Bool */;
7887 short int var1
/* : Bool */;
7888 short int var3
/* : Bool */;
7889 { /* Inline model#MGenericType#need_anchor (self) on <self:Object(MGenericType)> */
7890 var3
= self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <self:Object(MGenericType)> */
7898 /* method model#MGenericType#need_anchor= for (self: MGenericType, Bool) */
7899 void model__MGenericType__need_anchor_61d(val
* self
, short int p0
) {
7900 self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
= p0
; /* _need_anchor on <self:MGenericType> */
7903 /* method model#MGenericType#need_anchor= for (self: Object, Bool) */
7904 void VIRTUAL_model__MGenericType__need_anchor_61d(val
* self
, short int p0
) {
7905 { /* Inline model#MGenericType#need_anchor= (self,p0) on <self:Object(MGenericType)> */
7906 self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
= p0
; /* _need_anchor on <self:Object(MGenericType)> */
7911 /* method model#MGenericType#resolve_for for (self: MGenericType, MType, nullable MClassType, MModule, Bool): MType */
7912 val
* model__MGenericType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7913 val
* var
/* : MType */;
7914 val
* var_mtype
/* var mtype: MType */;
7915 val
* var_anchor
/* var anchor: nullable MClassType */;
7916 val
* var_mmodule
/* var mmodule: MModule */;
7917 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
7918 short int var1
/* : Bool */;
7919 short int var3
/* : Bool */;
7920 short int var4
/* : Bool */;
7921 short int var5
/* : Bool */;
7922 val
* var6
/* : Array[MType] */;
7923 val
* var_types
/* var types: Array[MType] */;
7924 val
* var7
/* : Array[MType] */;
7925 val
* var9
/* : Array[MType] */;
7926 val
* var_
/* var : Array[MType] */;
7927 val
* var10
/* : ArrayIterator[nullable Object] */;
7928 val
* var_11
/* var : ArrayIterator[MType] */;
7929 short int var12
/* : Bool */;
7930 val
* var13
/* : nullable Object */;
7931 val
* var_t
/* var t: MType */;
7932 val
* var14
/* : MType */;
7933 val
* var16
/* : MClass */;
7934 val
* var18
/* : MClass */;
7935 val
* var19
/* : MClassType */;
7939 var_cleanup_virtual
= p3
;
7941 { /* Inline model#MGenericType#need_anchor (self) on <self:MGenericType> */
7942 var3
= self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <self:MGenericType> */
7954 var5
= model__MGenericType__can_resolve_for(self
, var_mtype
, var_anchor
, var_mmodule
);
7956 if (unlikely(!var5
)) {
7957 PRINT_ERROR("Runtime error: %s", "Assert failed");
7958 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1110);
7961 var6
= NEW_array__Array(&type_array__Arraymodel__MType
);
7963 ((void (*)(val
*))(var6
->class->vft
[COLOR_kernel__Object__init
]))(var6
) /* init on <var6:Array[MType]>*/;
7967 { /* Inline model#MClassType#arguments (self) on <self:MGenericType> */
7968 var9
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:MGenericType> */
7969 if (unlikely(var9
== NULL
)) {
7970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
7971 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
7980 var10
= array__AbstractArrayRead__iterator(var_
);
7985 var12
= array__ArrayIterator__is_ok(var_11
);
7989 var13
= array__ArrayIterator__item(var_11
);
7993 var14
= ((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>*/;
7996 array__Array__add(var_types
, var14
); /* Direct call array#Array#add on <var_types:Array[MType]>*/
7999 array__ArrayIterator__next(var_11
); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[MType]>*/
8005 BREAK_label
: (void)0;
8007 { /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[MType]> */
8008 RET_LABEL15
:(void)0;
8012 { /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
8013 var18
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MGenericType> */
8014 if (unlikely(var18
== NULL
)) {
8015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8016 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
8020 RET_LABEL17
:(void)0;
8024 var19
= model__MClass__get_mtype(var16
, var_types
);
8031 /* method model#MGenericType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
8032 val
* VIRTUAL_model__MGenericType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
8033 val
* var
/* : MType */;
8034 val
* var1
/* : MType */;
8035 var1
= model__MGenericType__resolve_for(self
, p0
, p1
, p2
, p3
);
8040 /* method model#MGenericType#can_resolve_for for (self: MGenericType, MType, nullable MClassType, MModule): Bool */
8041 short int model__MGenericType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8042 short int var
/* : Bool */;
8043 val
* var_mtype
/* var mtype: MType */;
8044 val
* var_anchor
/* var anchor: nullable MClassType */;
8045 val
* var_mmodule
/* var mmodule: MModule */;
8046 short int var1
/* : Bool */;
8047 short int var3
/* : Bool */;
8048 short int var4
/* : Bool */;
8049 short int var5
/* : Bool */;
8050 val
* var6
/* : Array[MType] */;
8051 val
* var8
/* : Array[MType] */;
8052 val
* var_
/* var : Array[MType] */;
8053 val
* var9
/* : ArrayIterator[nullable Object] */;
8054 val
* var_10
/* var : ArrayIterator[MType] */;
8055 short int var11
/* : Bool */;
8056 val
* var12
/* : nullable Object */;
8057 val
* var_t
/* var t: MType */;
8058 short int var13
/* : Bool */;
8059 short int var14
/* : Bool */;
8060 short int var15
/* : Bool */;
8061 short int var17
/* : Bool */;
8066 { /* Inline model#MGenericType#need_anchor (self) on <self:MGenericType> */
8067 var3
= self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <self:MGenericType> */
8080 { /* Inline model#MClassType#arguments (self) on <self:MGenericType> */
8081 var8
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:MGenericType> */
8082 if (unlikely(var8
== NULL
)) {
8083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
8084 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
8093 var9
= array__AbstractArrayRead__iterator(var_
);
8098 var11
= array__ArrayIterator__is_ok(var_10
);
8102 var12
= array__ArrayIterator__item(var_10
);
8106 var13
= ((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>*/;
8116 array__ArrayIterator__next(var_10
); /* Direct call array#ArrayIterator#next on <var_10:ArrayIterator[MType]>*/
8122 BREAK_label
: (void)0;
8124 { /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:ArrayIterator[MType]> */
8125 RET_LABEL16
:(void)0;
8134 /* method model#MGenericType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
8135 short int VIRTUAL_model__MGenericType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8136 short int var
/* : Bool */;
8137 short int var1
/* : Bool */;
8138 var1
= model__MGenericType__can_resolve_for(self
, p0
, p1
, p2
);
8143 /* method model#MGenericType#length for (self: MGenericType): Int */
8144 long model__MGenericType__length(val
* self
) {
8145 long var
/* : Int */;
8146 long var1
/* : Int */;
8147 long var_res
/* var res: Int */;
8148 val
* var2
/* : Array[MType] */;
8149 val
* var4
/* : Array[MType] */;
8150 val
* var_
/* var : Array[MType] */;
8151 val
* var5
/* : ArrayIterator[nullable Object] */;
8152 val
* var_6
/* var : ArrayIterator[MType] */;
8153 short int var7
/* : Bool */;
8154 val
* var8
/* : nullable Object */;
8155 val
* var_a
/* var a: MType */;
8156 long var9
/* : Int */;
8157 long var10
/* : Int */;
8158 short int var12
/* : Bool */;
8161 const char* var_class_name
;
8162 long var13
/* : Int */;
8166 { /* Inline model#MClassType#arguments (self) on <self:MGenericType> */
8167 var4
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:MGenericType> */
8168 if (unlikely(var4
== NULL
)) {
8169 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
8170 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
8179 var5
= array__AbstractArrayRead__iterator(var_
);
8184 var7
= array__ArrayIterator__is_ok(var_6
);
8188 var8
= array__ArrayIterator__item(var_6
);
8192 var9
= ((long (*)(val
*))(var_a
->class->vft
[COLOR_model__MType__length
]))(var_a
) /* length on <var_a:MType>*/;
8195 { /* Inline kernel#Int#+ (var_res,var9) on <var_res:Int> */
8196 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
8197 /* <var9:Int> isa OTHER */
8198 var12
= 1; /* easy <var9:Int> isa OTHER*/
8199 if (unlikely(!var12
)) {
8200 var_class_name
= type_kernel__Int
.name
;
8201 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
8202 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
8205 var13
= var_res
+ var9
;
8208 RET_LABEL11
:(void)0;
8213 array__ArrayIterator__next(var_6
); /* Direct call array#ArrayIterator#next on <var_6:ArrayIterator[MType]>*/
8219 BREAK_label
: (void)0;
8221 { /* Inline abstract_collection#Iterator#finish (var_6) on <var_6:ArrayIterator[MType]> */
8222 RET_LABEL14
:(void)0;
8230 /* method model#MGenericType#length for (self: Object): Int */
8231 long VIRTUAL_model__MGenericType__length(val
* self
) {
8232 long var
/* : Int */;
8233 long var1
/* : Int */;
8234 var1
= model__MGenericType__length(self
);
8239 /* method model#MVirtualType#mproperty for (self: MVirtualType): MProperty */
8240 val
* model__MVirtualType__mproperty(val
* self
) {
8241 val
* var
/* : MProperty */;
8242 val
* var1
/* : MProperty */;
8243 var1
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
8244 if (unlikely(var1
== NULL
)) {
8245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8246 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
8253 /* method model#MVirtualType#mproperty for (self: Object): MProperty */
8254 val
* VIRTUAL_model__MVirtualType__mproperty(val
* self
) {
8255 val
* var
/* : MProperty */;
8256 val
* var1
/* : MProperty */;
8257 val
* var3
/* : MProperty */;
8258 { /* Inline model#MVirtualType#mproperty (self) on <self:Object(MVirtualType)> */
8259 var3
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:Object(MVirtualType)> */
8260 if (unlikely(var3
== NULL
)) {
8261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8262 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
8272 /* method model#MVirtualType#mproperty= for (self: MVirtualType, MProperty) */
8273 void model__MVirtualType__mproperty_61d(val
* self
, val
* p0
) {
8274 self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
= p0
; /* _mproperty on <self:MVirtualType> */
8277 /* method model#MVirtualType#mproperty= for (self: Object, MProperty) */
8278 void VIRTUAL_model__MVirtualType__mproperty_61d(val
* self
, val
* p0
) {
8279 { /* Inline model#MVirtualType#mproperty= (self,p0) on <self:Object(MVirtualType)> */
8280 self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
= p0
; /* _mproperty on <self:Object(MVirtualType)> */
8285 /* method model#MVirtualType#model for (self: MVirtualType): Model */
8286 val
* model__MVirtualType__model(val
* self
) {
8287 val
* var
/* : Model */;
8288 val
* var1
/* : MProperty */;
8289 val
* var3
/* : MProperty */;
8290 val
* var4
/* : MClassDef */;
8291 val
* var6
/* : MClassDef */;
8292 val
* var7
/* : MModule */;
8293 val
* var9
/* : MModule */;
8294 val
* var10
/* : Model */;
8295 val
* var12
/* : Model */;
8297 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
8298 var3
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
8299 if (unlikely(var3
== NULL
)) {
8300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8301 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
8309 { /* Inline model#MProperty#intro_mclassdef (var1) on <var1:MProperty> */
8310 var6
= var1
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var1:MProperty> */
8311 if (unlikely(var6
== NULL
)) {
8312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
8313 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
8321 { /* Inline model#MClassDef#mmodule (var4) on <var4:MClassDef> */
8322 var9
= var4
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var4:MClassDef> */
8323 if (unlikely(var9
== NULL
)) {
8324 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8325 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
8333 { /* Inline mmodule#MModule#model (var7) on <var7:MModule> */
8334 var12
= var7
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var7:MModule> */
8335 if (unlikely(var12
== NULL
)) {
8336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
8337 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
8341 RET_LABEL11
:(void)0;
8349 /* method model#MVirtualType#model for (self: Object): Model */
8350 val
* VIRTUAL_model__MVirtualType__model(val
* self
) {
8351 val
* var
/* : Model */;
8352 val
* var1
/* : Model */;
8353 var1
= model__MVirtualType__model(self
);
8358 /* method model#MVirtualType#lookup_bound for (self: MVirtualType, MModule, MType): MType */
8359 val
* model__MVirtualType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
8360 val
* var
/* : MType */;
8361 val
* var_mmodule
/* var mmodule: MModule */;
8362 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
8363 short int var1
/* : Bool */;
8364 short int var2
/* : Bool */;
8365 val
* var3
/* : MProperty */;
8366 val
* var5
/* : MProperty */;
8367 val
* var6
/* : Array[MPropDef] */;
8368 val
* var_props
/* var props: Array[MPropDef] */;
8369 short int var7
/* : Bool */;
8370 long var8
/* : Int */;
8371 long var10
/* : Int */;
8372 long var11
/* : Int */;
8373 short int var12
/* : Bool */;
8374 short int var13
/* : Bool */;
8375 short int var15
/* : Bool */;
8376 val
* var16
/* : nullable Object */;
8377 short int var17
/* : Bool */;
8380 const char* var_class_name
;
8381 val
* var18
/* : nullable MType */;
8382 val
* var20
/* : nullable MType */;
8383 val
* var21
/* : ArraySet[MType] */;
8384 val
* var_types
/* var types: ArraySet[MType] */;
8385 val
* var_
/* var : Array[MPropDef] */;
8386 val
* var22
/* : ArrayIterator[nullable Object] */;
8387 val
* var_23
/* var : ArrayIterator[MPropDef] */;
8388 short int var24
/* : Bool */;
8389 val
* var25
/* : nullable Object */;
8390 val
* var_p
/* var p: MPropDef */;
8391 short int var26
/* : Bool */;
8394 const char* var_class_name29
;
8395 val
* var30
/* : nullable MType */;
8396 val
* var32
/* : nullable MType */;
8397 long var34
/* : Int */;
8398 long var35
/* : Int */;
8399 short int var36
/* : Bool */;
8400 short int var37
/* : Bool */;
8401 short int var39
/* : Bool */;
8402 val
* var40
/* : Object */;
8404 var_resolved_receiver
= p1
;
8406 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
8409 if (unlikely(!var2
)) {
8410 PRINT_ERROR("Runtime error: %s", "Assert failed");
8411 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1166);
8415 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
8416 var5
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
8417 if (unlikely(var5
== NULL
)) {
8418 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8419 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
8427 var6
= model__MProperty__lookup_definitions(var3
, var_mmodule
, var_resolved_receiver
);
8431 var7
= array__AbstractArrayRead__is_empty(var_props
);
8434 PRINT_ERROR("Runtime error: %s", "Aborted");
8435 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1169);
8439 { /* Inline array#AbstractArrayRead#length (var_props) on <var_props:Array[MPropDef]> */
8440 var10
= var_props
->attrs
[COLOR_array__AbstractArrayRead___length
].l
; /* _length on <var_props:Array[MPropDef]> */
8447 { /* Inline kernel#Int#== (var8,var11) on <var8:Int> */
8448 var15
= var8
== var11
;
8451 RET_LABEL14
:(void)0;
8457 var16
= abstract_collection__SequenceRead__first(var_props
);
8459 /* <var16:nullable Object(MPropDef)> isa MVirtualTypeDef */
8460 cltype
= type_model__MVirtualTypeDef
.color
;
8461 idtype
= type_model__MVirtualTypeDef
.id
;
8462 if(cltype
>= var16
->type
->table_size
) {
8465 var17
= var16
->type
->type_table
[cltype
] == idtype
;
8467 if (unlikely(!var17
)) {
8468 var_class_name
= var16
== NULL ?
"null" : var16
->type
->name
;
8469 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
8470 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1171);
8474 { /* Inline model#MVirtualTypeDef#bound (var16) on <var16:MPropDef(MVirtualTypeDef)> */
8475 var20
= var16
->attrs
[COLOR_model__MVirtualTypeDef___bound
].val
; /* _bound on <var16:MPropDef(MVirtualTypeDef)> */
8477 RET_LABEL19
:(void)0;
8480 if (unlikely(var18
== NULL
)) {
8481 PRINT_ERROR("Runtime error: %s", "Cast failed");
8482 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1171);
8490 var21
= NEW_array__ArraySet(&type_array__ArraySetmodel__MType
);
8492 ((void (*)(val
*))(var21
->class->vft
[COLOR_kernel__Object__init
]))(var21
) /* init on <var21:ArraySet[MType]>*/;
8497 var22
= array__AbstractArrayRead__iterator(var_
);
8502 var24
= array__ArrayIterator__is_ok(var_23
);
8506 var25
= array__ArrayIterator__item(var_23
);
8509 /* <var_p:MPropDef> isa MVirtualTypeDef */
8510 cltype27
= type_model__MVirtualTypeDef
.color
;
8511 idtype28
= type_model__MVirtualTypeDef
.id
;
8512 if(cltype27
>= var_p
->type
->table_size
) {
8515 var26
= var_p
->type
->type_table
[cltype27
] == idtype28
;
8517 if (unlikely(!var26
)) {
8518 var_class_name29
= var_p
== NULL ?
"null" : var_p
->type
->name
;
8519 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name29
);
8520 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1175);
8524 { /* Inline model#MVirtualTypeDef#bound (var_p) on <var_p:MPropDef(MVirtualTypeDef)> */
8525 var32
= var_p
->attrs
[COLOR_model__MVirtualTypeDef___bound
].val
; /* _bound on <var_p:MPropDef(MVirtualTypeDef)> */
8527 RET_LABEL31
:(void)0;
8530 if (unlikely(var30
== NULL
)) {
8531 PRINT_ERROR("Runtime error: %s", "Cast failed");
8532 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1175);
8536 array__ArraySet__add(var_types
, var30
); /* Direct call array#ArraySet#add on <var_types:ArraySet[MType]>*/
8539 array__ArrayIterator__next(var_23
); /* Direct call array#ArrayIterator#next on <var_23:ArrayIterator[MPropDef]>*/
8545 BREAK_label
: (void)0;
8547 { /* Inline abstract_collection#Iterator#finish (var_23) on <var_23:ArrayIterator[MPropDef]> */
8548 RET_LABEL33
:(void)0;
8552 var34
= array__ArraySet__length(var_types
);
8556 { /* Inline kernel#Int#== (var34,var35) on <var34:Int> */
8557 var39
= var34
== var35
;
8560 RET_LABEL38
:(void)0;
8566 var40
= array__ArraySet__first(var_types
);
8572 PRINT_ERROR("Runtime error: %s", "Aborted");
8573 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1180);
8578 /* method model#MVirtualType#lookup_bound for (self: Object, MModule, MType): MType */
8579 val
* VIRTUAL_model__MVirtualType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
8580 val
* var
/* : MType */;
8581 val
* var1
/* : MType */;
8582 var1
= model__MVirtualType__lookup_bound(self
, p0
, p1
);
8587 /* method model#MVirtualType#is_fixed for (self: MVirtualType, MModule, MType): Bool */
8588 short int model__MVirtualType__is_fixed(val
* self
, val
* p0
, val
* p1
) {
8589 short int var
/* : Bool */;
8590 val
* var_mmodule
/* var mmodule: MModule */;
8591 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
8592 short int var1
/* : Bool */;
8593 short int var2
/* : Bool */;
8594 val
* var3
/* : MProperty */;
8595 val
* var5
/* : MProperty */;
8596 val
* var6
/* : Array[MPropDef] */;
8597 val
* var_props
/* var props: Array[MPropDef] */;
8598 short int var7
/* : Bool */;
8599 val
* var_
/* var : Array[MPropDef] */;
8600 val
* var8
/* : ArrayIterator[nullable Object] */;
8601 val
* var_9
/* var : ArrayIterator[MPropDef] */;
8602 short int var10
/* : Bool */;
8603 val
* var11
/* : nullable Object */;
8604 val
* var_p
/* var p: MPropDef */;
8605 short int var12
/* : Bool */;
8608 const char* var_class_name
;
8609 short int var13
/* : Bool */;
8610 short int var15
/* : Bool */;
8611 short int var16
/* : Bool */;
8612 short int var18
/* : Bool */;
8614 var_resolved_receiver
= p1
;
8616 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
8619 if (unlikely(!var2
)) {
8620 PRINT_ERROR("Runtime error: %s", "Assert failed");
8621 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1186);
8625 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
8626 var5
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
8627 if (unlikely(var5
== NULL
)) {
8628 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8629 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
8637 var6
= model__MProperty__lookup_definitions(var3
, var_mmodule
, var_resolved_receiver
);
8641 var7
= array__AbstractArrayRead__is_empty(var_props
);
8644 PRINT_ERROR("Runtime error: %s", "Aborted");
8645 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1189);
8651 var8
= array__AbstractArrayRead__iterator(var_
);
8656 var10
= array__ArrayIterator__is_ok(var_9
);
8660 var11
= array__ArrayIterator__item(var_9
);
8663 /* <var_p:MPropDef> isa MVirtualTypeDef */
8664 cltype
= type_model__MVirtualTypeDef
.color
;
8665 idtype
= type_model__MVirtualTypeDef
.id
;
8666 if(cltype
>= var_p
->type
->table_size
) {
8669 var12
= var_p
->type
->type_table
[cltype
] == idtype
;
8671 if (unlikely(!var12
)) {
8672 var_class_name
= var_p
== NULL ?
"null" : var_p
->type
->name
;
8673 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
8674 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1192);
8678 { /* Inline model#MVirtualTypeDef#is_fixed (var_p) on <var_p:MPropDef(MVirtualTypeDef)> */
8679 var15
= var_p
->attrs
[COLOR_model__MVirtualTypeDef___is_fixed
].s
; /* _is_fixed on <var_p:MPropDef(MVirtualTypeDef)> */
8681 RET_LABEL14
:(void)0;
8691 array__ArrayIterator__next(var_9
); /* Direct call array#ArrayIterator#next on <var_9:ArrayIterator[MPropDef]>*/
8697 BREAK_label
: (void)0;
8699 { /* Inline abstract_collection#Iterator#finish (var_9) on <var_9:ArrayIterator[MPropDef]> */
8700 RET_LABEL17
:(void)0;
8709 /* method model#MVirtualType#is_fixed for (self: Object, MModule, MType): Bool */
8710 short int VIRTUAL_model__MVirtualType__is_fixed(val
* self
, val
* p0
, val
* p1
) {
8711 short int var
/* : Bool */;
8712 short int var1
/* : Bool */;
8713 var1
= model__MVirtualType__is_fixed(self
, p0
, p1
);
8718 /* method model#MVirtualType#resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule, Bool): MType */
8719 val
* model__MVirtualType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
8720 val
* var
/* : MType */;
8721 val
* var_mtype
/* var mtype: MType */;
8722 val
* var_anchor
/* var anchor: nullable MClassType */;
8723 val
* var_mmodule
/* var mmodule: MModule */;
8724 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
8725 short int var1
/* : Bool */;
8726 short int var2
/* : Bool */;
8727 val
* var3
/* : null */;
8728 short int var4
/* : Bool */;
8729 short int var5
/* : Bool */;
8730 val
* var_other
/* var other: nullable Object */;
8731 short int var7
/* : Bool */;
8732 short int var8
/* : Bool */;
8733 short int var9
/* : Bool */;
8734 val
* var10
/* : null */;
8735 short int var11
/* : Bool */;
8736 val
* var12
/* : MType */;
8737 val
* var_resolved_reciever
/* var resolved_reciever: nullable Object */;
8738 val
* var13
/* : MType */;
8739 val
* var_verbatim_bound
/* var verbatim_bound: MType */;
8740 val
* var14
/* : MType */;
8741 val
* var_res
/* var res: MType */;
8742 short int var15
/* : Bool */;
8745 val
* var16
/* : MType */;
8746 val
* var18
/* : MType */;
8747 short int var19
/* : Bool */;
8750 const char* var_class_name
;
8751 val
* var22
/* : MClass */;
8752 val
* var24
/* : MClass */;
8753 val
* var25
/* : MClassKind */;
8754 val
* var27
/* : MClassKind */;
8755 val
* var28
/* : MClassKind */;
8756 short int var29
/* : Bool */;
8757 short int var30
/* : Bool */;
8758 val
* var_other32
/* var other: nullable Object */;
8759 short int var33
/* : Bool */;
8760 short int var35
/* : Bool */;
8761 short int var36
/* : Bool */;
8764 short int var39
/* : Bool */;
8765 short int var40
/* : Bool */;
8766 short int var41
/* : Bool */;
8769 short int var_
/* var : Bool */;
8770 val
* var44
/* : MClass */;
8771 val
* var46
/* : MClass */;
8772 val
* var47
/* : MClassKind */;
8773 val
* var49
/* : MClassKind */;
8774 val
* var50
/* : MClassKind */;
8775 short int var51
/* : Bool */;
8776 short int var52
/* : Bool */;
8777 short int var54
/* : Bool */;
8778 short int var56
/* : Bool */;
8782 var_cleanup_virtual
= p3
;
8784 var1
= model__MVirtualType__can_resolve_for(self
, var_mtype
, var_anchor
, var_mmodule
);
8786 if (unlikely(!var1
)) {
8787 PRINT_ERROR("Runtime error: %s", "Assert failed");
8788 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1199);
8792 var2
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
8796 if (var_anchor
== NULL
) {
8797 var4
= 0; /* is null */
8799 var4
= 1; /* arg is null and recv is not */
8802 { /* Inline kernel#Object#!= (var_anchor,var3) on <var_anchor:nullable MClassType> */
8805 var8
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
8815 if (unlikely(!var4
)) {
8816 PRINT_ERROR("Runtime error: %s", "Assert failed");
8817 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1206);
8823 var12
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_mtype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_mtype
, var_anchor
, var10
, var_mmodule
, var11
) /* resolve_for on <var_mtype:MType>*/;
8825 var_resolved_reciever
= var12
;
8827 var_resolved_reciever
= var_mtype
;
8830 var13
= model__MVirtualType__lookup_bound(self
, var_mmodule
, var_resolved_reciever
);
8832 var_verbatim_bound
= var13
;
8834 var14
= ((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>*/;
8837 if (var_cleanup_virtual
){
8842 /* <var_resolved_reciever:nullable Object(MType)> isa MNullableType */
8843 cltype
= type_model__MNullableType
.color
;
8844 idtype
= type_model__MNullableType
.id
;
8845 if(cltype
>= var_resolved_reciever
->type
->table_size
) {
8848 var15
= var_resolved_reciever
->type
->type_table
[cltype
] == idtype
;
8852 { /* Inline model#MNullableType#mtype (var_resolved_reciever) on <var_resolved_reciever:nullable Object(MNullableType)> */
8853 var18
= var_resolved_reciever
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_resolved_reciever:nullable Object(MNullableType)> */
8854 if (unlikely(var18
== NULL
)) {
8855 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8856 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
8860 RET_LABEL17
:(void)0;
8863 var_resolved_reciever
= var16
;
8866 /* <var_resolved_reciever:nullable Object(MType)> isa MClassType */
8867 cltype20
= type_model__MClassType
.color
;
8868 idtype21
= type_model__MClassType
.id
;
8869 if(cltype20
>= var_resolved_reciever
->type
->table_size
) {
8872 var19
= var_resolved_reciever
->type
->type_table
[cltype20
] == idtype21
;
8874 if (unlikely(!var19
)) {
8875 var_class_name
= var_resolved_reciever
== NULL ?
"null" : var_resolved_reciever
->type
->name
;
8876 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
8877 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1222);
8881 { /* Inline model#MClassType#mclass (var_resolved_reciever) on <var_resolved_reciever:MType(MClassType)> */
8882 var24
= var_resolved_reciever
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_resolved_reciever:MType(MClassType)> */
8883 if (unlikely(var24
== NULL
)) {
8884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8885 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
8889 RET_LABEL23
:(void)0;
8893 { /* Inline model#MClass#kind (var22) on <var22:MClass> */
8894 var27
= var22
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var22:MClass> */
8895 if (unlikely(var27
== NULL
)) {
8896 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
8897 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
8901 RET_LABEL26
:(void)0;
8905 var28
= model__Object__enum_kind(self
);
8908 { /* Inline kernel#Object#== (var25,var28) on <var25:MClassKind> */
8909 var_other32
= var28
;
8911 { /* Inline kernel#Object#is_same_instance (var25,var_other32) on <var25:MClassKind> */
8912 var35
= var25
== var_other32
;
8915 RET_LABEL34
:(void)0;
8920 RET_LABEL31
:(void)0;
8929 /* <var_res:MType> isa MVirtualType */
8930 cltype37
= type_model__MVirtualType
.color
;
8931 idtype38
= type_model__MVirtualType
.id
;
8932 if(cltype37
>= var_res
->type
->table_size
) {
8935 var36
= var_res
->type
->type_table
[cltype37
] == idtype38
;
8943 var39
= model__MVirtualType__is_fixed(self
, var_mmodule
, var_resolved_reciever
);
8950 /* <var_res:MType> isa MClassType */
8951 cltype42
= type_model__MClassType
.color
;
8952 idtype43
= type_model__MClassType
.id
;
8953 if(cltype42
>= var_res
->type
->table_size
) {
8956 var41
= var_res
->type
->type_table
[cltype42
] == idtype43
;
8961 { /* Inline model#MClassType#mclass (var_res) on <var_res:MType(MClassType)> */
8962 var46
= var_res
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_res:MType(MClassType)> */
8963 if (unlikely(var46
== NULL
)) {
8964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8965 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
8969 RET_LABEL45
:(void)0;
8973 { /* Inline model#MClass#kind (var44) on <var44:MClass> */
8974 var49
= var44
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var44:MClass> */
8975 if (unlikely(var49
== NULL
)) {
8976 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
8977 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
8981 RET_LABEL48
:(void)0;
8985 var50
= model__Object__enum_kind(self
);
8988 { /* Inline kernel#Object#== (var47,var50) on <var47:MClassKind> */
8989 var_other32
= var50
;
8991 { /* Inline kernel#Object#is_same_instance (var47,var_other32) on <var47:MClassKind> */
8992 var56
= var47
== var_other32
;
8995 RET_LABEL55
:(void)0;
9000 RET_LABEL53
:(void)0;
9018 /* method model#MVirtualType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
9019 val
* VIRTUAL_model__MVirtualType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
9020 val
* var
/* : MType */;
9021 val
* var1
/* : MType */;
9022 var1
= model__MVirtualType__resolve_for(self
, p0
, p1
, p2
, p3
);
9027 /* method model#MVirtualType#can_resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule): Bool */
9028 short int model__MVirtualType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9029 short int var
/* : Bool */;
9030 val
* var_mtype
/* var mtype: MType */;
9031 val
* var_anchor
/* var anchor: nullable MClassType */;
9032 val
* var_mmodule
/* var mmodule: MModule */;
9033 short int var1
/* : Bool */;
9034 val
* var2
/* : null */;
9035 short int var3
/* : Bool */;
9036 short int var4
/* : Bool */;
9037 val
* var_other
/* var other: nullable Object */;
9038 short int var6
/* : Bool */;
9039 short int var7
/* : Bool */;
9040 short int var8
/* : Bool */;
9041 val
* var9
/* : MType */;
9042 val
* var10
/* : MProperty */;
9043 val
* var12
/* : MProperty */;
9044 short int var13
/* : Bool */;
9049 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
9053 if (var_anchor
== NULL
) {
9054 var3
= 0; /* is null */
9056 var3
= 1; /* arg is null and recv is not */
9059 { /* Inline kernel#Object#!= (var_anchor,var2) on <var_anchor:nullable MClassType> */
9062 var7
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
9072 if (unlikely(!var3
)) {
9073 PRINT_ERROR("Runtime error: %s", "Assert failed");
9074 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1239);
9078 var9
= ((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>*/;
9084 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
9085 var12
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
9086 if (unlikely(var12
== NULL
)) {
9087 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
9088 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
9092 RET_LABEL11
:(void)0;
9096 var13
= model__MType__has_mproperty(var_mtype
, var_mmodule
, var10
);
9103 /* method model#MVirtualType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
9104 short int VIRTUAL_model__MVirtualType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9105 short int var
/* : Bool */;
9106 short int var1
/* : Bool */;
9107 var1
= model__MVirtualType__can_resolve_for(self
, p0
, p1
, p2
);
9112 /* method model#MVirtualType#to_s for (self: MVirtualType): String */
9113 val
* model__MVirtualType__to_s(val
* self
) {
9114 val
* var
/* : String */;
9115 val
* var1
/* : MProperty */;
9116 val
* var3
/* : MProperty */;
9117 val
* var4
/* : String */;
9119 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
9120 var3
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
9121 if (unlikely(var3
== NULL
)) {
9122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
9123 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
9131 var4
= model__MProperty__to_s(var1
);
9138 /* method model#MVirtualType#to_s for (self: Object): String */
9139 val
* VIRTUAL_model__MVirtualType__to_s(val
* self
) {
9140 val
* var
/* : String */;
9141 val
* var1
/* : String */;
9142 var1
= model__MVirtualType__to_s(self
);
9147 /* method model#MVirtualType#init for (self: MVirtualType, MProperty) */
9148 void model__MVirtualType__init(val
* self
, val
* p0
) {
9149 val
* var_mproperty
/* var mproperty: MProperty */;
9151 ((void (*)(val
*))(self
->class->vft
[COLOR_kernel__Object__init
]))(self
) /* init on <self:MVirtualType>*/;
9155 { /* Inline model#MVirtualType#mproperty= (self,var_mproperty) on <self:MVirtualType> */
9156 self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
= var_mproperty
; /* _mproperty on <self:MVirtualType> */
9162 /* method model#MVirtualType#init for (self: Object, MProperty) */
9163 void VIRTUAL_model__MVirtualType__init(val
* self
, val
* p0
) {
9164 model__MVirtualType__init(self
, p0
); /* Direct call model#MVirtualType#init on <self:Object(MVirtualType)>*/
9167 /* method model#MParameterType#mclass for (self: MParameterType): MClass */
9168 val
* model__MParameterType__mclass(val
* self
) {
9169 val
* var
/* : MClass */;
9170 val
* var1
/* : MClass */;
9171 var1
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
9172 if (unlikely(var1
== NULL
)) {
9173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9174 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1280);
9181 /* method model#MParameterType#mclass for (self: Object): MClass */
9182 val
* VIRTUAL_model__MParameterType__mclass(val
* self
) {
9183 val
* var
/* : MClass */;
9184 val
* var1
/* : MClass */;
9185 val
* var3
/* : MClass */;
9186 { /* Inline model#MParameterType#mclass (self) on <self:Object(MParameterType)> */
9187 var3
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:Object(MParameterType)> */
9188 if (unlikely(var3
== NULL
)) {
9189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9190 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1280);
9200 /* method model#MParameterType#mclass= for (self: MParameterType, MClass) */
9201 void model__MParameterType__mclass_61d(val
* self
, val
* p0
) {
9202 self
->attrs
[COLOR_model__MParameterType___mclass
].val
= p0
; /* _mclass on <self:MParameterType> */
9205 /* method model#MParameterType#mclass= for (self: Object, MClass) */
9206 void VIRTUAL_model__MParameterType__mclass_61d(val
* self
, val
* p0
) {
9207 { /* Inline model#MParameterType#mclass= (self,p0) on <self:Object(MParameterType)> */
9208 self
->attrs
[COLOR_model__MParameterType___mclass
].val
= p0
; /* _mclass on <self:Object(MParameterType)> */
9213 /* method model#MParameterType#model for (self: MParameterType): Model */
9214 val
* model__MParameterType__model(val
* self
) {
9215 val
* var
/* : Model */;
9216 val
* var1
/* : MClass */;
9217 val
* var3
/* : MClass */;
9218 val
* var4
/* : MModule */;
9219 val
* var6
/* : MModule */;
9220 val
* var7
/* : Model */;
9221 val
* var9
/* : Model */;
9223 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
9224 var3
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
9225 if (unlikely(var3
== NULL
)) {
9226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9227 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1280);
9235 { /* Inline model#MClass#intro_mmodule (var1) on <var1:MClass> */
9236 var6
= var1
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var1:MClass> */
9237 if (unlikely(var6
== NULL
)) {
9238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
9239 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
9247 { /* Inline mmodule#MModule#model (var4) on <var4:MModule> */
9248 var9
= var4
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var4:MModule> */
9249 if (unlikely(var9
== NULL
)) {
9250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
9251 PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
9263 /* method model#MParameterType#model for (self: Object): Model */
9264 val
* VIRTUAL_model__MParameterType__model(val
* self
) {
9265 val
* var
/* : Model */;
9266 val
* var1
/* : Model */;
9267 var1
= model__MParameterType__model(self
);
9272 /* method model#MParameterType#rank for (self: MParameterType): Int */
9273 long model__MParameterType__rank(val
* self
) {
9274 long var
/* : Int */;
9275 long var1
/* : Int */;
9276 var1
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:MParameterType> */
9281 /* method model#MParameterType#rank for (self: Object): Int */
9282 long VIRTUAL_model__MParameterType__rank(val
* self
) {
9283 long var
/* : Int */;
9284 long var1
/* : Int */;
9285 long var3
/* : Int */;
9286 { /* Inline model#MParameterType#rank (self) on <self:Object(MParameterType)> */
9287 var3
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:Object(MParameterType)> */
9295 /* method model#MParameterType#rank= for (self: MParameterType, Int) */
9296 void model__MParameterType__rank_61d(val
* self
, long p0
) {
9297 self
->attrs
[COLOR_model__MParameterType___rank
].l
= p0
; /* _rank on <self:MParameterType> */
9300 /* method model#MParameterType#rank= for (self: Object, Int) */
9301 void VIRTUAL_model__MParameterType__rank_61d(val
* self
, long p0
) {
9302 { /* Inline model#MParameterType#rank= (self,p0) on <self:Object(MParameterType)> */
9303 self
->attrs
[COLOR_model__MParameterType___rank
].l
= p0
; /* _rank on <self:Object(MParameterType)> */
9308 /* method model#MParameterType#name for (self: MParameterType): String */
9309 val
* model__MParameterType__name(val
* self
) {
9310 val
* var
/* : String */;
9311 val
* var1
/* : String */;
9312 var1
= self
->attrs
[COLOR_model__MParameterType___name
].val
; /* _name on <self:MParameterType> */
9313 if (unlikely(var1
== NULL
)) {
9314 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9315 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1289);
9322 /* method model#MParameterType#name for (self: Object): String */
9323 val
* VIRTUAL_model__MParameterType__name(val
* self
) {
9324 val
* var
/* : String */;
9325 val
* var1
/* : String */;
9326 val
* var3
/* : String */;
9327 { /* Inline model#MParameterType#name (self) on <self:Object(MParameterType)> */
9328 var3
= self
->attrs
[COLOR_model__MParameterType___name
].val
; /* _name on <self:Object(MParameterType)> */
9329 if (unlikely(var3
== NULL
)) {
9330 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9331 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1289);
9341 /* method model#MParameterType#name= for (self: MParameterType, String) */
9342 void model__MParameterType__name_61d(val
* self
, val
* p0
) {
9343 self
->attrs
[COLOR_model__MParameterType___name
].val
= p0
; /* _name on <self:MParameterType> */
9346 /* method model#MParameterType#name= for (self: Object, String) */
9347 void VIRTUAL_model__MParameterType__name_61d(val
* self
, val
* p0
) {
9348 { /* Inline model#MParameterType#name= (self,p0) on <self:Object(MParameterType)> */
9349 self
->attrs
[COLOR_model__MParameterType___name
].val
= p0
; /* _name on <self:Object(MParameterType)> */
9354 /* method model#MParameterType#to_s for (self: MParameterType): String */
9355 val
* model__MParameterType__to_s(val
* self
) {
9356 val
* var
/* : String */;
9357 val
* var1
/* : String */;
9358 val
* var3
/* : String */;
9360 { /* Inline model#MParameterType#name (self) on <self:MParameterType> */
9361 var3
= self
->attrs
[COLOR_model__MParameterType___name
].val
; /* _name on <self:MParameterType> */
9362 if (unlikely(var3
== NULL
)) {
9363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9364 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1289);
9376 /* method model#MParameterType#to_s for (self: Object): String */
9377 val
* VIRTUAL_model__MParameterType__to_s(val
* self
) {
9378 val
* var
/* : String */;
9379 val
* var1
/* : String */;
9380 var1
= model__MParameterType__to_s(self
);
9385 /* method model#MParameterType#lookup_bound for (self: MParameterType, MModule, MType): MType */
9386 val
* model__MParameterType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
9387 val
* var
/* : MType */;
9388 val
* var_mmodule
/* var mmodule: MModule */;
9389 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
9390 short int var1
/* : Bool */;
9391 short int var2
/* : Bool */;
9392 val
* var3
/* : MClass */;
9393 val
* var5
/* : MClass */;
9394 val
* var_goalclass
/* var goalclass: MClass */;
9395 val
* var6
/* : Set[MClassType] */;
9396 val
* var_supertypes
/* var supertypes: Set[MClassType] */;
9397 val
* var_
/* var : Set[MClassType] */;
9398 val
* var7
/* : Iterator[nullable Object] */;
9399 val
* var_8
/* var : Iterator[MClassType] */;
9400 short int var9
/* : Bool */;
9401 val
* var10
/* : nullable Object */;
9402 val
* var_t
/* var t: MClassType */;
9403 val
* var11
/* : MClass */;
9404 val
* var13
/* : MClass */;
9405 short int var14
/* : Bool */;
9406 short int var15
/* : Bool */;
9407 val
* var_other
/* var other: nullable Object */;
9408 short int var17
/* : Bool */;
9409 short int var19
/* : Bool */;
9410 val
* var20
/* : Array[MType] */;
9411 val
* var22
/* : Array[MType] */;
9412 long var23
/* : Int */;
9413 long var25
/* : Int */;
9414 val
* var26
/* : nullable Object */;
9415 val
* var_res
/* var res: MType */;
9417 var_resolved_receiver
= p1
;
9419 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
9422 if (unlikely(!var2
)) {
9423 PRINT_ERROR("Runtime error: %s", "Assert failed");
9424 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1297);
9428 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
9429 var5
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
9430 if (unlikely(var5
== NULL
)) {
9431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9432 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1280);
9439 var_goalclass
= var3
;
9441 var6
= ((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>*/;
9443 var_supertypes
= var6
;
9444 var_
= var_supertypes
;
9446 var7
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_
) /* iterator on <var_:Set[MClassType]>*/;
9451 var9
= ((short int (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var_8
) /* is_ok on <var_8:Iterator[MClassType]>*/;
9455 var10
= ((val
* (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var_8
) /* item on <var_8:Iterator[MClassType]>*/;
9459 { /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
9460 var13
= var_t
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_t:MClassType> */
9461 if (unlikely(var13
== NULL
)) {
9462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9463 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
9467 RET_LABEL12
:(void)0;
9471 { /* Inline kernel#Object#== (var11,var_goalclass) on <var11:MClass> */
9472 var_other
= var_goalclass
;
9474 { /* Inline kernel#Object#is_same_instance (var11,var_other) on <var11:MClass> */
9475 var19
= var11
== var_other
;
9478 RET_LABEL18
:(void)0;
9483 RET_LABEL16
:(void)0;
9489 { /* Inline model#MClassType#arguments (var_t) on <var_t:MClassType> */
9490 var22
= var_t
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_t:MClassType> */
9491 if (unlikely(var22
== NULL
)) {
9492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9493 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
9497 RET_LABEL21
:(void)0;
9501 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
9502 var25
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:MParameterType> */
9504 RET_LABEL24
:(void)0;
9508 var26
= array__Array___91d_93d(var20
, var23
);
9516 ((void (*)(val
*))(var_8
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var_8
) /* next on <var_8:Iterator[MClassType]>*/;
9522 BREAK_label
: (void)0;
9524 { /* Inline abstract_collection#Iterator#finish (var_8) on <var_8:Iterator[MClassType]> */
9525 RET_LABEL27
:(void)0;
9528 PRINT_ERROR("Runtime error: %s", "Aborted");
9529 PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1308);
9534 /* method model#MParameterType#lookup_bound for (self: Object, MModule, MType): MType */
9535 val
* VIRTUAL_model__MParameterType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
9536 val
* var
/* : MType */;
9537 val
* var1
/* : MType */;
9538 var1
= model__MParameterType__lookup_bound(self
, p0
, p1
);