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", "src/model/model.nit", 36);
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", "src/model/model.nit", 36);
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", "src/model/model.nit", 39);
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", "src/model/model.nit", 39);
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", "src/model/model.nit", 42);
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", "src/model/model.nit", 42);
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", "src/model/model.nit", 48);
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", "src/model/model.nit", 48);
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", "src/model/model.nit", 59);
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", "src/model/model.nit", 59);
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", "src/model/model.nit", 68);
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", "src/model/model.nit", 68);
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", "src/model/model.nit", 68);
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", "src/model/model.nit", 68);
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", "src/model/model.nit", 86);
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", "src/model/model.nit", 86);
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", "src/model/model.nit", 86);
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", "src/model/model.nit", 86);
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", "src/model/model.nit", 104);
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", "src/model/model.nit", 104);
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", "src/model/model.nit", 138);
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", "src/model/model.nit", 138);
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", "src/model/model.nit", 141);
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", "src/model/model.nit", 141);
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
* var13
/* : POSetElement[MModule] */;
473 val
* var15
/* : POSetElement[MModule] */;
474 val
* var16
/* : Collection[Object] */;
475 val
* var17
/* : Iterator[nullable Object] */;
476 short int var18
/* : Bool */;
477 val
* var19
/* : nullable Object */;
478 val
* var_m
/* var m: MModule */;
479 val
* var20
/* : Array[MClassDef] */;
480 val
* var22
/* : Array[MClassDef] */;
481 val
* var23
/* : ArrayIterator[nullable Object] */;
482 short int var24
/* : Bool */;
483 val
* var25
/* : nullable Object */;
484 val
* var_cd
/* var cd: MClassDef */;
485 val
* var26
/* : MClass */;
486 val
* var28
/* : MClass */;
487 val
* var_c
/* var c: MClass */;
488 val
* var29
/* : POSetElement[Object] */;
489 val
* var30
/* : Array[MClassType] */;
490 val
* var32
/* : Array[MClassType] */;
491 val
* var33
/* : ArrayIterator[nullable Object] */;
492 short int var34
/* : Bool */;
493 val
* var35
/* : nullable Object */;
494 val
* var_s
/* var s: MClassType */;
495 val
* var36
/* : MClass */;
496 val
* var38
/* : MClass */;
498 { /* Inline model#MModule#flatten_mclass_hierarchy_cache (self) on <self:MModule> */
499 var3
= self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
506 if (var_res
== NULL
) {
507 var5
= 0; /* is null */
509 var5
= 1; /* arg is null and recv is not */
512 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable POSet[MClass]> */
515 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])>*/;
530 var11
= NEW_poset__POSet(&type_poset__POSetmodel__MClass
);
532 { /* Inline poset#POSet#init (var11) on <var11:POSet[MClass]> */
538 { /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
539 var15
= self
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <self:MModule> */
540 if (unlikely(var15
== NULL
)) {
541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
542 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
550 var16
= poset__POSetElement__greaters(var13
);
553 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var16
) /* iterator on <var16:Collection[Object](Collection[MModule])>*/;
557 var18
= ((short int (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var17
) /* is_ok on <var17:Iterator[nullable Object]>*/;
561 var19
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var17
) /* item on <var17:Iterator[nullable Object]>*/;
565 { /* Inline model#MModule#mclassdefs (var_m) on <var_m:MModule> */
566 var22
= var_m
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_m:MModule> */
567 if (unlikely(var22
== NULL
)) {
568 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
569 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141);
577 var23
= array__AbstractArrayRead__iterator(var20
);
581 var24
= array__ArrayIterator__is_ok(var23
);
585 var25
= array__ArrayIterator__item(var23
);
589 { /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
590 var28
= var_cd
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_cd:MClassDef> */
591 if (unlikely(var28
== NULL
)) {
592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
593 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
602 var29
= poset__POSet__add_node(var_res
, var_c
);
606 { /* Inline model#MClassDef#supertypes (var_cd) on <var_cd:MClassDef> */
607 var32
= var_cd
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var_cd:MClassDef> */
608 if (unlikely(var32
== NULL
)) {
609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
610 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
618 var33
= array__AbstractArrayRead__iterator(var30
);
622 var34
= array__ArrayIterator__is_ok(var33
);
626 var35
= array__ArrayIterator__item(var33
);
630 { /* Inline model#MClassType#mclass (var_s) on <var_s:MClassType> */
631 var38
= var_s
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_s:MClassType> */
632 if (unlikely(var38
== NULL
)) {
633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
634 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
642 poset__POSet__add_edge(var_res
, var_c
, var36
); /* Direct call poset#POSet#add_edge on <var_res:nullable POSet[MClass](POSet[MClass])>*/
644 CONTINUE_label
: (void)0;
646 array__ArrayIterator__next(var33
); /* Direct call array#ArrayIterator#next on <var33:ArrayIterator[nullable Object]>*/
649 BREAK_label
: (void)0;
650 CONTINUE_label39
: (void)0;
652 array__ArrayIterator__next(var23
); /* Direct call array#ArrayIterator#next on <var23:ArrayIterator[nullable Object]>*/
655 BREAK_label39
: (void)0;
656 CONTINUE_label40
: (void)0;
658 ((void (*)(val
*))(var17
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var17
) /* next on <var17:Iterator[nullable Object]>*/;
661 BREAK_label40
: (void)0;
663 { /* Inline model#MModule#flatten_mclass_hierarchy_cache= (self,var_res) on <self:MModule> */
664 self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
= var_res
; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
673 /* method model#MModule#flatten_mclass_hierarchy for (self: Object): POSet[MClass] */
674 val
* VIRTUAL_model__MModule__flatten_mclass_hierarchy(val
* self
) {
675 val
* var
/* : POSet[MClass] */;
676 val
* var1
/* : POSet[MClass] */;
677 var1
= model__MModule__flatten_mclass_hierarchy(self
);
682 /* method model#MModule#linearize_mclasses for (self: MModule, Array[MClass]) */
683 void model__MModule__linearize_mclasses(val
* self
, val
* p0
) {
684 val
* var_mclasses
/* var mclasses: Array[MClass] */;
685 val
* var
/* : POSet[MClass] */;
688 var
= model__MModule__flatten_mclass_hierarchy(self
);
691 sorter__Comparator__sort(var
, var_mclasses
); /* Direct call sorter#Comparator#sort on <var:POSet[MClass]>*/
695 /* method model#MModule#linearize_mclasses for (self: Object, Array[MClass]) */
696 void VIRTUAL_model__MModule__linearize_mclasses(val
* self
, val
* p0
) {
697 model__MModule__linearize_mclasses(self
, p0
); /* Direct call model#MModule#linearize_mclasses on <self:Object(MModule)>*/
700 /* method model#MModule#linearize_mclassdefs for (self: MModule, Array[MClassDef]) */
701 void model__MModule__linearize_mclassdefs(val
* self
, val
* p0
) {
702 val
* var_mclassdefs
/* var mclassdefs: Array[MClassDef] */;
703 val
* var
/* : MClassDefSorter */;
704 val
* var_sorter
/* var sorter: MClassDefSorter */;
706 var
= NEW_model__MClassDefSorter(&type_model__MClassDefSorter
);
708 { /* Inline model#MClassDefSorter#init (var,self) on <var:MClassDefSorter> */
709 var
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
= self
; /* _mmodule on <var:MClassDefSorter> */
715 sorter__Comparator__sort(var_sorter
, var_mclassdefs
); /* Direct call sorter#Comparator#sort on <var_sorter:MClassDefSorter>*/
719 /* method model#MModule#linearize_mclassdefs for (self: Object, Array[MClassDef]) */
720 void VIRTUAL_model__MModule__linearize_mclassdefs(val
* self
, val
* p0
) {
721 model__MModule__linearize_mclassdefs(self
, p0
); /* Direct call model#MModule#linearize_mclassdefs on <self:Object(MModule)>*/
724 /* method model#MModule#linearize_mpropdefs for (self: MModule, Array[MPropDef]) */
725 void model__MModule__linearize_mpropdefs(val
* self
, val
* p0
) {
726 val
* var_mpropdefs
/* var mpropdefs: Array[MPropDef] */;
727 val
* var
/* : MPropDefSorter */;
728 val
* var_sorter
/* var sorter: MPropDefSorter */;
730 var
= NEW_model__MPropDefSorter(&type_model__MPropDefSorter
);
732 { /* Inline model#MPropDefSorter#init (var,self) on <var:MPropDefSorter> */
733 var
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
= self
; /* _mmodule on <var:MPropDefSorter> */
739 sorter__Comparator__sort(var_sorter
, var_mpropdefs
); /* Direct call sorter#Comparator#sort on <var_sorter:MPropDefSorter>*/
743 /* method model#MModule#linearize_mpropdefs for (self: Object, Array[MPropDef]) */
744 void VIRTUAL_model__MModule__linearize_mpropdefs(val
* self
, val
* p0
) {
745 model__MModule__linearize_mpropdefs(self
, p0
); /* Direct call model#MModule#linearize_mpropdefs on <self:Object(MModule)>*/
748 /* method model#MModule#flatten_mclass_hierarchy_cache for (self: MModule): nullable POSet[MClass] */
749 val
* model__MModule__flatten_mclass_hierarchy_cache(val
* self
) {
750 val
* var
/* : nullable POSet[MClass] */;
751 val
* var1
/* : nullable POSet[MClass] */;
752 var1
= self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
757 /* method model#MModule#flatten_mclass_hierarchy_cache for (self: Object): nullable POSet[MClass] */
758 val
* VIRTUAL_model__MModule__flatten_mclass_hierarchy_cache(val
* self
) {
759 val
* var
/* : nullable POSet[MClass] */;
760 val
* var1
/* : nullable POSet[MClass] */;
761 val
* var3
/* : nullable POSet[MClass] */;
762 { /* Inline model#MModule#flatten_mclass_hierarchy_cache (self) on <self:Object(MModule)> */
763 var3
= self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
; /* _flatten_mclass_hierarchy_cache on <self:Object(MModule)> */
771 /* method model#MModule#flatten_mclass_hierarchy_cache= for (self: MModule, nullable POSet[MClass]) */
772 void model__MModule__flatten_mclass_hierarchy_cache_61d(val
* self
, val
* p0
) {
773 self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
= p0
; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
776 /* method model#MModule#flatten_mclass_hierarchy_cache= for (self: Object, nullable POSet[MClass]) */
777 void VIRTUAL_model__MModule__flatten_mclass_hierarchy_cache_61d(val
* self
, val
* p0
) {
778 { /* Inline model#MModule#flatten_mclass_hierarchy_cache= (self,p0) on <self:Object(MModule)> */
779 self
->attrs
[COLOR_model__MModule___flatten_mclass_hierarchy_cache
].val
= p0
; /* _flatten_mclass_hierarchy_cache on <self:Object(MModule)> */
784 /* method model#MModule#object_type for (self: MModule): MClassType */
785 val
* model__MModule__object_type(val
* self
) {
786 val
* var
/* : MClassType */;
787 val
* var1
/* : nullable MClassType */;
788 val
* var3
/* : nullable MClassType */;
789 val
* var_res
/* var res: nullable MClassType */;
790 val
* var4
/* : null */;
791 short int var5
/* : Bool */;
792 short int var6
/* : Bool */;
793 val
* var_other
/* var other: nullable Object */;
794 short int var8
/* : Bool */;
795 short int var9
/* : Bool */;
796 short int var10
/* : Bool */;
798 val
* var11
/* : String */;
799 char* var12
/* : NativeString */;
800 long var13
/* : Int */;
801 val
* var14
/* : FlatString */;
802 val
* var15
/* : MClass */;
803 val
* var16
/* : MClassType */;
804 val
* var18
/* : MClassType */;
806 { /* Inline model#MModule#object_type_cache (self) on <self:MModule> */
807 var3
= self
->attrs
[COLOR_model__MModule___object_type_cache
].val
; /* _object_type_cache on <self:MModule> */
814 if (var_res
== NULL
) {
815 var5
= 0; /* is null */
817 var5
= 1; /* arg is null and recv is not */
820 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable MClassType> */
823 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable MClassType(MClassType)>*/;
843 var14
= string__NativeString__to_s_with_length(var12
, var13
);
848 var15
= model__MModule__get_primitive_class(self
, var11
);
851 { /* Inline model#MClass#mclass_type (var15) on <var15:MClass> */
852 var18
= var15
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var15:MClass> */
853 if (unlikely(var18
== NULL
)) {
854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
855 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
864 { /* Inline model#MModule#object_type_cache= (self,var_res) on <self:MModule> */
865 self
->attrs
[COLOR_model__MModule___object_type_cache
].val
= var_res
; /* _object_type_cache on <self:MModule> */
874 /* method model#MModule#object_type for (self: Object): MClassType */
875 val
* VIRTUAL_model__MModule__object_type(val
* self
) {
876 val
* var
/* : MClassType */;
877 val
* var1
/* : MClassType */;
878 var1
= model__MModule__object_type(self
);
883 /* method model#MModule#object_type_cache for (self: MModule): nullable MClassType */
884 val
* model__MModule__object_type_cache(val
* self
) {
885 val
* var
/* : nullable MClassType */;
886 val
* var1
/* : nullable MClassType */;
887 var1
= self
->attrs
[COLOR_model__MModule___object_type_cache
].val
; /* _object_type_cache on <self:MModule> */
892 /* method model#MModule#object_type_cache for (self: Object): nullable MClassType */
893 val
* VIRTUAL_model__MModule__object_type_cache(val
* self
) {
894 val
* var
/* : nullable MClassType */;
895 val
* var1
/* : nullable MClassType */;
896 val
* var3
/* : nullable MClassType */;
897 { /* Inline model#MModule#object_type_cache (self) on <self:Object(MModule)> */
898 var3
= self
->attrs
[COLOR_model__MModule___object_type_cache
].val
; /* _object_type_cache on <self:Object(MModule)> */
906 /* method model#MModule#object_type_cache= for (self: MModule, nullable MClassType) */
907 void model__MModule__object_type_cache_61d(val
* self
, val
* p0
) {
908 self
->attrs
[COLOR_model__MModule___object_type_cache
].val
= p0
; /* _object_type_cache on <self:MModule> */
911 /* method model#MModule#object_type_cache= for (self: Object, nullable MClassType) */
912 void VIRTUAL_model__MModule__object_type_cache_61d(val
* self
, val
* p0
) {
913 { /* Inline model#MModule#object_type_cache= (self,p0) on <self:Object(MModule)> */
914 self
->attrs
[COLOR_model__MModule___object_type_cache
].val
= p0
; /* _object_type_cache on <self:Object(MModule)> */
919 /* method model#MModule#bool_type for (self: MModule): MClassType */
920 val
* model__MModule__bool_type(val
* self
) {
921 val
* var
/* : MClassType */;
922 val
* var1
/* : nullable MClassType */;
923 val
* var3
/* : nullable MClassType */;
924 val
* var_res
/* var res: nullable MClassType */;
925 val
* var4
/* : null */;
926 short int var5
/* : Bool */;
927 short int var6
/* : Bool */;
928 val
* var_other
/* var other: nullable Object */;
929 short int var8
/* : Bool */;
930 short int var9
/* : Bool */;
931 short int var10
/* : Bool */;
933 val
* var11
/* : String */;
934 char* var12
/* : NativeString */;
935 long var13
/* : Int */;
936 val
* var14
/* : FlatString */;
937 val
* var15
/* : MClass */;
938 val
* var16
/* : MClassType */;
939 val
* var18
/* : MClassType */;
941 { /* Inline model#MModule#bool_type_cache (self) on <self:MModule> */
942 var3
= self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
; /* _bool_type_cache on <self:MModule> */
949 if (var_res
== NULL
) {
950 var5
= 0; /* is null */
952 var5
= 1; /* arg is null and recv is not */
955 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable MClassType> */
958 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable MClassType(MClassType)>*/;
978 var14
= string__NativeString__to_s_with_length(var12
, var13
);
983 var15
= model__MModule__get_primitive_class(self
, var11
);
986 { /* Inline model#MClass#mclass_type (var15) on <var15:MClass> */
987 var18
= var15
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var15:MClass> */
988 if (unlikely(var18
== NULL
)) {
989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
990 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
999 { /* Inline model#MModule#bool_type_cache= (self,var_res) on <self:MModule> */
1000 self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
= var_res
; /* _bool_type_cache on <self:MModule> */
1001 RET_LABEL19
:(void)0;
1009 /* method model#MModule#bool_type for (self: Object): MClassType */
1010 val
* VIRTUAL_model__MModule__bool_type(val
* self
) {
1011 val
* var
/* : MClassType */;
1012 val
* var1
/* : MClassType */;
1013 var1
= model__MModule__bool_type(self
);
1018 /* method model#MModule#bool_type_cache for (self: MModule): nullable MClassType */
1019 val
* model__MModule__bool_type_cache(val
* self
) {
1020 val
* var
/* : nullable MClassType */;
1021 val
* var1
/* : nullable MClassType */;
1022 var1
= self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
; /* _bool_type_cache on <self:MModule> */
1027 /* method model#MModule#bool_type_cache for (self: Object): nullable MClassType */
1028 val
* VIRTUAL_model__MModule__bool_type_cache(val
* self
) {
1029 val
* var
/* : nullable MClassType */;
1030 val
* var1
/* : nullable MClassType */;
1031 val
* var3
/* : nullable MClassType */;
1032 { /* Inline model#MModule#bool_type_cache (self) on <self:Object(MModule)> */
1033 var3
= self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
; /* _bool_type_cache on <self:Object(MModule)> */
1041 /* method model#MModule#bool_type_cache= for (self: MModule, nullable MClassType) */
1042 void model__MModule__bool_type_cache_61d(val
* self
, val
* p0
) {
1043 self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
= p0
; /* _bool_type_cache on <self:MModule> */
1046 /* method model#MModule#bool_type_cache= for (self: Object, nullable MClassType) */
1047 void VIRTUAL_model__MModule__bool_type_cache_61d(val
* self
, val
* p0
) {
1048 { /* Inline model#MModule#bool_type_cache= (self,p0) on <self:Object(MModule)> */
1049 self
->attrs
[COLOR_model__MModule___bool_type_cache
].val
= p0
; /* _bool_type_cache on <self:Object(MModule)> */
1054 /* method model#MModule#sys_type for (self: MModule): nullable MClassType */
1055 val
* model__MModule__sys_type(val
* self
) {
1056 val
* var
/* : nullable MClassType */;
1057 val
* var1
/* : Model */;
1058 val
* var3
/* : Model */;
1059 static val
* varonce
;
1060 val
* var4
/* : String */;
1061 char* var5
/* : NativeString */;
1062 long var6
/* : Int */;
1063 val
* var7
/* : FlatString */;
1064 val
* var8
/* : nullable Array[MClass] */;
1065 val
* var_clas
/* var clas: nullable Array[MClass] */;
1066 val
* var9
/* : null */;
1067 short int var10
/* : Bool */;
1068 short int var11
/* : Bool */;
1069 val
* var12
/* : null */;
1070 static val
* varonce13
;
1071 val
* var14
/* : String */;
1072 char* var15
/* : NativeString */;
1073 long var16
/* : Int */;
1074 val
* var17
/* : FlatString */;
1075 val
* var18
/* : MClass */;
1076 val
* var19
/* : MClassType */;
1077 val
* var21
/* : MClassType */;
1079 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1080 var3
= self
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <self:MModule> */
1081 if (unlikely(var3
== NULL
)) {
1082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1083 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
1095 var7
= string__NativeString__to_s_with_length(var5
, var6
);
1100 var8
= model__Model__get_mclasses_by_name(var1
, var4
);
1104 if (var_clas
== NULL
) {
1105 var10
= 1; /* is null */
1107 var10
= 0; /* arg is null but recv is not */
1110 var11
= abstract_collection__SequenceRead___61d_61d(var_clas
, var9
);
1124 var17
= string__NativeString__to_s_with_length(var15
, var16
);
1129 var18
= model__MModule__get_primitive_class(self
, var14
);
1132 { /* Inline model#MClass#mclass_type (var18) on <var18:MClass> */
1133 var21
= var18
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var18:MClass> */
1134 if (unlikely(var21
== NULL
)) {
1135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1136 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
1140 RET_LABEL20
:(void)0;
1148 /* method model#MModule#sys_type for (self: Object): nullable MClassType */
1149 val
* VIRTUAL_model__MModule__sys_type(val
* self
) {
1150 val
* var
/* : nullable MClassType */;
1151 val
* var1
/* : nullable MClassType */;
1152 var1
= model__MModule__sys_type(self
);
1157 /* method model#MModule#get_primitive_class for (self: MModule, String): MClass */
1158 val
* model__MModule__get_primitive_class(val
* self
, val
* p0
) {
1159 val
* var
/* : MClass */;
1160 val
* var_name
/* var name: String */;
1161 val
* var1
/* : Model */;
1162 val
* var3
/* : Model */;
1163 val
* var4
/* : nullable Array[MClass] */;
1164 val
* var_cla
/* var cla: nullable Array[MClass] */;
1165 val
* var5
/* : null */;
1166 short int var6
/* : Bool */;
1167 short int var7
/* : Bool */;
1168 static val
* varonce
;
1169 val
* var8
/* : String */;
1170 char* var9
/* : NativeString */;
1171 long var10
/* : Int */;
1172 val
* var11
/* : FlatString */;
1173 short int var12
/* : Bool */;
1174 short int var13
/* : Bool */;
1175 val
* var14
/* : MClass */;
1176 long var15
/* : Int */;
1177 val
* var16
/* : MClassKind */;
1178 val
* var17
/* : MVisibility */;
1179 val
* var_c
/* var c: MClass */;
1180 val
* var18
/* : MClassDef */;
1181 val
* var19
/* : MClassType */;
1182 val
* var21
/* : MClassType */;
1183 val
* var22
/* : Location */;
1184 val
* var23
/* : null */;
1185 long var24
/* : Int */;
1186 long var25
/* : Int */;
1187 long var26
/* : Int */;
1188 long var27
/* : Int */;
1189 val
* var28
/* : Array[String] */;
1190 val
* var_cladef
/* var cladef: MClassDef */;
1191 static val
* varonce29
;
1192 val
* var30
/* : String */;
1193 char* var31
/* : NativeString */;
1194 long var32
/* : Int */;
1195 val
* var33
/* : FlatString */;
1196 val
* var34
/* : Array[Object] */;
1197 long var35
/* : Int */;
1198 val
* var36
/* : NativeArray[Object] */;
1199 val
* var37
/* : String */;
1200 long var38
/* : Int */;
1201 long var40
/* : Int */;
1202 long var41
/* : Int */;
1203 short int var42
/* : Bool */;
1204 short int var43
/* : Bool */;
1205 short int var45
/* : Bool */;
1206 short int var46
/* : Bool */;
1207 static val
* varonce47
;
1208 val
* var48
/* : String */;
1209 char* var49
/* : NativeString */;
1210 long var50
/* : Int */;
1211 val
* var51
/* : FlatString */;
1212 static val
* varonce52
;
1213 val
* var53
/* : String */;
1214 char* var54
/* : NativeString */;
1215 long var55
/* : Int */;
1216 val
* var56
/* : FlatString */;
1217 val
* var57
/* : Array[Object] */;
1218 long var58
/* : Int */;
1219 val
* var59
/* : NativeArray[Object] */;
1220 val
* var60
/* : String */;
1221 val
* var_msg
/* var msg: String */;
1222 val
* var61
/* : ArrayIterator[nullable Object] */;
1223 short int var62
/* : Bool */;
1224 val
* var63
/* : nullable Object */;
1225 val
* var_c64
/* var c: MClass */;
1226 static val
* varonce65
;
1227 val
* var66
/* : String */;
1228 char* var67
/* : NativeString */;
1229 long var68
/* : Int */;
1230 val
* var69
/* : FlatString */;
1231 val
* var70
/* : String */;
1232 val
* var71
/* : Array[Object] */;
1233 long var72
/* : Int */;
1234 val
* var73
/* : NativeArray[Object] */;
1235 val
* var74
/* : String */;
1236 val
* var75
/* : String */;
1237 long var76
/* : Int */;
1238 val
* var78
/* : nullable Object */;
1241 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1242 var3
= self
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <self:MModule> */
1243 if (unlikely(var3
== NULL
)) {
1244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1245 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
1253 var4
= model__Model__get_mclasses_by_name(var1
, var_name
);
1257 if (var_cla
== NULL
) {
1258 var6
= 1; /* is null */
1260 var6
= 0; /* arg is null but recv is not */
1263 var7
= abstract_collection__SequenceRead___61d_61d(var_cla
, var5
);
1272 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1277 var13
= string__FlatString___61d_61d(var_name
, var8
);
1281 var14
= NEW_model__MClass(&type_model__MClass
);
1284 var16
= model__Object__enum_kind(self
);
1287 var17
= model_base__Object__public_visibility(self
);
1290 model__MClass__init(var14
, self
, var_name
, var15
, var16
, var17
); /* Direct call model#MClass#init on <var14:MClass>*/
1293 var18
= NEW_model__MClassDef(&type_model__MClassDef
);
1295 { /* Inline model#MClass#mclass_type (var_c) on <var_c:MClass> */
1296 var21
= var_c
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_c:MClass> */
1297 if (unlikely(var21
== NULL
)) {
1298 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1299 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
1303 RET_LABEL20
:(void)0;
1306 var22
= NEW_location__Location(&type_location__Location
);
1313 location__Location__init(var22
, var23
, var24
, var25
, var26
, var27
); /* Direct call location#Location#init on <var22:Location>*/
1315 var28
= NEW_array__Array(&type_array__Arraystring__String
);
1317 array__Array__init(var28
); /* Direct call array#Array#init on <var28:Array[String]>*/
1320 model__MClassDef__init(var18
, self
, var19
, var22
, var28
); /* Direct call model#MClassDef#init on <var18:MClassDef>*/
1330 var31
= "Fatal Error: no primitive class ";
1332 var33
= string__NativeString__to_s_with_length(var31
, var32
);
1336 var34
= NEW_array__Array(&type_array__Arraykernel__Object
);
1337 { /* var34 = array_instance Array[Object] */
1339 var36
= NEW_array__NativeArray(var35
, &type_array__NativeArraykernel__Object
);
1340 ((struct instance_array__NativeArray
*)var36
)->values
[0] = (val
*) var30
;
1341 ((struct instance_array__NativeArray
*)var36
)->values
[1] = (val
*) var_name
;
1343 ((void (*)(val
*, val
*, long))(var34
->class->vft
[COLOR_array__Array__with_native
]))(var34
, var36
, var35
) /* with_native on <var34:Array[Object]>*/;
1347 var37
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_string__Object__to_s
]))(var34
) /* to_s on <var34:Array[Object]>*/;
1350 file__Object__print(self
, var37
); /* Direct call file#Object#print on <self:MModule>*/
1354 { /* Inline kernel#Object#exit (self,var38) on <self:MModule> */
1356 RET_LABEL39
:(void)0;
1361 if (var_cla
== NULL
) {
1362 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1363 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 252);
1366 var40
= array__AbstractArrayRead__length(var_cla
);
1370 { /* Inline kernel#Int#!= (var40,var41) on <var40:Int> */
1371 var45
= var40
== var41
;
1375 RET_LABEL44
:(void)0;
1383 var49
= "Fatal Error: more than one primitive class ";
1385 var51
= string__NativeString__to_s_with_length(var49
, var50
);
1394 var56
= string__NativeString__to_s_with_length(var54
, var55
);
1398 var57
= NEW_array__Array(&type_array__Arraykernel__Object
);
1399 { /* var57 = array_instance Array[Object] */
1401 var59
= NEW_array__NativeArray(var58
, &type_array__NativeArraykernel__Object
);
1402 ((struct instance_array__NativeArray
*)var59
)->values
[0] = (val
*) var48
;
1403 ((struct instance_array__NativeArray
*)var59
)->values
[1] = (val
*) var_name
;
1404 ((struct instance_array__NativeArray
*)var59
)->values
[2] = (val
*) var53
;
1406 ((void (*)(val
*, val
*, long))(var57
->class->vft
[COLOR_array__Array__with_native
]))(var57
, var59
, var58
) /* with_native on <var57:Array[Object]>*/;
1410 var60
= ((val
* (*)(val
*))(var57
->class->vft
[COLOR_string__Object__to_s
]))(var57
) /* to_s on <var57:Array[Object]>*/;
1413 if (var_cla
== NULL
) {
1414 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1415 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 254);
1418 var61
= array__AbstractArrayRead__iterator(var_cla
);
1422 var62
= array__ArrayIterator__is_ok(var61
);
1426 var63
= array__ArrayIterator__item(var61
);
1434 var69
= string__NativeString__to_s_with_length(var67
, var68
);
1439 var70
= model__MClass__full_name(var_c64
);
1441 var71
= NEW_array__Array(&type_array__Arraykernel__Object
);
1442 { /* var71 = array_instance Array[Object] */
1444 var73
= NEW_array__NativeArray(var72
, &type_array__NativeArraykernel__Object
);
1445 ((struct instance_array__NativeArray
*)var73
)->values
[0] = (val
*) var66
;
1446 ((struct instance_array__NativeArray
*)var73
)->values
[1] = (val
*) var70
;
1448 ((void (*)(val
*, val
*, long))(var71
->class->vft
[COLOR_array__Array__with_native
]))(var71
, var73
, var72
) /* with_native on <var71:Array[Object]>*/;
1452 var74
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_string__Object__to_s
]))(var71
) /* to_s on <var71:Array[Object]>*/;
1455 var75
= string__FlatString___43d(var_msg
, var74
);
1458 CONTINUE_label
: (void)0;
1460 array__ArrayIterator__next(var61
); /* Direct call array#ArrayIterator#next on <var61:ArrayIterator[nullable Object]>*/
1463 BREAK_label
: (void)0;
1465 file__Object__print(self
, var_msg
); /* Direct call file#Object#print on <self:MModule>*/
1469 { /* Inline kernel#Object#exit (self,var76) on <self:MModule> */
1471 RET_LABEL77
:(void)0;
1476 if (var_cla
== NULL
) {
1477 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1478 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 258);
1481 var78
= abstract_collection__SequenceRead__first(var_cla
);
1488 /* method model#MModule#get_primitive_class for (self: Object, String): MClass */
1489 val
* VIRTUAL_model__MModule__get_primitive_class(val
* self
, val
* p0
) {
1490 val
* var
/* : MClass */;
1491 val
* var1
/* : MClass */;
1492 var1
= model__MModule__get_primitive_class(self
, p0
);
1497 /* method model#MModule#try_get_primitive_method for (self: MModule, String, MClass): nullable MMethod */
1498 val
* model__MModule__try_get_primitive_method(val
* self
, val
* p0
, val
* p1
) {
1499 val
* var
/* : nullable MMethod */;
1500 val
* var_name
/* var name: String */;
1501 val
* var_recv
/* var recv: MClass */;
1502 val
* var1
/* : Model */;
1503 val
* var3
/* : Model */;
1504 val
* var4
/* : nullable Array[MProperty] */;
1505 val
* var_props
/* var props: nullable Array[MProperty] */;
1506 val
* var5
/* : null */;
1507 short int var6
/* : Bool */;
1508 short int var7
/* : Bool */;
1509 val
* var8
/* : null */;
1510 val
* var9
/* : null */;
1511 val
* var_res
/* var res: nullable MMethod */;
1512 val
* var10
/* : ArrayIterator[nullable Object] */;
1513 short int var11
/* : Bool */;
1514 val
* var12
/* : nullable Object */;
1515 val
* var_mprop
/* var mprop: MProperty */;
1516 short int var13
/* : Bool */;
1519 val
* var14
/* : MClassDef */;
1520 val
* var16
/* : MClassDef */;
1521 val
* var_intro
/* var intro: MClassDef */;
1522 val
* var17
/* : Array[MClassDef] */;
1523 val
* var19
/* : Array[MClassDef] */;
1524 val
* var20
/* : ArrayIterator[nullable Object] */;
1525 short int var21
/* : Bool */;
1526 val
* var22
/* : nullable Object */;
1527 val
* var_mclassdef
/* var mclassdef: MClassDef */;
1528 val
* var23
/* : POSetElement[MModule] */;
1529 val
* var25
/* : POSetElement[MModule] */;
1530 val
* var26
/* : Collection[Object] */;
1531 val
* var27
/* : MModule */;
1532 val
* var29
/* : MModule */;
1533 short int var30
/* : Bool */;
1534 short int var31
/* : Bool */;
1535 val
* var32
/* : nullable POSetElement[MClassDef] */;
1536 val
* var34
/* : nullable POSetElement[MClassDef] */;
1537 val
* var35
/* : Collection[Object] */;
1538 short int var36
/* : Bool */;
1539 short int var37
/* : Bool */;
1540 val
* var38
/* : null */;
1541 short int var39
/* : Bool */;
1542 short int var40
/* : Bool */;
1543 val
* var_other
/* var other: nullable Object */;
1544 short int var42
/* : Bool */;
1545 short int var44
/* : Bool */;
1546 short int var45
/* : Bool */;
1547 short int var46
/* : Bool */;
1548 val
* var_other48
/* var other: nullable Object */;
1549 short int var49
/* : Bool */;
1550 short int var50
/* : Bool */;
1551 short int var51
/* : Bool */;
1552 static val
* varonce
;
1553 val
* var52
/* : String */;
1554 char* var53
/* : NativeString */;
1555 long var54
/* : Int */;
1556 val
* var55
/* : FlatString */;
1557 static val
* varonce56
;
1558 val
* var57
/* : String */;
1559 char* var58
/* : NativeString */;
1560 long var59
/* : Int */;
1561 val
* var60
/* : FlatString */;
1562 val
* var61
/* : String */;
1563 static val
* varonce62
;
1564 val
* var63
/* : String */;
1565 char* var64
/* : NativeString */;
1566 long var65
/* : Int */;
1567 val
* var66
/* : FlatString */;
1568 val
* var67
/* : String */;
1569 val
* var68
/* : Array[Object] */;
1570 long var69
/* : Int */;
1571 val
* var70
/* : NativeArray[Object] */;
1572 val
* var71
/* : String */;
1576 { /* Inline mmodule#MModule#model (self) on <self:MModule> */
1577 var3
= self
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <self:MModule> */
1578 if (unlikely(var3
== NULL
)) {
1579 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
1580 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
1588 var4
= model__Model__get_mproperties_by_name(var1
, var_name
);
1592 if (var_props
== NULL
) {
1593 var6
= 1; /* is null */
1595 var6
= 0; /* arg is null but recv is not */
1598 var7
= abstract_collection__SequenceRead___61d_61d(var_props
, var5
);
1610 var10
= array__AbstractArrayRead__iterator(var_props
);
1614 var11
= array__ArrayIterator__is_ok(var10
);
1618 var12
= array__ArrayIterator__item(var10
);
1621 /* <var_mprop:MProperty> isa MMethod */
1622 cltype
= type_model__MMethod
.color
;
1623 idtype
= type_model__MMethod
.id
;
1624 if(cltype
>= var_mprop
->type
->table_size
) {
1627 var13
= var_mprop
->type
->type_table
[cltype
] == idtype
;
1629 if (unlikely(!var13
)) {
1630 PRINT_ERROR("Runtime error: %s", "Assert failed");
1631 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 268);
1635 { /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
1636 var16
= var_mprop
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
1637 if (unlikely(var16
== NULL
)) {
1638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
1639 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
1643 RET_LABEL15
:(void)0;
1648 { /* Inline model#MClass#mclassdefs (var_recv) on <var_recv:MClass> */
1649 var19
= var_recv
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <var_recv:MClass> */
1650 if (unlikely(var19
== NULL
)) {
1651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
1652 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
1656 RET_LABEL18
:(void)0;
1660 var20
= array__AbstractArrayRead__iterator(var17
);
1664 var21
= array__ArrayIterator__is_ok(var20
);
1668 var22
= array__ArrayIterator__item(var20
);
1670 var_mclassdef
= var22
;
1672 { /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
1673 var25
= self
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <self:MModule> */
1674 if (unlikely(var25
== NULL
)) {
1675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
1676 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
1680 RET_LABEL24
:(void)0;
1684 var26
= poset__POSetElement__greaters(var23
);
1687 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
1688 var29
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var_mclassdef:MClassDef> */
1689 if (unlikely(var29
== NULL
)) {
1690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1691 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
1695 RET_LABEL28
:(void)0;
1699 var30
= ((short int (*)(val
*, val
*))(var26
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var26
, var27
) /* has on <var26:Collection[Object](Collection[MModule])>*/;
1703 goto CONTINUE_label
;
1707 { /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
1708 var34
= var_mclassdef
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <var_mclassdef:MClassDef> */
1710 RET_LABEL33
:(void)0;
1713 if (var32
== NULL
) {
1714 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1715 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 272);
1718 var35
= poset__POSetElement__greaters(var32
);
1721 var36
= ((short int (*)(val
*, val
*))(var35
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var35
, var_intro
) /* has on <var35:Collection[Object](Collection[MClassDef])>*/;
1725 goto CONTINUE_label
;
1729 if (var_res
== NULL
) {
1730 var39
= 1; /* is null */
1732 var39
= 0; /* arg is null but recv is not */
1735 { /* Inline kernel#Object#== (var_res,var38) on <var_res:nullable MMethod> */
1738 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MMethod(MMethod)> */
1739 var44
= var_res
== var_other
;
1742 RET_LABEL43
:(void)0;
1747 RET_LABEL41
:(void)0;
1752 var_res
= var_mprop
;
1755 { /* Inline kernel#Object#!= (var_res,var_mprop) on <var_res:nullable MMethod(MMethod)> */
1756 var_other48
= var_mprop
;
1758 var50
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other48
) /* == on <var_res:nullable MMethod(MMethod)>*/;
1764 RET_LABEL47
:(void)0;
1772 var53
= "Fatal Error: ambigous property name \'";
1774 var55
= string__NativeString__to_s_with_length(var53
, var54
);
1781 var58
= "\'; conflict between ";
1783 var60
= string__NativeString__to_s_with_length(var58
, var59
);
1788 var61
= model__MProperty__full_name(var_mprop
);
1795 var66
= string__NativeString__to_s_with_length(var64
, var65
);
1800 var67
= model__MProperty__full_name(var_res
);
1802 var68
= NEW_array__Array(&type_array__Arraykernel__Object
);
1803 { /* var68 = array_instance Array[Object] */
1805 var70
= NEW_array__NativeArray(var69
, &type_array__NativeArraykernel__Object
);
1806 ((struct instance_array__NativeArray
*)var70
)->values
[0] = (val
*) var52
;
1807 ((struct instance_array__NativeArray
*)var70
)->values
[1] = (val
*) var_name
;
1808 ((struct instance_array__NativeArray
*)var70
)->values
[2] = (val
*) var57
;
1809 ((struct instance_array__NativeArray
*)var70
)->values
[3] = (val
*) var61
;
1810 ((struct instance_array__NativeArray
*)var70
)->values
[4] = (val
*) var63
;
1811 ((struct instance_array__NativeArray
*)var70
)->values
[5] = (val
*) var67
;
1813 ((void (*)(val
*, val
*, long))(var68
->class->vft
[COLOR_array__Array__with_native
]))(var68
, var70
, var69
) /* with_native on <var68:Array[Object]>*/;
1817 var71
= ((val
* (*)(val
*))(var68
->class->vft
[COLOR_string__Object__to_s
]))(var68
) /* to_s on <var68:Array[Object]>*/;
1820 file__Object__print(self
, var71
); /* Direct call file#Object#print on <self:MModule>*/
1822 PRINT_ERROR("Runtime error: %s", "Aborted");
1823 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 277);
1828 CONTINUE_label
: (void)0;
1830 array__ArrayIterator__next(var20
); /* Direct call array#ArrayIterator#next on <var20:ArrayIterator[nullable Object]>*/
1833 BREAK_label
: (void)0;
1834 CONTINUE_label72
: (void)0;
1836 array__ArrayIterator__next(var10
); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
1839 BREAK_label72
: (void)0;
1845 /* method model#MModule#try_get_primitive_method for (self: Object, String, MClass): nullable MMethod */
1846 val
* VIRTUAL_model__MModule__try_get_primitive_method(val
* self
, val
* p0
, val
* p1
) {
1847 val
* var
/* : nullable MMethod */;
1848 val
* var1
/* : nullable MMethod */;
1849 var1
= model__MModule__try_get_primitive_method(self
, p0
, p1
);
1854 /* method model#MClassDefSorter#mmodule for (self: MClassDefSorter): MModule */
1855 val
* model__MClassDefSorter__mmodule(val
* self
) {
1856 val
* var
/* : MModule */;
1857 val
* var1
/* : MModule */;
1858 var1
= self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
; /* _mmodule on <self:MClassDefSorter> */
1859 if (unlikely(var1
== NULL
)) {
1860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1861 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 287);
1868 /* method model#MClassDefSorter#mmodule for (self: Object): MModule */
1869 val
* VIRTUAL_model__MClassDefSorter__mmodule(val
* self
) {
1870 val
* var
/* : MModule */;
1871 val
* var1
/* : MModule */;
1872 val
* var3
/* : MModule */;
1873 { /* Inline model#MClassDefSorter#mmodule (self) on <self:Object(MClassDefSorter)> */
1874 var3
= self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
; /* _mmodule on <self:Object(MClassDefSorter)> */
1875 if (unlikely(var3
== NULL
)) {
1876 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1877 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 287);
1887 /* method model#MClassDefSorter#compare for (self: MClassDefSorter, MClassDef, MClassDef): Int */
1888 long model__MClassDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
1889 long var
/* : Int */;
1890 short int var1
/* : Bool */;
1893 const char* var_class_name
;
1894 short int var2
/* : Bool */;
1897 const char* var_class_name5
;
1898 val
* var_a
/* var a: MClassDef */;
1899 val
* var_b
/* var b: MClassDef */;
1900 val
* var6
/* : MClass */;
1901 val
* var8
/* : MClass */;
1902 val
* var_ca
/* var ca: MClass */;
1903 val
* var9
/* : MClass */;
1904 val
* var11
/* : MClass */;
1905 val
* var_cb
/* var cb: MClass */;
1906 short int var12
/* : Bool */;
1907 short int var13
/* : Bool */;
1908 val
* var_other
/* var other: nullable Object */;
1909 short int var15
/* : Bool */;
1910 short int var16
/* : Bool */;
1911 short int var17
/* : Bool */;
1912 val
* var18
/* : MModule */;
1913 val
* var20
/* : MModule */;
1914 val
* var21
/* : POSet[MClass] */;
1915 long var22
/* : Int */;
1916 val
* var23
/* : MModule */;
1917 val
* var25
/* : MModule */;
1918 val
* var26
/* : Model */;
1919 val
* var28
/* : Model */;
1920 val
* var29
/* : POSet[MClassDef] */;
1921 val
* var31
/* : POSet[MClassDef] */;
1922 long var32
/* : Int */;
1923 /* Covariant cast for argument 0 (a) <p0:MClassDef> isa Comparator#0 */
1924 /* <p0:MClassDef> isa Comparator#0 */
1925 var1
= 1; /* easy <p0:MClassDef> isa Comparator#0*/
1926 if (unlikely(!var1
)) {
1927 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1928 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Comparator#0", var_class_name
);
1929 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 288);
1932 /* Covariant cast for argument 1 (b) <p1:MClassDef> isa Comparator#0 */
1933 /* <p1:MClassDef> isa Comparator#0 */
1934 var2
= 1; /* easy <p1:MClassDef> isa Comparator#0*/
1935 if (unlikely(!var2
)) {
1936 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
1937 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Comparator#0", var_class_name5
);
1938 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 288);
1944 { /* Inline model#MClassDef#mclass (var_a) on <var_a:MClassDef> */
1945 var8
= var_a
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_a:MClassDef> */
1946 if (unlikely(var8
== NULL
)) {
1947 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1948 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
1957 { /* Inline model#MClassDef#mclass (var_b) on <var_b:MClassDef> */
1958 var11
= var_b
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_b:MClassDef> */
1959 if (unlikely(var11
== NULL
)) {
1960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1961 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
1965 RET_LABEL10
:(void)0;
1970 { /* Inline kernel#Object#!= (var_ca,var_cb) on <var_ca:MClass> */
1973 var16
= ((short int (*)(val
*, val
*))(var_ca
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ca
, var_other
) /* == on <var_ca:MClass>*/;
1979 RET_LABEL14
:(void)0;
1985 { /* Inline model#MClassDefSorter#mmodule (self) on <self:MClassDefSorter> */
1986 var20
= self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
; /* _mmodule on <self:MClassDefSorter> */
1987 if (unlikely(var20
== NULL
)) {
1988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1989 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 287);
1993 RET_LABEL19
:(void)0;
1997 var21
= model__MModule__flatten_mclass_hierarchy(var18
);
2000 var22
= poset__POSet__compare(var21
, var_ca
, var_cb
);
2007 { /* Inline model#MClassDefSorter#mmodule (self) on <self:MClassDefSorter> */
2008 var25
= self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
; /* _mmodule on <self:MClassDefSorter> */
2009 if (unlikely(var25
== NULL
)) {
2010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2011 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 287);
2015 RET_LABEL24
:(void)0;
2019 { /* Inline mmodule#MModule#model (var23) on <var23:MModule> */
2020 var28
= var23
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var23:MModule> */
2021 if (unlikely(var28
== NULL
)) {
2022 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2023 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
2027 RET_LABEL27
:(void)0;
2031 { /* Inline model#Model#mclassdef_hierarchy (var26) on <var26:Model> */
2032 var31
= var26
->attrs
[COLOR_model__Model___mclassdef_hierarchy
].val
; /* _mclassdef_hierarchy on <var26:Model> */
2033 if (unlikely(var31
== NULL
)) {
2034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
2035 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 42);
2039 RET_LABEL30
:(void)0;
2043 var32
= poset__POSet__compare(var29
, var_a
, var_b
);
2050 /* method model#MClassDefSorter#compare for (self: Object, nullable Object, nullable Object): Int */
2051 long VIRTUAL_model__MClassDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
2052 long var
/* : Int */;
2053 long var1
/* : Int */;
2054 var1
= model__MClassDefSorter__compare(self
, p0
, p1
);
2059 /* method model#MClassDefSorter#init for (self: MClassDefSorter, MModule) */
2060 void model__MClassDefSorter__init(val
* self
, val
* p0
) {
2061 self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
= p0
; /* _mmodule on <self:MClassDefSorter> */
2064 /* method model#MClassDefSorter#init for (self: Object, MModule) */
2065 void VIRTUAL_model__MClassDefSorter__init(val
* self
, val
* p0
) {
2066 { /* Inline model#MClassDefSorter#init (self,p0) on <self:Object(MClassDefSorter)> */
2067 self
->attrs
[COLOR_model__MClassDefSorter___mmodule
].val
= p0
; /* _mmodule on <self:Object(MClassDefSorter)> */
2072 /* method model#MPropDefSorter#mmodule for (self: MPropDefSorter): MModule */
2073 val
* model__MPropDefSorter__mmodule(val
* self
) {
2074 val
* var
/* : MModule */;
2075 val
* var1
/* : MModule */;
2076 var1
= self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
; /* _mmodule on <self:MPropDefSorter> */
2077 if (unlikely(var1
== NULL
)) {
2078 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2079 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 299);
2086 /* method model#MPropDefSorter#mmodule for (self: Object): MModule */
2087 val
* VIRTUAL_model__MPropDefSorter__mmodule(val
* self
) {
2088 val
* var
/* : MModule */;
2089 val
* var1
/* : MModule */;
2090 val
* var3
/* : MModule */;
2091 { /* Inline model#MPropDefSorter#mmodule (self) on <self:Object(MPropDefSorter)> */
2092 var3
= self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
; /* _mmodule on <self:Object(MPropDefSorter)> */
2093 if (unlikely(var3
== NULL
)) {
2094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2095 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 299);
2105 /* method model#MPropDefSorter#compare for (self: MPropDefSorter, MPropDef, MPropDef): Int */
2106 long model__MPropDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
2107 long var
/* : Int */;
2108 short int var1
/* : Bool */;
2111 const char* var_class_name
;
2112 short int var2
/* : Bool */;
2115 const char* var_class_name5
;
2116 val
* var_pa
/* var pa: MPropDef */;
2117 val
* var_pb
/* var pb: MPropDef */;
2118 val
* var6
/* : MClassDef */;
2119 val
* var8
/* : MClassDef */;
2120 val
* var_a
/* var a: MClassDef */;
2121 val
* var9
/* : MClassDef */;
2122 val
* var11
/* : MClassDef */;
2123 val
* var_b
/* var b: MClassDef */;
2124 val
* var12
/* : MClass */;
2125 val
* var14
/* : MClass */;
2126 val
* var_ca
/* var ca: MClass */;
2127 val
* var15
/* : MClass */;
2128 val
* var17
/* : MClass */;
2129 val
* var_cb
/* var cb: MClass */;
2130 short int var18
/* : Bool */;
2131 short int var19
/* : Bool */;
2132 val
* var_other
/* var other: nullable Object */;
2133 short int var21
/* : Bool */;
2134 short int var22
/* : Bool */;
2135 short int var23
/* : Bool */;
2136 val
* var24
/* : MModule */;
2137 val
* var26
/* : MModule */;
2138 val
* var27
/* : POSet[MClass] */;
2139 long var28
/* : Int */;
2140 val
* var29
/* : MModule */;
2141 val
* var31
/* : MModule */;
2142 val
* var32
/* : Model */;
2143 val
* var34
/* : Model */;
2144 val
* var35
/* : POSet[MClassDef] */;
2145 val
* var37
/* : POSet[MClassDef] */;
2146 long var38
/* : Int */;
2147 /* Covariant cast for argument 0 (pa) <p0:MPropDef> isa Comparator#0 */
2148 /* <p0:MPropDef> isa Comparator#0 */
2149 var1
= 1; /* easy <p0:MPropDef> isa Comparator#0*/
2150 if (unlikely(!var1
)) {
2151 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2152 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Comparator#0", var_class_name
);
2153 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 300);
2156 /* Covariant cast for argument 1 (pb) <p1:MPropDef> isa Comparator#0 */
2157 /* <p1:MPropDef> isa Comparator#0 */
2158 var2
= 1; /* easy <p1:MPropDef> isa Comparator#0*/
2159 if (unlikely(!var2
)) {
2160 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
2161 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Comparator#0", var_class_name5
);
2162 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 300);
2168 { /* Inline model#MPropDef#mclassdef (var_pa) on <var_pa:MPropDef> */
2169 var8
= var_pa
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_pa:MPropDef> */
2170 if (unlikely(var8
== NULL
)) {
2171 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2172 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
2181 { /* Inline model#MPropDef#mclassdef (var_pb) on <var_pb:MPropDef> */
2182 var11
= var_pb
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_pb:MPropDef> */
2183 if (unlikely(var11
== NULL
)) {
2184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2185 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
2189 RET_LABEL10
:(void)0;
2194 { /* Inline model#MClassDef#mclass (var_a) on <var_a:MClassDef> */
2195 var14
= var_a
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_a:MClassDef> */
2196 if (unlikely(var14
== NULL
)) {
2197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2198 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
2202 RET_LABEL13
:(void)0;
2207 { /* Inline model#MClassDef#mclass (var_b) on <var_b:MClassDef> */
2208 var17
= var_b
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var_b:MClassDef> */
2209 if (unlikely(var17
== NULL
)) {
2210 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2211 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
2215 RET_LABEL16
:(void)0;
2220 { /* Inline kernel#Object#!= (var_ca,var_cb) on <var_ca:MClass> */
2223 var22
= ((short int (*)(val
*, val
*))(var_ca
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ca
, var_other
) /* == on <var_ca:MClass>*/;
2229 RET_LABEL20
:(void)0;
2235 { /* Inline model#MPropDefSorter#mmodule (self) on <self:MPropDefSorter> */
2236 var26
= self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
; /* _mmodule on <self:MPropDefSorter> */
2237 if (unlikely(var26
== NULL
)) {
2238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2239 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 299);
2243 RET_LABEL25
:(void)0;
2247 var27
= model__MModule__flatten_mclass_hierarchy(var24
);
2250 var28
= poset__POSet__compare(var27
, var_ca
, var_cb
);
2257 { /* Inline model#MPropDefSorter#mmodule (self) on <self:MPropDefSorter> */
2258 var31
= self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
; /* _mmodule on <self:MPropDefSorter> */
2259 if (unlikely(var31
== NULL
)) {
2260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2261 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 299);
2265 RET_LABEL30
:(void)0;
2269 { /* Inline mmodule#MModule#model (var29) on <var29:MModule> */
2270 var34
= var29
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var29:MModule> */
2271 if (unlikely(var34
== NULL
)) {
2272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2273 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
2277 RET_LABEL33
:(void)0;
2281 { /* Inline model#Model#mclassdef_hierarchy (var32) on <var32:Model> */
2282 var37
= var32
->attrs
[COLOR_model__Model___mclassdef_hierarchy
].val
; /* _mclassdef_hierarchy on <var32:Model> */
2283 if (unlikely(var37
== NULL
)) {
2284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
2285 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 42);
2289 RET_LABEL36
:(void)0;
2293 var38
= poset__POSet__compare(var35
, var_a
, var_b
);
2300 /* method model#MPropDefSorter#compare for (self: Object, nullable Object, nullable Object): Int */
2301 long VIRTUAL_model__MPropDefSorter__compare(val
* self
, val
* p0
, val
* p1
) {
2302 long var
/* : Int */;
2303 long var1
/* : Int */;
2304 var1
= model__MPropDefSorter__compare(self
, p0
, p1
);
2309 /* method model#MPropDefSorter#init for (self: MPropDefSorter, MModule) */
2310 void model__MPropDefSorter__init(val
* self
, val
* p0
) {
2311 self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
= p0
; /* _mmodule on <self:MPropDefSorter> */
2314 /* method model#MPropDefSorter#init for (self: Object, MModule) */
2315 void VIRTUAL_model__MPropDefSorter__init(val
* self
, val
* p0
) {
2316 { /* Inline model#MPropDefSorter#init (self,p0) on <self:Object(MPropDefSorter)> */
2317 self
->attrs
[COLOR_model__MPropDefSorter___mmodule
].val
= p0
; /* _mmodule on <self:Object(MPropDefSorter)> */
2322 /* method model#MClass#intro_mmodule for (self: MClass): MModule */
2323 val
* model__MClass__intro_mmodule(val
* self
) {
2324 val
* var
/* : MModule */;
2325 val
* var1
/* : MModule */;
2326 var1
= self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <self:MClass> */
2327 if (unlikely(var1
== NULL
)) {
2328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
2329 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
2336 /* method model#MClass#intro_mmodule for (self: Object): MModule */
2337 val
* VIRTUAL_model__MClass__intro_mmodule(val
* self
) {
2338 val
* var
/* : MModule */;
2339 val
* var1
/* : MModule */;
2340 val
* var3
/* : MModule */;
2341 { /* Inline model#MClass#intro_mmodule (self) on <self:Object(MClass)> */
2342 var3
= self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <self:Object(MClass)> */
2343 if (unlikely(var3
== NULL
)) {
2344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
2345 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
2355 /* method model#MClass#intro_mmodule= for (self: MClass, MModule) */
2356 void model__MClass__intro_mmodule_61d(val
* self
, val
* p0
) {
2357 self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
= p0
; /* _intro_mmodule on <self:MClass> */
2360 /* method model#MClass#intro_mmodule= for (self: Object, MModule) */
2361 void VIRTUAL_model__MClass__intro_mmodule_61d(val
* self
, val
* p0
) {
2362 { /* Inline model#MClass#intro_mmodule= (self,p0) on <self:Object(MClass)> */
2363 self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
= p0
; /* _intro_mmodule on <self:Object(MClass)> */
2368 /* method model#MClass#name for (self: MClass): String */
2369 val
* model__MClass__name(val
* self
) {
2370 val
* var
/* : String */;
2371 val
* var1
/* : String */;
2372 var1
= self
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <self:MClass> */
2373 if (unlikely(var1
== NULL
)) {
2374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2375 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
2382 /* method model#MClass#name for (self: Object): String */
2383 val
* VIRTUAL_model__MClass__name(val
* self
) {
2384 val
* var
/* : String */;
2385 val
* var1
/* : String */;
2386 val
* var3
/* : String */;
2387 { /* Inline model#MClass#name (self) on <self:Object(MClass)> */
2388 var3
= self
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <self:Object(MClass)> */
2389 if (unlikely(var3
== NULL
)) {
2390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2391 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
2401 /* method model#MClass#name= for (self: MClass, String) */
2402 void model__MClass__name_61d(val
* self
, val
* p0
) {
2403 self
->attrs
[COLOR_model__MClass___name
].val
= p0
; /* _name on <self:MClass> */
2406 /* method model#MClass#name= for (self: Object, String) */
2407 void VIRTUAL_model__MClass__name_61d(val
* self
, val
* p0
) {
2408 { /* Inline model#MClass#name= (self,p0) on <self:Object(MClass)> */
2409 self
->attrs
[COLOR_model__MClass___name
].val
= p0
; /* _name on <self:Object(MClass)> */
2414 /* method model#MClass#full_name for (self: MClass): String */
2415 val
* model__MClass__full_name(val
* self
) {
2416 val
* var
/* : String */;
2417 val
* var1
/* : MModule */;
2418 val
* var3
/* : MModule */;
2419 val
* var4
/* : String */;
2420 static val
* varonce
;
2421 val
* var5
/* : String */;
2422 char* var6
/* : NativeString */;
2423 long var7
/* : Int */;
2424 val
* var8
/* : FlatString */;
2425 val
* var9
/* : String */;
2426 val
* var11
/* : String */;
2427 val
* var12
/* : Array[Object] */;
2428 long var13
/* : Int */;
2429 val
* var14
/* : NativeArray[Object] */;
2430 val
* var15
/* : String */;
2432 { /* Inline model#MClass#intro_mmodule (self) on <self:MClass> */
2433 var3
= self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <self:MClass> */
2434 if (unlikely(var3
== NULL
)) {
2435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
2436 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
2444 var4
= mmodule__MModule__full_name(var1
);
2451 var8
= string__NativeString__to_s_with_length(var6
, var7
);
2456 { /* Inline model#MClass#name (self) on <self:MClass> */
2457 var11
= self
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <self:MClass> */
2458 if (unlikely(var11
== NULL
)) {
2459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2460 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
2464 RET_LABEL10
:(void)0;
2467 var12
= NEW_array__Array(&type_array__Arraykernel__Object
);
2468 { /* var12 = array_instance Array[Object] */
2470 var14
= NEW_array__NativeArray(var13
, &type_array__NativeArraykernel__Object
);
2471 ((struct instance_array__NativeArray
*)var14
)->values
[0] = (val
*) var4
;
2472 ((struct instance_array__NativeArray
*)var14
)->values
[1] = (val
*) var5
;
2473 ((struct instance_array__NativeArray
*)var14
)->values
[2] = (val
*) var9
;
2475 ((void (*)(val
*, val
*, long))(var12
->class->vft
[COLOR_array__Array__with_native
]))(var12
, var14
, var13
) /* with_native on <var12:Array[Object]>*/;
2479 var15
= ((val
* (*)(val
*))(var12
->class->vft
[COLOR_string__Object__to_s
]))(var12
) /* to_s on <var12:Array[Object]>*/;
2486 /* method model#MClass#full_name for (self: Object): String */
2487 val
* VIRTUAL_model__MClass__full_name(val
* self
) {
2488 val
* var
/* : String */;
2489 val
* var1
/* : String */;
2490 var1
= model__MClass__full_name(self
);
2495 /* method model#MClass#arity for (self: MClass): Int */
2496 long model__MClass__arity(val
* self
) {
2497 long var
/* : Int */;
2498 long var1
/* : Int */;
2499 var1
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:MClass> */
2504 /* method model#MClass#arity for (self: Object): Int */
2505 long VIRTUAL_model__MClass__arity(val
* self
) {
2506 long var
/* : Int */;
2507 long var1
/* : Int */;
2508 long var3
/* : Int */;
2509 { /* Inline model#MClass#arity (self) on <self:Object(MClass)> */
2510 var3
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:Object(MClass)> */
2518 /* method model#MClass#arity= for (self: MClass, Int) */
2519 void model__MClass__arity_61d(val
* self
, long p0
) {
2520 self
->attrs
[COLOR_model__MClass___arity
].l
= p0
; /* _arity on <self:MClass> */
2523 /* method model#MClass#arity= for (self: Object, Int) */
2524 void VIRTUAL_model__MClass__arity_61d(val
* self
, long p0
) {
2525 { /* Inline model#MClass#arity= (self,p0) on <self:Object(MClass)> */
2526 self
->attrs
[COLOR_model__MClass___arity
].l
= p0
; /* _arity on <self:Object(MClass)> */
2531 /* method model#MClass#kind for (self: MClass): MClassKind */
2532 val
* model__MClass__kind(val
* self
) {
2533 val
* var
/* : MClassKind */;
2534 val
* var1
/* : MClassKind */;
2535 var1
= self
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <self:MClass> */
2536 if (unlikely(var1
== NULL
)) {
2537 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2538 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2545 /* method model#MClass#kind for (self: Object): MClassKind */
2546 val
* VIRTUAL_model__MClass__kind(val
* self
) {
2547 val
* var
/* : MClassKind */;
2548 val
* var1
/* : MClassKind */;
2549 val
* var3
/* : MClassKind */;
2550 { /* Inline model#MClass#kind (self) on <self:Object(MClass)> */
2551 var3
= self
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <self:Object(MClass)> */
2552 if (unlikely(var3
== NULL
)) {
2553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2554 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2564 /* method model#MClass#kind= for (self: MClass, MClassKind) */
2565 void model__MClass__kind_61d(val
* self
, val
* p0
) {
2566 self
->attrs
[COLOR_model__MClass___kind
].val
= p0
; /* _kind on <self:MClass> */
2569 /* method model#MClass#kind= for (self: Object, MClassKind) */
2570 void VIRTUAL_model__MClass__kind_61d(val
* self
, val
* p0
) {
2571 { /* Inline model#MClass#kind= (self,p0) on <self:Object(MClass)> */
2572 self
->attrs
[COLOR_model__MClass___kind
].val
= p0
; /* _kind on <self:Object(MClass)> */
2577 /* method model#MClass#visibility for (self: MClass): MVisibility */
2578 val
* model__MClass__visibility(val
* self
) {
2579 val
* var
/* : MVisibility */;
2580 val
* var1
/* : MVisibility */;
2581 var1
= self
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <self:MClass> */
2582 if (unlikely(var1
== NULL
)) {
2583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
2584 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 359);
2591 /* method model#MClass#visibility for (self: Object): MVisibility */
2592 val
* VIRTUAL_model__MClass__visibility(val
* self
) {
2593 val
* var
/* : MVisibility */;
2594 val
* var1
/* : MVisibility */;
2595 val
* var3
/* : MVisibility */;
2596 { /* Inline model#MClass#visibility (self) on <self:Object(MClass)> */
2597 var3
= self
->attrs
[COLOR_model__MClass___visibility
].val
; /* _visibility on <self:Object(MClass)> */
2598 if (unlikely(var3
== NULL
)) {
2599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
2600 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 359);
2610 /* method model#MClass#visibility= for (self: MClass, MVisibility) */
2611 void model__MClass__visibility_61d(val
* self
, val
* p0
) {
2612 self
->attrs
[COLOR_model__MClass___visibility
].val
= p0
; /* _visibility on <self:MClass> */
2615 /* method model#MClass#visibility= for (self: Object, MVisibility) */
2616 void VIRTUAL_model__MClass__visibility_61d(val
* self
, val
* p0
) {
2617 { /* Inline model#MClass#visibility= (self,p0) on <self:Object(MClass)> */
2618 self
->attrs
[COLOR_model__MClass___visibility
].val
= p0
; /* _visibility on <self:Object(MClass)> */
2623 /* method model#MClass#init for (self: MClass, MModule, String, Int, MClassKind, MVisibility) */
2624 void model__MClass__init(val
* self
, val
* p0
, val
* p1
, long p2
, val
* p3
, val
* p4
) {
2625 val
* var_intro_mmodule
/* var intro_mmodule: MModule */;
2626 val
* var_name
/* var name: String */;
2627 long var_arity
/* var arity: Int */;
2628 val
* var_kind
/* var kind: MClassKind */;
2629 val
* var_visibility
/* var visibility: MVisibility */;
2630 val
* var
/* : Array[MClass] */;
2631 val
* var8
/* : Array[MClass] */;
2632 val
* var9
/* : Model */;
2633 val
* var11
/* : Model */;
2634 val
* var_model
/* var model: Model */;
2635 val
* var12
/* : MultiHashMap[String, MClass] */;
2636 val
* var14
/* : MultiHashMap[String, MClass] */;
2637 val
* var15
/* : Array[MClass] */;
2638 val
* var17
/* : Array[MClass] */;
2639 long var18
/* : Int */;
2640 short int var19
/* : Bool */;
2641 short int var21
/* : Bool */;
2644 const char* var_class_name
;
2645 short int var22
/* : Bool */;
2646 val
* var23
/* : Array[MParameterType] */;
2647 val
* var_mparametertypes
/* var mparametertypes: Array[MParameterType] */;
2648 val
* var24
/* : Range[Int] */;
2649 long var25
/* : Int */;
2650 val
* var26
/* : Discrete */;
2651 val
* var27
/* : Discrete */;
2652 val
* var28
/* : Iterator[Discrete] */;
2653 short int var29
/* : Bool */;
2654 val
* var30
/* : nullable Object */;
2655 long var_i
/* var i: Int */;
2656 long var31
/* : Int */;
2657 val
* var32
/* : MParameterType */;
2658 val
* var_mparametertype
/* var mparametertype: MParameterType */;
2659 val
* var33
/* : MGenericType */;
2660 val
* var_mclass_type
/* var mclass_type: MGenericType */;
2661 val
* var35
/* : Array[MGenericType] */;
2662 val
* var37
/* : Array[MGenericType] */;
2663 val
* var38
/* : MClassType */;
2665 { /* Inline model_base#MEntity#init (self) on <self:MClass> */
2669 var_intro_mmodule
= p0
;
2673 var_visibility
= p4
;
2675 { /* Inline model#MClass#intro_mmodule= (self,var_intro_mmodule) on <self:MClass> */
2676 self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
= var_intro_mmodule
; /* _intro_mmodule on <self:MClass> */
2681 { /* Inline model#MClass#name= (self,var_name) on <self:MClass> */
2682 self
->attrs
[COLOR_model__MClass___name
].val
= var_name
; /* _name on <self:MClass> */
2687 { /* Inline model#MClass#arity= (self,var_arity) on <self:MClass> */
2688 self
->attrs
[COLOR_model__MClass___arity
].l
= var_arity
; /* _arity on <self:MClass> */
2693 { /* Inline model#MClass#kind= (self,var_kind) on <self:MClass> */
2694 self
->attrs
[COLOR_model__MClass___kind
].val
= var_kind
; /* _kind on <self:MClass> */
2699 { /* Inline model#MClass#visibility= (self,var_visibility) on <self:MClass> */
2700 self
->attrs
[COLOR_model__MClass___visibility
].val
= var_visibility
; /* _visibility on <self:MClass> */
2705 { /* Inline model#MModule#intro_mclasses (var_intro_mmodule) on <var_intro_mmodule:MModule> */
2706 var8
= var_intro_mmodule
->attrs
[COLOR_model__MModule___intro_mclasses
].val
; /* _intro_mclasses on <var_intro_mmodule:MModule> */
2707 if (unlikely(var8
== NULL
)) {
2708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
2709 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 138);
2717 array__Array__add(var
, self
); /* Direct call array#Array#add on <var:Array[MClass]>*/
2720 { /* Inline mmodule#MModule#model (var_intro_mmodule) on <var_intro_mmodule:MModule> */
2721 var11
= var_intro_mmodule
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var_intro_mmodule:MModule> */
2722 if (unlikely(var11
== NULL
)) {
2723 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2724 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
2728 RET_LABEL10
:(void)0;
2733 { /* Inline model#Model#mclasses_by_name (var_model) on <var_model:Model> */
2734 var14
= var_model
->attrs
[COLOR_model__Model___mclasses_by_name
].val
; /* _mclasses_by_name on <var_model:Model> */
2735 if (unlikely(var14
== NULL
)) {
2736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
2737 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 68);
2741 RET_LABEL13
:(void)0;
2745 more_collections__MultiHashMap__add_one(var12
, var_name
, self
); /* Direct call more_collections#MultiHashMap#add_one on <var12:MultiHashMap[String, MClass]>*/
2748 { /* Inline model#Model#mclasses (var_model) on <var_model:Model> */
2749 var17
= var_model
->attrs
[COLOR_model__Model___mclasses
].val
; /* _mclasses on <var_model:Model> */
2750 if (unlikely(var17
== NULL
)) {
2751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses");
2752 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 36);
2756 RET_LABEL16
:(void)0;
2760 array__Array__add(var15
, self
); /* Direct call array#Array#add on <var15:Array[MClass]>*/
2764 { /* Inline kernel#Int#> (var_arity,var18) on <var_arity:Int> */
2765 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
2766 /* <var18:Int> isa OTHER */
2767 var21
= 1; /* easy <var18:Int> isa OTHER*/
2768 if (unlikely(!var21
)) {
2769 var_class_name
= type_kernel__Int
.name
;
2770 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2771 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
2774 var22
= var_arity
> var18
;
2777 RET_LABEL20
:(void)0;
2781 var23
= NEW_array__Array(&type_array__Arraymodel__MParameterType
);
2783 array__Array__init(var23
); /* Direct call array#Array#init on <var23:Array[MParameterType]>*/
2785 var_mparametertypes
= var23
;
2786 var24
= NEW_range__Range(&type_range__Rangekernel__Int
);
2789 var26
= BOX_kernel__Int(var25
); /* autobox from Int to Discrete */
2790 var27
= BOX_kernel__Int(var_arity
); /* autobox from Int to Discrete */
2791 range__Range__without_last(var24
, var26
, var27
); /* Direct call range#Range#without_last on <var24:Range[Int]>*/
2794 var28
= range__Range__iterator(var24
);
2798 var29
= ((short int (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var28
) /* is_ok on <var28:Iterator[Discrete]>*/;
2802 var30
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var28
) /* item on <var28:Iterator[Discrete]>*/;
2804 var31
= ((struct instance_kernel__Int
*)var30
)->value
; /* autounbox from nullable Object to Int */;
2806 var32
= NEW_model__MParameterType(&type_model__MParameterType
);
2808 model__MParameterType__init(var32
, self
, var_i
); /* Direct call model#MParameterType#init on <var32:MParameterType>*/
2810 var_mparametertype
= var32
;
2812 array__Array__add(var_mparametertypes
, var_mparametertype
); /* Direct call array#Array#add on <var_mparametertypes:Array[MParameterType]>*/
2814 CONTINUE_label
: (void)0;
2816 ((void (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var28
) /* next on <var28:Iterator[Discrete]>*/;
2819 BREAK_label
: (void)0;
2820 var33
= NEW_model__MGenericType(&type_model__MGenericType
);
2822 model__MGenericType__init(var33
, self
, var_mparametertypes
); /* Direct call model#MGenericType#init on <var33:MGenericType>*/
2824 var_mclass_type
= var33
;
2826 { /* Inline model#MClass#mclass_type= (self,var_mclass_type) on <self:MClass> */
2827 self
->attrs
[COLOR_model__MClass___mclass_type
].val
= var_mclass_type
; /* _mclass_type on <self:MClass> */
2828 RET_LABEL34
:(void)0;
2832 { /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
2833 var37
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:MClass> */
2834 if (unlikely(var37
== NULL
)) {
2835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
2836 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
2840 RET_LABEL36
:(void)0;
2844 array__Array__add(var35
, var_mclass_type
); /* Direct call array#Array#add on <var35:Array[MGenericType]>*/
2847 var38
= NEW_model__MClassType(&type_model__MClassType
);
2849 model__MClassType__init(var38
, self
); /* Direct call model#MClassType#init on <var38:MClassType>*/
2852 { /* Inline model#MClass#mclass_type= (self,var38) on <self:MClass> */
2853 self
->attrs
[COLOR_model__MClass___mclass_type
].val
= var38
; /* _mclass_type on <self:MClass> */
2854 RET_LABEL39
:(void)0;
2860 /* method model#MClass#init for (self: Object, MModule, String, Int, MClassKind, MVisibility) */
2861 void VIRTUAL_model__MClass__init(val
* self
, val
* p0
, val
* p1
, long p2
, val
* p3
, val
* p4
) {
2862 model__MClass__init(self
, p0
, p1
, p2
, p3
, p4
); /* Direct call model#MClass#init on <self:Object(MClass)>*/
2865 /* method model#MClass#model for (self: MClass): Model */
2866 val
* model__MClass__model(val
* self
) {
2867 val
* var
/* : Model */;
2868 val
* var1
/* : MModule */;
2869 val
* var3
/* : MModule */;
2870 val
* var4
/* : Model */;
2871 val
* var6
/* : Model */;
2873 { /* Inline model#MClass#intro_mmodule (self) on <self:MClass> */
2874 var3
= self
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <self:MClass> */
2875 if (unlikely(var3
== NULL
)) {
2876 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
2877 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
2885 { /* Inline mmodule#MModule#model (var1) on <var1:MModule> */
2886 var6
= var1
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var1:MModule> */
2887 if (unlikely(var6
== NULL
)) {
2888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
2889 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
2901 /* method model#MClass#model for (self: Object): Model */
2902 val
* VIRTUAL_model__MClass__model(val
* self
) {
2903 val
* var
/* : Model */;
2904 val
* var1
/* : Model */;
2905 var1
= model__MClass__model(self
);
2910 /* method model#MClass#mclassdefs for (self: MClass): Array[MClassDef] */
2911 val
* model__MClass__mclassdefs(val
* self
) {
2912 val
* var
/* : Array[MClassDef] */;
2913 val
* var1
/* : Array[MClassDef] */;
2914 var1
= self
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <self:MClass> */
2915 if (unlikely(var1
== NULL
)) {
2916 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
2917 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
2924 /* method model#MClass#mclassdefs for (self: Object): Array[MClassDef] */
2925 val
* VIRTUAL_model__MClass__mclassdefs(val
* self
) {
2926 val
* var
/* : Array[MClassDef] */;
2927 val
* var1
/* : Array[MClassDef] */;
2928 val
* var3
/* : Array[MClassDef] */;
2929 { /* Inline model#MClass#mclassdefs (self) on <self:Object(MClass)> */
2930 var3
= self
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <self:Object(MClass)> */
2931 if (unlikely(var3
== NULL
)) {
2932 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
2933 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
2943 /* method model#MClass#to_s for (self: MClass): String */
2944 val
* model__MClass__to_s(val
* self
) {
2945 val
* var
/* : String */;
2946 val
* var1
/* : String */;
2947 val
* var3
/* : String */;
2949 { /* Inline model#MClass#name (self) on <self:MClass> */
2950 var3
= self
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <self:MClass> */
2951 if (unlikely(var3
== NULL
)) {
2952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2953 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
2965 /* method model#MClass#to_s for (self: Object): String */
2966 val
* VIRTUAL_model__MClass__to_s(val
* self
) {
2967 val
* var
/* : String */;
2968 val
* var1
/* : String */;
2969 var1
= model__MClass__to_s(self
);
2974 /* method model#MClass#intro for (self: MClass): MClassDef */
2975 val
* model__MClass__intro(val
* self
) {
2976 val
* var
/* : MClassDef */;
2977 val
* var1
/* : Array[MClassDef] */;
2978 val
* var3
/* : Array[MClassDef] */;
2979 short int var4
/* : Bool */;
2980 short int var5
/* : Bool */;
2981 val
* var6
/* : Array[MClassDef] */;
2982 val
* var8
/* : Array[MClassDef] */;
2983 val
* var9
/* : nullable Object */;
2985 { /* Inline model#MClass#mclassdefs (self) on <self:MClass> */
2986 var3
= self
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <self:MClass> */
2987 if (unlikely(var3
== NULL
)) {
2988 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
2989 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
2997 var4
= array__AbstractArrayRead__is_empty(var1
);
3000 if (unlikely(!var5
)) {
3001 PRINT_ERROR("Runtime error: %s", "Assert \'has_a_first_definition\' failed");
3002 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 404);
3006 { /* Inline model#MClass#mclassdefs (self) on <self:MClass> */
3007 var8
= self
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <self:MClass> */
3008 if (unlikely(var8
== NULL
)) {
3009 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
3010 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
3018 var9
= abstract_collection__SequenceRead__first(var6
);
3025 /* method model#MClass#intro for (self: Object): MClassDef */
3026 val
* VIRTUAL_model__MClass__intro(val
* self
) {
3027 val
* var
/* : MClassDef */;
3028 val
* var1
/* : MClassDef */;
3029 var1
= model__MClass__intro(self
);
3034 /* method model#MClass#in_hierarchy for (self: MClass, MModule): POSetElement[MClass] */
3035 val
* model__MClass__in_hierarchy(val
* self
, val
* p0
) {
3036 val
* var
/* : POSetElement[MClass] */;
3037 val
* var_mmodule
/* var mmodule: MModule */;
3038 val
* var1
/* : POSet[MClass] */;
3039 val
* var2
/* : POSetElement[Object] */;
3042 var1
= model__MModule__flatten_mclass_hierarchy(var_mmodule
);
3045 var2
= poset__POSet___91d_93d(var1
, self
);
3052 /* method model#MClass#in_hierarchy for (self: Object, MModule): POSetElement[MClass] */
3053 val
* VIRTUAL_model__MClass__in_hierarchy(val
* self
, val
* p0
) {
3054 val
* var
/* : POSetElement[MClass] */;
3055 val
* var1
/* : POSetElement[MClass] */;
3056 var1
= model__MClass__in_hierarchy(self
, p0
);
3061 /* method model#MClass#mclass_type for (self: MClass): MClassType */
3062 val
* model__MClass__mclass_type(val
* self
) {
3063 val
* var
/* : MClassType */;
3064 val
* var1
/* : MClassType */;
3065 var1
= self
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <self:MClass> */
3066 if (unlikely(var1
== NULL
)) {
3067 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3068 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
3075 /* method model#MClass#mclass_type for (self: Object): MClassType */
3076 val
* VIRTUAL_model__MClass__mclass_type(val
* self
) {
3077 val
* var
/* : MClassType */;
3078 val
* var1
/* : MClassType */;
3079 val
* var3
/* : MClassType */;
3080 { /* Inline model#MClass#mclass_type (self) on <self:Object(MClass)> */
3081 var3
= self
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <self:Object(MClass)> */
3082 if (unlikely(var3
== NULL
)) {
3083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3084 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
3094 /* method model#MClass#mclass_type= for (self: MClass, MClassType) */
3095 void model__MClass__mclass_type_61d(val
* self
, val
* p0
) {
3096 self
->attrs
[COLOR_model__MClass___mclass_type
].val
= p0
; /* _mclass_type on <self:MClass> */
3099 /* method model#MClass#mclass_type= for (self: Object, MClassType) */
3100 void VIRTUAL_model__MClass__mclass_type_61d(val
* self
, val
* p0
) {
3101 { /* Inline model#MClass#mclass_type= (self,p0) on <self:Object(MClass)> */
3102 self
->attrs
[COLOR_model__MClass___mclass_type
].val
= p0
; /* _mclass_type on <self:Object(MClass)> */
3107 /* method model#MClass#get_mtype for (self: MClass, Array[MType]): MClassType */
3108 val
* model__MClass__get_mtype(val
* self
, val
* p0
) {
3109 val
* var
/* : MClassType */;
3110 val
* var_mtype_arguments
/* var mtype_arguments: Array[MType] */;
3111 long var1
/* : Int */;
3112 long var2
/* : Int */;
3113 long var4
/* : Int */;
3114 short int var5
/* : Bool */;
3115 short int var6
/* : Bool */;
3116 short int var8
/* : Bool */;
3117 long var9
/* : Int */;
3118 long var11
/* : Int */;
3119 long var12
/* : Int */;
3120 short int var13
/* : Bool */;
3121 short int var14
/* : Bool */;
3122 short int var16
/* : Bool */;
3123 val
* var17
/* : MClassType */;
3124 val
* var19
/* : MClassType */;
3125 val
* var20
/* : Array[MGenericType] */;
3126 val
* var22
/* : Array[MGenericType] */;
3127 val
* var23
/* : ArrayIterator[nullable Object] */;
3128 short int var24
/* : Bool */;
3129 val
* var25
/* : nullable Object */;
3130 val
* var_t
/* var t: MGenericType */;
3131 val
* var26
/* : Array[MType] */;
3132 val
* var28
/* : Array[MType] */;
3133 short int var29
/* : Bool */;
3134 short int var30
/* : Bool */;
3135 val
* var31
/* : MGenericType */;
3136 val
* var_res
/* var res: MGenericType */;
3137 val
* var32
/* : Array[MGenericType] */;
3138 val
* var34
/* : Array[MGenericType] */;
3139 var_mtype_arguments
= p0
;
3141 var1
= array__AbstractArrayRead__length(var_mtype_arguments
);
3144 { /* Inline model#MClass#arity (self) on <self:MClass> */
3145 var4
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:MClass> */
3151 { /* Inline kernel#Int#== (var1,var2) on <var1:Int> */
3152 var8
= var1
== var2
;
3159 if (unlikely(!var5
)) {
3160 PRINT_ERROR("Runtime error: %s", "Assert failed");
3161 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 440);
3165 { /* Inline model#MClass#arity (self) on <self:MClass> */
3166 var11
= self
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <self:MClass> */
3168 RET_LABEL10
:(void)0;
3173 { /* Inline kernel#Int#== (var9,var12) on <var9:Int> */
3174 var16
= var9
== var12
;
3177 RET_LABEL15
:(void)0;
3183 { /* Inline model#MClass#mclass_type (self) on <self:MClass> */
3184 var19
= self
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <self:MClass> */
3185 if (unlikely(var19
== NULL
)) {
3186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3187 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
3191 RET_LABEL18
:(void)0;
3199 { /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
3200 var22
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:MClass> */
3201 if (unlikely(var22
== NULL
)) {
3202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3203 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
3207 RET_LABEL21
:(void)0;
3211 var23
= array__AbstractArrayRead__iterator(var20
);
3215 var24
= array__ArrayIterator__is_ok(var23
);
3219 var25
= array__ArrayIterator__item(var23
);
3223 { /* Inline model#MClassType#arguments (var_t) on <var_t:MGenericType> */
3224 var28
= var_t
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_t:MGenericType> */
3225 if (unlikely(var28
== NULL
)) {
3226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
3227 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
3231 RET_LABEL27
:(void)0;
3235 var30
= abstract_collection__SequenceRead___61d_61d(var26
, var_mtype_arguments
);
3243 CONTINUE_label
: (void)0;
3245 array__ArrayIterator__next(var23
); /* Direct call array#ArrayIterator#next on <var23:ArrayIterator[nullable Object]>*/
3248 BREAK_label
: (void)0;
3249 var31
= NEW_model__MGenericType(&type_model__MGenericType
);
3251 model__MGenericType__init(var31
, self
, var_mtype_arguments
); /* Direct call model#MGenericType#init on <var31:MGenericType>*/
3255 { /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
3256 var34
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:MClass> */
3257 if (unlikely(var34
== NULL
)) {
3258 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3259 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
3263 RET_LABEL33
:(void)0;
3267 array__Array__add(var32
, var_res
); /* Direct call array#Array#add on <var32:Array[MGenericType]>*/
3274 /* method model#MClass#get_mtype for (self: Object, Array[MType]): MClassType */
3275 val
* VIRTUAL_model__MClass__get_mtype(val
* self
, val
* p0
) {
3276 val
* var
/* : MClassType */;
3277 val
* var1
/* : MClassType */;
3278 var1
= model__MClass__get_mtype(self
, p0
);
3283 /* method model#MClass#get_mtype_cache for (self: MClass): Array[MGenericType] */
3284 val
* model__MClass__get_mtype_cache(val
* self
) {
3285 val
* var
/* : Array[MGenericType] */;
3286 val
* var1
/* : Array[MGenericType] */;
3287 var1
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:MClass> */
3288 if (unlikely(var1
== NULL
)) {
3289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3290 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
3297 /* method model#MClass#get_mtype_cache for (self: Object): Array[MGenericType] */
3298 val
* VIRTUAL_model__MClass__get_mtype_cache(val
* self
) {
3299 val
* var
/* : Array[MGenericType] */;
3300 val
* var1
/* : Array[MGenericType] */;
3301 val
* var3
/* : Array[MGenericType] */;
3302 { /* Inline model#MClass#get_mtype_cache (self) on <self:Object(MClass)> */
3303 var3
= self
->attrs
[COLOR_model__MClass___get_mtype_cache
].val
; /* _get_mtype_cache on <self:Object(MClass)> */
3304 if (unlikely(var3
== NULL
)) {
3305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
3306 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
3316 /* method model#MClassDef#mmodule for (self: MClassDef): MModule */
3317 val
* model__MClassDef__mmodule(val
* self
) {
3318 val
* var
/* : MModule */;
3319 val
* var1
/* : MModule */;
3320 var1
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
3321 if (unlikely(var1
== NULL
)) {
3322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3323 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
3330 /* method model#MClassDef#mmodule for (self: Object): MModule */
3331 val
* VIRTUAL_model__MClassDef__mmodule(val
* self
) {
3332 val
* var
/* : MModule */;
3333 val
* var1
/* : MModule */;
3334 val
* var3
/* : MModule */;
3335 { /* Inline model#MClassDef#mmodule (self) on <self:Object(MClassDef)> */
3336 var3
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:Object(MClassDef)> */
3337 if (unlikely(var3
== NULL
)) {
3338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3339 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
3349 /* method model#MClassDef#mmodule= for (self: MClassDef, MModule) */
3350 void model__MClassDef__mmodule_61d(val
* self
, val
* p0
) {
3351 self
->attrs
[COLOR_model__MClassDef___mmodule
].val
= p0
; /* _mmodule on <self:MClassDef> */
3354 /* method model#MClassDef#mmodule= for (self: Object, MModule) */
3355 void VIRTUAL_model__MClassDef__mmodule_61d(val
* self
, val
* p0
) {
3356 { /* Inline model#MClassDef#mmodule= (self,p0) on <self:Object(MClassDef)> */
3357 self
->attrs
[COLOR_model__MClassDef___mmodule
].val
= p0
; /* _mmodule on <self:Object(MClassDef)> */
3362 /* method model#MClassDef#mclass for (self: MClassDef): MClass */
3363 val
* model__MClassDef__mclass(val
* self
) {
3364 val
* var
/* : MClass */;
3365 val
* var1
/* : MClass */;
3366 var1
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
3367 if (unlikely(var1
== NULL
)) {
3368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3369 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
3376 /* method model#MClassDef#mclass for (self: Object): MClass */
3377 val
* VIRTUAL_model__MClassDef__mclass(val
* self
) {
3378 val
* var
/* : MClass */;
3379 val
* var1
/* : MClass */;
3380 val
* var3
/* : MClass */;
3381 { /* Inline model#MClassDef#mclass (self) on <self:Object(MClassDef)> */
3382 var3
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:Object(MClassDef)> */
3383 if (unlikely(var3
== NULL
)) {
3384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3385 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
3395 /* method model#MClassDef#mclass= for (self: MClassDef, MClass) */
3396 void model__MClassDef__mclass_61d(val
* self
, val
* p0
) {
3397 self
->attrs
[COLOR_model__MClassDef___mclass
].val
= p0
; /* _mclass on <self:MClassDef> */
3400 /* method model#MClassDef#mclass= for (self: Object, MClass) */
3401 void VIRTUAL_model__MClassDef__mclass_61d(val
* self
, val
* p0
) {
3402 { /* Inline model#MClassDef#mclass= (self,p0) on <self:Object(MClassDef)> */
3403 self
->attrs
[COLOR_model__MClassDef___mclass
].val
= p0
; /* _mclass on <self:Object(MClassDef)> */
3408 /* method model#MClassDef#bound_mtype for (self: MClassDef): MClassType */
3409 val
* model__MClassDef__bound_mtype(val
* self
) {
3410 val
* var
/* : MClassType */;
3411 val
* var1
/* : MClassType */;
3412 var1
= self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <self:MClassDef> */
3413 if (unlikely(var1
== NULL
)) {
3414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3415 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
3422 /* method model#MClassDef#bound_mtype for (self: Object): MClassType */
3423 val
* VIRTUAL_model__MClassDef__bound_mtype(val
* self
) {
3424 val
* var
/* : MClassType */;
3425 val
* var1
/* : MClassType */;
3426 val
* var3
/* : MClassType */;
3427 { /* Inline model#MClassDef#bound_mtype (self) on <self:Object(MClassDef)> */
3428 var3
= self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <self:Object(MClassDef)> */
3429 if (unlikely(var3
== NULL
)) {
3430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3431 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
3441 /* method model#MClassDef#bound_mtype= for (self: MClassDef, MClassType) */
3442 void model__MClassDef__bound_mtype_61d(val
* self
, val
* p0
) {
3443 self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
= p0
; /* _bound_mtype on <self:MClassDef> */
3446 /* method model#MClassDef#bound_mtype= for (self: Object, MClassType) */
3447 void VIRTUAL_model__MClassDef__bound_mtype_61d(val
* self
, val
* p0
) {
3448 { /* Inline model#MClassDef#bound_mtype= (self,p0) on <self:Object(MClassDef)> */
3449 self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
= p0
; /* _bound_mtype on <self:Object(MClassDef)> */
3454 /* method model#MClassDef#parameter_names for (self: MClassDef): Array[String] */
3455 val
* model__MClassDef__parameter_names(val
* self
) {
3456 val
* var
/* : Array[String] */;
3457 val
* var1
/* : Array[String] */;
3458 var1
= self
->attrs
[COLOR_model__MClassDef___parameter_names
].val
; /* _parameter_names on <self:MClassDef> */
3459 if (unlikely(var1
== NULL
)) {
3460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parameter_names");
3461 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 489);
3468 /* method model#MClassDef#parameter_names for (self: Object): Array[String] */
3469 val
* VIRTUAL_model__MClassDef__parameter_names(val
* self
) {
3470 val
* var
/* : Array[String] */;
3471 val
* var1
/* : Array[String] */;
3472 val
* var3
/* : Array[String] */;
3473 { /* Inline model#MClassDef#parameter_names (self) on <self:Object(MClassDef)> */
3474 var3
= self
->attrs
[COLOR_model__MClassDef___parameter_names
].val
; /* _parameter_names on <self:Object(MClassDef)> */
3475 if (unlikely(var3
== NULL
)) {
3476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parameter_names");
3477 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 489);
3487 /* method model#MClassDef#parameter_names= for (self: MClassDef, Array[String]) */
3488 void model__MClassDef__parameter_names_61d(val
* self
, val
* p0
) {
3489 self
->attrs
[COLOR_model__MClassDef___parameter_names
].val
= p0
; /* _parameter_names on <self:MClassDef> */
3492 /* method model#MClassDef#parameter_names= for (self: Object, Array[String]) */
3493 void VIRTUAL_model__MClassDef__parameter_names_61d(val
* self
, val
* p0
) {
3494 { /* Inline model#MClassDef#parameter_names= (self,p0) on <self:Object(MClassDef)> */
3495 self
->attrs
[COLOR_model__MClassDef___parameter_names
].val
= p0
; /* _parameter_names on <self:Object(MClassDef)> */
3500 /* method model#MClassDef#location= for (self: MClassDef, Location) */
3501 void model__MClassDef__location_61d(val
* self
, val
* p0
) {
3502 self
->attrs
[COLOR_model__MClassDef___location
].val
= p0
; /* _location on <self:MClassDef> */
3505 /* method model#MClassDef#location= for (self: Object, Location) */
3506 void VIRTUAL_model__MClassDef__location_61d(val
* self
, val
* p0
) {
3507 { /* Inline model#MClassDef#location= (self,p0) on <self:Object(MClassDef)> */
3508 self
->attrs
[COLOR_model__MClassDef___location
].val
= p0
; /* _location on <self:Object(MClassDef)> */
3513 /* method model#MClassDef#to_s for (self: MClassDef): String */
3514 val
* model__MClassDef__to_s(val
* self
) {
3515 val
* var
/* : String */;
3516 val
* var1
/* : String */;
3517 var1
= self
->attrs
[COLOR_model__MClassDef___to_s
].val
; /* _to_s on <self:MClassDef> */
3518 if (unlikely(var1
== NULL
)) {
3519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
3520 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 495);
3527 /* method model#MClassDef#to_s for (self: Object): String */
3528 val
* VIRTUAL_model__MClassDef__to_s(val
* self
) {
3529 val
* var
/* : String */;
3530 val
* var1
/* : String */;
3531 val
* var3
/* : String */;
3532 { /* Inline model#MClassDef#to_s (self) on <self:Object(MClassDef)> */
3533 var3
= self
->attrs
[COLOR_model__MClassDef___to_s
].val
; /* _to_s on <self:Object(MClassDef)> */
3534 if (unlikely(var3
== NULL
)) {
3535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
3536 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 495);
3546 /* method model#MClassDef#to_s= for (self: MClassDef, String) */
3547 void model__MClassDef__to_s_61d(val
* self
, val
* p0
) {
3548 self
->attrs
[COLOR_model__MClassDef___to_s
].val
= p0
; /* _to_s on <self:MClassDef> */
3551 /* method model#MClassDef#to_s= for (self: Object, String) */
3552 void VIRTUAL_model__MClassDef__to_s_61d(val
* self
, val
* p0
) {
3553 { /* Inline model#MClassDef#to_s= (self,p0) on <self:Object(MClassDef)> */
3554 self
->attrs
[COLOR_model__MClassDef___to_s
].val
= p0
; /* _to_s on <self:Object(MClassDef)> */
3559 /* method model#MClassDef#init for (self: MClassDef, MModule, MClassType, Location, Array[String]) */
3560 void model__MClassDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
3561 val
* var_mmodule
/* var mmodule: MModule */;
3562 val
* var_bound_mtype
/* var bound_mtype: MClassType */;
3563 val
* var_location
/* var location: Location */;
3564 val
* var_parameter_names
/* var parameter_names: Array[String] */;
3565 val
* var
/* : MClass */;
3566 val
* var3
/* : MClass */;
3567 long var4
/* : Int */;
3568 long var6
/* : Int */;
3569 long var7
/* : Int */;
3570 short int var8
/* : Bool */;
3571 short int var9
/* : Bool */;
3572 short int var11
/* : Bool */;
3573 val
* var14
/* : MClass */;
3574 val
* var16
/* : MClass */;
3575 val
* var19
/* : Array[MClassDef] */;
3576 val
* var21
/* : Array[MClassDef] */;
3577 val
* var22
/* : MClass */;
3578 val
* var24
/* : MClass */;
3579 val
* var25
/* : Array[MClassDef] */;
3580 val
* var27
/* : Array[MClassDef] */;
3581 static val
* varonce
;
3582 val
* var29
/* : String */;
3583 char* var30
/* : NativeString */;
3584 long var31
/* : Int */;
3585 val
* var32
/* : FlatString */;
3586 val
* var33
/* : MClass */;
3587 val
* var35
/* : MClass */;
3588 val
* var36
/* : Array[Object] */;
3589 long var37
/* : Int */;
3590 val
* var38
/* : NativeArray[Object] */;
3591 val
* var39
/* : String */;
3593 { /* Inline model_base#MEntity#init (self) on <self:MClassDef> */
3598 var_bound_mtype
= p1
;
3600 var_parameter_names
= p3
;
3602 { /* Inline model#MClassType#mclass (var_bound_mtype) on <var_bound_mtype:MClassType> */
3603 var3
= var_bound_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_bound_mtype:MClassType> */
3604 if (unlikely(var3
== NULL
)) {
3605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3606 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3614 { /* Inline model#MClass#arity (var) on <var:MClass> */
3615 var6
= var
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var:MClass> */
3621 var7
= array__AbstractArrayRead__length(var_parameter_names
);
3624 { /* Inline kernel#Int#== (var4,var7) on <var4:Int> */
3625 var11
= var4
== var7
;
3628 RET_LABEL10
:(void)0;
3632 if (unlikely(!var8
)) {
3633 PRINT_ERROR("Runtime error: %s", "Assert failed");
3634 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 501);
3638 { /* Inline model#MClassDef#bound_mtype= (self,var_bound_mtype) on <self:MClassDef> */
3639 self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
= var_bound_mtype
; /* _bound_mtype on <self:MClassDef> */
3640 RET_LABEL12
:(void)0;
3644 { /* Inline model#MClassDef#mmodule= (self,var_mmodule) on <self:MClassDef> */
3645 self
->attrs
[COLOR_model__MClassDef___mmodule
].val
= var_mmodule
; /* _mmodule on <self:MClassDef> */
3646 RET_LABEL13
:(void)0;
3650 { /* Inline model#MClassType#mclass (var_bound_mtype) on <var_bound_mtype:MClassType> */
3651 var16
= var_bound_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_bound_mtype:MClassType> */
3652 if (unlikely(var16
== NULL
)) {
3653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3654 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3658 RET_LABEL15
:(void)0;
3662 { /* Inline model#MClassDef#mclass= (self,var14) on <self:MClassDef> */
3663 self
->attrs
[COLOR_model__MClassDef___mclass
].val
= var14
; /* _mclass on <self:MClassDef> */
3664 RET_LABEL17
:(void)0;
3668 { /* Inline model#MClassDef#location= (self,var_location) on <self:MClassDef> */
3669 self
->attrs
[COLOR_model__MClassDef___location
].val
= var_location
; /* _location on <self:MClassDef> */
3670 RET_LABEL18
:(void)0;
3674 { /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
3675 var21
= var_mmodule
->attrs
[COLOR_model__MModule___mclassdefs
].val
; /* _mclassdefs on <var_mmodule:MModule> */
3676 if (unlikely(var21
== NULL
)) {
3677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
3678 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141);
3682 RET_LABEL20
:(void)0;
3686 array__Array__add(var19
, self
); /* Direct call array#Array#add on <var19:Array[MClassDef]>*/
3689 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
3690 var24
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
3691 if (unlikely(var24
== NULL
)) {
3692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3693 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
3697 RET_LABEL23
:(void)0;
3701 { /* Inline model#MClass#mclassdefs (var22) on <var22:MClass> */
3702 var27
= var22
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <var22:MClass> */
3703 if (unlikely(var27
== NULL
)) {
3704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
3705 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
3709 RET_LABEL26
:(void)0;
3713 array__Array__add(var25
, self
); /* Direct call array#Array#add on <var25:Array[MClassDef]>*/
3716 { /* Inline model#MClassDef#parameter_names= (self,var_parameter_names) on <self:MClassDef> */
3717 self
->attrs
[COLOR_model__MClassDef___parameter_names
].val
= var_parameter_names
; /* _parameter_names on <self:MClassDef> */
3718 RET_LABEL28
:(void)0;
3726 var32
= string__NativeString__to_s_with_length(var30
, var31
);
3731 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
3732 var35
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
3733 if (unlikely(var35
== NULL
)) {
3734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3735 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
3739 RET_LABEL34
:(void)0;
3742 var36
= NEW_array__Array(&type_array__Arraykernel__Object
);
3743 { /* var36 = array_instance Array[Object] */
3745 var38
= NEW_array__NativeArray(var37
, &type_array__NativeArraykernel__Object
);
3746 ((struct instance_array__NativeArray
*)var38
)->values
[0] = (val
*) var_mmodule
;
3747 ((struct instance_array__NativeArray
*)var38
)->values
[1] = (val
*) var29
;
3748 ((struct instance_array__NativeArray
*)var38
)->values
[2] = (val
*) var33
;
3750 ((void (*)(val
*, val
*, long))(var36
->class->vft
[COLOR_array__Array__with_native
]))(var36
, var38
, var37
) /* with_native on <var36:Array[Object]>*/;
3754 var39
= ((val
* (*)(val
*))(var36
->class->vft
[COLOR_string__Object__to_s
]))(var36
) /* to_s on <var36:Array[Object]>*/;
3757 { /* Inline model#MClassDef#to_s= (self,var39) on <self:MClassDef> */
3758 self
->attrs
[COLOR_model__MClassDef___to_s
].val
= var39
; /* _to_s on <self:MClassDef> */
3759 RET_LABEL40
:(void)0;
3764 /* method model#MClassDef#init for (self: Object, MModule, MClassType, Location, Array[String]) */
3765 void VIRTUAL_model__MClassDef__init(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
3766 model__MClassDef__init(self
, p0
, p1
, p2
, p3
); /* Direct call model#MClassDef#init on <self:Object(MClassDef)>*/
3769 /* method model#MClassDef#name for (self: MClassDef): String */
3770 val
* model__MClassDef__name(val
* self
) {
3771 val
* var
/* : String */;
3772 val
* var1
/* : MClass */;
3773 val
* var3
/* : MClass */;
3774 val
* var4
/* : String */;
3775 val
* var6
/* : String */;
3777 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
3778 var3
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
3779 if (unlikely(var3
== NULL
)) {
3780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3781 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
3789 { /* Inline model#MClass#name (var1) on <var1:MClass> */
3790 var6
= var1
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var1:MClass> */
3791 if (unlikely(var6
== NULL
)) {
3792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3793 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
3805 /* method model#MClassDef#name for (self: Object): String */
3806 val
* VIRTUAL_model__MClassDef__name(val
* self
) {
3807 val
* var
/* : String */;
3808 val
* var1
/* : String */;
3809 var1
= model__MClassDef__name(self
);
3814 /* method model#MClassDef#model for (self: MClassDef): Model */
3815 val
* model__MClassDef__model(val
* self
) {
3816 val
* var
/* : Model */;
3817 val
* var1
/* : MModule */;
3818 val
* var3
/* : MModule */;
3819 val
* var4
/* : Model */;
3820 val
* var6
/* : Model */;
3822 { /* Inline model#MClassDef#mmodule (self) on <self:MClassDef> */
3823 var3
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
3824 if (unlikely(var3
== NULL
)) {
3825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3826 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
3834 { /* Inline mmodule#MModule#model (var1) on <var1:MModule> */
3835 var6
= var1
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var1:MModule> */
3836 if (unlikely(var6
== NULL
)) {
3837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
3838 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
3850 /* method model#MClassDef#model for (self: Object): Model */
3851 val
* VIRTUAL_model__MClassDef__model(val
* self
) {
3852 val
* var
/* : Model */;
3853 val
* var1
/* : Model */;
3854 var1
= model__MClassDef__model(self
);
3859 /* method model#MClassDef#supertypes for (self: MClassDef): Array[MClassType] */
3860 val
* model__MClassDef__supertypes(val
* self
) {
3861 val
* var
/* : Array[MClassType] */;
3862 val
* var1
/* : Array[MClassType] */;
3863 var1
= self
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <self:MClassDef> */
3864 if (unlikely(var1
== NULL
)) {
3865 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
3866 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
3873 /* method model#MClassDef#supertypes for (self: Object): Array[MClassType] */
3874 val
* VIRTUAL_model__MClassDef__supertypes(val
* self
) {
3875 val
* var
/* : Array[MClassType] */;
3876 val
* var1
/* : Array[MClassType] */;
3877 val
* var3
/* : Array[MClassType] */;
3878 { /* Inline model#MClassDef#supertypes (self) on <self:Object(MClassDef)> */
3879 var3
= self
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <self:Object(MClassDef)> */
3880 if (unlikely(var3
== NULL
)) {
3881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
3882 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
3892 /* method model#MClassDef#set_supertypes for (self: MClassDef, Array[MClassType]) */
3893 void model__MClassDef__set_supertypes(val
* self
, val
* p0
) {
3894 val
* var_supertypes
/* var supertypes: Array[MClassType] */;
3895 val
* var
/* : nullable POSetElement[MClassDef] */;
3896 val
* var2
/* : nullable POSetElement[MClassDef] */;
3897 val
* var3
/* : null */;
3898 short int var4
/* : Bool */;
3899 short int var5
/* : Bool */;
3900 val
* var_other
/* var other: nullable Object */;
3901 short int var7
/* : Bool */;
3902 short int var9
/* : Bool */;
3903 val
* var10
/* : MModule */;
3904 val
* var12
/* : MModule */;
3905 val
* var_mmodule
/* var mmodule: MModule */;
3906 val
* var13
/* : Model */;
3907 val
* var15
/* : Model */;
3908 val
* var_model
/* var model: Model */;
3909 val
* var16
/* : MClassType */;
3910 val
* var18
/* : MClassType */;
3911 val
* var_mtype
/* var mtype: MClassType */;
3912 val
* var19
/* : ArrayIterator[nullable Object] */;
3913 short int var20
/* : Bool */;
3914 val
* var21
/* : nullable Object */;
3915 val
* var_supertype
/* var supertype: MClassType */;
3916 val
* var22
/* : Array[MClassType] */;
3917 val
* var24
/* : Array[MClassType] */;
3918 val
* var25
/* : POSet[MClassType] */;
3919 val
* var27
/* : POSet[MClassType] */;
3920 short int var28
/* : Bool */;
3921 val
* var29
/* : MClass */;
3922 val
* var31
/* : MClass */;
3923 val
* var32
/* : MModule */;
3924 val
* var34
/* : MModule */;
3925 short int var35
/* : Bool */;
3926 short int var36
/* : Bool */;
3927 short int var38
/* : Bool */;
3928 short int var40
/* : Bool */;
3929 short int var_
/* var : Bool */;
3930 val
* var41
/* : MClass */;
3931 val
* var43
/* : MClass */;
3932 val
* var44
/* : MModule */;
3933 val
* var46
/* : MModule */;
3934 short int var47
/* : Bool */;
3935 short int var48
/* : Bool */;
3936 short int var50
/* : Bool */;
3937 short int var52
/* : Bool */;
3938 val
* var53
/* : POSet[MClassType] */;
3939 val
* var55
/* : POSet[MClassType] */;
3940 var_supertypes
= p0
;
3942 { /* Inline model#MClassDef#in_hierarchy (self) on <self:MClassDef> */
3943 var2
= self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <self:MClassDef> */
3950 var4
= 1; /* is null */
3952 var4
= 0; /* arg is null but recv is not */
3955 { /* Inline kernel#Object#== (var,var3) on <var:nullable POSetElement[MClassDef]> */
3958 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable POSetElement[MClassDef](POSetElement[MClassDef])> */
3959 var9
= var
== var_other
;
3971 if (unlikely(!var4
)) {
3972 PRINT_ERROR("Runtime error: %s", "Assert \'unique_invocation\' failed");
3973 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 527);
3977 { /* Inline model#MClassDef#mmodule (self) on <self:MClassDef> */
3978 var12
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
3979 if (unlikely(var12
== NULL
)) {
3980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3981 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
3985 RET_LABEL11
:(void)0;
3988 var_mmodule
= var10
;
3990 { /* Inline mmodule#MModule#model (var_mmodule) on <var_mmodule:MModule> */
3991 var15
= var_mmodule
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var_mmodule:MModule> */
3992 if (unlikely(var15
== NULL
)) {
3993 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
3994 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
3998 RET_LABEL14
:(void)0;
4003 { /* Inline model#MClassDef#bound_mtype (self) on <self:MClassDef> */
4004 var18
= self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <self:MClassDef> */
4005 if (unlikely(var18
== NULL
)) {
4006 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4007 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
4011 RET_LABEL17
:(void)0;
4016 var19
= array__AbstractArrayRead__iterator(var_supertypes
);
4020 var20
= array__ArrayIterator__is_ok(var19
);
4024 var21
= array__ArrayIterator__item(var19
);
4026 var_supertype
= var21
;
4028 { /* Inline model#MClassDef#supertypes (self) on <self:MClassDef> */
4029 var24
= self
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <self:MClassDef> */
4030 if (unlikely(var24
== NULL
)) {
4031 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
4032 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
4036 RET_LABEL23
:(void)0;
4040 array__Array__add(var22
, var_supertype
); /* Direct call array#Array#add on <var22:Array[MClassType]>*/
4043 { /* Inline model#Model#full_mtype_specialization_hierarchy (var_model) on <var_model:Model> */
4044 var27
= var_model
->attrs
[COLOR_model__Model___full_mtype_specialization_hierarchy
].val
; /* _full_mtype_specialization_hierarchy on <var_model:Model> */
4045 if (unlikely(var27
== NULL
)) {
4046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy");
4047 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 59);
4051 RET_LABEL26
:(void)0;
4055 poset__POSet__add_edge(var25
, var_mtype
, var_supertype
); /* Direct call poset#POSet#add_edge on <var25:POSet[MClassType]>*/
4058 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4059 var31
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4060 if (unlikely(var31
== NULL
)) {
4061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4062 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
4066 RET_LABEL30
:(void)0;
4070 { /* Inline model#MClass#intro_mmodule (var29) on <var29:MClass> */
4071 var34
= var29
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var29:MClass> */
4072 if (unlikely(var34
== NULL
)) {
4073 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4074 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
4078 RET_LABEL33
:(void)0;
4082 { /* Inline kernel#Object#== (var32,var_mmodule) on <var32:MModule> */
4083 var_other
= var_mmodule
;
4085 { /* Inline kernel#Object#is_same_instance (var32,var_other) on <var32:MModule> */
4086 var40
= var32
== var_other
;
4089 RET_LABEL39
:(void)0;
4094 RET_LABEL37
:(void)0;
4101 { /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
4102 var43
= var_supertype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_supertype:MClassType> */
4103 if (unlikely(var43
== NULL
)) {
4104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4105 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4109 RET_LABEL42
:(void)0;
4113 { /* Inline model#MClass#intro_mmodule (var41) on <var41:MClass> */
4114 var46
= var41
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var41:MClass> */
4115 if (unlikely(var46
== NULL
)) {
4116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4117 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
4121 RET_LABEL45
:(void)0;
4125 { /* Inline kernel#Object#== (var44,var_mmodule) on <var44:MModule> */
4126 var_other
= var_mmodule
;
4128 { /* Inline kernel#Object#is_same_instance (var44,var_other) on <var44:MModule> */
4129 var52
= var44
== var_other
;
4132 RET_LABEL51
:(void)0;
4137 RET_LABEL49
:(void)0;
4147 { /* Inline model#Model#intro_mtype_specialization_hierarchy (var_model) on <var_model:Model> */
4148 var55
= var_model
->attrs
[COLOR_model__Model___intro_mtype_specialization_hierarchy
].val
; /* _intro_mtype_specialization_hierarchy on <var_model:Model> */
4149 if (unlikely(var55
== NULL
)) {
4150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy");
4151 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 48);
4155 RET_LABEL54
:(void)0;
4159 poset__POSet__add_edge(var53
, var_mtype
, var_supertype
); /* Direct call poset#POSet#add_edge on <var53:POSet[MClassType]>*/
4163 CONTINUE_label
: (void)0;
4165 array__ArrayIterator__next(var19
); /* Direct call array#ArrayIterator#next on <var19:ArrayIterator[nullable Object]>*/
4168 BREAK_label
: (void)0;
4171 /* method model#MClassDef#set_supertypes for (self: Object, Array[MClassType]) */
4172 void VIRTUAL_model__MClassDef__set_supertypes(val
* self
, val
* p0
) {
4173 model__MClassDef__set_supertypes(self
, p0
); /* Direct call model#MClassDef#set_supertypes on <self:Object(MClassDef)>*/
4176 /* method model#MClassDef#add_in_hierarchy for (self: MClassDef) */
4177 void model__MClassDef__add_in_hierarchy(val
* self
) {
4178 val
* var
/* : nullable POSetElement[MClassDef] */;
4179 val
* var2
/* : nullable POSetElement[MClassDef] */;
4180 val
* var3
/* : null */;
4181 short int var4
/* : Bool */;
4182 short int var5
/* : Bool */;
4183 val
* var_other
/* var other: nullable Object */;
4184 short int var7
/* : Bool */;
4185 short int var9
/* : Bool */;
4186 val
* var10
/* : MModule */;
4187 val
* var12
/* : MModule */;
4188 val
* var13
/* : Model */;
4189 val
* var15
/* : Model */;
4190 val
* var_model
/* var model: Model */;
4191 val
* var16
/* : POSet[MClassDef] */;
4192 val
* var18
/* : POSet[MClassDef] */;
4193 val
* var19
/* : POSetElement[Object] */;
4194 val
* var_res
/* var res: POSetElement[MClassDef] */;
4195 val
* var21
/* : MClassType */;
4196 val
* var23
/* : MClassType */;
4197 val
* var_mtype
/* var mtype: MClassType */;
4198 val
* var24
/* : MModule */;
4199 val
* var26
/* : MModule */;
4200 val
* var27
/* : Set[MClassDef] */;
4201 val
* var28
/* : Iterator[nullable Object] */;
4202 short int var29
/* : Bool */;
4203 val
* var30
/* : nullable Object */;
4204 val
* var_mclassdef
/* var mclassdef: MClassDef */;
4205 val
* var31
/* : POSet[Object] */;
4206 val
* var33
/* : POSet[Object] */;
4208 { /* Inline model#MClassDef#in_hierarchy (self) on <self:MClassDef> */
4209 var2
= self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <self:MClassDef> */
4216 var4
= 1; /* is null */
4218 var4
= 0; /* arg is null but recv is not */
4221 { /* Inline kernel#Object#== (var,var3) on <var:nullable POSetElement[MClassDef]> */
4224 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable POSetElement[MClassDef](POSetElement[MClassDef])> */
4225 var9
= var
== var_other
;
4237 if (unlikely(!var4
)) {
4238 PRINT_ERROR("Runtime error: %s", "Assert \'unique_invocation\' failed");
4239 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 552);
4243 { /* Inline model#MClassDef#mmodule (self) on <self:MClassDef> */
4244 var12
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
4245 if (unlikely(var12
== NULL
)) {
4246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4247 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
4251 RET_LABEL11
:(void)0;
4255 { /* Inline mmodule#MModule#model (var10) on <var10:MModule> */
4256 var15
= var10
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var10:MModule> */
4257 if (unlikely(var15
== NULL
)) {
4258 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
4259 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
4263 RET_LABEL14
:(void)0;
4268 { /* Inline model#Model#mclassdef_hierarchy (var_model) on <var_model:Model> */
4269 var18
= var_model
->attrs
[COLOR_model__Model___mclassdef_hierarchy
].val
; /* _mclassdef_hierarchy on <var_model:Model> */
4270 if (unlikely(var18
== NULL
)) {
4271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
4272 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 42);
4276 RET_LABEL17
:(void)0;
4280 var19
= poset__POSet__add_node(var16
, self
);
4284 { /* Inline model#MClassDef#in_hierarchy= (self,var_res) on <self:MClassDef> */
4285 self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
= var_res
; /* _in_hierarchy on <self:MClassDef> */
4286 RET_LABEL20
:(void)0;
4290 { /* Inline model#MClassDef#bound_mtype (self) on <self:MClassDef> */
4291 var23
= self
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <self:MClassDef> */
4292 if (unlikely(var23
== NULL
)) {
4293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4294 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
4298 RET_LABEL22
:(void)0;
4303 { /* Inline model#MClassDef#mmodule (self) on <self:MClassDef> */
4304 var26
= self
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <self:MClassDef> */
4305 if (unlikely(var26
== NULL
)) {
4306 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4307 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
4311 RET_LABEL25
:(void)0;
4315 var27
= model__MClassType__collect_mclassdefs(var_mtype
, var24
);
4318 var28
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var27
) /* iterator on <var27:Set[MClassDef]>*/;
4322 var29
= ((short int (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var28
) /* is_ok on <var28:Iterator[nullable Object]>*/;
4326 var30
= ((val
* (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var28
) /* item on <var28:Iterator[nullable Object]>*/;
4328 var_mclassdef
= var30
;
4330 { /* Inline poset#POSetElement#poset (var_res) on <var_res:POSetElement[MClassDef]> */
4331 var33
= var_res
->attrs
[COLOR_poset__POSetElement___poset
].val
; /* _poset on <var_res:POSetElement[MClassDef]> */
4332 if (unlikely(var33
== NULL
)) {
4333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
4334 PRINT_ERROR(" (%s:%d)\n", "lib/poset.nit", 188);
4338 RET_LABEL32
:(void)0;
4342 poset__POSet__add_edge(var31
, self
, var_mclassdef
); /* Direct call poset#POSet#add_edge on <var31:POSet[Object](POSet[MClassDef])>*/
4344 CONTINUE_label
: (void)0;
4346 ((void (*)(val
*))(var28
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var28
) /* next on <var28:Iterator[nullable Object]>*/;
4349 BREAK_label
: (void)0;
4352 /* method model#MClassDef#add_in_hierarchy for (self: Object) */
4353 void VIRTUAL_model__MClassDef__add_in_hierarchy(val
* self
) {
4354 model__MClassDef__add_in_hierarchy(self
); /* Direct call model#MClassDef#add_in_hierarchy on <self:Object(MClassDef)>*/
4357 /* method model#MClassDef#in_hierarchy for (self: MClassDef): nullable POSetElement[MClassDef] */
4358 val
* model__MClassDef__in_hierarchy(val
* self
) {
4359 val
* var
/* : nullable POSetElement[MClassDef] */;
4360 val
* var1
/* : nullable POSetElement[MClassDef] */;
4361 var1
= self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <self:MClassDef> */
4366 /* method model#MClassDef#in_hierarchy for (self: Object): nullable POSetElement[MClassDef] */
4367 val
* VIRTUAL_model__MClassDef__in_hierarchy(val
* self
) {
4368 val
* var
/* : nullable POSetElement[MClassDef] */;
4369 val
* var1
/* : nullable POSetElement[MClassDef] */;
4370 val
* var3
/* : nullable POSetElement[MClassDef] */;
4371 { /* Inline model#MClassDef#in_hierarchy (self) on <self:Object(MClassDef)> */
4372 var3
= self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
; /* _in_hierarchy on <self:Object(MClassDef)> */
4380 /* method model#MClassDef#in_hierarchy= for (self: MClassDef, nullable POSetElement[MClassDef]) */
4381 void model__MClassDef__in_hierarchy_61d(val
* self
, val
* p0
) {
4382 self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
= p0
; /* _in_hierarchy on <self:MClassDef> */
4385 /* method model#MClassDef#in_hierarchy= for (self: Object, nullable POSetElement[MClassDef]) */
4386 void VIRTUAL_model__MClassDef__in_hierarchy_61d(val
* self
, val
* p0
) {
4387 { /* Inline model#MClassDef#in_hierarchy= (self,p0) on <self:Object(MClassDef)> */
4388 self
->attrs
[COLOR_model__MClassDef___in_hierarchy
].val
= p0
; /* _in_hierarchy on <self:Object(MClassDef)> */
4393 /* method model#MClassDef#is_intro for (self: MClassDef): Bool */
4394 short int model__MClassDef__is_intro(val
* self
) {
4395 short int var
/* : Bool */;
4396 val
* var1
/* : MClass */;
4397 val
* var3
/* : MClass */;
4398 val
* var4
/* : MClassDef */;
4399 short int var5
/* : Bool */;
4400 short int var6
/* : Bool */;
4401 val
* var_other
/* var other: nullable Object */;
4402 short int var8
/* : Bool */;
4403 short int var10
/* : Bool */;
4405 { /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
4406 var3
= self
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <self:MClassDef> */
4407 if (unlikely(var3
== NULL
)) {
4408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4409 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
4417 var4
= model__MClass__intro(var1
);
4420 { /* Inline kernel#Object#== (var4,self) on <var4:MClassDef> */
4423 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MClassDef> */
4424 var10
= var4
== var_other
;
4441 /* method model#MClassDef#is_intro for (self: Object): Bool */
4442 short int VIRTUAL_model__MClassDef__is_intro(val
* self
) {
4443 short int var
/* : Bool */;
4444 short int var1
/* : Bool */;
4445 var1
= model__MClassDef__is_intro(self
);
4450 /* method model#MClassDef#intro_mproperties for (self: MClassDef): Array[MProperty] */
4451 val
* model__MClassDef__intro_mproperties(val
* self
) {
4452 val
* var
/* : Array[MProperty] */;
4453 val
* var1
/* : Array[MProperty] */;
4454 var1
= self
->attrs
[COLOR_model__MClassDef___intro_mproperties
].val
; /* _intro_mproperties on <self:MClassDef> */
4455 if (unlikely(var1
== NULL
)) {
4456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
4457 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 571);
4464 /* method model#MClassDef#intro_mproperties for (self: Object): Array[MProperty] */
4465 val
* VIRTUAL_model__MClassDef__intro_mproperties(val
* self
) {
4466 val
* var
/* : Array[MProperty] */;
4467 val
* var1
/* : Array[MProperty] */;
4468 val
* var3
/* : Array[MProperty] */;
4469 { /* Inline model#MClassDef#intro_mproperties (self) on <self:Object(MClassDef)> */
4470 var3
= self
->attrs
[COLOR_model__MClassDef___intro_mproperties
].val
; /* _intro_mproperties on <self:Object(MClassDef)> */
4471 if (unlikely(var3
== NULL
)) {
4472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
4473 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 571);
4483 /* method model#MClassDef#mpropdefs for (self: MClassDef): Array[MPropDef] */
4484 val
* model__MClassDef__mpropdefs(val
* self
) {
4485 val
* var
/* : Array[MPropDef] */;
4486 val
* var1
/* : Array[MPropDef] */;
4487 var1
= self
->attrs
[COLOR_model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <self:MClassDef> */
4488 if (unlikely(var1
== NULL
)) {
4489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4490 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 574);
4497 /* method model#MClassDef#mpropdefs for (self: Object): Array[MPropDef] */
4498 val
* VIRTUAL_model__MClassDef__mpropdefs(val
* self
) {
4499 val
* var
/* : Array[MPropDef] */;
4500 val
* var1
/* : Array[MPropDef] */;
4501 val
* var3
/* : Array[MPropDef] */;
4502 { /* Inline model#MClassDef#mpropdefs (self) on <self:Object(MClassDef)> */
4503 var3
= self
->attrs
[COLOR_model__MClassDef___mpropdefs
].val
; /* _mpropdefs on <self:Object(MClassDef)> */
4504 if (unlikely(var3
== NULL
)) {
4505 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
4506 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 574);
4516 /* method model#MType#name for (self: MType): String */
4517 val
* model__MType__name(val
* self
) {
4518 val
* var
/* : String */;
4519 val
* var1
/* : String */;
4521 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_string__Object__to_s
]))(self
) /* to_s on <self:MType>*/;
4528 /* method model#MType#name for (self: Object): String */
4529 val
* VIRTUAL_model__MType__name(val
* self
) {
4530 val
* var
/* : String */;
4531 val
* var1
/* : String */;
4532 var1
= model__MType__name(self
);
4537 /* method model#MType#is_subtype for (self: MType, MModule, nullable MClassType, MType): Bool */
4538 short int model__MType__is_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4539 short int var
/* : Bool */;
4540 val
* var_mmodule
/* var mmodule: MModule */;
4541 val
* var_anchor
/* var anchor: nullable MClassType */;
4542 val
* var_sup
/* var sup: MType */;
4543 val
* var_sub
/* var sub: MType */;
4544 short int var1
/* : Bool */;
4545 short int var2
/* : Bool */;
4546 val
* var_other
/* var other: nullable Object */;
4547 short int var4
/* : Bool */;
4548 short int var6
/* : Bool */;
4549 short int var7
/* : Bool */;
4550 val
* var8
/* : null */;
4551 short int var9
/* : Bool */;
4552 short int var10
/* : Bool */;
4553 short int var12
/* : Bool */;
4554 short int var14
/* : Bool */;
4555 short int var15
/* : Bool */;
4556 short int var16
/* : Bool */;
4557 short int var17
/* : Bool */;
4558 short int var18
/* : Bool */;
4559 val
* var19
/* : null */;
4560 short int var20
/* : Bool */;
4561 val
* var21
/* : null */;
4562 short int var22
/* : Bool */;
4563 short int var23
/* : Bool */;
4564 short int var24
/* : Bool */;
4567 short int var_
/* var : Bool */;
4568 short int var25
/* : Bool */;
4571 val
* var28
/* : null */;
4572 short int var29
/* : Bool */;
4573 short int var30
/* : Bool */;
4574 val
* var_other32
/* var other: nullable Object */;
4575 short int var33
/* : Bool */;
4576 short int var34
/* : Bool */;
4577 short int var35
/* : Bool */;
4578 val
* var36
/* : MClass */;
4579 val
* var38
/* : MClass */;
4580 val
* var39
/* : MClassType */;
4581 val
* var41
/* : MClassType */;
4582 short int var42
/* : Bool */;
4583 val
* var43
/* : MType */;
4584 short int var44
/* : Bool */;
4585 short int var45
/* : Bool */;
4588 short int var_48
/* var : Bool */;
4589 short int var49
/* : Bool */;
4592 val
* var52
/* : null */;
4593 short int var53
/* : Bool */;
4594 short int var54
/* : Bool */;
4595 short int var56
/* : Bool */;
4596 short int var57
/* : Bool */;
4597 short int var58
/* : Bool */;
4598 val
* var59
/* : MClass */;
4599 val
* var61
/* : MClass */;
4600 val
* var62
/* : MClassType */;
4601 val
* var64
/* : MClassType */;
4602 short int var65
/* : Bool */;
4603 val
* var66
/* : MType */;
4604 short int var67
/* : Bool */;
4605 short int var_sup_accept_null
/* var sup_accept_null: Bool */;
4606 short int var68
/* : Bool */;
4609 short int var71
/* : Bool */;
4610 val
* var72
/* : MType */;
4611 val
* var74
/* : MType */;
4612 short int var75
/* : Bool */;
4615 short int var78
/* : Bool */;
4616 short int var79
/* : Bool */;
4619 short int var82
/* : Bool */;
4620 short int var83
/* : Bool */;
4621 val
* var84
/* : MType */;
4622 val
* var86
/* : MType */;
4623 short int var87
/* : Bool */;
4626 short int var90
/* : Bool */;
4627 short int var91
/* : Bool */;
4630 short int var_94
/* var : Bool */;
4631 short int var95
/* : Bool */;
4634 short int var98
/* : Bool */;
4635 short int var99
/* : Bool */;
4636 short int var101
/* : Bool */;
4637 short int var103
/* : Bool */;
4638 short int var104
/* : Bool */;
4639 short int var105
/* : Bool */;
4642 short int var_108
/* var : Bool */;
4643 short int var109
/* : Bool */;
4646 val
* var112
/* : null */;
4647 short int var113
/* : Bool */;
4648 short int var114
/* : Bool */;
4649 short int var116
/* : Bool */;
4650 short int var117
/* : Bool */;
4651 short int var118
/* : Bool */;
4652 val
* var119
/* : MType */;
4653 short int var120
/* : Bool */;
4656 short int var123
/* : Bool */;
4657 short int var124
/* : Bool */;
4658 val
* var125
/* : MType */;
4659 val
* var127
/* : MType */;
4660 short int var128
/* : Bool */;
4663 short int var131
/* : Bool */;
4666 short int var134
/* : Bool */;
4669 short int var137
/* : Bool */;
4670 short int var138
/* : Bool */;
4673 short int var141
/* : Bool */;
4674 short int var142
/* : Bool */;
4675 short int var144
/* : Bool */;
4676 short int var146
/* : Bool */;
4677 short int var147
/* : Bool */;
4678 val
* var148
/* : null */;
4679 short int var149
/* : Bool */;
4680 short int var150
/* : Bool */;
4681 short int var152
/* : Bool */;
4682 short int var154
/* : Bool */;
4683 val
* var155
/* : MClassType */;
4684 val
* var_resolved_sub
/* var resolved_sub: MClassType */;
4685 val
* var156
/* : Set[MClass] */;
4686 val
* var157
/* : MClass */;
4687 val
* var159
/* : MClass */;
4688 short int var160
/* : Bool */;
4689 short int var_res
/* var res: Bool */;
4690 short int var161
/* : Bool */;
4691 short int var162
/* : Bool */;
4692 short int var163
/* : Bool */;
4693 short int var165
/* : Bool */;
4694 short int var166
/* : Bool */;
4695 short int var167
/* : Bool */;
4698 short int var170
/* : Bool */;
4699 short int var171
/* : Bool */;
4700 val
* var172
/* : MClass */;
4701 val
* var174
/* : MClass */;
4702 val
* var175
/* : MClassType */;
4703 val
* var_sub2
/* var sub2: MClassType */;
4704 val
* var176
/* : MClass */;
4705 val
* var178
/* : MClass */;
4706 val
* var179
/* : MClass */;
4707 val
* var181
/* : MClass */;
4708 short int var182
/* : Bool */;
4709 short int var183
/* : Bool */;
4710 short int var185
/* : Bool */;
4711 short int var187
/* : Bool */;
4712 val
* var188
/* : Range[Int] */;
4713 long var189
/* : Int */;
4714 val
* var190
/* : MClass */;
4715 val
* var192
/* : MClass */;
4716 long var193
/* : Int */;
4717 long var195
/* : Int */;
4718 val
* var196
/* : Discrete */;
4719 val
* var197
/* : Discrete */;
4720 val
* var198
/* : Iterator[Discrete] */;
4721 short int var199
/* : Bool */;
4722 val
* var200
/* : nullable Object */;
4723 long var_i
/* var i: Int */;
4724 long var201
/* : Int */;
4725 val
* var202
/* : Array[MType] */;
4726 val
* var204
/* : Array[MType] */;
4727 val
* var205
/* : nullable Object */;
4728 val
* var_sub_arg
/* var sub_arg: MType */;
4729 val
* var206
/* : Array[MType] */;
4730 val
* var208
/* : Array[MType] */;
4731 val
* var209
/* : nullable Object */;
4732 val
* var_sup_arg
/* var sup_arg: MType */;
4733 short int var210
/* : Bool */;
4734 short int var211
/* : Bool */;
4735 short int var212
/* : Bool */;
4736 short int var213
/* : Bool */;
4737 short int var215
/* : Bool */;
4738 short int var216
/* : Bool */;
4739 short int var217
/* : Bool */;
4745 { /* Inline kernel#Object#== (var_sub,var_sup) on <var_sub:MType> */
4746 var_other
= var_sup
;
4748 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:MType> */
4749 var6
= var_sub
== var_other
;
4768 if (var_anchor
== NULL
) {
4769 var9
= 1; /* is null */
4771 var9
= 0; /* arg is null but recv is not */
4774 { /* Inline kernel#Object#== (var_anchor,var8) on <var_anchor:nullable MClassType> */
4777 { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on <var_anchor:nullable MClassType(MClassType)> */
4778 var14
= var_anchor
== var_other
;
4781 RET_LABEL13
:(void)0;
4786 RET_LABEL11
:(void)0;
4792 var15
= ((short int (*)(val
*))(var_sub
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sub
) /* need_anchor on <var_sub:MType>*/;
4795 if (unlikely(!var16
)) {
4796 PRINT_ERROR("Runtime error: %s", "Assert failed");
4797 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 620);
4801 var17
= ((short int (*)(val
*))(var_sup
->class->vft
[COLOR_model__MType__need_anchor
]))(var_sup
) /* need_anchor on <var_sup:MType>*/;
4804 if (unlikely(!var18
)) {
4805 PRINT_ERROR("Runtime error: %s", "Assert failed");
4806 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 621);
4812 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>*/;
4814 if (unlikely(!var20
)) {
4815 PRINT_ERROR("Runtime error: %s", "Assert failed");
4816 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 623);
4821 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>*/;
4823 if (unlikely(!var22
)) {
4824 PRINT_ERROR("Runtime error: %s", "Assert failed");
4825 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 624);
4829 /* <var_sub:MType> isa MParameterType */
4830 cltype
= type_model__MParameterType
.color
;
4831 idtype
= type_model__MParameterType
.id
;
4832 if(cltype
>= var_sub
->type
->table_size
) {
4835 var24
= var_sub
->type
->type_table
[cltype
] == idtype
;
4841 /* <var_sub:MType> isa MVirtualType */
4842 cltype26
= type_model__MVirtualType
.color
;
4843 idtype27
= type_model__MVirtualType
.id
;
4844 if(cltype26
>= var_sub
->type
->table_size
) {
4847 var25
= var_sub
->type
->type_table
[cltype26
] == idtype27
;
4853 if (var_anchor
== NULL
) {
4854 var29
= 0; /* is null */
4856 var29
= 1; /* arg is null and recv is not */
4859 { /* Inline kernel#Object#!= (var_anchor,var28) on <var_anchor:nullable MClassType> */
4860 var_other32
= var28
;
4862 var34
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other32
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
4868 RET_LABEL31
:(void)0;
4872 if (unlikely(!var29
)) {
4873 PRINT_ERROR("Runtime error: %s", "Assert failed");
4874 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 631);
4878 { /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
4879 var38
= var_anchor
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
4880 if (unlikely(var38
== NULL
)) {
4881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4882 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4886 RET_LABEL37
:(void)0;
4890 { /* Inline model#MClass#mclass_type (var36) on <var36:MClass> */
4891 var41
= var36
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var36:MClass> */
4892 if (unlikely(var41
== NULL
)) {
4893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4894 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
4898 RET_LABEL40
:(void)0;
4903 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>*/;
4908 /* <var_sup:MType> isa MParameterType */
4909 cltype46
= type_model__MParameterType
.color
;
4910 idtype47
= type_model__MParameterType
.id
;
4911 if(cltype46
>= var_sup
->type
->table_size
) {
4914 var45
= var_sup
->type
->type_table
[cltype46
] == idtype47
;
4920 /* <var_sup:MType> isa MVirtualType */
4921 cltype50
= type_model__MVirtualType
.color
;
4922 idtype51
= type_model__MVirtualType
.id
;
4923 if(cltype50
>= var_sup
->type
->table_size
) {
4926 var49
= var_sup
->type
->type_table
[cltype50
] == idtype51
;
4932 if (var_anchor
== NULL
) {
4933 var53
= 0; /* is null */
4935 var53
= 1; /* arg is null and recv is not */
4938 { /* Inline kernel#Object#!= (var_anchor,var52) on <var_anchor:nullable MClassType> */
4939 var_other32
= var52
;
4941 var57
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other32
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
4947 RET_LABEL55
:(void)0;
4951 if (unlikely(!var53
)) {
4952 PRINT_ERROR("Runtime error: %s", "Assert failed");
4953 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 635);
4957 { /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
4958 var61
= var_anchor
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
4959 if (unlikely(var61
== NULL
)) {
4960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4961 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
4965 RET_LABEL60
:(void)0;
4969 { /* Inline model#MClass#mclass_type (var59) on <var59:MClass> */
4970 var64
= var59
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var59:MClass> */
4971 if (unlikely(var64
== NULL
)) {
4972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4973 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
4977 RET_LABEL63
:(void)0;
4982 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>*/;
4988 var_sup_accept_null
= var67
;
4989 /* <var_sup:MType> isa MNullableType */
4990 cltype69
= type_model__MNullableType
.color
;
4991 idtype70
= type_model__MNullableType
.id
;
4992 if(cltype69
>= var_sup
->type
->table_size
) {
4995 var68
= var_sup
->type
->type_table
[cltype69
] == idtype70
;
4999 var_sup_accept_null
= var71
;
5001 { /* Inline model#MNullableType#mtype (var_sup) on <var_sup:MType(MNullableType)> */
5002 var74
= var_sup
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_sup:MType(MNullableType)> */
5003 if (unlikely(var74
== NULL
)) {
5004 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5005 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
5009 RET_LABEL73
:(void)0;
5014 /* <var_sup:MType> isa MNullType */
5015 cltype76
= type_model__MNullType
.color
;
5016 idtype77
= type_model__MNullType
.id
;
5017 if(cltype76
>= var_sup
->type
->table_size
) {
5020 var75
= var_sup
->type
->type_table
[cltype76
] == idtype77
;
5024 var_sup_accept_null
= var78
;
5028 /* <var_sub:MType> isa MNullableType */
5029 cltype80
= type_model__MNullableType
.color
;
5030 idtype81
= type_model__MNullableType
.id
;
5031 if(cltype80
>= var_sub
->type
->table_size
) {
5034 var79
= var_sub
->type
->type_table
[cltype80
] == idtype81
;
5037 var82
= !var_sup_accept_null
;
5045 { /* Inline model#MNullableType#mtype (var_sub) on <var_sub:MType(MNullableType)> */
5046 var86
= var_sub
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_sub:MType(MNullableType)> */
5047 if (unlikely(var86
== NULL
)) {
5048 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5049 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
5053 RET_LABEL85
:(void)0;
5058 /* <var_sub:MType> isa MNullType */
5059 cltype88
= type_model__MNullType
.color
;
5060 idtype89
= type_model__MNullType
.id
;
5061 if(cltype88
>= var_sub
->type
->table_size
) {
5064 var87
= var_sub
->type
->type_table
[cltype88
] == idtype89
;
5067 var
= var_sup_accept_null
;
5072 /* <var_sup:MType> isa MParameterType */
5073 cltype92
= type_model__MParameterType
.color
;
5074 idtype93
= type_model__MParameterType
.id
;
5075 if(cltype92
>= var_sup
->type
->table_size
) {
5078 var91
= var_sup
->type
->type_table
[cltype92
] == idtype93
;
5084 /* <var_sup:MType> isa MVirtualType */
5085 cltype96
= type_model__MVirtualType
.color
;
5086 idtype97
= type_model__MVirtualType
.id
;
5087 if(cltype96
>= var_sup
->type
->table_size
) {
5090 var95
= var_sup
->type
->type_table
[cltype96
] == idtype97
;
5096 { /* Inline kernel#Object#== (var_sub,var_sup) on <var_sub:MType> */
5097 var_other
= var_sup
;
5099 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:MType> */
5100 var103
= var_sub
== var_other
;
5103 RET_LABEL102
:(void)0;
5108 RET_LABEL100
:(void)0;
5116 /* <var_sub:MType> isa MParameterType */
5117 cltype106
= type_model__MParameterType
.color
;
5118 idtype107
= type_model__MParameterType
.id
;
5119 if(cltype106
>= var_sub
->type
->table_size
) {
5122 var105
= var_sub
->type
->type_table
[cltype106
] == idtype107
;
5128 /* <var_sub:MType> isa MVirtualType */
5129 cltype110
= type_model__MVirtualType
.color
;
5130 idtype111
= type_model__MVirtualType
.id
;
5131 if(cltype110
>= var_sub
->type
->table_size
) {
5134 var109
= var_sub
->type
->type_table
[cltype110
] == idtype111
;
5140 if (var_anchor
== NULL
) {
5141 var113
= 0; /* is null */
5143 var113
= 1; /* arg is null and recv is not */
5146 { /* Inline kernel#Object#!= (var_anchor,var112) on <var_anchor:nullable MClassType> */
5147 var_other32
= var112
;
5149 var117
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other32
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
5155 RET_LABEL115
:(void)0;
5159 if (unlikely(!var113
)) {
5160 PRINT_ERROR("Runtime error: %s", "Assert failed");
5161 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 667);
5165 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>*/;
5168 /* <var_sub:MType> isa MNullableType */
5169 cltype121
= type_model__MNullableType
.color
;
5170 idtype122
= type_model__MNullableType
.id
;
5171 if(cltype121
>= var_sub
->type
->table_size
) {
5174 var120
= var_sub
->type
->type_table
[cltype121
] == idtype122
;
5177 var123
= !var_sup_accept_null
;
5185 { /* Inline model#MNullableType#mtype (var_sub) on <var_sub:MType(MNullableType)> */
5186 var127
= var_sub
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_sub:MType(MNullableType)> */
5187 if (unlikely(var127
== NULL
)) {
5188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5189 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
5193 RET_LABEL126
:(void)0;
5198 /* <var_sub:MType> isa MNullType */
5199 cltype129
= type_model__MNullType
.color
;
5200 idtype130
= type_model__MNullType
.id
;
5201 if(cltype129
>= var_sub
->type
->table_size
) {
5204 var128
= var_sub
->type
->type_table
[cltype129
] == idtype130
;
5207 var
= var_sup_accept_null
;
5214 /* <var_sub:MType> isa MClassType */
5215 cltype132
= type_model__MClassType
.color
;
5216 idtype133
= type_model__MClassType
.id
;
5217 if(cltype132
>= var_sub
->type
->table_size
) {
5220 var131
= var_sub
->type
->type_table
[cltype132
] == idtype133
;
5222 if (unlikely(!var131
)) {
5223 PRINT_ERROR("Runtime error: %s", "Assert failed");
5224 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 679);
5227 /* <var_sup:MType> isa MNullType */
5228 cltype135
= type_model__MNullType
.color
;
5229 idtype136
= type_model__MNullType
.id
;
5230 if(cltype135
>= var_sup
->type
->table_size
) {
5233 var134
= var_sup
->type
->type_table
[cltype135
] == idtype136
;
5241 /* <var_sup:MType> isa MClassType */
5242 cltype139
= type_model__MClassType
.color
;
5243 idtype140
= type_model__MClassType
.id
;
5244 if(cltype139
>= var_sup
->type
->table_size
) {
5247 var138
= var_sup
->type
->type_table
[cltype139
] == idtype140
;
5249 if (unlikely(!var138
)) {
5250 PRINT_ERROR("Runtime error: %s", "Assert failed");
5251 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 686);
5255 { /* Inline kernel#Object#== (var_sub,var_sup) on <var_sub:MType(MClassType)> */
5256 var_other
= var_sup
;
5258 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:MType(MClassType)> */
5259 var146
= var_sub
== var_other
;
5262 RET_LABEL145
:(void)0;
5267 RET_LABEL143
:(void)0;
5278 if (var_anchor
== NULL
) {
5279 var149
= 1; /* is null */
5281 var149
= 0; /* arg is null but recv is not */
5284 { /* Inline kernel#Object#== (var_anchor,var148) on <var_anchor:nullable MClassType> */
5287 { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on <var_anchor:nullable MClassType(MClassType)> */
5288 var154
= var_anchor
== var_other
;
5291 RET_LABEL153
:(void)0;
5296 RET_LABEL151
:(void)0;
5301 var_anchor
= var_sub
;
5305 var155
= model__MClassType__anchor_to(var_sub
, var_mmodule
, var_anchor
);
5307 var_resolved_sub
= var155
;
5309 var156
= model__MClassType__collect_mclasses(var_resolved_sub
, var_mmodule
);
5312 { /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MClassType)> */
5313 var159
= var_sup
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sup:MType(MClassType)> */
5314 if (unlikely(var159
== NULL
)) {
5315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5316 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
5320 RET_LABEL158
:(void)0;
5324 var160
= ((short int (*)(val
*, val
*))(var156
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var156
, var157
) /* has on <var156:Set[MClass]>*/;
5329 { /* Inline kernel#Bool#== (var_res,var161) on <var_res:Bool> */
5330 var165
= var_res
== var161
;
5333 RET_LABEL164
:(void)0;
5343 /* <var_sup:MType(MClassType)> isa MGenericType */
5344 cltype168
= type_model__MGenericType
.color
;
5345 idtype169
= type_model__MGenericType
.id
;
5346 if(cltype168
>= var_sup
->type
->table_size
) {
5349 var167
= var_sup
->type
->type_table
[cltype168
] == idtype169
;
5359 { /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MGenericType)> */
5360 var174
= var_sup
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sup:MType(MGenericType)> */
5361 if (unlikely(var174
== NULL
)) {
5362 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5363 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
5367 RET_LABEL173
:(void)0;
5371 var175
= model__MType__supertype_to(var_sub
, var_mmodule
, var_anchor
, var172
);
5375 { /* Inline model#MClassType#mclass (var_sub2) on <var_sub2:MClassType> */
5376 var178
= var_sub2
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sub2:MClassType> */
5377 if (unlikely(var178
== NULL
)) {
5378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5379 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
5383 RET_LABEL177
:(void)0;
5387 { /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MGenericType)> */
5388 var181
= var_sup
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sup:MType(MGenericType)> */
5389 if (unlikely(var181
== NULL
)) {
5390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5391 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
5395 RET_LABEL180
:(void)0;
5399 { /* Inline kernel#Object#== (var176,var179) on <var176:MClass> */
5402 { /* Inline kernel#Object#is_same_instance (var176,var_other) on <var176:MClass> */
5403 var187
= var176
== var_other
;
5406 RET_LABEL186
:(void)0;
5411 RET_LABEL184
:(void)0;
5415 if (unlikely(!var182
)) {
5416 PRINT_ERROR("Runtime error: %s", "Assert failed");
5417 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 698);
5420 var188
= NEW_range__Range(&type_range__Rangekernel__Int
);
5423 { /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MGenericType)> */
5424 var192
= var_sup
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_sup:MType(MGenericType)> */
5425 if (unlikely(var192
== NULL
)) {
5426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5427 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
5431 RET_LABEL191
:(void)0;
5435 { /* Inline model#MClass#arity (var190) on <var190:MClass> */
5436 var195
= var190
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var190:MClass> */
5438 RET_LABEL194
:(void)0;
5442 var196
= BOX_kernel__Int(var189
); /* autobox from Int to Discrete */
5443 var197
= BOX_kernel__Int(var193
); /* autobox from Int to Discrete */
5444 range__Range__without_last(var188
, var196
, var197
); /* Direct call range#Range#without_last on <var188:Range[Int]>*/
5447 var198
= range__Range__iterator(var188
);
5451 var199
= ((short int (*)(val
*))(var198
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var198
) /* is_ok on <var198:Iterator[Discrete]>*/;
5455 var200
= ((val
* (*)(val
*))(var198
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var198
) /* item on <var198:Iterator[Discrete]>*/;
5457 var201
= ((struct instance_kernel__Int
*)var200
)->value
; /* autounbox from nullable Object to Int */;
5460 { /* Inline model#MClassType#arguments (var_sub2) on <var_sub2:MClassType> */
5461 var204
= var_sub2
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_sub2:MClassType> */
5462 if (unlikely(var204
== NULL
)) {
5463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
5464 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
5468 RET_LABEL203
:(void)0;
5472 var205
= array__Array___91d_93d(var202
, var_i
);
5474 var_sub_arg
= var205
;
5476 { /* Inline model#MClassType#arguments (var_sup) on <var_sup:MType(MGenericType)> */
5477 var208
= var_sup
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_sup:MType(MGenericType)> */
5478 if (unlikely(var208
== NULL
)) {
5479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
5480 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
5484 RET_LABEL207
:(void)0;
5488 var209
= array__Array___91d_93d(var206
, var_i
);
5490 var_sup_arg
= var209
;
5492 var210
= model__MType__is_subtype(var_sub_arg
, var_mmodule
, var_anchor
, var_sup_arg
);
5497 { /* Inline kernel#Bool#== (var_res,var211) on <var_res:Bool> */
5498 var215
= var_res
== var211
;
5501 RET_LABEL214
:(void)0;
5511 CONTINUE_label
: (void)0;
5513 ((void (*)(val
*))(var198
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var198
) /* next on <var198:Iterator[Discrete]>*/;
5516 BREAK_label
: (void)0;
5523 /* method model#MType#is_subtype for (self: Object, MModule, nullable MClassType, MType): Bool */
5524 short int VIRTUAL_model__MType__is_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5525 short int var
/* : Bool */;
5526 short int var1
/* : Bool */;
5527 var1
= model__MType__is_subtype(self
, p0
, p1
, p2
);
5532 /* method model#MType#anchor_to for (self: MType, MModule, MClassType): MType */
5533 val
* model__MType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
5534 val
* var
/* : MType */;
5535 val
* var_mmodule
/* var mmodule: MModule */;
5536 val
* var_anchor
/* var anchor: MClassType */;
5537 short int var1
/* : Bool */;
5538 short int var2
/* : Bool */;
5539 short int var3
/* : Bool */;
5540 short int var4
/* : Bool */;
5541 val
* var5
/* : null */;
5542 short int var6
/* : Bool */;
5543 val
* var7
/* : MType */;
5544 val
* var_res
/* var res: MType */;
5545 short int var8
/* : Bool */;
5546 short int var9
/* : Bool */;
5550 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
5559 var3
= ((short int (*)(val
*))(var_anchor
->class->vft
[COLOR_model__MType__need_anchor
]))(var_anchor
) /* need_anchor on <var_anchor:MClassType>*/;
5562 if (unlikely(!var4
)) {
5563 PRINT_ERROR("Runtime error: %s", "Assert failed");
5564 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 743);
5570 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>*/;
5574 var8
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__need_anchor
]))(var_res
) /* need_anchor on <var_res:MType>*/;
5577 if (unlikely(!var9
)) {
5578 PRINT_ERROR("Runtime error: %s", "Assert failed");
5579 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 746);
5587 /* method model#MType#anchor_to for (self: Object, MModule, MClassType): MType */
5588 val
* VIRTUAL_model__MType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
5589 val
* var
/* : MType */;
5590 val
* var1
/* : MType */;
5591 var1
= model__MType__anchor_to(self
, p0
, p1
);
5596 /* method model#MType#need_anchor for (self: MType): Bool */
5597 short int model__MType__need_anchor(val
* self
) {
5598 short int var
/* : Bool */;
5599 short int var1
/* : Bool */;
5606 /* method model#MType#need_anchor for (self: Object): Bool */
5607 short int VIRTUAL_model__MType__need_anchor(val
* self
) {
5608 short int var
/* : Bool */;
5609 short int var1
/* : Bool */;
5610 var1
= model__MType__need_anchor(self
);
5615 /* method model#MType#supertype_to for (self: MType, MModule, nullable MClassType, MClass): MClassType */
5616 val
* model__MType__supertype_to(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5617 val
* var
/* : MClassType */;
5618 val
* var_mmodule
/* var mmodule: MModule */;
5619 val
* var_anchor
/* var anchor: nullable MClassType */;
5620 val
* var_super_mclass
/* var super_mclass: MClass */;
5621 long var1
/* : Int */;
5622 long var3
/* : Int */;
5623 long var4
/* : Int */;
5624 short int var5
/* : Bool */;
5625 short int var6
/* : Bool */;
5626 short int var8
/* : Bool */;
5627 val
* var9
/* : MClassType */;
5628 val
* var11
/* : MClassType */;
5629 short int var12
/* : Bool */;
5630 short int var13
/* : Bool */;
5633 short int var_
/* var : Bool */;
5634 val
* var14
/* : MClass */;
5635 val
* var16
/* : MClass */;
5636 short int var17
/* : Bool */;
5637 short int var18
/* : Bool */;
5638 val
* var_other
/* var other: nullable Object */;
5639 short int var20
/* : Bool */;
5640 short int var22
/* : Bool */;
5641 short int var23
/* : Bool */;
5642 val
* var24
/* : null */;
5643 short int var25
/* : Bool */;
5644 short int var26
/* : Bool */;
5645 val
* var_other28
/* var other: nullable Object */;
5646 short int var29
/* : Bool */;
5647 short int var30
/* : Bool */;
5648 short int var31
/* : Bool */;
5649 val
* var32
/* : MType */;
5650 val
* var_resolved_self
/* var resolved_self: nullable Object */;
5651 val
* var33
/* : Set[MClassType] */;
5652 val
* var_supertypes
/* var supertypes: Set[MClassType] */;
5653 val
* var34
/* : Iterator[nullable Object] */;
5654 short int var35
/* : Bool */;
5655 val
* var36
/* : nullable Object */;
5656 val
* var_supertype
/* var supertype: MClassType */;
5657 val
* var37
/* : MClass */;
5658 val
* var39
/* : MClass */;
5659 short int var40
/* : Bool */;
5660 short int var41
/* : Bool */;
5661 short int var43
/* : Bool */;
5662 short int var45
/* : Bool */;
5663 short int var46
/* : Bool */;
5664 val
* var47
/* : MType */;
5667 var_super_mclass
= p2
;
5669 { /* Inline model#MClass#arity (var_super_mclass) on <var_super_mclass:MClass> */
5670 var3
= var_super_mclass
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var_super_mclass:MClass> */
5677 { /* Inline kernel#Int#== (var1,var4) on <var1:Int> */
5678 var8
= var1
== var4
;
5687 { /* Inline model#MClass#mclass_type (var_super_mclass) on <var_super_mclass:MClass> */
5688 var11
= var_super_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_super_mclass:MClass> */
5689 if (unlikely(var11
== NULL
)) {
5690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5691 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
5695 RET_LABEL10
:(void)0;
5702 /* <self:MType> isa MClassType */
5703 cltype
= type_model__MClassType
.color
;
5704 idtype
= type_model__MClassType
.id
;
5705 if(cltype
>= self
->type
->table_size
) {
5708 var13
= self
->type
->type_table
[cltype
] == idtype
;
5713 { /* Inline model#MClassType#mclass (self) on <self:MType(MClassType)> */
5714 var16
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MType(MClassType)> */
5715 if (unlikely(var16
== NULL
)) {
5716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5717 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
5721 RET_LABEL15
:(void)0;
5725 { /* Inline kernel#Object#== (var14,var_super_mclass) on <var14:MClass> */
5726 var_other
= var_super_mclass
;
5728 { /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:MClass> */
5729 var22
= var14
== var_other
;
5732 RET_LABEL21
:(void)0;
5737 RET_LABEL19
:(void)0;
5751 var23
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
5755 if (var_anchor
== NULL
) {
5756 var25
= 0; /* is null */
5758 var25
= 1; /* arg is null and recv is not */
5761 { /* Inline kernel#Object#!= (var_anchor,var24) on <var_anchor:nullable MClassType> */
5762 var_other28
= var24
;
5764 var30
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other28
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
5770 RET_LABEL27
:(void)0;
5774 if (unlikely(!var25
)) {
5775 PRINT_ERROR("Runtime error: %s", "Assert failed");
5776 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 772);
5780 var32
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MType__anchor_to
]))(self
, var_mmodule
, var_anchor
) /* anchor_to on <self:MType>*/;
5782 var_resolved_self
= var32
;
5784 var_resolved_self
= self
;
5787 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)>*/;
5789 var_supertypes
= var33
;
5791 var34
= ((val
* (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supertypes
) /* iterator on <var_supertypes:Set[MClassType]>*/;
5795 var35
= ((short int (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var34
) /* is_ok on <var34:Iterator[nullable Object]>*/;
5799 var36
= ((val
* (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var34
) /* item on <var34:Iterator[nullable Object]>*/;
5801 var_supertype
= var36
;
5803 { /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
5804 var39
= var_supertype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_supertype:MClassType> */
5805 if (unlikely(var39
== NULL
)) {
5806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5807 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
5811 RET_LABEL38
:(void)0;
5815 { /* Inline kernel#Object#== (var37,var_super_mclass) on <var37:MClass> */
5816 var_other
= var_super_mclass
;
5818 { /* Inline kernel#Object#is_same_instance (var37,var_other) on <var37:MClass> */
5819 var45
= var37
== var_other
;
5822 RET_LABEL44
:(void)0;
5827 RET_LABEL42
:(void)0;
5834 var47
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_supertype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_supertype
, self
, var_anchor
, var_mmodule
, var46
) /* resolve_for on <var_supertype:MClassType>*/;
5840 CONTINUE_label
: (void)0;
5842 ((void (*)(val
*))(var34
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var34
) /* next on <var34:Iterator[nullable Object]>*/;
5845 BREAK_label
: (void)0;
5846 PRINT_ERROR("Runtime error: %s", "Aborted");
5847 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 784);
5852 /* method model#MType#supertype_to for (self: Object, MModule, nullable MClassType, MClass): MClassType */
5853 val
* VIRTUAL_model__MType__supertype_to(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5854 val
* var
/* : MClassType */;
5855 val
* var1
/* : MClassType */;
5856 var1
= model__MType__supertype_to(self
, p0
, p1
, p2
);
5861 /* method model#MType#can_resolve_for for (self: MType, MType, nullable MClassType, MModule): Bool */
5862 short int model__MType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5863 short int var
/* : Bool */;
5864 const char* var_class_name
;
5865 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
5866 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name
);
5867 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 857);
5872 /* method model#MType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
5873 short int VIRTUAL_model__MType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
5874 short int var
/* : Bool */;
5875 short int var1
/* : Bool */;
5876 const char* var_class_name
;
5877 { /* Inline model#MType#can_resolve_for (self,p0,p1,p2) on <self:Object(MType)> */
5878 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
5879 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name
);
5880 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 857);
5888 /* method model#MType#as_nullable for (self: MType): MType */
5889 val
* model__MType__as_nullable(val
* self
) {
5890 val
* var
/* : MType */;
5891 val
* var1
/* : nullable MType */;
5892 val
* var3
/* : nullable MType */;
5893 val
* var_res
/* var res: nullable MType */;
5894 val
* var4
/* : null */;
5895 short int var5
/* : Bool */;
5896 short int var6
/* : Bool */;
5897 val
* var_other
/* var other: nullable Object */;
5898 short int var8
/* : Bool */;
5899 short int var9
/* : Bool */;
5900 short int var10
/* : Bool */;
5901 val
* var11
/* : MNullableType */;
5903 { /* Inline model#MType#as_nullable_cache (self) on <self:MType> */
5904 var3
= self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
; /* _as_nullable_cache on <self:MType> */
5911 if (var_res
== NULL
) {
5912 var5
= 0; /* is null */
5914 var5
= 1; /* arg is null and recv is not */
5917 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable MType> */
5920 var9
= ((short int (*)(val
*, val
*))(var_res
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_res
, var_other
) /* == on <var_res:nullable MType(MType)>*/;
5935 var11
= NEW_model__MNullableType(&type_model__MNullableType
);
5937 model__MNullableType__init(var11
, self
); /* Direct call model#MNullableType#init on <var11:MNullableType>*/
5941 { /* Inline model#MType#as_nullable_cache= (self,var_res) on <self:MType> */
5942 self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
= var_res
; /* _as_nullable_cache on <self:MType> */
5943 RET_LABEL12
:(void)0;
5951 /* method model#MType#as_nullable for (self: Object): MType */
5952 val
* VIRTUAL_model__MType__as_nullable(val
* self
) {
5953 val
* var
/* : MType */;
5954 val
* var1
/* : MType */;
5955 var1
= model__MType__as_nullable(self
);
5960 /* method model#MType#as_notnullable for (self: MType): MType */
5961 val
* model__MType__as_notnullable(val
* self
) {
5962 val
* var
/* : MType */;
5968 /* method model#MType#as_notnullable for (self: Object): MType */
5969 val
* VIRTUAL_model__MType__as_notnullable(val
* self
) {
5970 val
* var
/* : MType */;
5971 val
* var1
/* : MType */;
5972 var1
= model__MType__as_notnullable(self
);
5977 /* method model#MType#as_nullable_cache for (self: MType): nullable MType */
5978 val
* model__MType__as_nullable_cache(val
* self
) {
5979 val
* var
/* : nullable MType */;
5980 val
* var1
/* : nullable MType */;
5981 var1
= self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
; /* _as_nullable_cache on <self:MType> */
5986 /* method model#MType#as_nullable_cache for (self: Object): nullable MType */
5987 val
* VIRTUAL_model__MType__as_nullable_cache(val
* self
) {
5988 val
* var
/* : nullable MType */;
5989 val
* var1
/* : nullable MType */;
5990 val
* var3
/* : nullable MType */;
5991 { /* Inline model#MType#as_nullable_cache (self) on <self:Object(MType)> */
5992 var3
= self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
; /* _as_nullable_cache on <self:Object(MType)> */
6000 /* method model#MType#as_nullable_cache= for (self: MType, nullable MType) */
6001 void model__MType__as_nullable_cache_61d(val
* self
, val
* p0
) {
6002 self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
= p0
; /* _as_nullable_cache on <self:MType> */
6005 /* method model#MType#as_nullable_cache= for (self: Object, nullable MType) */
6006 void VIRTUAL_model__MType__as_nullable_cache_61d(val
* self
, val
* p0
) {
6007 { /* Inline model#MType#as_nullable_cache= (self,p0) on <self:Object(MType)> */
6008 self
->attrs
[COLOR_model__MType___as_nullable_cache
].val
= p0
; /* _as_nullable_cache on <self:Object(MType)> */
6013 /* method model#MType#length for (self: MType): Int */
6014 long model__MType__length(val
* self
) {
6015 long var
/* : Int */;
6016 long var1
/* : Int */;
6023 /* method model#MType#length for (self: Object): Int */
6024 long VIRTUAL_model__MType__length(val
* self
) {
6025 long var
/* : Int */;
6026 long var1
/* : Int */;
6027 var1
= model__MType__length(self
);
6032 /* method model#MType#collect_mclassdefs for (self: MType, MModule): Set[MClassDef] */
6033 val
* model__MType__collect_mclassdefs(val
* self
, val
* p0
) {
6034 val
* var
/* : Set[MClassDef] */;
6035 const char* var_class_name
;
6036 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6037 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name
);
6038 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 929);
6043 /* method model#MType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
6044 val
* VIRTUAL_model__MType__collect_mclassdefs(val
* self
, val
* p0
) {
6045 val
* var
/* : Set[MClassDef] */;
6046 val
* var1
/* : Set[MClassDef] */;
6047 const char* var_class_name
;
6048 { /* Inline model#MType#collect_mclassdefs (self,p0) on <self:Object(MType)> */
6049 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6050 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name
);
6051 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 929);
6059 /* method model#MType#collect_mclasses for (self: MType, MModule): Set[MClass] */
6060 val
* model__MType__collect_mclasses(val
* self
, val
* p0
) {
6061 val
* var
/* : Set[MClass] */;
6062 const char* var_class_name
;
6063 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6064 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name
);
6065 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 939);
6070 /* method model#MType#collect_mclasses for (self: Object, MModule): Set[MClass] */
6071 val
* VIRTUAL_model__MType__collect_mclasses(val
* self
, val
* p0
) {
6072 val
* var
/* : Set[MClass] */;
6073 val
* var1
/* : Set[MClass] */;
6074 const char* var_class_name
;
6075 { /* Inline model#MType#collect_mclasses (self,p0) on <self:Object(MType)> */
6076 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6077 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name
);
6078 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 939);
6086 /* method model#MType#collect_mtypes for (self: MType, MModule): Set[MClassType] */
6087 val
* model__MType__collect_mtypes(val
* self
, val
* p0
) {
6088 val
* var
/* : Set[MClassType] */;
6089 const char* var_class_name
;
6090 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6091 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name
);
6092 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 945);
6097 /* method model#MType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
6098 val
* VIRTUAL_model__MType__collect_mtypes(val
* self
, val
* p0
) {
6099 val
* var
/* : Set[MClassType] */;
6100 val
* var1
/* : Set[MClassType] */;
6101 const char* var_class_name
;
6102 { /* Inline model#MType#collect_mtypes (self,p0) on <self:Object(MType)> */
6103 var_class_name
= self
== NULL ?
"null" : self
->type
->name
;
6104 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name
);
6105 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 945);
6113 /* method model#MType#has_mproperty for (self: MType, MModule, MProperty): Bool */
6114 short int model__MType__has_mproperty(val
* self
, val
* p0
, val
* p1
) {
6115 short int var
/* : Bool */;
6116 val
* var_mmodule
/* var mmodule: MModule */;
6117 val
* var_mproperty
/* var mproperty: MProperty */;
6118 short int var1
/* : Bool */;
6119 short int var2
/* : Bool */;
6120 val
* var3
/* : Set[MClassDef] */;
6121 val
* var4
/* : MClassDef */;
6122 val
* var6
/* : MClassDef */;
6123 short int var7
/* : Bool */;
6127 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MType>*/;
6130 if (unlikely(!var2
)) {
6131 PRINT_ERROR("Runtime error: %s", "Assert failed");
6132 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 958);
6136 var3
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(self
, var_mmodule
) /* collect_mclassdefs on <self:MType>*/;
6139 { /* Inline model#MProperty#intro_mclassdef (var_mproperty) on <var_mproperty:MProperty> */
6140 var6
= var_mproperty
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mproperty:MProperty> */
6141 if (unlikely(var6
== NULL
)) {
6142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
6143 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
6151 var7
= ((short int (*)(val
*, val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var3
, var4
) /* has on <var3:Set[MClassDef]>*/;
6158 /* method model#MType#has_mproperty for (self: Object, MModule, MProperty): Bool */
6159 short int VIRTUAL_model__MType__has_mproperty(val
* self
, val
* p0
, val
* p1
) {
6160 short int var
/* : Bool */;
6161 short int var1
/* : Bool */;
6162 var1
= model__MType__has_mproperty(self
, p0
, p1
);
6167 /* method model#MClassType#mclass for (self: MClassType): MClass */
6168 val
* model__MClassType__mclass(val
* self
) {
6169 val
* var
/* : MClass */;
6170 val
* var1
/* : MClass */;
6171 var1
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
6172 if (unlikely(var1
== NULL
)) {
6173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6174 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
6181 /* method model#MClassType#mclass for (self: Object): MClass */
6182 val
* VIRTUAL_model__MClassType__mclass(val
* self
) {
6183 val
* var
/* : MClass */;
6184 val
* var1
/* : MClass */;
6185 val
* var3
/* : MClass */;
6186 { /* Inline model#MClassType#mclass (self) on <self:Object(MClassType)> */
6187 var3
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:Object(MClassType)> */
6188 if (unlikely(var3
== NULL
)) {
6189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6190 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
6200 /* method model#MClassType#mclass= for (self: MClassType, MClass) */
6201 void model__MClassType__mclass_61d(val
* self
, val
* p0
) {
6202 self
->attrs
[COLOR_model__MClassType___mclass
].val
= p0
; /* _mclass on <self:MClassType> */
6205 /* method model#MClassType#mclass= for (self: Object, MClass) */
6206 void VIRTUAL_model__MClassType__mclass_61d(val
* self
, val
* p0
) {
6207 { /* Inline model#MClassType#mclass= (self,p0) on <self:Object(MClassType)> */
6208 self
->attrs
[COLOR_model__MClassType___mclass
].val
= p0
; /* _mclass on <self:Object(MClassType)> */
6213 /* method model#MClassType#model for (self: MClassType): Model */
6214 val
* model__MClassType__model(val
* self
) {
6215 val
* var
/* : Model */;
6216 val
* var1
/* : MClass */;
6217 val
* var3
/* : MClass */;
6218 val
* var4
/* : MModule */;
6219 val
* var6
/* : MModule */;
6220 val
* var7
/* : Model */;
6221 val
* var9
/* : Model */;
6223 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
6224 var3
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
6225 if (unlikely(var3
== NULL
)) {
6226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6227 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
6235 { /* Inline model#MClass#intro_mmodule (var1) on <var1:MClass> */
6236 var6
= var1
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var1:MClass> */
6237 if (unlikely(var6
== NULL
)) {
6238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
6239 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
6247 { /* Inline mmodule#MModule#model (var4) on <var4:MModule> */
6248 var9
= var4
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var4:MModule> */
6249 if (unlikely(var9
== NULL
)) {
6250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
6251 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
6263 /* method model#MClassType#model for (self: Object): Model */
6264 val
* VIRTUAL_model__MClassType__model(val
* self
) {
6265 val
* var
/* : Model */;
6266 val
* var1
/* : Model */;
6267 var1
= model__MClassType__model(self
);
6272 /* method model#MClassType#init for (self: MClassType, MClass) */
6273 void model__MClassType__init(val
* self
, val
* p0
) {
6274 val
* var_mclass
/* var mclass: MClass */;
6276 { /* Inline model_base#MEntity#init (self) on <self:MClassType> */
6282 { /* Inline model#MClassType#mclass= (self,var_mclass) on <self:MClassType> */
6283 self
->attrs
[COLOR_model__MClassType___mclass
].val
= var_mclass
; /* _mclass on <self:MClassType> */
6289 /* method model#MClassType#init for (self: Object, MClass) */
6290 void VIRTUAL_model__MClassType__init(val
* self
, val
* p0
) {
6291 model__MClassType__init(self
, p0
); /* Direct call model#MClassType#init on <self:Object(MClassType)>*/
6294 /* method model#MClassType#arguments for (self: MClassType): Array[MType] */
6295 val
* model__MClassType__arguments(val
* self
) {
6296 val
* var
/* : Array[MType] */;
6297 val
* var1
/* : Array[MType] */;
6298 var1
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:MClassType> */
6299 if (unlikely(var1
== NULL
)) {
6300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6301 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
6308 /* method model#MClassType#arguments for (self: Object): Array[MType] */
6309 val
* VIRTUAL_model__MClassType__arguments(val
* self
) {
6310 val
* var
/* : Array[MType] */;
6311 val
* var1
/* : Array[MType] */;
6312 val
* var3
/* : Array[MType] */;
6313 { /* Inline model#MClassType#arguments (self) on <self:Object(MClassType)> */
6314 var3
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:Object(MClassType)> */
6315 if (unlikely(var3
== NULL
)) {
6316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
6317 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
6327 /* method model#MClassType#arguments= for (self: MClassType, Array[MType]) */
6328 void model__MClassType__arguments_61d(val
* self
, val
* p0
) {
6329 self
->attrs
[COLOR_model__MClassType___arguments
].val
= p0
; /* _arguments on <self:MClassType> */
6332 /* method model#MClassType#arguments= for (self: Object, Array[MType]) */
6333 void VIRTUAL_model__MClassType__arguments_61d(val
* self
, val
* p0
) {
6334 { /* Inline model#MClassType#arguments= (self,p0) on <self:Object(MClassType)> */
6335 self
->attrs
[COLOR_model__MClassType___arguments
].val
= p0
; /* _arguments on <self:Object(MClassType)> */
6340 /* method model#MClassType#to_s for (self: MClassType): String */
6341 val
* model__MClassType__to_s(val
* self
) {
6342 val
* var
/* : String */;
6343 val
* var1
/* : MClass */;
6344 val
* var3
/* : MClass */;
6345 val
* var4
/* : String */;
6347 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
6348 var3
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
6349 if (unlikely(var3
== NULL
)) {
6350 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6351 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
6359 var4
= model__MClass__to_s(var1
);
6366 /* method model#MClassType#to_s for (self: Object): String */
6367 val
* VIRTUAL_model__MClassType__to_s(val
* self
) {
6368 val
* var
/* : String */;
6369 val
* var1
/* : String */;
6370 var1
= model__MClassType__to_s(self
);
6375 /* method model#MClassType#need_anchor for (self: MClassType): Bool */
6376 short int model__MClassType__need_anchor(val
* self
) {
6377 short int var
/* : Bool */;
6378 short int var1
/* : Bool */;
6385 /* method model#MClassType#need_anchor for (self: Object): Bool */
6386 short int VIRTUAL_model__MClassType__need_anchor(val
* self
) {
6387 short int var
/* : Bool */;
6388 short int var1
/* : Bool */;
6389 var1
= model__MClassType__need_anchor(self
);
6394 /* method model#MClassType#anchor_to for (self: MClassType, MModule, MClassType): MClassType */
6395 val
* model__MClassType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
6396 val
* var
/* : MClassType */;
6397 val
* var_mmodule
/* var mmodule: MModule */;
6398 val
* var_anchor
/* var anchor: MClassType */;
6399 val
* var1
/* : MType */;
6400 short int var2
/* : Bool */;
6403 const char* var_class_name
;
6407 var1
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_model__MClassType__anchor_to
]))(self
, p0
, p1
) /* anchor_to on <self:MClassType>*/;
6409 /* <var1:MType> isa MClassType */
6410 cltype
= type_model__MClassType
.color
;
6411 idtype
= type_model__MClassType
.id
;
6412 if(cltype
>= var1
->type
->table_size
) {
6415 var2
= var1
->type
->type_table
[cltype
] == idtype
;
6417 if (unlikely(!var2
)) {
6418 var_class_name
= var1
== NULL ?
"null" : var1
->type
->name
;
6419 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
6420 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 989);
6428 /* method model#MClassType#anchor_to for (self: Object, MModule, MClassType): MType */
6429 val
* VIRTUAL_model__MClassType__anchor_to(val
* self
, val
* p0
, val
* p1
) {
6430 val
* var
/* : MType */;
6431 val
* var1
/* : MClassType */;
6432 var1
= model__MClassType__anchor_to(self
, p0
, p1
);
6437 /* method model#MClassType#resolve_for for (self: MClassType, MType, nullable MClassType, MModule, Bool): MClassType */
6438 val
* model__MClassType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6439 val
* var
/* : MClassType */;
6440 val
* var_mtype
/* var mtype: MType */;
6441 val
* var_anchor
/* var anchor: nullable MClassType */;
6442 val
* var_mmodule
/* var mmodule: MModule */;
6443 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
6447 var_cleanup_virtual
= p3
;
6453 /* method model#MClassType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
6454 val
* VIRTUAL_model__MClassType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
6455 val
* var
/* : MType */;
6456 val
* var1
/* : MClassType */;
6457 var1
= model__MClassType__resolve_for(self
, p0
, p1
, p2
, p3
);
6462 /* method model#MClassType#can_resolve_for for (self: MClassType, MType, nullable MClassType, MModule): Bool */
6463 short int model__MClassType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6464 short int var
/* : Bool */;
6465 val
* var_mtype
/* var mtype: MType */;
6466 val
* var_anchor
/* var anchor: nullable MClassType */;
6467 val
* var_mmodule
/* var mmodule: MModule */;
6468 short int var1
/* : Bool */;
6478 /* method model#MClassType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
6479 short int VIRTUAL_model__MClassType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
6480 short int var
/* : Bool */;
6481 short int var1
/* : Bool */;
6482 var1
= model__MClassType__can_resolve_for(self
, p0
, p1
, p2
);
6487 /* method model#MClassType#collect_mclassdefs for (self: MClassType, MModule): Set[MClassDef] */
6488 val
* model__MClassType__collect_mclassdefs(val
* self
, val
* p0
) {
6489 val
* var
/* : Set[MClassDef] */;
6490 val
* var_mmodule
/* var mmodule: MModule */;
6491 short int var1
/* : Bool */;
6492 short int var2
/* : Bool */;
6493 val
* var3
/* : HashMap[MModule, Set[MClassDef]] */;
6494 val
* var5
/* : HashMap[MModule, Set[MClassDef]] */;
6495 val
* var_cache
/* var cache: HashMap[MModule, Set[MClassDef]] */;
6496 short int var6
/* : Bool */;
6497 short int var7
/* : Bool */;
6498 val
* var8
/* : nullable Object */;
6501 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
6504 if (unlikely(!var2
)) {
6505 PRINT_ERROR("Runtime error: %s", "Assert failed");
6506 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 998);
6510 { /* Inline model#MClassType#collect_mclassdefs_cache (self) on <self:MClassType> */
6511 var5
= self
->attrs
[COLOR_model__MClassType___collect_mclassdefs_cache
].val
; /* _collect_mclassdefs_cache on <self:MClassType> */
6512 if (unlikely(var5
== NULL
)) {
6513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
6514 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1056);
6523 var6
= abstract_collection__MapRead__has_key(var_cache
, var_mmodule
);
6528 model__MClassType__collect_things(self
, var_mmodule
); /* Direct call model#MClassType#collect_things on <self:MClassType>*/
6533 var8
= hash_collection__HashMap___91d_93d(var_cache
, var_mmodule
);
6540 /* method model#MClassType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
6541 val
* VIRTUAL_model__MClassType__collect_mclassdefs(val
* self
, val
* p0
) {
6542 val
* var
/* : Set[MClassDef] */;
6543 val
* var1
/* : Set[MClassDef] */;
6544 var1
= model__MClassType__collect_mclassdefs(self
, p0
);
6549 /* method model#MClassType#collect_mclasses for (self: MClassType, MModule): Set[MClass] */
6550 val
* model__MClassType__collect_mclasses(val
* self
, val
* p0
) {
6551 val
* var
/* : Set[MClass] */;
6552 val
* var_mmodule
/* var mmodule: MModule */;
6553 short int var1
/* : Bool */;
6554 short int var2
/* : Bool */;
6555 val
* var3
/* : HashMap[MModule, Set[MClass]] */;
6556 val
* var5
/* : HashMap[MModule, Set[MClass]] */;
6557 val
* var_cache
/* var cache: HashMap[MModule, Set[MClass]] */;
6558 short int var6
/* : Bool */;
6559 short int var7
/* : Bool */;
6560 val
* var8
/* : nullable Object */;
6563 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
6566 if (unlikely(!var2
)) {
6567 PRINT_ERROR("Runtime error: %s", "Assert failed");
6568 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1008);
6572 { /* Inline model#MClassType#collect_mclasses_cache (self) on <self:MClassType> */
6573 var5
= self
->attrs
[COLOR_model__MClassType___collect_mclasses_cache
].val
; /* _collect_mclasses_cache on <self:MClassType> */
6574 if (unlikely(var5
== NULL
)) {
6575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
6576 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1057);
6585 var6
= abstract_collection__MapRead__has_key(var_cache
, var_mmodule
);
6590 model__MClassType__collect_things(self
, var_mmodule
); /* Direct call model#MClassType#collect_things on <self:MClassType>*/
6595 var8
= hash_collection__HashMap___91d_93d(var_cache
, var_mmodule
);
6602 /* method model#MClassType#collect_mclasses for (self: Object, MModule): Set[MClass] */
6603 val
* VIRTUAL_model__MClassType__collect_mclasses(val
* self
, val
* p0
) {
6604 val
* var
/* : Set[MClass] */;
6605 val
* var1
/* : Set[MClass] */;
6606 var1
= model__MClassType__collect_mclasses(self
, p0
);
6611 /* method model#MClassType#collect_mtypes for (self: MClassType, MModule): Set[MClassType] */
6612 val
* model__MClassType__collect_mtypes(val
* self
, val
* p0
) {
6613 val
* var
/* : Set[MClassType] */;
6614 val
* var_mmodule
/* var mmodule: MModule */;
6615 short int var1
/* : Bool */;
6616 short int var2
/* : Bool */;
6617 val
* var3
/* : HashMap[MModule, Set[MClassType]] */;
6618 val
* var5
/* : HashMap[MModule, Set[MClassType]] */;
6619 val
* var_cache
/* var cache: HashMap[MModule, Set[MClassType]] */;
6620 short int var6
/* : Bool */;
6621 short int var7
/* : Bool */;
6622 val
* var8
/* : nullable Object */;
6625 var1
= ((short int (*)(val
*))(self
->class->vft
[COLOR_model__MType__need_anchor
]))(self
) /* need_anchor on <self:MClassType>*/;
6628 if (unlikely(!var2
)) {
6629 PRINT_ERROR("Runtime error: %s", "Assert failed");
6630 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1018);
6634 { /* Inline model#MClassType#collect_mtypes_cache (self) on <self:MClassType> */
6635 var5
= self
->attrs
[COLOR_model__MClassType___collect_mtypes_cache
].val
; /* _collect_mtypes_cache on <self:MClassType> */
6636 if (unlikely(var5
== NULL
)) {
6637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
6638 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1058);
6647 var6
= abstract_collection__MapRead__has_key(var_cache
, var_mmodule
);
6652 model__MClassType__collect_things(self
, var_mmodule
); /* Direct call model#MClassType#collect_things on <self:MClassType>*/
6657 var8
= hash_collection__HashMap___91d_93d(var_cache
, var_mmodule
);
6664 /* method model#MClassType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
6665 val
* VIRTUAL_model__MClassType__collect_mtypes(val
* self
, val
* p0
) {
6666 val
* var
/* : Set[MClassType] */;
6667 val
* var1
/* : Set[MClassType] */;
6668 var1
= model__MClassType__collect_mtypes(self
, p0
);
6673 /* method model#MClassType#collect_things for (self: MClassType, MModule) */
6674 void model__MClassType__collect_things(val
* self
, val
* p0
) {
6675 val
* var_mmodule
/* var mmodule: MModule */;
6676 val
* var
/* : HashSet[MClassDef] */;
6677 val
* var_res
/* var res: HashSet[MClassDef] */;
6678 val
* var1
/* : HashSet[MClass] */;
6679 val
* var_seen
/* var seen: HashSet[MClass] */;
6680 val
* var2
/* : HashSet[MClassType] */;
6681 val
* var_types
/* var types: HashSet[MClassType] */;
6682 val
* var3
/* : MClass */;
6683 val
* var5
/* : MClass */;
6684 val
* var6
/* : Array[MClass] */;
6685 long var7
/* : Int */;
6686 val
* var_
/* var : Array[MClass] */;
6687 val
* var8
/* : MClass */;
6688 val
* var10
/* : MClass */;
6689 val
* var_todo
/* var todo: Array[MClass] */;
6690 short int var11
/* : Bool */;
6691 short int var12
/* : Bool */;
6692 val
* var13
/* : nullable Object */;
6693 val
* var_mclass
/* var mclass: MClass */;
6694 val
* var14
/* : Array[MClassDef] */;
6695 val
* var16
/* : Array[MClassDef] */;
6696 val
* var17
/* : ArrayIterator[nullable Object] */;
6697 short int var18
/* : Bool */;
6698 val
* var19
/* : nullable Object */;
6699 val
* var_mclassdef
/* var mclassdef: MClassDef */;
6700 val
* var20
/* : POSetElement[MModule] */;
6701 val
* var22
/* : POSetElement[MModule] */;
6702 val
* var23
/* : MModule */;
6703 val
* var25
/* : MModule */;
6704 short int var26
/* : Bool */;
6705 short int var27
/* : Bool */;
6706 val
* var28
/* : Array[MClassType] */;
6707 val
* var30
/* : Array[MClassType] */;
6708 val
* var31
/* : ArrayIterator[nullable Object] */;
6709 short int var32
/* : Bool */;
6710 val
* var33
/* : nullable Object */;
6711 val
* var_supertype
/* var supertype: MClassType */;
6712 val
* var34
/* : MClass */;
6713 val
* var36
/* : MClass */;
6714 val
* var_superclass
/* var superclass: MClass */;
6715 short int var37
/* : Bool */;
6716 val
* var40
/* : HashMap[MModule, Set[MClassDef]] */;
6717 val
* var42
/* : HashMap[MModule, Set[MClassDef]] */;
6718 val
* var43
/* : HashMap[MModule, Set[MClass]] */;
6719 val
* var45
/* : HashMap[MModule, Set[MClass]] */;
6720 val
* var46
/* : HashMap[MModule, Set[MClassType]] */;
6721 val
* var48
/* : HashMap[MModule, Set[MClassType]] */;
6723 var
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef
);
6725 hash_collection__HashSet__init(var
); /* Direct call hash_collection#HashSet#init on <var:HashSet[MClassDef]>*/
6728 var1
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass
);
6730 hash_collection__HashSet__init(var1
); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClass]>*/
6733 var2
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType
);
6735 hash_collection__HashSet__init(var2
); /* Direct call hash_collection#HashSet#init on <var2:HashSet[MClassType]>*/
6739 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
6740 var5
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
6741 if (unlikely(var5
== NULL
)) {
6742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6743 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
6751 hash_collection__HashSet__add(var_seen
, var3
); /* Direct call hash_collection#HashSet#add on <var_seen:HashSet[MClass]>*/
6753 var6
= NEW_array__Array(&type_array__Arraymodel__MClass
);
6756 array__Array__with_capacity(var6
, var7
); /* Direct call array#Array#with_capacity on <var6:Array[MClass]>*/
6760 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
6761 var10
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
6762 if (unlikely(var10
== NULL
)) {
6763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6764 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
6772 array__AbstractArray__push(var_
, var8
); /* Direct call array#AbstractArray#push on <var_:Array[MClass]>*/
6777 var11
= array__AbstractArrayRead__is_empty(var_todo
);
6782 var13
= array__AbstractArray__pop(var_todo
);
6786 { /* Inline model#MClass#mclassdefs (var_mclass) on <var_mclass:MClass> */
6787 var16
= var_mclass
->attrs
[COLOR_model__MClass___mclassdefs
].val
; /* _mclassdefs on <var_mclass:MClass> */
6788 if (unlikely(var16
== NULL
)) {
6789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
6790 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
6794 RET_LABEL15
:(void)0;
6798 var17
= array__AbstractArrayRead__iterator(var14
);
6802 var18
= array__ArrayIterator__is_ok(var17
);
6806 var19
= array__ArrayIterator__item(var17
);
6808 var_mclassdef
= var19
;
6810 { /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
6811 var22
= var_mmodule
->attrs
[COLOR_mmodule__MModule___in_importation
].val
; /* _in_importation on <var_mmodule:MModule> */
6812 if (unlikely(var22
== NULL
)) {
6813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
6814 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
6818 RET_LABEL21
:(void)0;
6822 { /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
6823 var25
= var_mclassdef
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var_mclassdef:MClassDef> */
6824 if (unlikely(var25
== NULL
)) {
6825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6826 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
6830 RET_LABEL24
:(void)0;
6834 var26
= poset__POSetElement___60d_61d(var20
, var23
);
6838 goto CONTINUE_label
;
6842 hash_collection__HashSet__add(var_res
, var_mclassdef
); /* Direct call hash_collection#HashSet#add on <var_res:HashSet[MClassDef]>*/
6845 { /* Inline model#MClassDef#supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
6846 var30
= var_mclassdef
->attrs
[COLOR_model__MClassDef___supertypes
].val
; /* _supertypes on <var_mclassdef:MClassDef> */
6847 if (unlikely(var30
== NULL
)) {
6848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
6849 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
6853 RET_LABEL29
:(void)0;
6857 var31
= array__AbstractArrayRead__iterator(var28
);
6861 var32
= array__ArrayIterator__is_ok(var31
);
6865 var33
= array__ArrayIterator__item(var31
);
6867 var_supertype
= var33
;
6869 hash_collection__HashSet__add(var_types
, var_supertype
); /* Direct call hash_collection#HashSet#add on <var_types:HashSet[MClassType]>*/
6872 { /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
6873 var36
= var_supertype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_supertype:MClassType> */
6874 if (unlikely(var36
== NULL
)) {
6875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6876 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
6880 RET_LABEL35
:(void)0;
6883 var_superclass
= var34
;
6885 var37
= hash_collection__HashSet__has(var_seen
, var_superclass
);
6888 goto CONTINUE_label38
;
6892 hash_collection__HashSet__add(var_seen
, var_superclass
); /* Direct call hash_collection#HashSet#add on <var_seen:HashSet[MClass]>*/
6895 array__Array__add(var_todo
, var_superclass
); /* Direct call array#Array#add on <var_todo:Array[MClass]>*/
6897 CONTINUE_label38
: (void)0;
6899 array__ArrayIterator__next(var31
); /* Direct call array#ArrayIterator#next on <var31:ArrayIterator[nullable Object]>*/
6902 BREAK_label38
: (void)0;
6903 CONTINUE_label
: (void)0;
6905 array__ArrayIterator__next(var17
); /* Direct call array#ArrayIterator#next on <var17:ArrayIterator[nullable Object]>*/
6908 BREAK_label
: (void)0;
6909 CONTINUE_label39
: (void)0;
6911 BREAK_label39
: (void)0;
6913 { /* Inline model#MClassType#collect_mclassdefs_cache (self) on <self:MClassType> */
6914 var42
= self
->attrs
[COLOR_model__MClassType___collect_mclassdefs_cache
].val
; /* _collect_mclassdefs_cache on <self:MClassType> */
6915 if (unlikely(var42
== NULL
)) {
6916 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
6917 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1056);
6921 RET_LABEL41
:(void)0;
6925 hash_collection__HashMap___91d_93d_61d(var40
, var_mmodule
, var_res
); /* Direct call hash_collection#HashMap#[]= on <var40:HashMap[MModule, Set[MClassDef]]>*/
6928 { /* Inline model#MClassType#collect_mclasses_cache (self) on <self:MClassType> */
6929 var45
= self
->attrs
[COLOR_model__MClassType___collect_mclasses_cache
].val
; /* _collect_mclasses_cache on <self:MClassType> */
6930 if (unlikely(var45
== NULL
)) {
6931 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
6932 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1057);
6936 RET_LABEL44
:(void)0;
6940 hash_collection__HashMap___91d_93d_61d(var43
, var_mmodule
, var_seen
); /* Direct call hash_collection#HashMap#[]= on <var43:HashMap[MModule, Set[MClass]]>*/
6943 { /* Inline model#MClassType#collect_mtypes_cache (self) on <self:MClassType> */
6944 var48
= self
->attrs
[COLOR_model__MClassType___collect_mtypes_cache
].val
; /* _collect_mtypes_cache on <self:MClassType> */
6945 if (unlikely(var48
== NULL
)) {
6946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
6947 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1058);
6951 RET_LABEL47
:(void)0;
6955 hash_collection__HashMap___91d_93d_61d(var46
, var_mmodule
, var_types
); /* Direct call hash_collection#HashMap#[]= on <var46:HashMap[MModule, Set[MClassType]]>*/
6959 /* method model#MClassType#collect_things for (self: Object, MModule) */
6960 void VIRTUAL_model__MClassType__collect_things(val
* self
, val
* p0
) {
6961 model__MClassType__collect_things(self
, p0
); /* Direct call model#MClassType#collect_things on <self:Object(MClassType)>*/
6964 /* method model#MClassType#collect_mclassdefs_cache for (self: MClassType): HashMap[MModule, Set[MClassDef]] */
6965 val
* model__MClassType__collect_mclassdefs_cache(val
* self
) {
6966 val
* var
/* : HashMap[MModule, Set[MClassDef]] */;
6967 val
* var1
/* : HashMap[MModule, Set[MClassDef]] */;
6968 var1
= self
->attrs
[COLOR_model__MClassType___collect_mclassdefs_cache
].val
; /* _collect_mclassdefs_cache on <self:MClassType> */
6969 if (unlikely(var1
== NULL
)) {
6970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
6971 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1056);
6978 /* method model#MClassType#collect_mclassdefs_cache for (self: Object): HashMap[MModule, Set[MClassDef]] */
6979 val
* VIRTUAL_model__MClassType__collect_mclassdefs_cache(val
* self
) {
6980 val
* var
/* : HashMap[MModule, Set[MClassDef]] */;
6981 val
* var1
/* : HashMap[MModule, Set[MClassDef]] */;
6982 val
* var3
/* : HashMap[MModule, Set[MClassDef]] */;
6983 { /* Inline model#MClassType#collect_mclassdefs_cache (self) on <self:Object(MClassType)> */
6984 var3
= self
->attrs
[COLOR_model__MClassType___collect_mclassdefs_cache
].val
; /* _collect_mclassdefs_cache on <self:Object(MClassType)> */
6985 if (unlikely(var3
== NULL
)) {
6986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
6987 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1056);
6997 /* method model#MClassType#collect_mclasses_cache for (self: MClassType): HashMap[MModule, Set[MClass]] */
6998 val
* model__MClassType__collect_mclasses_cache(val
* self
) {
6999 val
* var
/* : HashMap[MModule, Set[MClass]] */;
7000 val
* var1
/* : HashMap[MModule, Set[MClass]] */;
7001 var1
= self
->attrs
[COLOR_model__MClassType___collect_mclasses_cache
].val
; /* _collect_mclasses_cache on <self:MClassType> */
7002 if (unlikely(var1
== NULL
)) {
7003 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
7004 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1057);
7011 /* method model#MClassType#collect_mclasses_cache for (self: Object): HashMap[MModule, Set[MClass]] */
7012 val
* VIRTUAL_model__MClassType__collect_mclasses_cache(val
* self
) {
7013 val
* var
/* : HashMap[MModule, Set[MClass]] */;
7014 val
* var1
/* : HashMap[MModule, Set[MClass]] */;
7015 val
* var3
/* : HashMap[MModule, Set[MClass]] */;
7016 { /* Inline model#MClassType#collect_mclasses_cache (self) on <self:Object(MClassType)> */
7017 var3
= self
->attrs
[COLOR_model__MClassType___collect_mclasses_cache
].val
; /* _collect_mclasses_cache on <self:Object(MClassType)> */
7018 if (unlikely(var3
== NULL
)) {
7019 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
7020 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1057);
7030 /* method model#MClassType#collect_mtypes_cache for (self: MClassType): HashMap[MModule, Set[MClassType]] */
7031 val
* model__MClassType__collect_mtypes_cache(val
* self
) {
7032 val
* var
/* : HashMap[MModule, Set[MClassType]] */;
7033 val
* var1
/* : HashMap[MModule, Set[MClassType]] */;
7034 var1
= self
->attrs
[COLOR_model__MClassType___collect_mtypes_cache
].val
; /* _collect_mtypes_cache on <self:MClassType> */
7035 if (unlikely(var1
== NULL
)) {
7036 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
7037 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1058);
7044 /* method model#MClassType#collect_mtypes_cache for (self: Object): HashMap[MModule, Set[MClassType]] */
7045 val
* VIRTUAL_model__MClassType__collect_mtypes_cache(val
* self
) {
7046 val
* var
/* : HashMap[MModule, Set[MClassType]] */;
7047 val
* var1
/* : HashMap[MModule, Set[MClassType]] */;
7048 val
* var3
/* : HashMap[MModule, Set[MClassType]] */;
7049 { /* Inline model#MClassType#collect_mtypes_cache (self) on <self:Object(MClassType)> */
7050 var3
= self
->attrs
[COLOR_model__MClassType___collect_mtypes_cache
].val
; /* _collect_mtypes_cache on <self:Object(MClassType)> */
7051 if (unlikely(var3
== NULL
)) {
7052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
7053 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1058);
7063 /* method model#MGenericType#init for (self: MGenericType, MClass, Array[MType]) */
7064 void model__MGenericType__init(val
* self
, val
* p0
, val
* p1
) {
7065 val
* var_mclass
/* var mclass: MClass */;
7066 val
* var_arguments
/* var arguments: Array[MType] */;
7067 val
* var
/* : MClass */;
7068 val
* var2
/* : MClass */;
7069 long var3
/* : Int */;
7070 long var5
/* : Int */;
7071 long var6
/* : Int */;
7072 short int var7
/* : Bool */;
7073 short int var8
/* : Bool */;
7074 short int var10
/* : Bool */;
7075 short int var12
/* : Bool */;
7076 val
* var14
/* : ArrayIterator[nullable Object] */;
7077 short int var15
/* : Bool */;
7078 val
* var16
/* : nullable Object */;
7079 val
* var_t
/* var t: MType */;
7080 short int var17
/* : Bool */;
7081 short int var18
/* : Bool */;
7082 static val
* varonce
;
7083 val
* var20
/* : String */;
7084 char* var21
/* : NativeString */;
7085 long var22
/* : Int */;
7086 val
* var23
/* : FlatString */;
7087 static val
* varonce24
;
7088 val
* var25
/* : String */;
7089 char* var26
/* : NativeString */;
7090 long var27
/* : Int */;
7091 val
* var28
/* : FlatString */;
7092 val
* var29
/* : String */;
7093 static val
* varonce30
;
7094 val
* var31
/* : String */;
7095 char* var32
/* : NativeString */;
7096 long var33
/* : Int */;
7097 val
* var34
/* : FlatString */;
7098 val
* var35
/* : Array[Object] */;
7099 long var36
/* : Int */;
7100 val
* var37
/* : NativeArray[Object] */;
7101 val
* var38
/* : String */;
7105 model__MClassType__init(self
, var_mclass
); /* Direct call model#MClassType#init on <self:MGenericType>*/
7108 { /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
7109 var2
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MGenericType> */
7110 if (unlikely(var2
== NULL
)) {
7111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7112 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
7120 { /* Inline model#MClass#arity (var) on <var:MClass> */
7121 var5
= var
->attrs
[COLOR_model__MClass___arity
].l
; /* _arity on <var:MClass> */
7127 var6
= array__AbstractArrayRead__length(var_arguments
);
7130 { /* Inline kernel#Int#== (var3,var6) on <var3:Int> */
7131 var10
= var3
== var6
;
7138 if (unlikely(!var7
)) {
7139 PRINT_ERROR("Runtime error: %s", "Assert failed");
7140 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1070);
7144 { /* Inline model#MClassType#arguments= (self,var_arguments) on <self:MGenericType> */
7145 self
->attrs
[COLOR_model__MClassType___arguments
].val
= var_arguments
; /* _arguments on <self:MGenericType> */
7146 RET_LABEL11
:(void)0;
7151 { /* Inline model#MGenericType#need_anchor= (self,var12) on <self:MGenericType> */
7152 self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
= var12
; /* _need_anchor on <self:MGenericType> */
7153 RET_LABEL13
:(void)0;
7157 var14
= array__AbstractArrayRead__iterator(var_arguments
);
7161 var15
= array__ArrayIterator__is_ok(var14
);
7165 var16
= array__ArrayIterator__item(var14
);
7169 var17
= ((short int (*)(val
*))(var_t
->class->vft
[COLOR_model__MType__need_anchor
]))(var_t
) /* need_anchor on <var_t:MType>*/;
7174 { /* Inline model#MGenericType#need_anchor= (self,var18) on <self:MGenericType> */
7175 self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
= var18
; /* _need_anchor on <self:MGenericType> */
7176 RET_LABEL19
:(void)0;
7182 CONTINUE_label
: (void)0;
7184 array__ArrayIterator__next(var14
); /* Direct call array#ArrayIterator#next on <var14:ArrayIterator[nullable Object]>*/
7187 BREAK_label
: (void)0;
7193 var23
= string__NativeString__to_s_with_length(var21
, var22
);
7202 var28
= string__NativeString__to_s_with_length(var26
, var27
);
7207 var29
= string__Collection__join(var_arguments
, var25
);
7214 var34
= string__NativeString__to_s_with_length(var32
, var33
);
7218 var35
= NEW_array__Array(&type_array__Arraykernel__Object
);
7219 { /* var35 = array_instance Array[Object] */
7221 var37
= NEW_array__NativeArray(var36
, &type_array__NativeArraykernel__Object
);
7222 ((struct instance_array__NativeArray
*)var37
)->values
[0] = (val
*) var_mclass
;
7223 ((struct instance_array__NativeArray
*)var37
)->values
[1] = (val
*) var20
;
7224 ((struct instance_array__NativeArray
*)var37
)->values
[2] = (val
*) var29
;
7225 ((struct instance_array__NativeArray
*)var37
)->values
[3] = (val
*) var31
;
7227 ((void (*)(val
*, val
*, long))(var35
->class->vft
[COLOR_array__Array__with_native
]))(var35
, var37
, var36
) /* with_native on <var35:Array[Object]>*/;
7231 var38
= ((val
* (*)(val
*))(var35
->class->vft
[COLOR_string__Object__to_s
]))(var35
) /* to_s on <var35:Array[Object]>*/;
7234 { /* Inline model#MGenericType#to_s= (self,var38) on <self:MGenericType> */
7235 self
->attrs
[COLOR_model__MGenericType___to_s
].val
= var38
; /* _to_s on <self:MGenericType> */
7236 RET_LABEL39
:(void)0;
7241 /* method model#MGenericType#init for (self: Object, MClass, Array[MType]) */
7242 void VIRTUAL_model__MGenericType__init(val
* self
, val
* p0
, val
* p1
) {
7243 model__MGenericType__init(self
, p0
, p1
); /* Direct call model#MGenericType#init on <self:Object(MGenericType)>*/
7246 /* method model#MGenericType#to_s for (self: MGenericType): String */
7247 val
* model__MGenericType__to_s(val
* self
) {
7248 val
* var
/* : String */;
7249 val
* var1
/* : String */;
7250 var1
= self
->attrs
[COLOR_model__MGenericType___to_s
].val
; /* _to_s on <self:MGenericType> */
7251 if (unlikely(var1
== NULL
)) {
7252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
7253 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1084);
7260 /* method model#MGenericType#to_s for (self: Object): String */
7261 val
* VIRTUAL_model__MGenericType__to_s(val
* self
) {
7262 val
* var
/* : String */;
7263 val
* var1
/* : String */;
7264 val
* var3
/* : String */;
7265 { /* Inline model#MGenericType#to_s (self) on <self:Object(MGenericType)> */
7266 var3
= self
->attrs
[COLOR_model__MGenericType___to_s
].val
; /* _to_s on <self:Object(MGenericType)> */
7267 if (unlikely(var3
== NULL
)) {
7268 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
7269 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1084);
7279 /* method model#MGenericType#to_s= for (self: MGenericType, String) */
7280 void model__MGenericType__to_s_61d(val
* self
, val
* p0
) {
7281 self
->attrs
[COLOR_model__MGenericType___to_s
].val
= p0
; /* _to_s on <self:MGenericType> */
7284 /* method model#MGenericType#to_s= for (self: Object, String) */
7285 void VIRTUAL_model__MGenericType__to_s_61d(val
* self
, val
* p0
) {
7286 { /* Inline model#MGenericType#to_s= (self,p0) on <self:Object(MGenericType)> */
7287 self
->attrs
[COLOR_model__MGenericType___to_s
].val
= p0
; /* _to_s on <self:Object(MGenericType)> */
7292 /* method model#MGenericType#need_anchor for (self: MGenericType): Bool */
7293 short int model__MGenericType__need_anchor(val
* self
) {
7294 short int var
/* : Bool */;
7295 short int var1
/* : Bool */;
7296 var1
= self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <self:MGenericType> */
7301 /* method model#MGenericType#need_anchor for (self: Object): Bool */
7302 short int VIRTUAL_model__MGenericType__need_anchor(val
* self
) {
7303 short int var
/* : Bool */;
7304 short int var1
/* : Bool */;
7305 short int var3
/* : Bool */;
7306 { /* Inline model#MGenericType#need_anchor (self) on <self:Object(MGenericType)> */
7307 var3
= self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <self:Object(MGenericType)> */
7315 /* method model#MGenericType#need_anchor= for (self: MGenericType, Bool) */
7316 void model__MGenericType__need_anchor_61d(val
* self
, short int p0
) {
7317 self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
= p0
; /* _need_anchor on <self:MGenericType> */
7320 /* method model#MGenericType#need_anchor= for (self: Object, Bool) */
7321 void VIRTUAL_model__MGenericType__need_anchor_61d(val
* self
, short int p0
) {
7322 { /* Inline model#MGenericType#need_anchor= (self,p0) on <self:Object(MGenericType)> */
7323 self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
= p0
; /* _need_anchor on <self:Object(MGenericType)> */
7328 /* method model#MGenericType#resolve_for for (self: MGenericType, MType, nullable MClassType, MModule, Bool): MType */
7329 val
* model__MGenericType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7330 val
* var
/* : MType */;
7331 val
* var_mtype
/* var mtype: MType */;
7332 val
* var_anchor
/* var anchor: nullable MClassType */;
7333 val
* var_mmodule
/* var mmodule: MModule */;
7334 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
7335 short int var1
/* : Bool */;
7336 short int var3
/* : Bool */;
7337 short int var4
/* : Bool */;
7338 short int var5
/* : Bool */;
7339 val
* var6
/* : Array[MType] */;
7340 val
* var_types
/* var types: Array[MType] */;
7341 val
* var7
/* : Array[MType] */;
7342 val
* var9
/* : Array[MType] */;
7343 val
* var10
/* : ArrayIterator[nullable Object] */;
7344 short int var11
/* : Bool */;
7345 val
* var12
/* : nullable Object */;
7346 val
* var_t
/* var t: MType */;
7347 val
* var13
/* : MType */;
7348 val
* var14
/* : MClass */;
7349 val
* var16
/* : MClass */;
7350 val
* var17
/* : MClassType */;
7354 var_cleanup_virtual
= p3
;
7356 { /* Inline model#MGenericType#need_anchor (self) on <self:MGenericType> */
7357 var3
= self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <self:MGenericType> */
7369 var5
= model__MGenericType__can_resolve_for(self
, var_mtype
, var_anchor
, var_mmodule
);
7371 if (unlikely(!var5
)) {
7372 PRINT_ERROR("Runtime error: %s", "Assert failed");
7373 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1093);
7376 var6
= NEW_array__Array(&type_array__Arraymodel__MType
);
7378 array__Array__init(var6
); /* Direct call array#Array#init on <var6:Array[MType]>*/
7382 { /* Inline model#MClassType#arguments (self) on <self:MGenericType> */
7383 var9
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:MGenericType> */
7384 if (unlikely(var9
== NULL
)) {
7385 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
7386 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
7394 var10
= array__AbstractArrayRead__iterator(var7
);
7398 var11
= array__ArrayIterator__is_ok(var10
);
7402 var12
= array__ArrayIterator__item(var10
);
7406 var13
= ((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>*/;
7409 array__Array__add(var_types
, var13
); /* Direct call array#Array#add on <var_types:Array[MType]>*/
7411 CONTINUE_label
: (void)0;
7413 array__ArrayIterator__next(var10
); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
7416 BREAK_label
: (void)0;
7418 { /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
7419 var16
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MGenericType> */
7420 if (unlikely(var16
== NULL
)) {
7421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7422 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
7426 RET_LABEL15
:(void)0;
7430 var17
= model__MClass__get_mtype(var14
, var_types
);
7437 /* method model#MGenericType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
7438 val
* VIRTUAL_model__MGenericType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
7439 val
* var
/* : MType */;
7440 val
* var1
/* : MType */;
7441 var1
= model__MGenericType__resolve_for(self
, p0
, p1
, p2
, p3
);
7446 /* method model#MGenericType#can_resolve_for for (self: MGenericType, MType, nullable MClassType, MModule): Bool */
7447 short int model__MGenericType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7448 short int var
/* : Bool */;
7449 val
* var_mtype
/* var mtype: MType */;
7450 val
* var_anchor
/* var anchor: nullable MClassType */;
7451 val
* var_mmodule
/* var mmodule: MModule */;
7452 short int var1
/* : Bool */;
7453 short int var3
/* : Bool */;
7454 short int var4
/* : Bool */;
7455 short int var5
/* : Bool */;
7456 val
* var6
/* : Array[MType] */;
7457 val
* var8
/* : Array[MType] */;
7458 val
* var9
/* : ArrayIterator[nullable Object] */;
7459 short int var10
/* : Bool */;
7460 val
* var11
/* : nullable Object */;
7461 val
* var_t
/* var t: MType */;
7462 short int var12
/* : Bool */;
7463 short int var13
/* : Bool */;
7464 short int var14
/* : Bool */;
7465 short int var15
/* : Bool */;
7470 { /* Inline model#MGenericType#need_anchor (self) on <self:MGenericType> */
7471 var3
= self
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <self:MGenericType> */
7484 { /* Inline model#MClassType#arguments (self) on <self:MGenericType> */
7485 var8
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:MGenericType> */
7486 if (unlikely(var8
== NULL
)) {
7487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
7488 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
7496 var9
= array__AbstractArrayRead__iterator(var6
);
7500 var10
= array__ArrayIterator__is_ok(var9
);
7504 var11
= array__ArrayIterator__item(var9
);
7508 var12
= ((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>*/;
7517 CONTINUE_label
: (void)0;
7519 array__ArrayIterator__next(var9
); /* Direct call array#ArrayIterator#next on <var9:ArrayIterator[nullable Object]>*/
7522 BREAK_label
: (void)0;
7529 /* method model#MGenericType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
7530 short int VIRTUAL_model__MGenericType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7531 short int var
/* : Bool */;
7532 short int var1
/* : Bool */;
7533 var1
= model__MGenericType__can_resolve_for(self
, p0
, p1
, p2
);
7538 /* method model#MGenericType#length for (self: MGenericType): Int */
7539 long model__MGenericType__length(val
* self
) {
7540 long var
/* : Int */;
7541 long var1
/* : Int */;
7542 long var_res
/* var res: Int */;
7543 val
* var2
/* : Array[MType] */;
7544 val
* var4
/* : Array[MType] */;
7545 val
* var5
/* : ArrayIterator[nullable Object] */;
7546 short int var6
/* : Bool */;
7547 val
* var7
/* : nullable Object */;
7548 val
* var_a
/* var a: MType */;
7549 long var8
/* : Int */;
7550 long var9
/* : Int */;
7551 short int var11
/* : Bool */;
7554 const char* var_class_name
;
7555 long var12
/* : Int */;
7559 { /* Inline model#MClassType#arguments (self) on <self:MGenericType> */
7560 var4
= self
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <self:MGenericType> */
7561 if (unlikely(var4
== NULL
)) {
7562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
7563 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
7571 var5
= array__AbstractArrayRead__iterator(var2
);
7575 var6
= array__ArrayIterator__is_ok(var5
);
7579 var7
= array__ArrayIterator__item(var5
);
7583 var8
= ((long (*)(val
*))(var_a
->class->vft
[COLOR_model__MType__length
]))(var_a
) /* length on <var_a:MType>*/;
7586 { /* Inline kernel#Int#+ (var_res,var8) on <var_res:Int> */
7587 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
7588 /* <var8:Int> isa OTHER */
7589 var11
= 1; /* easy <var8:Int> isa OTHER*/
7590 if (unlikely(!var11
)) {
7591 var_class_name
= type_kernel__Int
.name
;
7592 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
7593 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
7596 var12
= var_res
+ var8
;
7599 RET_LABEL10
:(void)0;
7603 CONTINUE_label
: (void)0;
7605 array__ArrayIterator__next(var5
); /* Direct call array#ArrayIterator#next on <var5:ArrayIterator[nullable Object]>*/
7608 BREAK_label
: (void)0;
7614 /* method model#MGenericType#length for (self: Object): Int */
7615 long VIRTUAL_model__MGenericType__length(val
* self
) {
7616 long var
/* : Int */;
7617 long var1
/* : Int */;
7618 var1
= model__MGenericType__length(self
);
7623 /* method model#MVirtualType#mproperty for (self: MVirtualType): MProperty */
7624 val
* model__MVirtualType__mproperty(val
* self
) {
7625 val
* var
/* : MProperty */;
7626 val
* var1
/* : MProperty */;
7627 var1
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
7628 if (unlikely(var1
== NULL
)) {
7629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7630 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
7637 /* method model#MVirtualType#mproperty for (self: Object): MProperty */
7638 val
* VIRTUAL_model__MVirtualType__mproperty(val
* self
) {
7639 val
* var
/* : MProperty */;
7640 val
* var1
/* : MProperty */;
7641 val
* var3
/* : MProperty */;
7642 { /* Inline model#MVirtualType#mproperty (self) on <self:Object(MVirtualType)> */
7643 var3
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:Object(MVirtualType)> */
7644 if (unlikely(var3
== NULL
)) {
7645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7646 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
7656 /* method model#MVirtualType#mproperty= for (self: MVirtualType, MProperty) */
7657 void model__MVirtualType__mproperty_61d(val
* self
, val
* p0
) {
7658 self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
= p0
; /* _mproperty on <self:MVirtualType> */
7661 /* method model#MVirtualType#mproperty= for (self: Object, MProperty) */
7662 void VIRTUAL_model__MVirtualType__mproperty_61d(val
* self
, val
* p0
) {
7663 { /* Inline model#MVirtualType#mproperty= (self,p0) on <self:Object(MVirtualType)> */
7664 self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
= p0
; /* _mproperty on <self:Object(MVirtualType)> */
7669 /* method model#MVirtualType#model for (self: MVirtualType): Model */
7670 val
* model__MVirtualType__model(val
* self
) {
7671 val
* var
/* : Model */;
7672 val
* var1
/* : MProperty */;
7673 val
* var3
/* : MProperty */;
7674 val
* var4
/* : MClassDef */;
7675 val
* var6
/* : MClassDef */;
7676 val
* var7
/* : MModule */;
7677 val
* var9
/* : MModule */;
7678 val
* var10
/* : Model */;
7679 val
* var12
/* : Model */;
7681 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
7682 var3
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
7683 if (unlikely(var3
== NULL
)) {
7684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7685 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
7693 { /* Inline model#MProperty#intro_mclassdef (var1) on <var1:MProperty> */
7694 var6
= var1
->attrs
[COLOR_model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var1:MProperty> */
7695 if (unlikely(var6
== NULL
)) {
7696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
7697 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
7705 { /* Inline model#MClassDef#mmodule (var4) on <var4:MClassDef> */
7706 var9
= var4
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var4:MClassDef> */
7707 if (unlikely(var9
== NULL
)) {
7708 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7709 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
7717 { /* Inline mmodule#MModule#model (var7) on <var7:MModule> */
7718 var12
= var7
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var7:MModule> */
7719 if (unlikely(var12
== NULL
)) {
7720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
7721 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
7725 RET_LABEL11
:(void)0;
7733 /* method model#MVirtualType#model for (self: Object): Model */
7734 val
* VIRTUAL_model__MVirtualType__model(val
* self
) {
7735 val
* var
/* : Model */;
7736 val
* var1
/* : Model */;
7737 var1
= model__MVirtualType__model(self
);
7742 /* method model#MVirtualType#lookup_bound for (self: MVirtualType, MModule, MType): MType */
7743 val
* model__MVirtualType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
7744 val
* var
/* : MType */;
7745 val
* var_mmodule
/* var mmodule: MModule */;
7746 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
7747 short int var1
/* : Bool */;
7748 short int var2
/* : Bool */;
7749 val
* var3
/* : MProperty */;
7750 val
* var5
/* : MProperty */;
7751 val
* var6
/* : Array[MPropDef] */;
7752 val
* var_props
/* var props: Array[MPropDef] */;
7753 short int var7
/* : Bool */;
7754 long var8
/* : Int */;
7755 long var9
/* : Int */;
7756 short int var10
/* : Bool */;
7757 short int var11
/* : Bool */;
7758 short int var13
/* : Bool */;
7759 val
* var14
/* : nullable Object */;
7760 short int var15
/* : Bool */;
7763 const char* var_class_name
;
7764 val
* var16
/* : nullable MType */;
7765 val
* var18
/* : nullable MType */;
7766 val
* var19
/* : ArraySet[MType] */;
7767 val
* var_types
/* var types: ArraySet[MType] */;
7768 val
* var20
/* : ArrayIterator[nullable Object] */;
7769 short int var21
/* : Bool */;
7770 val
* var22
/* : nullable Object */;
7771 val
* var_p
/* var p: MPropDef */;
7772 short int var23
/* : Bool */;
7775 const char* var_class_name26
;
7776 val
* var27
/* : nullable MType */;
7777 val
* var29
/* : nullable MType */;
7778 long var30
/* : Int */;
7779 long var31
/* : Int */;
7780 short int var32
/* : Bool */;
7781 short int var33
/* : Bool */;
7782 short int var35
/* : Bool */;
7783 val
* var36
/* : Object */;
7785 var_resolved_receiver
= p1
;
7787 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
7790 if (unlikely(!var2
)) {
7791 PRINT_ERROR("Runtime error: %s", "Assert failed");
7792 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1149);
7796 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
7797 var5
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
7798 if (unlikely(var5
== NULL
)) {
7799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7800 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
7808 var6
= model__MProperty__lookup_definitions(var3
, var_mmodule
, var_resolved_receiver
);
7812 var7
= array__AbstractArrayRead__is_empty(var_props
);
7815 PRINT_ERROR("Runtime error: %s", "Aborted");
7816 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1152);
7820 var8
= array__AbstractArrayRead__length(var_props
);
7824 { /* Inline kernel#Int#== (var8,var9) on <var8:Int> */
7825 var13
= var8
== var9
;
7828 RET_LABEL12
:(void)0;
7834 var14
= abstract_collection__SequenceRead__first(var_props
);
7836 /* <var14:nullable Object(MPropDef)> isa MVirtualTypeDef */
7837 cltype
= type_model__MVirtualTypeDef
.color
;
7838 idtype
= type_model__MVirtualTypeDef
.id
;
7839 if(cltype
>= var14
->type
->table_size
) {
7842 var15
= var14
->type
->type_table
[cltype
] == idtype
;
7844 if (unlikely(!var15
)) {
7845 var_class_name
= var14
== NULL ?
"null" : var14
->type
->name
;
7846 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
7847 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1154);
7851 { /* Inline model#MVirtualTypeDef#bound (var14) on <var14:MPropDef(MVirtualTypeDef)> */
7852 var18
= var14
->attrs
[COLOR_model__MVirtualTypeDef___bound
].val
; /* _bound on <var14:MPropDef(MVirtualTypeDef)> */
7854 RET_LABEL17
:(void)0;
7857 if (unlikely(var16
== NULL
)) {
7858 PRINT_ERROR("Runtime error: %s", "Cast failed");
7859 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1154);
7867 var19
= NEW_array__ArraySet(&type_array__ArraySetmodel__MType
);
7869 array__ArraySet__init(var19
); /* Direct call array#ArraySet#init on <var19:ArraySet[MType]>*/
7873 var20
= array__AbstractArrayRead__iterator(var_props
);
7877 var21
= array__ArrayIterator__is_ok(var20
);
7881 var22
= array__ArrayIterator__item(var20
);
7884 /* <var_p:MPropDef> isa MVirtualTypeDef */
7885 cltype24
= type_model__MVirtualTypeDef
.color
;
7886 idtype25
= type_model__MVirtualTypeDef
.id
;
7887 if(cltype24
>= var_p
->type
->table_size
) {
7890 var23
= var_p
->type
->type_table
[cltype24
] == idtype25
;
7892 if (unlikely(!var23
)) {
7893 var_class_name26
= var_p
== NULL ?
"null" : var_p
->type
->name
;
7894 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name26
);
7895 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1158);
7899 { /* Inline model#MVirtualTypeDef#bound (var_p) on <var_p:MPropDef(MVirtualTypeDef)> */
7900 var29
= var_p
->attrs
[COLOR_model__MVirtualTypeDef___bound
].val
; /* _bound on <var_p:MPropDef(MVirtualTypeDef)> */
7902 RET_LABEL28
:(void)0;
7905 if (unlikely(var27
== NULL
)) {
7906 PRINT_ERROR("Runtime error: %s", "Cast failed");
7907 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1158);
7911 array__ArraySet__add(var_types
, var27
); /* Direct call array#ArraySet#add on <var_types:ArraySet[MType]>*/
7913 CONTINUE_label
: (void)0;
7915 array__ArrayIterator__next(var20
); /* Direct call array#ArrayIterator#next on <var20:ArrayIterator[nullable Object]>*/
7918 BREAK_label
: (void)0;
7920 var30
= array__ArraySet__length(var_types
);
7924 { /* Inline kernel#Int#== (var30,var31) on <var30:Int> */
7925 var35
= var30
== var31
;
7928 RET_LABEL34
:(void)0;
7934 var36
= array__ArraySet__first(var_types
);
7940 PRINT_ERROR("Runtime error: %s", "Aborted");
7941 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1163);
7946 /* method model#MVirtualType#lookup_bound for (self: Object, MModule, MType): MType */
7947 val
* VIRTUAL_model__MVirtualType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
7948 val
* var
/* : MType */;
7949 val
* var1
/* : MType */;
7950 var1
= model__MVirtualType__lookup_bound(self
, p0
, p1
);
7955 /* method model#MVirtualType#is_fixed for (self: MVirtualType, MModule, MType): Bool */
7956 short int model__MVirtualType__is_fixed(val
* self
, val
* p0
, val
* p1
) {
7957 short int var
/* : Bool */;
7958 val
* var_mmodule
/* var mmodule: MModule */;
7959 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
7960 short int var1
/* : Bool */;
7961 short int var2
/* : Bool */;
7962 val
* var3
/* : MProperty */;
7963 val
* var5
/* : MProperty */;
7964 val
* var6
/* : Array[MPropDef] */;
7965 val
* var_props
/* var props: Array[MPropDef] */;
7966 short int var7
/* : Bool */;
7967 val
* var8
/* : ArrayIterator[nullable Object] */;
7968 short int var9
/* : Bool */;
7969 val
* var10
/* : nullable Object */;
7970 val
* var_p
/* var p: MPropDef */;
7971 short int var11
/* : Bool */;
7974 const char* var_class_name
;
7975 short int var12
/* : Bool */;
7976 short int var14
/* : Bool */;
7977 short int var15
/* : Bool */;
7978 short int var16
/* : Bool */;
7980 var_resolved_receiver
= p1
;
7982 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
7985 if (unlikely(!var2
)) {
7986 PRINT_ERROR("Runtime error: %s", "Assert failed");
7987 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1169);
7991 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
7992 var5
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
7993 if (unlikely(var5
== NULL
)) {
7994 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7995 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
8003 var6
= model__MProperty__lookup_definitions(var3
, var_mmodule
, var_resolved_receiver
);
8007 var7
= array__AbstractArrayRead__is_empty(var_props
);
8010 PRINT_ERROR("Runtime error: %s", "Aborted");
8011 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1172);
8016 var8
= array__AbstractArrayRead__iterator(var_props
);
8020 var9
= array__ArrayIterator__is_ok(var8
);
8024 var10
= array__ArrayIterator__item(var8
);
8027 /* <var_p:MPropDef> isa MVirtualTypeDef */
8028 cltype
= type_model__MVirtualTypeDef
.color
;
8029 idtype
= type_model__MVirtualTypeDef
.id
;
8030 if(cltype
>= var_p
->type
->table_size
) {
8033 var11
= var_p
->type
->type_table
[cltype
] == idtype
;
8035 if (unlikely(!var11
)) {
8036 var_class_name
= var_p
== NULL ?
"null" : var_p
->type
->name
;
8037 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name
);
8038 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1175);
8042 { /* Inline model#MVirtualTypeDef#is_fixed (var_p) on <var_p:MPropDef(MVirtualTypeDef)> */
8043 var14
= var_p
->attrs
[COLOR_model__MVirtualTypeDef___is_fixed
].s
; /* _is_fixed on <var_p:MPropDef(MVirtualTypeDef)> */
8045 RET_LABEL13
:(void)0;
8054 CONTINUE_label
: (void)0;
8056 array__ArrayIterator__next(var8
); /* Direct call array#ArrayIterator#next on <var8:ArrayIterator[nullable Object]>*/
8059 BREAK_label
: (void)0;
8066 /* method model#MVirtualType#is_fixed for (self: Object, MModule, MType): Bool */
8067 short int VIRTUAL_model__MVirtualType__is_fixed(val
* self
, val
* p0
, val
* p1
) {
8068 short int var
/* : Bool */;
8069 short int var1
/* : Bool */;
8070 var1
= model__MVirtualType__is_fixed(self
, p0
, p1
);
8075 /* method model#MVirtualType#resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule, Bool): MType */
8076 val
* model__MVirtualType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
8077 val
* var
/* : MType */;
8078 val
* var_mtype
/* var mtype: MType */;
8079 val
* var_anchor
/* var anchor: nullable MClassType */;
8080 val
* var_mmodule
/* var mmodule: MModule */;
8081 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
8082 short int var1
/* : Bool */;
8083 short int var2
/* : Bool */;
8084 val
* var3
/* : null */;
8085 short int var4
/* : Bool */;
8086 short int var5
/* : Bool */;
8087 val
* var_other
/* var other: nullable Object */;
8088 short int var7
/* : Bool */;
8089 short int var8
/* : Bool */;
8090 short int var9
/* : Bool */;
8091 val
* var10
/* : null */;
8092 short int var11
/* : Bool */;
8093 val
* var12
/* : MType */;
8094 val
* var_resolved_reciever
/* var resolved_reciever: nullable Object */;
8095 val
* var13
/* : MType */;
8096 val
* var_verbatim_bound
/* var verbatim_bound: MType */;
8097 val
* var14
/* : MType */;
8098 val
* var_res
/* var res: MType */;
8099 short int var15
/* : Bool */;
8102 val
* var16
/* : MType */;
8103 val
* var18
/* : MType */;
8104 short int var19
/* : Bool */;
8107 const char* var_class_name
;
8108 val
* var22
/* : MClass */;
8109 val
* var24
/* : MClass */;
8110 val
* var25
/* : MClassKind */;
8111 val
* var27
/* : MClassKind */;
8112 val
* var28
/* : MClassKind */;
8113 short int var29
/* : Bool */;
8114 short int var30
/* : Bool */;
8115 val
* var_other32
/* var other: nullable Object */;
8116 short int var33
/* : Bool */;
8117 short int var35
/* : Bool */;
8118 short int var36
/* : Bool */;
8121 short int var39
/* : Bool */;
8122 short int var40
/* : Bool */;
8123 short int var41
/* : Bool */;
8126 short int var_
/* var : Bool */;
8127 val
* var44
/* : MClass */;
8128 val
* var46
/* : MClass */;
8129 val
* var47
/* : MClassKind */;
8130 val
* var49
/* : MClassKind */;
8131 val
* var50
/* : MClassKind */;
8132 short int var51
/* : Bool */;
8133 short int var52
/* : Bool */;
8134 short int var54
/* : Bool */;
8135 short int var56
/* : Bool */;
8139 var_cleanup_virtual
= p3
;
8141 var1
= model__MVirtualType__can_resolve_for(self
, var_mtype
, var_anchor
, var_mmodule
);
8143 if (unlikely(!var1
)) {
8144 PRINT_ERROR("Runtime error: %s", "Assert failed");
8145 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1182);
8149 var2
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
8153 if (var_anchor
== NULL
) {
8154 var4
= 0; /* is null */
8156 var4
= 1; /* arg is null and recv is not */
8159 { /* Inline kernel#Object#!= (var_anchor,var3) on <var_anchor:nullable MClassType> */
8162 var8
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
8172 if (unlikely(!var4
)) {
8173 PRINT_ERROR("Runtime error: %s", "Assert failed");
8174 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1189);
8180 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>*/;
8182 var_resolved_reciever
= var12
;
8184 var_resolved_reciever
= var_mtype
;
8187 var13
= model__MVirtualType__lookup_bound(self
, var_mmodule
, var_resolved_reciever
);
8189 var_verbatim_bound
= var13
;
8191 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>*/;
8194 if (var_cleanup_virtual
){
8199 /* <var_resolved_reciever:nullable Object(MType)> isa MNullableType */
8200 cltype
= type_model__MNullableType
.color
;
8201 idtype
= type_model__MNullableType
.id
;
8202 if(cltype
>= var_resolved_reciever
->type
->table_size
) {
8205 var15
= var_resolved_reciever
->type
->type_table
[cltype
] == idtype
;
8209 { /* Inline model#MNullableType#mtype (var_resolved_reciever) on <var_resolved_reciever:nullable Object(MNullableType)> */
8210 var18
= var_resolved_reciever
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_resolved_reciever:nullable Object(MNullableType)> */
8211 if (unlikely(var18
== NULL
)) {
8212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8213 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
8217 RET_LABEL17
:(void)0;
8220 var_resolved_reciever
= var16
;
8223 /* <var_resolved_reciever:nullable Object(MType)> isa MClassType */
8224 cltype20
= type_model__MClassType
.color
;
8225 idtype21
= type_model__MClassType
.id
;
8226 if(cltype20
>= var_resolved_reciever
->type
->table_size
) {
8229 var19
= var_resolved_reciever
->type
->type_table
[cltype20
] == idtype21
;
8231 if (unlikely(!var19
)) {
8232 var_class_name
= var_resolved_reciever
== NULL ?
"null" : var_resolved_reciever
->type
->name
;
8233 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
8234 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1205);
8238 { /* Inline model#MClassType#mclass (var_resolved_reciever) on <var_resolved_reciever:MType(MClassType)> */
8239 var24
= var_resolved_reciever
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_resolved_reciever:MType(MClassType)> */
8240 if (unlikely(var24
== NULL
)) {
8241 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8242 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
8246 RET_LABEL23
:(void)0;
8250 { /* Inline model#MClass#kind (var22) on <var22:MClass> */
8251 var27
= var22
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var22:MClass> */
8252 if (unlikely(var27
== NULL
)) {
8253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
8254 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
8258 RET_LABEL26
:(void)0;
8262 var28
= model__Object__enum_kind(self
);
8265 { /* Inline kernel#Object#== (var25,var28) on <var25:MClassKind> */
8266 var_other32
= var28
;
8268 { /* Inline kernel#Object#is_same_instance (var25,var_other32) on <var25:MClassKind> */
8269 var35
= var25
== var_other32
;
8272 RET_LABEL34
:(void)0;
8277 RET_LABEL31
:(void)0;
8286 /* <var_res:MType> isa MVirtualType */
8287 cltype37
= type_model__MVirtualType
.color
;
8288 idtype38
= type_model__MVirtualType
.id
;
8289 if(cltype37
>= var_res
->type
->table_size
) {
8292 var36
= var_res
->type
->type_table
[cltype37
] == idtype38
;
8300 var39
= model__MVirtualType__is_fixed(self
, var_mmodule
, var_resolved_reciever
);
8307 /* <var_res:MType> isa MClassType */
8308 cltype42
= type_model__MClassType
.color
;
8309 idtype43
= type_model__MClassType
.id
;
8310 if(cltype42
>= var_res
->type
->table_size
) {
8313 var41
= var_res
->type
->type_table
[cltype42
] == idtype43
;
8318 { /* Inline model#MClassType#mclass (var_res) on <var_res:MType(MClassType)> */
8319 var46
= var_res
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_res:MType(MClassType)> */
8320 if (unlikely(var46
== NULL
)) {
8321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8322 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
8326 RET_LABEL45
:(void)0;
8330 { /* Inline model#MClass#kind (var44) on <var44:MClass> */
8331 var49
= var44
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var44:MClass> */
8332 if (unlikely(var49
== NULL
)) {
8333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
8334 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
8338 RET_LABEL48
:(void)0;
8342 var50
= model__Object__enum_kind(self
);
8345 { /* Inline kernel#Object#== (var47,var50) on <var47:MClassKind> */
8346 var_other32
= var50
;
8348 { /* Inline kernel#Object#is_same_instance (var47,var_other32) on <var47:MClassKind> */
8349 var56
= var47
== var_other32
;
8352 RET_LABEL55
:(void)0;
8357 RET_LABEL53
:(void)0;
8375 /* method model#MVirtualType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
8376 val
* VIRTUAL_model__MVirtualType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
8377 val
* var
/* : MType */;
8378 val
* var1
/* : MType */;
8379 var1
= model__MVirtualType__resolve_for(self
, p0
, p1
, p2
, p3
);
8384 /* method model#MVirtualType#can_resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule): Bool */
8385 short int model__MVirtualType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8386 short int var
/* : Bool */;
8387 val
* var_mtype
/* var mtype: MType */;
8388 val
* var_anchor
/* var anchor: nullable MClassType */;
8389 val
* var_mmodule
/* var mmodule: MModule */;
8390 short int var1
/* : Bool */;
8391 val
* var2
/* : null */;
8392 short int var3
/* : Bool */;
8393 short int var4
/* : Bool */;
8394 val
* var_other
/* var other: nullable Object */;
8395 short int var6
/* : Bool */;
8396 short int var7
/* : Bool */;
8397 short int var8
/* : Bool */;
8398 val
* var9
/* : MType */;
8399 val
* var10
/* : MProperty */;
8400 val
* var12
/* : MProperty */;
8401 short int var13
/* : Bool */;
8406 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
8410 if (var_anchor
== NULL
) {
8411 var3
= 0; /* is null */
8413 var3
= 1; /* arg is null and recv is not */
8416 { /* Inline kernel#Object#!= (var_anchor,var2) on <var_anchor:nullable MClassType> */
8419 var7
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
8429 if (unlikely(!var3
)) {
8430 PRINT_ERROR("Runtime error: %s", "Assert failed");
8431 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1223);
8435 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>*/;
8441 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
8442 var12
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
8443 if (unlikely(var12
== NULL
)) {
8444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8445 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
8449 RET_LABEL11
:(void)0;
8453 var13
= model__MType__has_mproperty(var_mtype
, var_mmodule
, var10
);
8460 /* method model#MVirtualType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
8461 short int VIRTUAL_model__MVirtualType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
8462 short int var
/* : Bool */;
8463 short int var1
/* : Bool */;
8464 var1
= model__MVirtualType__can_resolve_for(self
, p0
, p1
, p2
);
8469 /* method model#MVirtualType#to_s for (self: MVirtualType): String */
8470 val
* model__MVirtualType__to_s(val
* self
) {
8471 val
* var
/* : String */;
8472 val
* var1
/* : MProperty */;
8473 val
* var3
/* : MProperty */;
8474 val
* var4
/* : String */;
8476 { /* Inline model#MVirtualType#mproperty (self) on <self:MVirtualType> */
8477 var3
= self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
; /* _mproperty on <self:MVirtualType> */
8478 if (unlikely(var3
== NULL
)) {
8479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8480 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
8488 var4
= model__MProperty__to_s(var1
);
8495 /* method model#MVirtualType#to_s for (self: Object): String */
8496 val
* VIRTUAL_model__MVirtualType__to_s(val
* self
) {
8497 val
* var
/* : String */;
8498 val
* var1
/* : String */;
8499 var1
= model__MVirtualType__to_s(self
);
8504 /* method model#MVirtualType#init for (self: MVirtualType, MProperty) */
8505 void model__MVirtualType__init(val
* self
, val
* p0
) {
8506 val
* var_mproperty
/* var mproperty: MProperty */;
8508 { /* Inline model_base#MEntity#init (self) on <self:MVirtualType> */
8514 { /* Inline model#MVirtualType#mproperty= (self,var_mproperty) on <self:MVirtualType> */
8515 self
->attrs
[COLOR_model__MVirtualType___mproperty
].val
= var_mproperty
; /* _mproperty on <self:MVirtualType> */
8521 /* method model#MVirtualType#init for (self: Object, MProperty) */
8522 void VIRTUAL_model__MVirtualType__init(val
* self
, val
* p0
) {
8523 model__MVirtualType__init(self
, p0
); /* Direct call model#MVirtualType#init on <self:Object(MVirtualType)>*/
8526 /* method model#MParameterType#mclass for (self: MParameterType): MClass */
8527 val
* model__MParameterType__mclass(val
* self
) {
8528 val
* var
/* : MClass */;
8529 val
* var1
/* : MClass */;
8530 var1
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
8531 if (unlikely(var1
== NULL
)) {
8532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8533 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
8540 /* method model#MParameterType#mclass for (self: Object): MClass */
8541 val
* VIRTUAL_model__MParameterType__mclass(val
* self
) {
8542 val
* var
/* : MClass */;
8543 val
* var1
/* : MClass */;
8544 val
* var3
/* : MClass */;
8545 { /* Inline model#MParameterType#mclass (self) on <self:Object(MParameterType)> */
8546 var3
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:Object(MParameterType)> */
8547 if (unlikely(var3
== NULL
)) {
8548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8549 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
8559 /* method model#MParameterType#mclass= for (self: MParameterType, MClass) */
8560 void model__MParameterType__mclass_61d(val
* self
, val
* p0
) {
8561 self
->attrs
[COLOR_model__MParameterType___mclass
].val
= p0
; /* _mclass on <self:MParameterType> */
8564 /* method model#MParameterType#mclass= for (self: Object, MClass) */
8565 void VIRTUAL_model__MParameterType__mclass_61d(val
* self
, val
* p0
) {
8566 { /* Inline model#MParameterType#mclass= (self,p0) on <self:Object(MParameterType)> */
8567 self
->attrs
[COLOR_model__MParameterType___mclass
].val
= p0
; /* _mclass on <self:Object(MParameterType)> */
8572 /* method model#MParameterType#model for (self: MParameterType): Model */
8573 val
* model__MParameterType__model(val
* self
) {
8574 val
* var
/* : Model */;
8575 val
* var1
/* : MClass */;
8576 val
* var3
/* : MClass */;
8577 val
* var4
/* : MModule */;
8578 val
* var6
/* : MModule */;
8579 val
* var7
/* : Model */;
8580 val
* var9
/* : Model */;
8582 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
8583 var3
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
8584 if (unlikely(var3
== NULL
)) {
8585 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8586 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
8594 { /* Inline model#MClass#intro_mmodule (var1) on <var1:MClass> */
8595 var6
= var1
->attrs
[COLOR_model__MClass___intro_mmodule
].val
; /* _intro_mmodule on <var1:MClass> */
8596 if (unlikely(var6
== NULL
)) {
8597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
8598 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
8606 { /* Inline mmodule#MModule#model (var4) on <var4:MModule> */
8607 var9
= var4
->attrs
[COLOR_mmodule__MModule___model
].val
; /* _model on <var4:MModule> */
8608 if (unlikely(var9
== NULL
)) {
8609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
8610 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
8622 /* method model#MParameterType#model for (self: Object): Model */
8623 val
* VIRTUAL_model__MParameterType__model(val
* self
) {
8624 val
* var
/* : Model */;
8625 val
* var1
/* : Model */;
8626 var1
= model__MParameterType__model(self
);
8631 /* method model#MParameterType#rank for (self: MParameterType): Int */
8632 long model__MParameterType__rank(val
* self
) {
8633 long var
/* : Int */;
8634 long var1
/* : Int */;
8635 var1
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:MParameterType> */
8640 /* method model#MParameterType#rank for (self: Object): Int */
8641 long VIRTUAL_model__MParameterType__rank(val
* self
) {
8642 long var
/* : Int */;
8643 long var1
/* : Int */;
8644 long var3
/* : Int */;
8645 { /* Inline model#MParameterType#rank (self) on <self:Object(MParameterType)> */
8646 var3
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:Object(MParameterType)> */
8654 /* method model#MParameterType#rank= for (self: MParameterType, Int) */
8655 void model__MParameterType__rank_61d(val
* self
, long p0
) {
8656 self
->attrs
[COLOR_model__MParameterType___rank
].l
= p0
; /* _rank on <self:MParameterType> */
8659 /* method model#MParameterType#rank= for (self: Object, Int) */
8660 void VIRTUAL_model__MParameterType__rank_61d(val
* self
, long p0
) {
8661 { /* Inline model#MParameterType#rank= (self,p0) on <self:Object(MParameterType)> */
8662 self
->attrs
[COLOR_model__MParameterType___rank
].l
= p0
; /* _rank on <self:Object(MParameterType)> */
8667 /* method model#MParameterType#to_s for (self: MParameterType): String */
8668 val
* model__MParameterType__to_s(val
* self
) {
8669 val
* var
/* : String */;
8670 val
* var1
/* : MClass */;
8671 val
* var3
/* : MClass */;
8672 static val
* varonce
;
8673 val
* var4
/* : String */;
8674 char* var5
/* : NativeString */;
8675 long var6
/* : Int */;
8676 val
* var7
/* : FlatString */;
8677 long var8
/* : Int */;
8678 long var10
/* : Int */;
8679 val
* var11
/* : Array[Object] */;
8680 long var12
/* : Int */;
8681 val
* var13
/* : NativeArray[Object] */;
8682 val
* var14
/* : Object */;
8683 val
* var15
/* : String */;
8685 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
8686 var3
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
8687 if (unlikely(var3
== NULL
)) {
8688 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8689 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
8701 var7
= string__NativeString__to_s_with_length(var5
, var6
);
8706 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
8707 var10
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:MParameterType> */
8712 var11
= NEW_array__Array(&type_array__Arraykernel__Object
);
8713 { /* var11 = array_instance Array[Object] */
8715 var13
= NEW_array__NativeArray(var12
, &type_array__NativeArraykernel__Object
);
8716 ((struct instance_array__NativeArray
*)var13
)->values
[0] = (val
*) var1
;
8717 ((struct instance_array__NativeArray
*)var13
)->values
[1] = (val
*) var4
;
8718 var14
= BOX_kernel__Int(var8
); /* autobox from Int to Object */
8719 ((struct instance_array__NativeArray
*)var13
)->values
[2] = (val
*) var14
;
8721 ((void (*)(val
*, val
*, long))(var11
->class->vft
[COLOR_array__Array__with_native
]))(var11
, var13
, var12
) /* with_native on <var11:Array[Object]>*/;
8725 var15
= ((val
* (*)(val
*))(var11
->class->vft
[COLOR_string__Object__to_s
]))(var11
) /* to_s on <var11:Array[Object]>*/;
8732 /* method model#MParameterType#to_s for (self: Object): String */
8733 val
* VIRTUAL_model__MParameterType__to_s(val
* self
) {
8734 val
* var
/* : String */;
8735 val
* var1
/* : String */;
8736 var1
= model__MParameterType__to_s(self
);
8741 /* method model#MParameterType#lookup_bound for (self: MParameterType, MModule, MType): MType */
8742 val
* model__MParameterType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
8743 val
* var
/* : MType */;
8744 val
* var_mmodule
/* var mmodule: MModule */;
8745 val
* var_resolved_receiver
/* var resolved_receiver: MType */;
8746 short int var1
/* : Bool */;
8747 short int var2
/* : Bool */;
8748 val
* var3
/* : MClass */;
8749 val
* var5
/* : MClass */;
8750 val
* var_goalclass
/* var goalclass: MClass */;
8751 val
* var6
/* : Set[MClassType] */;
8752 val
* var_supertypes
/* var supertypes: Set[MClassType] */;
8753 val
* var7
/* : Iterator[nullable Object] */;
8754 short int var8
/* : Bool */;
8755 val
* var9
/* : nullable Object */;
8756 val
* var_t
/* var t: MClassType */;
8757 val
* var10
/* : MClass */;
8758 val
* var12
/* : MClass */;
8759 short int var13
/* : Bool */;
8760 short int var14
/* : Bool */;
8761 val
* var_other
/* var other: nullable Object */;
8762 short int var16
/* : Bool */;
8763 short int var18
/* : Bool */;
8764 val
* var19
/* : Array[MType] */;
8765 val
* var21
/* : Array[MType] */;
8766 long var22
/* : Int */;
8767 long var24
/* : Int */;
8768 val
* var25
/* : nullable Object */;
8769 val
* var_res
/* var res: MType */;
8771 var_resolved_receiver
= p1
;
8773 var1
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:MType>*/;
8776 if (unlikely(!var2
)) {
8777 PRINT_ERROR("Runtime error: %s", "Assert failed");
8778 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1285);
8782 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
8783 var5
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
8784 if (unlikely(var5
== NULL
)) {
8785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8786 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
8793 var_goalclass
= var3
;
8795 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>*/;
8797 var_supertypes
= var6
;
8799 var7
= ((val
* (*)(val
*))(var_supertypes
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_supertypes
) /* iterator on <var_supertypes:Set[MClassType]>*/;
8803 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
8807 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
8811 { /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
8812 var12
= var_t
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_t:MClassType> */
8813 if (unlikely(var12
== NULL
)) {
8814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8815 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
8819 RET_LABEL11
:(void)0;
8823 { /* Inline kernel#Object#== (var10,var_goalclass) on <var10:MClass> */
8824 var_other
= var_goalclass
;
8826 { /* Inline kernel#Object#is_same_instance (var10,var_other) on <var10:MClass> */
8827 var18
= var10
== var_other
;
8830 RET_LABEL17
:(void)0;
8835 RET_LABEL15
:(void)0;
8841 { /* Inline model#MClassType#arguments (var_t) on <var_t:MClassType> */
8842 var21
= var_t
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_t:MClassType> */
8843 if (unlikely(var21
== NULL
)) {
8844 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
8845 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
8849 RET_LABEL20
:(void)0;
8853 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
8854 var24
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:MParameterType> */
8856 RET_LABEL23
:(void)0;
8860 var25
= array__Array___91d_93d(var19
, var22
);
8867 CONTINUE_label
: (void)0;
8869 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
8872 BREAK_label
: (void)0;
8873 PRINT_ERROR("Runtime error: %s", "Aborted");
8874 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1296);
8879 /* method model#MParameterType#lookup_bound for (self: Object, MModule, MType): MType */
8880 val
* VIRTUAL_model__MParameterType__lookup_bound(val
* self
, val
* p0
, val
* p1
) {
8881 val
* var
/* : MType */;
8882 val
* var1
/* : MType */;
8883 var1
= model__MParameterType__lookup_bound(self
, p0
, p1
);
8888 /* method model#MParameterType#resolve_for for (self: MParameterType, MType, nullable MClassType, MModule, Bool): MType */
8889 val
* model__MParameterType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
8890 val
* var
/* : MType */;
8891 val
* var_mtype
/* var mtype: MType */;
8892 val
* var_anchor
/* var anchor: nullable MClassType */;
8893 val
* var_mmodule
/* var mmodule: MModule */;
8894 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
8895 short int var1
/* : Bool */;
8896 short int var2
/* : Bool */;
8897 short int var3
/* : Bool */;
8900 short int var_
/* var : Bool */;
8901 val
* var4
/* : MClass */;
8902 val
* var6
/* : MClass */;
8903 val
* var7
/* : MClass */;
8904 val
* var9
/* : MClass */;
8905 short int var10
/* : Bool */;
8906 short int var11
/* : Bool */;
8907 val
* var_other
/* var other: nullable Object */;
8908 short int var13
/* : Bool */;
8909 short int var15
/* : Bool */;
8910 val
* var16
/* : Array[MType] */;
8911 val
* var18
/* : Array[MType] */;
8912 long var19
/* : Int */;
8913 long var21
/* : Int */;
8914 val
* var22
/* : nullable Object */;
8915 val
* var_res
/* var res: MType */;
8916 short int var23
/* : Bool */;
8917 val
* var24
/* : null */;
8918 short int var25
/* : Bool */;
8919 short int var26
/* : Bool */;
8920 val
* var_other28
/* var other: nullable Object */;
8921 short int var29
/* : Bool */;
8922 short int var30
/* : Bool */;
8923 short int var31
/* : Bool */;
8924 short int var_32
/* var : Bool */;
8925 short int var33
/* : Bool */;
8926 val
* var34
/* : MType */;
8927 val
* var_r2
/* var r2: MType */;
8928 short int var35
/* : Bool */;
8929 short int var36
/* : Bool */;
8932 short int var_39
/* var : Bool */;
8933 val
* var40
/* : MClass */;
8934 val
* var42
/* : MClass */;
8935 val
* var43
/* : MClassKind */;
8936 val
* var45
/* : MClassKind */;
8937 val
* var46
/* : MClassKind */;
8938 short int var47
/* : Bool */;
8939 short int var48
/* : Bool */;
8940 short int var50
/* : Bool */;
8941 short int var52
/* : Bool */;
8942 short int var53
/* : Bool */;
8943 val
* var54
/* : null */;
8944 short int var55
/* : Bool */;
8945 short int var56
/* : Bool */;
8946 short int var58
/* : Bool */;
8947 short int var59
/* : Bool */;
8948 short int var60
/* : Bool */;
8949 val
* var61
/* : MClass */;
8950 val
* var63
/* : MClass */;
8951 val
* var64
/* : MClassType */;
8952 val
* var66
/* : MClassType */;
8953 short int var67
/* : Bool */;
8954 val
* var68
/* : MType */;
8955 val
* var_resolved_receiver
/* var resolved_receiver: nullable Object */;
8956 short int var69
/* : Bool */;
8959 val
* var72
/* : MType */;
8960 val
* var74
/* : MType */;
8961 short int var75
/* : Bool */;
8964 val
* var78
/* : MClass */;
8965 val
* var80
/* : MClass */;
8966 val
* var81
/* : MClass */;
8967 val
* var83
/* : MClass */;
8968 short int var84
/* : Bool */;
8969 short int var85
/* : Bool */;
8970 short int var87
/* : Bool */;
8971 short int var89
/* : Bool */;
8972 val
* var90
/* : Array[MType] */;
8973 val
* var92
/* : Array[MType] */;
8974 long var93
/* : Int */;
8975 long var95
/* : Int */;
8976 val
* var96
/* : nullable Object */;
8977 short int var97
/* : Bool */;
8980 val
* var100
/* : MType */;
8981 val
* var102
/* : MType */;
8982 short int var103
/* : Bool */;
8985 val
* var106
/* : MClass */;
8986 val
* var108
/* : MClass */;
8987 val
* var109
/* : MClass */;
8988 val
* var111
/* : MClass */;
8989 short int var112
/* : Bool */;
8990 short int var113
/* : Bool */;
8991 short int var115
/* : Bool */;
8992 short int var117
/* : Bool */;
8993 val
* var118
/* : Array[MType] */;
8994 val
* var120
/* : Array[MType] */;
8995 long var121
/* : Int */;
8996 long var123
/* : Int */;
8997 val
* var124
/* : nullable Object */;
8998 val
* var_res125
/* var res: MType */;
8999 short int var126
/* : Bool */;
9000 val
* var127
/* : null */;
9001 short int var128
/* : Bool */;
9002 short int var129
/* : Bool */;
9003 short int var131
/* : Bool */;
9004 short int var132
/* : Bool */;
9005 short int var133
/* : Bool */;
9006 val
* var134
/* : null */;
9007 short int var135
/* : Bool */;
9008 val
* var136
/* : MType */;
9009 val
* var137
/* : MType */;
9010 val
* var_verbatim_bound
/* var verbatim_bound: MType */;
9011 val
* var138
/* : MType */;
9012 val
* var_res139
/* var res: MType */;
9016 var_cleanup_virtual
= p3
;
9018 var1
= model__MParameterType__can_resolve_for(self
, var_mtype
, var_anchor
, var_mmodule
);
9020 if (unlikely(!var1
)) {
9021 PRINT_ERROR("Runtime error: %s", "Assert failed");
9022 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1301);
9025 /* <var_mtype:MType> isa MGenericType */
9026 cltype
= type_model__MGenericType
.color
;
9027 idtype
= type_model__MGenericType
.id
;
9028 if(cltype
>= var_mtype
->type
->table_size
) {
9031 var3
= var_mtype
->type
->type_table
[cltype
] == idtype
;
9036 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MGenericType)> */
9037 var6
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MType(MGenericType)> */
9038 if (unlikely(var6
== NULL
)) {
9039 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9040 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
9048 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
9049 var9
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
9050 if (unlikely(var9
== NULL
)) {
9051 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9052 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
9060 { /* Inline kernel#Object#== (var4,var7) on <var4:MClass> */
9063 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MClass> */
9064 var15
= var4
== var_other
;
9067 RET_LABEL14
:(void)0;
9072 RET_LABEL12
:(void)0;
9082 { /* Inline model#MClassType#arguments (var_mtype) on <var_mtype:MType(MGenericType)> */
9083 var18
= var_mtype
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_mtype:MType(MGenericType)> */
9084 if (unlikely(var18
== NULL
)) {
9085 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9086 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
9090 RET_LABEL17
:(void)0;
9094 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
9095 var21
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:MParameterType> */
9097 RET_LABEL20
:(void)0;
9101 var22
= array__Array___91d_93d(var16
, var19
);
9105 if (var_anchor
== NULL
) {
9106 var25
= 0; /* is null */
9108 var25
= 1; /* arg is null and recv is not */
9111 { /* Inline kernel#Object#!= (var_anchor,var24) on <var_anchor:nullable MClassType> */
9112 var_other28
= var24
;
9114 var30
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other28
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
9120 RET_LABEL27
:(void)0;
9127 var33
= ((short int (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__need_anchor
]))(var_res
) /* need_anchor on <var_res:MType>*/;
9135 var34
= ((val
* (*)(val
*, val
*, val
*))(var_res
->class->vft
[COLOR_model__MType__anchor_to
]))(var_res
, var_mmodule
, var_anchor
) /* anchor_to on <var_res:MType>*/;
9138 /* <var_r2:MType> isa MClassType */
9139 cltype37
= type_model__MClassType
.color
;
9140 idtype38
= type_model__MClassType
.id
;
9141 if(cltype37
>= var_r2
->type
->table_size
) {
9144 var36
= var_r2
->type
->type_table
[cltype37
] == idtype38
;
9149 { /* Inline model#MClassType#mclass (var_r2) on <var_r2:MType(MClassType)> */
9150 var42
= var_r2
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_r2:MType(MClassType)> */
9151 if (unlikely(var42
== NULL
)) {
9152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9153 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
9157 RET_LABEL41
:(void)0;
9161 { /* Inline model#MClass#kind (var40) on <var40:MClass> */
9162 var45
= var40
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var40:MClass> */
9163 if (unlikely(var45
== NULL
)) {
9164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
9165 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
9169 RET_LABEL44
:(void)0;
9173 var46
= model__Object__enum_kind(self
);
9176 { /* Inline kernel#Object#== (var43,var46) on <var43:MClassKind> */
9179 { /* Inline kernel#Object#is_same_instance (var43,var_other) on <var43:MClassKind> */
9180 var52
= var43
== var_other
;
9183 RET_LABEL51
:(void)0;
9188 RET_LABEL49
:(void)0;
9208 var53
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
9212 if (var_anchor
== NULL
) {
9213 var55
= 0; /* is null */
9215 var55
= 1; /* arg is null and recv is not */
9218 { /* Inline kernel#Object#!= (var_anchor,var54) on <var_anchor:nullable MClassType> */
9219 var_other28
= var54
;
9221 var59
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other28
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
9227 RET_LABEL57
:(void)0;
9231 if (unlikely(!var55
)) {
9232 PRINT_ERROR("Runtime error: %s", "Assert failed");
9233 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1320);
9237 { /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
9238 var63
= var_anchor
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
9239 if (unlikely(var63
== NULL
)) {
9240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9241 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
9245 RET_LABEL62
:(void)0;
9249 { /* Inline model#MClass#mclass_type (var61) on <var61:MClass> */
9250 var66
= var61
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var61:MClass> */
9251 if (unlikely(var66
== NULL
)) {
9252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
9253 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
9257 RET_LABEL65
:(void)0;
9262 var68
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_mtype
->class->vft
[COLOR_model__MType__resolve_for
]))(var_mtype
, var64
, var_anchor
, var_mmodule
, var67
) /* resolve_for on <var_mtype:MType>*/;
9264 var_resolved_receiver
= var68
;
9266 var_resolved_receiver
= var_mtype
;
9268 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
9269 cltype70
= type_model__MNullableType
.color
;
9270 idtype71
= type_model__MNullableType
.id
;
9271 if(cltype70
>= var_resolved_receiver
->type
->table_size
) {
9274 var69
= var_resolved_receiver
->type
->type_table
[cltype70
] == idtype71
;
9278 { /* Inline model#MNullableType#mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
9279 var74
= var_resolved_receiver
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
9280 if (unlikely(var74
== NULL
)) {
9281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9282 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
9286 RET_LABEL73
:(void)0;
9289 var_resolved_receiver
= var72
;
9292 /* <var_resolved_receiver:nullable Object(MType)> isa MParameterType */
9293 cltype76
= type_model__MParameterType
.color
;
9294 idtype77
= type_model__MParameterType
.id
;
9295 if(cltype76
>= var_resolved_receiver
->type
->table_size
) {
9298 var75
= var_resolved_receiver
->type
->type_table
[cltype76
] == idtype77
;
9302 { /* Inline model#MParameterType#mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
9303 var80
= var_resolved_receiver
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <var_resolved_receiver:nullable Object(MParameterType)> */
9304 if (unlikely(var80
== NULL
)) {
9305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9306 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
9310 RET_LABEL79
:(void)0;
9313 if (var_anchor
== NULL
) {
9314 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9315 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1327);
9318 { /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType> */
9319 if (unlikely(var_anchor
== NULL
)) {
9320 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9321 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
9324 var83
= var_anchor
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_anchor:nullable MClassType> */
9325 if (unlikely(var83
== NULL
)) {
9326 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9327 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
9331 RET_LABEL82
:(void)0;
9335 { /* Inline kernel#Object#== (var78,var81) on <var78:MClass> */
9338 { /* Inline kernel#Object#is_same_instance (var78,var_other) on <var78:MClass> */
9339 var89
= var78
== var_other
;
9342 RET_LABEL88
:(void)0;
9347 RET_LABEL86
:(void)0;
9351 if (unlikely(!var84
)) {
9352 PRINT_ERROR("Runtime error: %s", "Assert failed");
9353 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1327);
9356 if (var_anchor
== NULL
) {
9357 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9358 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1328);
9361 { /* Inline model#MClassType#arguments (var_anchor) on <var_anchor:nullable MClassType> */
9362 if (unlikely(var_anchor
== NULL
)) {
9363 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9364 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
9367 var92
= var_anchor
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_anchor:nullable MClassType> */
9368 if (unlikely(var92
== NULL
)) {
9369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9370 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
9374 RET_LABEL91
:(void)0;
9378 { /* Inline model#MParameterType#rank (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
9379 var95
= var_resolved_receiver
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <var_resolved_receiver:nullable Object(MParameterType)> */
9381 RET_LABEL94
:(void)0;
9385 var96
= array__Array___91d_93d(var90
, var93
);
9387 var_resolved_receiver
= var96
;
9388 /* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
9389 cltype98
= type_model__MNullableType
.color
;
9390 idtype99
= type_model__MNullableType
.id
;
9391 if(cltype98
>= var_resolved_receiver
->type
->table_size
) {
9394 var97
= var_resolved_receiver
->type
->type_table
[cltype98
] == idtype99
;
9398 { /* Inline model#MNullableType#mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
9399 var102
= var_resolved_receiver
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
9400 if (unlikely(var102
== NULL
)) {
9401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9402 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
9406 RET_LABEL101
:(void)0;
9409 var_resolved_receiver
= var100
;
9414 /* <var_resolved_receiver:nullable Object(MType)> isa MClassType */
9415 cltype104
= type_model__MClassType
.color
;
9416 idtype105
= type_model__MClassType
.id
;
9417 if(cltype104
>= var_resolved_receiver
->type
->table_size
) {
9420 var103
= var_resolved_receiver
->type
->type_table
[cltype104
] == idtype105
;
9422 if (unlikely(!var103
)) {
9423 PRINT_ERROR("Runtime error: %s", "Assert failed");
9424 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1331);
9428 { /* Inline model#MClassType#mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MClassType)> */
9429 var108
= var_resolved_receiver
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_resolved_receiver:nullable Object(MClassType)> */
9430 if (unlikely(var108
== NULL
)) {
9431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9432 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
9436 RET_LABEL107
:(void)0;
9440 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
9441 var111
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
9442 if (unlikely(var111
== NULL
)) {
9443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9444 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
9448 RET_LABEL110
:(void)0;
9452 { /* Inline kernel#Object#== (var106,var109) on <var106:MClass> */
9455 { /* Inline kernel#Object#is_same_instance (var106,var_other) on <var106:MClass> */
9456 var117
= var106
== var_other
;
9459 RET_LABEL116
:(void)0;
9464 RET_LABEL114
:(void)0;
9470 { /* Inline model#MClassType#arguments (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MClassType)> */
9471 var120
= var_resolved_receiver
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var_resolved_receiver:nullable Object(MClassType)> */
9472 if (unlikely(var120
== NULL
)) {
9473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9474 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
9478 RET_LABEL119
:(void)0;
9482 { /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
9483 var123
= self
->attrs
[COLOR_model__MParameterType___rank
].l
; /* _rank on <self:MParameterType> */
9485 RET_LABEL122
:(void)0;
9489 var124
= array__Array___91d_93d(var118
, var121
);
9491 var_res125
= var124
;
9497 var126
= ((short int (*)(val
*))(var_resolved_receiver
->class->vft
[COLOR_model__MType__need_anchor
]))(var_resolved_receiver
) /* need_anchor on <var_resolved_receiver:nullable Object(MClassType)>*/;
9501 if (var_anchor
== NULL
) {
9502 var128
= 0; /* is null */
9504 var128
= 1; /* arg is null and recv is not */
9507 { /* Inline kernel#Object#!= (var_anchor,var127) on <var_anchor:nullable MClassType> */
9508 var_other28
= var127
;
9510 var132
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other28
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
9516 RET_LABEL130
:(void)0;
9520 if (unlikely(!var128
)) {
9521 PRINT_ERROR("Runtime error: %s", "Assert failed");
9522 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1342);
9528 var136
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var_resolved_receiver
->class->vft
[COLOR_model__MType__resolve_for
]))(var_resolved_receiver
, var_anchor
, var134
, var_mmodule
, var135
) /* resolve_for on <var_resolved_receiver:nullable Object(MClassType)>*/;
9530 var_resolved_receiver
= var136
;
9534 var137
= model__MParameterType__lookup_bound(self
, var_mmodule
, var_resolved_receiver
);
9536 var_verbatim_bound
= var137
;
9538 var138
= ((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>*/;
9540 var_res139
= var138
;
9546 /* method model#MParameterType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
9547 val
* VIRTUAL_model__MParameterType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
9548 val
* var
/* : MType */;
9549 val
* var1
/* : MType */;
9550 var1
= model__MParameterType__resolve_for(self
, p0
, p1
, p2
, p3
);
9555 /* method model#MParameterType#can_resolve_for for (self: MParameterType, MType, nullable MClassType, MModule): Bool */
9556 short int model__MParameterType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9557 short int var
/* : Bool */;
9558 val
* var_mtype
/* var mtype: MType */;
9559 val
* var_anchor
/* var anchor: nullable MClassType */;
9560 val
* var_mmodule
/* var mmodule: MModule */;
9561 short int var1
/* : Bool */;
9562 val
* var2
/* : null */;
9563 short int var3
/* : Bool */;
9564 short int var4
/* : Bool */;
9565 val
* var_other
/* var other: nullable Object */;
9566 short int var6
/* : Bool */;
9567 short int var7
/* : Bool */;
9568 short int var8
/* : Bool */;
9569 val
* var9
/* : MType */;
9570 val
* var10
/* : Set[MClassDef] */;
9571 val
* var11
/* : MClass */;
9572 val
* var13
/* : MClass */;
9573 val
* var14
/* : MClassDef */;
9574 short int var15
/* : Bool */;
9579 var1
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
9583 if (var_anchor
== NULL
) {
9584 var3
= 0; /* is null */
9586 var3
= 1; /* arg is null and recv is not */
9589 { /* Inline kernel#Object#!= (var_anchor,var2) on <var_anchor:nullable MClassType> */
9592 var7
= ((short int (*)(val
*, val
*))(var_anchor
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_anchor
, var_other
) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
9602 if (unlikely(!var3
)) {
9603 PRINT_ERROR("Runtime error: %s", "Assert failed");
9604 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1358);
9608 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>*/;
9614 var10
= ((val
* (*)(val
*, val
*))(var_mtype
->class->vft
[COLOR_model__MType__collect_mclassdefs
]))(var_mtype
, var_mmodule
) /* collect_mclassdefs on <var_mtype:MType>*/;
9617 { /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
9618 var13
= self
->attrs
[COLOR_model__MParameterType___mclass
].val
; /* _mclass on <self:MParameterType> */
9619 if (unlikely(var13
== NULL
)) {
9620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9621 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
9625 RET_LABEL12
:(void)0;
9629 var14
= model__MClass__intro(var11
);
9632 var15
= ((short int (*)(val
*, val
*))(var10
->class->vft
[COLOR_abstract_collection__Collection__has
]))(var10
, var14
) /* has on <var10:Set[MClassDef]>*/;
9639 /* method model#MParameterType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
9640 short int VIRTUAL_model__MParameterType__can_resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
9641 short int var
/* : Bool */;
9642 short int var1
/* : Bool */;
9643 var1
= model__MParameterType__can_resolve_for(self
, p0
, p1
, p2
);
9648 /* method model#MParameterType#init for (self: MParameterType, MClass, Int) */
9649 void model__MParameterType__init(val
* self
, val
* p0
, long p1
) {
9650 val
* var_mclass
/* var mclass: MClass */;
9651 long var_rank
/* var rank: Int */;
9653 { /* Inline model_base#MEntity#init (self) on <self:MParameterType> */
9660 { /* Inline model#MParameterType#mclass= (self,var_mclass) on <self:MParameterType> */
9661 self
->attrs
[COLOR_model__MParameterType___mclass
].val
= var_mclass
; /* _mclass on <self:MParameterType> */
9666 { /* Inline model#MParameterType#rank= (self,var_rank) on <self:MParameterType> */
9667 self
->attrs
[COLOR_model__MParameterType___rank
].l
= var_rank
; /* _rank on <self:MParameterType> */
9673 /* method model#MParameterType#init for (self: Object, MClass, Int) */
9674 void VIRTUAL_model__MParameterType__init(val
* self
, val
* p0
, long p1
) {
9675 model__MParameterType__init(self
, p0
, p1
); /* Direct call model#MParameterType#init on <self:Object(MParameterType)>*/
9678 /* method model#MNullableType#mtype for (self: MNullableType): MType */
9679 val
* model__MNullableType__mtype(val
* self
) {
9680 val
* var
/* : MType */;
9681 val
* var1
/* : MType */;
9682 var1
= self
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <self:MNullableType> */
9683 if (unlikely(var1
== NULL
)) {
9684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9685 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
9692 /* method model#MNullableType#mtype for (self: Object): MType */
9693 val
* VIRTUAL_model__MNullableType__mtype(val
* self
) {
9694 val
* var
/* : MType */;
9695 val
* var1
/* : MType */;
9696 val
* var3
/* : MType */;
9697 { /* Inline model#MNullableType#mtype (self) on <self:Object(MNullableType)> */
9698 var3
= self
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <self:Object(MNullableType)> */
9699 if (unlikely(var3
== NULL
)) {
9700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9701 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
9711 /* method model#MNullableType#mtype= for (self: MNullableType, MType) */
9712 void model__MNullableType__mtype_61d(val
* self
, val
* p0
) {
9713 self
->attrs
[COLOR_model__MNullableType___mtype
].val
= p0
; /* _mtype on <self:MNullableType> */
9716 /* method model#MNullableType#mtype= for (self: Object, MType) */
9717 void VIRTUAL_model__MNullableType__mtype_61d(val
* self
, val
* p0
) {
9718 { /* Inline model#MNullableType#mtype= (self,p0) on <self:Object(MNullableType)> */
9719 self
->attrs
[COLOR_model__MNullableType___mtype
].val
= p0
; /* _mtype on <self:Object(MNullableType)> */
9724 /* method model#MNullableType#model for (self: MNullableType): Model */
9725 val
* model__MNullableType__model(val
* self
) {
9726 val
* var
/* : Model */;
9727 val
* var1
/* : MType */;
9728 val
* var3
/* : MType */;
9729 val
* var4
/* : Model */;
9731 { /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
9732 var3
= self
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <self:MNullableType> */
9733 if (unlikely(var3
== NULL
)) {
9734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9735 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
9743 var4
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model_base__MEntity__model
]))(var1
) /* model on <var1:MType>*/;
9750 /* method model#MNullableType#model for (self: Object): Model */
9751 val
* VIRTUAL_model__MNullableType__model(val
* self
) {
9752 val
* var
/* : Model */;
9753 val
* var1
/* : Model */;
9754 var1
= model__MNullableType__model(self
);
9759 /* method model#MNullableType#init for (self: MNullableType, MType) */
9760 void model__MNullableType__init(val
* self
, val
* p0
) {
9761 val
* var_mtype
/* var mtype: MType */;
9762 static val
* varonce
;
9763 val
* var
/* : String */;
9764 char* var3
/* : NativeString */;
9765 long var4
/* : Int */;
9766 val
* var5
/* : FlatString */;
9767 val
* var6
/* : Array[Object] */;
9768 long var7
/* : Int */;
9769 val
* var8
/* : NativeArray[Object] */;
9770 val
* var9
/* : String */;
9772 { /* Inline model_base#MEntity#init (self) on <self:MNullableType> */
9778 { /* Inline model#MNullableType#mtype= (self,var_mtype) on <self:MNullableType> */
9779 self
->attrs
[COLOR_model__MNullableType___mtype
].val
= var_mtype
; /* _mtype on <self:MNullableType> */
9788 var5
= string__NativeString__to_s_with_length(var3
, var4
);
9792 var6
= NEW_array__Array(&type_array__Arraykernel__Object
);
9793 { /* var6 = array_instance Array[Object] */
9795 var8
= NEW_array__NativeArray(var7
, &type_array__NativeArraykernel__Object
);
9796 ((struct instance_array__NativeArray
*)var8
)->values
[0] = (val
*) var
;
9797 ((struct instance_array__NativeArray
*)var8
)->values
[1] = (val
*) var_mtype
;
9799 ((void (*)(val
*, val
*, long))(var6
->class->vft
[COLOR_array__Array__with_native
]))(var6
, var8
, var7
) /* with_native on <var6:Array[Object]>*/;
9803 var9
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_string__Object__to_s
]))(var6
) /* to_s on <var6:Array[Object]>*/;
9806 { /* Inline model#MNullableType#to_s= (self,var9) on <self:MNullableType> */
9807 self
->attrs
[COLOR_model__MNullableType___to_s
].val
= var9
; /* _to_s on <self:MNullableType> */
9808 RET_LABEL10
:(void)0;
9813 /* method model#MNullableType#init for (self: Object, MType) */
9814 void VIRTUAL_model__MNullableType__init(val
* self
, val
* p0
) {
9815 model__MNullableType__init(self
, p0
); /* Direct call model#MNullableType#init on <self:Object(MNullableType)>*/
9818 /* method model#MNullableType#to_s for (self: MNullableType): String */
9819 val
* model__MNullableType__to_s(val
* self
) {
9820 val
* var
/* : String */;
9821 val
* var1
/* : String */;
9822 var1
= self
->attrs
[COLOR_model__MNullableType___to_s
].val
; /* _to_s on <self:MNullableType> */
9823 if (unlikely(var1
== NULL
)) {
9824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
9825 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1386);
9832 /* method model#MNullableType#to_s for (self: Object): String */
9833 val
* VIRTUAL_model__MNullableType__to_s(val
* self
) {
9834 val
* var
/* : String */;
9835 val
* var1
/* : String */;
9836 val
* var3
/* : String */;
9837 { /* Inline model#MNullableType#to_s (self) on <self:Object(MNullableType)> */
9838 var3
= self
->attrs
[COLOR_model__MNullableType___to_s
].val
; /* _to_s on <self:Object(MNullableType)> */
9839 if (unlikely(var3
== NULL
)) {
9840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
9841 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1386);
9851 /* method model#MNullableType#to_s= for (self: MNullableType, String) */
9852 void model__MNullableType__to_s_61d(val
* self
, val
* p0
) {
9853 self
->attrs
[COLOR_model__MNullableType___to_s
].val
= p0
; /* _to_s on <self:MNullableType> */
9856 /* method model#MNullableType#to_s= for (self: Object, String) */
9857 void VIRTUAL_model__MNullableType__to_s_61d(val
* self
, val
* p0
) {
9858 { /* Inline model#MNullableType#to_s= (self,p0) on <self:Object(MNullableType)> */
9859 self
->attrs
[COLOR_model__MNullableType___to_s
].val
= p0
; /* _to_s on <self:Object(MNullableType)> */
9864 /* method model#MNullableType#need_anchor for (self: MNullableType): Bool */
9865 short int model__MNullableType__need_anchor(val
* self
) {
9866 short int var
/* : Bool */;
9867 val
* var1
/* : MType */;
9868 val
* var3
/* : MType */;
9869 short int var4
/* : Bool */;
9871 { /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
9872 var3
= self
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <self:MNullableType> */
9873 if (unlikely(var3
== NULL
)) {
9874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9875 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
9883 var4
= ((short int (*)(val
*))(var1
->class->vft
[COLOR_model__MType__need_anchor
]))(var1
) /* need_anchor on <var1:MType>*/;
9890 /* method model#MNullableType#need_anchor for (self: Object): Bool */
9891 short int VIRTUAL_model__MNullableType__need_anchor(val
* self
) {
9892 short int var
/* : Bool */;
9893 short int var1
/* : Bool */;
9894 var1
= model__MNullableType__need_anchor(self
);
9899 /* method model#MNullableType#as_nullable for (self: MNullableType): MType */
9900 val
* model__MNullableType__as_nullable(val
* self
) {
9901 val
* var
/* : MType */;
9907 /* method model#MNullableType#as_nullable for (self: Object): MType */
9908 val
* VIRTUAL_model__MNullableType__as_nullable(val
* self
) {
9909 val
* var
/* : MType */;
9910 val
* var1
/* : MType */;
9911 var1
= model__MNullableType__as_nullable(self
);
9916 /* method model#MNullableType#as_notnullable for (self: MNullableType): MType */
9917 val
* model__MNullableType__as_notnullable(val
* self
) {
9918 val
* var
/* : MType */;
9919 val
* var1
/* : MType */;
9920 val
* var3
/* : MType */;
9922 { /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
9923 var3
= self
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <self:MNullableType> */
9924 if (unlikely(var3
== NULL
)) {
9925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9926 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
9938 /* method model#MNullableType#as_notnullable for (self: Object): MType */
9939 val
* VIRTUAL_model__MNullableType__as_notnullable(val
* self
) {
9940 val
* var
/* : MType */;
9941 val
* var1
/* : MType */;
9942 var1
= model__MNullableType__as_notnullable(self
);
9947 /* method model#MNullableType#resolve_for for (self: MNullableType, MType, nullable MClassType, MModule, Bool): MType */
9948 val
* model__MNullableType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
9949 val
* var
/* : MType */;
9950 val
* var_mtype
/* var mtype: MType */;
9951 val
* var_anchor
/* var anchor: nullable MClassType */;
9952 val
* var_mmodule
/* var mmodule: MModule */;
9953 short int var_cleanup_virtual
/* var cleanup_virtual: Bool */;
9954 val
* var1
/* : MType */;
9955 val
* var3
/* : MType */;
9956 val
* var4
/* : MType */;
9957 val
* var_res
/* var res: MType */;
9958 val
* var5
/* : MType */;
9962 var_cleanup_virtual
= p3
;
9964 { /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
9965 var3
= self
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <self:MNullableType> */
9966 if (unlikely(var3
== NULL
)) {
9967 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9968 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
9976 var4
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var1
->class->vft
[COLOR_model__MType__resolve_for
]))(var1
, var_mtype
, var_anchor
, var_mmodule
, var_cleanup_virtual
) /* resolve_for on <var1:MType>*/;
9980 var5
= ((val
* (*)(val
*))(var_res
->class->vft
[COLOR_model__MType__as_nullable
]))(var_res
) /* as_nullable on <var_res:MType>*/;
9987 /* method model#MNullableType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
9988 val
* VIRTUAL_model__MNullableType__resolve_for(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
9989 val
* var
/* : MType */;
9990 val
* var1
/* : MType */;
9991 var1
= model__MNullableType__resolve_for(self
, p0
, p1
, p2
, p3
);