-short int var19 /* : Bool */;
-int cltype20;
-int idtype21;
-short int var22 /* : Bool */;
-short int var23 /* : Bool */;
-int cltype24;
-int idtype25;
-short int var_ /* var : Bool */;
-val* var26 /* : MClass */;
-val* var27 /* : MClassKind */;
-val* var28 /* : MClassKind */;
-short int var29 /* : Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-var1 = ((short int (*)(val*, val*, val*, val*))(self->class->vft[COLOR_model__MType__can_resolve_for]))(self, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on <self:MVirtualType>*/;
-if (!var1) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1099);
-exit(1);
-}
-var2 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
-if (var2){
-var3 = NULL;
-if (var_anchor == NULL) {
-var4 = 0; /* is null */
-} else {
-var4 = 1; /* arg is null and recv is not */
-}
-if (!var4) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1106);
-exit(1);
-}
-var5 = NULL;
-var6 = 1;
-var7 = ((val* (*)(val*, val*, val*, val*, short int))(var_mtype->class->vft[COLOR_model__MType__resolve_for]))(var_mtype, var_anchor, var5, var_mmodule, var6) /* resolve_for on <var_mtype:MType>*/;
-var_resolved_reciever = var7;
-} else {
-var_resolved_reciever = var_mtype;
-}
-var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MVirtualType__lookup_bound]))(self, var_mmodule, var_resolved_reciever) /* lookup_bound on <self:MVirtualType>*/;
-var_verbatim_bound = var8;
-var9 = ((val* (*)(val*, val*, val*, val*, short int))(var_verbatim_bound->class->vft[COLOR_model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_verbatim_bound:MType>*/;
-var_res = var9;
-if (var_cleanup_virtual){
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-/* <var_resolved_reciever:nullable Object(MType)> isa MNullableType */
-cltype = type_model__MNullableType.color;
-idtype = type_model__MNullableType.id;
-if(cltype >= var_resolved_reciever->type->table_size) {
-var10 = 0;
-} else {
-var10 = var_resolved_reciever->type->type_table[cltype] == idtype;
-}
-if (var10){
-var11 = ((val* (*)(val*))(var_resolved_reciever->class->vft[COLOR_model__MNullableType__mtype]))(var_resolved_reciever) /* mtype on <var_resolved_reciever:nullable Object(MNullableType)>*/;
-var_resolved_reciever = var11;
-} else {
-}
-/* <var_resolved_reciever:nullable Object(MType)> isa MClassType */
-cltype13 = type_model__MClassType.color;
-idtype14 = type_model__MClassType.id;
-if(cltype13 >= var_resolved_reciever->type->table_size) {
-var12 = 0;
-} else {
-var12 = var_resolved_reciever->type->type_table[cltype13] == idtype14;
-}
-if (!var12) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1122);
-exit(1);
-}
-var15 = ((val* (*)(val*))(var_resolved_reciever->class->vft[COLOR_model__MClassType__mclass]))(var_resolved_reciever) /* mclass on <var_resolved_reciever:MType(MClassType)>*/;
-var16 = ((val* (*)(val*))(var15->class->vft[COLOR_model__MClass__kind]))(var15) /* kind on <var15:MClass>*/;
-var17 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__enum_kind]))(self) /* enum_kind on <self:MVirtualType>*/;
-var18 = ((short int (*)(val*, val*))(var16->class->vft[COLOR_kernel__Object___61d_61d]))(var16, var17) /* == on <var16:MClassKind>*/;
-if (var18){
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-/* <var_res:MType> isa MVirtualType */
-cltype20 = type_model__MVirtualType.color;
-idtype21 = type_model__MVirtualType.id;
-if(cltype20 >= var_res->type->table_size) {
-var19 = 0;
-} else {
-var19 = var_res->type->type_table[cltype20] == idtype21;
-}
-if (var19){
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-/* <var_res:MType> isa MClassType */
-cltype24 = type_model__MClassType.color;
-idtype25 = type_model__MClassType.id;
-if(cltype24 >= var_res->type->table_size) {
-var23 = 0;
-} else {
-var23 = var_res->type->type_table[cltype24] == idtype25;
-}
-var_ = var23;
-if (var23){
-var26 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MClassType__mclass]))(var_res) /* mclass on <var_res:MType(MClassType)>*/;
-var27 = ((val* (*)(val*))(var26->class->vft[COLOR_model__MClass__kind]))(var26) /* kind on <var26:MClass>*/;
-var28 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__enum_kind]))(self) /* enum_kind on <self:MVirtualType>*/;
-var29 = ((short int (*)(val*, val*))(var27->class->vft[COLOR_kernel__Object___61d_61d]))(var27, var28) /* == on <var27:MClassKind>*/;
-var22 = var29;
-} else {
-var22 = var_;
-}
-if (var22){
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-var = self;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
-val* VIRTUAL_model__MVirtualType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MVirtualType__resolve_for(self, p0, p1, p2, p3);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#can_resolve_for for (self: MVirtualType, MType, nullable MClassType, MModule): Bool */
-short int model__MVirtualType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-val* var4 /* : MType */;
-val* var5 /* : MProperty */;
-short int var6 /* : Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var1 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
-if (var1){
-var2 = NULL;
-if (var_anchor == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (!var3) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1138);
-exit(1);
-}
-var4 = ((val* (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor) /* anchor_to on <var_mtype:MType>*/;
-var_mtype = var4;
-} else {
-}
-var5 = ((val* (*)(val*))(self->class->vft[COLOR_model__MVirtualType__mproperty]))(self) /* mproperty on <self:MVirtualType>*/;
-var6 = ((short int (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__has_mproperty]))(var_mtype, var_mmodule, var5) /* has_mproperty on <var_mtype:MType>*/;
-var = var6;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
-short int VIRTUAL_model__MVirtualType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MVirtualType__can_resolve_for(self, p0, p1, p2);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#to_s for (self: MVirtualType): String */
-val* model__MVirtualType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : MProperty */;
-val* var2 /* : String */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MVirtualType__mproperty]))(self) /* mproperty on <self:MVirtualType>*/;
-var2 = ((val* (*)(val*))(var1->class->vft[COLOR_string__Object__to_s]))(var1) /* to_s on <var1:MProperty>*/;
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#to_s for (self: Object): String */
-val* VIRTUAL_model__MVirtualType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MVirtualType__to_s(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MVirtualType#init for (self: MVirtualType, MProperty) */
-void model__MVirtualType__init(val* self, val* p0) {
-val* var_mproperty /* var mproperty: MProperty */;
-var_mproperty = p0;
-((void (*)(val*))(self->class->vft[COLOR_model__MType__init]))(self) /* init on <self:MVirtualType>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MVirtualType__mproperty_61d]))(self, var_mproperty) /* mproperty= on <self:MVirtualType>*/;
-RET_LABEL:;
-}
-/* method model#MVirtualType#init for (self: Object, MProperty) */
-void VIRTUAL_model__MVirtualType__init(val* self, val* p0) {
-model__MVirtualType__init(self, p0);
-RET_LABEL:;
-}
-/* method model#MParameterType#mclass for (self: MParameterType): MClass */
-val* model__MParameterType__mclass(val* self) {
-val* var /* : MClass */;
-val* var1 /* : MClass */;
-var1 = self->attrs[COLOR_model__MParameterType___64dmclass].val; /* @mclass on <self:MParameterType> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclass", "src/model/model.nit", 1180);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#mclass for (self: Object): MClass */
-val* VIRTUAL_model__MParameterType__mclass(val* self) {
-val* var /* : MClass */;
-val* var1 /* : MClass */;
-var1 = model__MParameterType__mclass(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#mclass= for (self: MParameterType, MClass) */
-void model__MParameterType__mclass_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MParameterType___64dmclass].val = p0; /* @mclass on <self:MParameterType> */
-RET_LABEL:;
-}
-/* method model#MParameterType#mclass= for (self: Object, MClass) */
-void VIRTUAL_model__MParameterType__mclass_61d(val* self, val* p0) {
-model__MParameterType__mclass_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MParameterType#model for (self: MParameterType): Model */
-val* model__MParameterType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : MClass */;
-val* var2 /* : MModule */;
-val* var3 /* : Model */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on <self:MParameterType>*/;
-var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__intro_mmodule]))(var1) /* intro_mmodule on <var1:MClass>*/;
-var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model_base__MModule__model]))(var2) /* model on <var2:MModule>*/;
-var = var3;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#model for (self: Object): Model */
-val* VIRTUAL_model__MParameterType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : Model */;
-var1 = model__MParameterType__model(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#rank for (self: MParameterType): Int */
-long model__MParameterType__rank(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = self->attrs[COLOR_model__MParameterType___64drank].l; /* @rank on <self:MParameterType> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#rank for (self: Object): Int */
-long VIRTUAL_model__MParameterType__rank(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = model__MParameterType__rank(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#rank= for (self: MParameterType, Int) */
-void model__MParameterType__rank_61d(val* self, long p0) {
-self->attrs[COLOR_model__MParameterType___64drank].l = p0; /* @rank on <self:MParameterType> */
-RET_LABEL:;
-}
-/* method model#MParameterType#rank= for (self: Object, Int) */
-void VIRTUAL_model__MParameterType__rank_61d(val* self, long p0) {
-model__MParameterType__rank_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MParameterType#to_s for (self: MParameterType): String */
-val* model__MParameterType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : Array[Object] */;
-long var2 /* : Int */;
-val* var_ /* var : Array[Object] */;
-static val* varonce;
-val* var3 /* : String */;
-char* var4 /* : NativeString */;
-long var5 /* : Int */;
-val* var6 /* : String */;
-val* var7 /* : MClass */;
-static val* varonce8;
-val* var9 /* : String */;
-char* var10 /* : NativeString */;
-long var11 /* : Int */;
-val* var12 /* : String */;
-long var13 /* : Int */;
-val* var14 /* : nullable Object */;
-static val* varonce15;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-long var18 /* : Int */;
-val* var19 /* : String */;
-val* var20 /* : String */;
-var1 = NEW_array__Array(&type_array__Arraykernel__Object);
-var2 = 5;
-((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
-var_ = var1;
-if (varonce) {
-var3 = varonce;
-} else {
-var4 = "";
-var5 = 0;
-var6 = string__NativeString__to_s_with_length(var4, var5);
-var3 = var6;
-varonce = var3;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
-var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on <self:MParameterType>*/;
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var7) /* add on <var_:Array[Object]>*/;
-if (varonce8) {
-var9 = varonce8;
-} else {
-var10 = "#";
-var11 = 1;
-var12 = string__NativeString__to_s_with_length(var10, var11);
-var9 = var12;
-varonce8 = var9;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var9) /* add on <var_:Array[Object]>*/;
-var13 = ((long (*)(val*))(self->class->vft[COLOR_model__MParameterType__rank]))(self) /* rank on <self:MParameterType>*/;
-var14 = BOX_kernel__Int(var13); /* autobox from Int to nullable Object */
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var14) /* add on <var_:Array[Object]>*/;
-if (varonce15) {
-var16 = varonce15;
-} else {
-var17 = "";
-var18 = 0;
-var19 = string__NativeString__to_s_with_length(var17, var18);
-var16 = var19;
-varonce15 = var16;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var16) /* add on <var_:Array[Object]>*/;
-var20 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
-var = var20;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#to_s for (self: Object): String */
-val* VIRTUAL_model__MParameterType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MParameterType__to_s(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#lookup_bound for (self: MParameterType, MModule, MType): MType */
-val* model__MParameterType__lookup_bound(val* self, val* p0, val* p1) {
-val* var /* : MType */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var_resolved_receiver /* var resolved_receiver: MType */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var3 /* : MClass */;
-val* var_goalclass /* var goalclass: MClass */;
-val* var4 /* : Set[MClassType] */;
-val* var_supertypes /* var supertypes: Set[MClassType] */;
-val* var5 /* : Iterator[nullable Object] */;
-short int var6 /* : Bool */;
-val* var7 /* : nullable Object */;
-val* var_t /* var t: MClassType */;
-val* var8 /* : MClass */;
-short int var9 /* : Bool */;
-val* var10 /* : Array[MType] */;
-long var11 /* : Int */;
-val* var12 /* : nullable Object */;
-val* var_res /* var res: MType */;
-var_mmodule = p0;
-var_resolved_receiver = p1;
-var1 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on <var_resolved_receiver:MType>*/;
-var2 = !var1;
-if (!var2) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1200);
-exit(1);
-}
-var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on <self:MParameterType>*/;
-var_goalclass = var3;
-var4 = ((val* (*)(val*, val*))(var_resolved_receiver->class->vft[COLOR_model__MType__collect_mtypes]))(var_resolved_receiver, var_mmodule) /* collect_mtypes on <var_resolved_receiver:MType>*/;
-var_supertypes = var4;
-var5 = ((val* (*)(val*))(var_supertypes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_supertypes) /* iterator on <var_supertypes:Set[MClassType]>*/;
-for(;;) {
-var6 = ((short int (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var5) /* is_ok on <var5:Iterator[nullable Object]>*/;
-if(!var6) break;
-var7 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__item]))(var5) /* item on <var5:Iterator[nullable Object]>*/;
-var_t = var7;
-var8 = ((val* (*)(val*))(var_t->class->vft[COLOR_model__MClassType__mclass]))(var_t) /* mclass on <var_t:MClassType>*/;
-var9 = ((short int (*)(val*, val*))(var8->class->vft[COLOR_kernel__Object___61d_61d]))(var8, var_goalclass) /* == on <var8:MClass>*/;
-if (var9){
-var10 = ((val* (*)(val*))(var_t->class->vft[COLOR_model__MClassType__arguments]))(var_t) /* arguments on <var_t:MClassType>*/;
-var11 = ((long (*)(val*))(self->class->vft[COLOR_model__MParameterType__rank]))(self) /* rank on <self:MParameterType>*/;
-var12 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var11) /* [] on <var10:Array[MType]>*/;
-var_res = var12;
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-CONTINUE_label: (void)0;
-((void (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__next]))(var5) /* next on <var5:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/model/model.nit", 1211);
-exit(1);
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#lookup_bound for (self: Object, MModule, MType): MType */
-val* VIRTUAL_model__MParameterType__lookup_bound(val* self, val* p0, val* p1) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MParameterType__lookup_bound(self, p0, p1);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#resolve_for for (self: MParameterType, MType, nullable MClassType, MModule, Bool): MType */
-val* model__MParameterType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-int cltype;
-int idtype;
-short int var_ /* var : Bool */;
-val* var4 /* : MClass */;
-val* var5 /* : MClass */;
-short int var6 /* : Bool */;
-val* var7 /* : Array[MType] */;
-long var8 /* : Int */;
-val* var9 /* : nullable Object */;
-short int var10 /* : Bool */;
-val* var11 /* : null */;
-short int var12 /* : Bool */;
-val* var13 /* : MClass */;
-val* var14 /* : MClassType */;
-short int var15 /* : Bool */;
-val* var16 /* : MType */;
-val* var_resolved_receiver /* var resolved_receiver: nullable Object */;
-short int var17 /* : Bool */;
-int cltype18;
-int idtype19;
-val* var20 /* : MType */;
-short int var21 /* : Bool */;
-int cltype22;
-int idtype23;
-val* var24 /* : MClass */;
-val* var25 /* : MClass */;
-short int var26 /* : Bool */;
-val* var27 /* : Array[MType] */;
-long var28 /* : Int */;
-val* var29 /* : nullable Object */;
-short int var30 /* : Bool */;
-int cltype31;
-int idtype32;
-val* var33 /* : MType */;
-short int var34 /* : Bool */;
-int cltype35;
-int idtype36;
-val* var37 /* : MClass */;
-val* var38 /* : MClass */;
-short int var39 /* : Bool */;
-val* var40 /* : Array[MType] */;
-long var41 /* : Int */;
-val* var42 /* : nullable Object */;
-val* var_res /* var res: MType */;
-short int var43 /* : Bool */;
-val* var44 /* : null */;
-short int var45 /* : Bool */;
-val* var46 /* : null */;
-short int var47 /* : Bool */;
-val* var48 /* : MType */;
-val* var49 /* : MType */;
-val* var_verbatim_bound /* var verbatim_bound: MType */;
-val* var50 /* : MType */;
-val* var_res51 /* var res: MType */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-var1 = ((short int (*)(val*, val*, val*, val*))(self->class->vft[COLOR_model__MType__can_resolve_for]))(self, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on <self:MParameterType>*/;
-if (!var1) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1216);
-exit(1);
-}
-/* <var_mtype:MType> isa MGenericType */
-cltype = type_model__MGenericType.color;
-idtype = type_model__MGenericType.id;
-if(cltype >= var_mtype->type->table_size) {
-var3 = 0;
-} else {
-var3 = var_mtype->type->type_table[cltype] == idtype;
-}
-var_ = var3;
-if (var3){
-var4 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on <var_mtype:MType(MGenericType)>*/;
-var5 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on <self:MParameterType>*/;
-var6 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_kernel__Object___61d_61d]))(var4, var5) /* == on <var4:MClass>*/;
-var2 = var6;
-} else {
-var2 = var_;
-}
-if (var2){
-var7 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__arguments]))(var_mtype) /* arguments on <var_mtype:MType(MGenericType)>*/;
-var8 = ((long (*)(val*))(self->class->vft[COLOR_model__MParameterType__rank]))(self) /* rank on <self:MParameterType>*/;
-var9 = ((val* (*)(val*, long))(var7->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var7, var8) /* [] on <var7:Array[MType]>*/;
-var = var9;
-goto RET_LABEL;
-} else {
-}
-var10 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
-if (var10){
-var11 = NULL;
-if (var_anchor == NULL) {
-var12 = 0; /* is null */
-} else {
-var12 = 1; /* arg is null and recv is not */
-}
-if (!var12) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1229);
-exit(1);
-}
-var13 = ((val* (*)(val*))(var_anchor->class->vft[COLOR_model__MClassType__mclass]))(var_anchor) /* mclass on <var_anchor:nullable MClassType(MClassType)>*/;
-var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MClass__mclass_type]))(var13) /* mclass_type on <var13:MClass>*/;
-var15 = 1;
-var16 = ((val* (*)(val*, val*, val*, val*, short int))(var_mtype->class->vft[COLOR_model__MType__resolve_for]))(var_mtype, var14, var_anchor, var_mmodule, var15) /* resolve_for on <var_mtype:MType>*/;
-var_resolved_receiver = var16;
-} else {
-var_resolved_receiver = var_mtype;
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
-cltype18 = type_model__MNullableType.color;
-idtype19 = type_model__MNullableType.id;
-if(cltype18 >= var_resolved_receiver->type->table_size) {
-var17 = 0;
-} else {
-var17 = var_resolved_receiver->type->type_table[cltype18] == idtype19;
-}
-if (var17){
-var20 = ((val* (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MNullableType__mtype]))(var_resolved_receiver) /* mtype on <var_resolved_receiver:nullable Object(MNullableType)>*/;
-var_resolved_receiver = var20;
-} else {
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MParameterType */
-cltype22 = type_model__MParameterType.color;
-idtype23 = type_model__MParameterType.id;
-if(cltype22 >= var_resolved_receiver->type->table_size) {
-var21 = 0;
-} else {
-var21 = var_resolved_receiver->type->type_table[cltype22] == idtype23;
-}
-if (var21){
-var24 = ((val* (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MParameterType__mclass]))(var_resolved_receiver) /* mclass on <var_resolved_receiver:nullable Object(MParameterType)>*/;
-if (var_anchor == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/model/model.nit", 1236);
-exit(1);
-} else {
-var25 = ((val* (*)(val*))(var_anchor->class->vft[COLOR_model__MClassType__mclass]))(var_anchor) /* mclass on <var_anchor:nullable MClassType>*/;
-}
-var26 = ((short int (*)(val*, val*))(var24->class->vft[COLOR_kernel__Object___61d_61d]))(var24, var25) /* == on <var24:MClass>*/;
-if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1236);
-exit(1);
-}
-if (var_anchor == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/model/model.nit", 1237);
-exit(1);
-} else {
-var27 = ((val* (*)(val*))(var_anchor->class->vft[COLOR_model__MClassType__arguments]))(var_anchor) /* arguments on <var_anchor:nullable MClassType>*/;
-}
-var28 = ((long (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MParameterType__rank]))(var_resolved_receiver) /* rank on <var_resolved_receiver:nullable Object(MParameterType)>*/;
-var29 = ((val* (*)(val*, long))(var27->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var27, var28) /* [] on <var27:Array[MType]>*/;
-var_resolved_receiver = var29;
-/* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
-cltype31 = type_model__MNullableType.color;
-idtype32 = type_model__MNullableType.id;
-if(cltype31 >= var_resolved_receiver->type->table_size) {
-var30 = 0;
-} else {
-var30 = var_resolved_receiver->type->type_table[cltype31] == idtype32;
-}
-if (var30){
-var33 = ((val* (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MNullableType__mtype]))(var_resolved_receiver) /* mtype on <var_resolved_receiver:nullable Object(MNullableType)>*/;
-var_resolved_receiver = var33;
-} else {
-}
-} else {
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MClassType */
-cltype35 = type_model__MClassType.color;
-idtype36 = type_model__MClassType.id;
-if(cltype35 >= var_resolved_receiver->type->table_size) {
-var34 = 0;
-} else {
-var34 = var_resolved_receiver->type->type_table[cltype35] == idtype36;
-}
-if (!var34) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1240);
-exit(1);
-}
-var37 = ((val* (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MClassType__mclass]))(var_resolved_receiver) /* mclass on <var_resolved_receiver:nullable Object(MClassType)>*/;
-var38 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on <self:MParameterType>*/;
-var39 = ((short int (*)(val*, val*))(var37->class->vft[COLOR_kernel__Object___61d_61d]))(var37, var38) /* == on <var37:MClass>*/;
-if (var39){
-var40 = ((val* (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MClassType__arguments]))(var_resolved_receiver) /* arguments on <var_resolved_receiver:nullable Object(MClassType)>*/;
-var41 = ((long (*)(val*))(self->class->vft[COLOR_model__MParameterType__rank]))(self) /* rank on <self:MParameterType>*/;
-var42 = ((val* (*)(val*, long))(var40->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var40, var41) /* [] on <var40:Array[MType]>*/;
-var_res = var42;
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-var43 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on <var_resolved_receiver:nullable Object(MClassType)>*/;
-if (var43){
-var44 = NULL;
-if (var_anchor == NULL) {
-var45 = 0; /* is null */
-} else {
-var45 = 1; /* arg is null and recv is not */
-}
-if (!var45) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1251);
-exit(1);
-}
-var46 = NULL;
-var47 = 0;
-var48 = ((val* (*)(val*, val*, val*, val*, short int))(var_resolved_receiver->class->vft[COLOR_model__MType__resolve_for]))(var_resolved_receiver, var_anchor, var46, var_mmodule, var47) /* resolve_for on <var_resolved_receiver:nullable Object(MClassType)>*/;
-var_resolved_receiver = var48;
-} else {
-}
-var49 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MParameterType__lookup_bound]))(self, var_mmodule, var_resolved_receiver) /* lookup_bound on <self:MParameterType>*/;
-var_verbatim_bound = var49;
-var50 = ((val* (*)(val*, val*, val*, val*, short int))(var_verbatim_bound->class->vft[COLOR_model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_verbatim_bound:MType>*/;
-var_res51 = var50;
-var = var_res51;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
-val* VIRTUAL_model__MParameterType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MParameterType__resolve_for(self, p0, p1, p2, p3);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#can_resolve_for for (self: MParameterType, MType, nullable MClassType, MModule): Bool */
-short int model__MParameterType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-val* var4 /* : MType */;
-val* var5 /* : Set[MClassDef] */;
-val* var6 /* : MClass */;
-val* var7 /* : MClassDef */;
-short int var8 /* : Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var1 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
-if (var1){
-var2 = NULL;
-if (var_anchor == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (!var3) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1267);
-exit(1);
-}
-var4 = ((val* (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor) /* anchor_to on <var_mtype:MType>*/;
-var_mtype = var4;
-} else {
-}
-var5 = ((val* (*)(val*, val*))(var_mtype->class->vft[COLOR_model__MType__collect_mclassdefs]))(var_mtype, var_mmodule) /* collect_mclassdefs on <var_mtype:MType>*/;
-var6 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on <self:MParameterType>*/;
-var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model__MClass__intro]))(var6) /* intro on <var6:MClass>*/;
-var8 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_abstract_collection__Collection__has]))(var5, var7) /* has on <var5:Set[MClassDef]>*/;
-var = var8;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
-short int VIRTUAL_model__MParameterType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MParameterType__can_resolve_for(self, p0, p1, p2);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#init for (self: MParameterType, MClass, Int) */
-void model__MParameterType__init(val* self, val* p0, long p1) {
-val* var_mclass /* var mclass: MClass */;
-long var_rank /* var rank: Int */;
-var_mclass = p0;
-var_rank = p1;
-((void (*)(val*))(self->class->vft[COLOR_model__MType__init]))(self) /* init on <self:MParameterType>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MParameterType__mclass_61d]))(self, var_mclass) /* mclass= on <self:MParameterType>*/;
-((void (*)(val*, long))(self->class->vft[COLOR_model__MParameterType__rank_61d]))(self, var_rank) /* rank= on <self:MParameterType>*/;
-RET_LABEL:;
-}
-/* method model#MParameterType#init for (self: Object, MClass, Int) */
-void VIRTUAL_model__MParameterType__init(val* self, val* p0, long p1) {
-model__MParameterType__init(self, p0, p1);
-RET_LABEL:;
-}
-/* method model#MNullableType#mtype for (self: MNullableType): MType */
-val* model__MNullableType__mtype(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = self->attrs[COLOR_model__MNullableType___64dmtype].val; /* @mtype on <self:MNullableType> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mtype", "src/model/model.nit", 1284);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#mtype for (self: Object): MType */
-val* VIRTUAL_model__MNullableType__mtype(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullableType__mtype(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#mtype= for (self: MNullableType, MType) */
-void model__MNullableType__mtype_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MNullableType___64dmtype].val = p0; /* @mtype on <self:MNullableType> */
-RET_LABEL:;
-}
-/* method model#MNullableType#mtype= for (self: Object, MType) */
-void VIRTUAL_model__MNullableType__mtype_61d(val* self, val* p0) {
-model__MNullableType__mtype_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MNullableType#model for (self: MNullableType): Model */
-val* model__MNullableType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : MType */;
-val* var2 /* : Model */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MType__model]))(var1) /* model on <var1:MType>*/;
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#model for (self: Object): Model */
-val* VIRTUAL_model__MNullableType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : Model */;
-var1 = model__MNullableType__model(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#init for (self: MNullableType, MType) */
-void model__MNullableType__init(val* self, val* p0) {
-val* var_mtype /* var mtype: MType */;
-static val* varonce;
-val* var /* : String */;
-char* var1 /* : NativeString */;
-long var2 /* : Int */;
-val* var3 /* : String */;
-val* var4 /* : Array[Object] */;
-long var5 /* : Int */;
-val* var6 /* : NativeArray[Object] */;
-val* var7 /* : String */;
-var_mtype = p0;
-((void (*)(val*))(self->class->vft[COLOR_model__MType__init]))(self) /* init on <self:MNullableType>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MNullableType__mtype_61d]))(self, var_mtype) /* mtype= on <self:MNullableType>*/;
-if (varonce) {
-var = varonce;
-} else {
-var1 = "nullable ";
-var2 = 9;
-var3 = string__NativeString__to_s_with_length(var1, var2);
-var = var3;
-varonce = var;
-}
-var4 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var4 = array_instance Array[Object] */
-var5 = 2;
-var6 = NEW_array__NativeArray(var5, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var6)->values[0] = (val*) var;
-((struct instance_array__NativeArray*)var6)->values[1] = (val*) var_mtype;
-((void (*)(val*, val*, long))(var4->class->vft[COLOR_array__Array__with_native]))(var4, var6, var5) /* with_native on <var4:Array[Object]>*/;
-CHECK_NEW_array__Array(var4);
-}
-var7 = ((val* (*)(val*))(var4->class->vft[COLOR_string__Object__to_s]))(var4) /* to_s on <var4:Array[Object]>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MNullableType__to_s_61d]))(self, var7) /* to_s= on <self:MNullableType>*/;
-RET_LABEL:;
-}
-/* method model#MNullableType#init for (self: Object, MType) */
-void VIRTUAL_model__MNullableType__init(val* self, val* p0) {
-model__MNullableType__init(self, p0);
-RET_LABEL:;
-}
-/* method model#MNullableType#to_s for (self: MNullableType): String */
-val* model__MNullableType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = self->attrs[COLOR_model__MNullableType___64dto_s].val; /* @to_s on <self:MNullableType> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @to_s", "src/model/model.nit", 1295);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#to_s for (self: Object): String */
-val* VIRTUAL_model__MNullableType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MNullableType__to_s(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#to_s= for (self: MNullableType, String) */
-void model__MNullableType__to_s_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MNullableType___64dto_s].val = p0; /* @to_s on <self:MNullableType> */
-RET_LABEL:;
-}
-/* method model#MNullableType#to_s= for (self: Object, String) */
-void VIRTUAL_model__MNullableType__to_s_61d(val* self, val* p0) {
-model__MNullableType__to_s_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MNullableType#need_anchor for (self: MNullableType): Bool */
-short int model__MNullableType__need_anchor(val* self) {
-short int var /* : Bool */;
-val* var1 /* : MType */;
-short int var2 /* : Bool */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var2 = ((short int (*)(val*))(var1->class->vft[COLOR_model__MType__need_anchor]))(var1) /* need_anchor on <var1:MType>*/;
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#need_anchor for (self: Object): Bool */
-short int VIRTUAL_model__MNullableType__need_anchor(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MNullableType__need_anchor(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#as_nullable for (self: MNullableType): MType */
-val* model__MNullableType__as_nullable(val* self) {
-val* var /* : MType */;
-var = self;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#as_nullable for (self: Object): MType */
-val* VIRTUAL_model__MNullableType__as_nullable(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullableType__as_nullable(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#resolve_for for (self: MNullableType, MType, nullable MClassType, MModule, Bool): MType */
-val* model__MNullableType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-val* var1 /* : MType */;
-val* var2 /* : MType */;
-val* var_res /* var res: MType */;
-val* var3 /* : MType */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var2 = ((val* (*)(val*, val*, val*, val*, short int))(var1->class->vft[COLOR_model__MType__resolve_for]))(var1, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var1:MType>*/;
-var_res = var2;
-var3 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MType__as_nullable]))(var_res) /* as_nullable on <var_res:MType>*/;
-var = var3;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
-val* VIRTUAL_model__MNullableType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullableType__resolve_for(self, p0, p1, p2, p3);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#can_resolve_for for (self: MNullableType, MType, nullable MClassType, MModule): Bool */
-short int model__MNullableType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var1 /* : MType */;
-short int var2 /* : Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var2 = ((short int (*)(val*, val*, val*, val*))(var1->class->vft[COLOR_model__MType__can_resolve_for]))(var1, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on <var1:MType>*/;
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
-short int VIRTUAL_model__MNullableType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MNullableType__can_resolve_for(self, p0, p1, p2);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#depth for (self: MNullableType): Int */
-long model__MNullableType__depth(val* self) {
-long var /* : Int */;
-val* var1 /* : MType */;
-long var2 /* : Int */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var2 = ((long (*)(val*))(var1->class->vft[COLOR_model__MType__depth]))(var1) /* depth on <var1:MType>*/;
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#depth for (self: Object): Int */
-long VIRTUAL_model__MNullableType__depth(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = model__MNullableType__depth(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#length for (self: MNullableType): Int */
-long model__MNullableType__length(val* self) {
-long var /* : Int */;
-val* var1 /* : MType */;
-long var2 /* : Int */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var2 = ((long (*)(val*))(var1->class->vft[COLOR_model__MType__length]))(var1) /* length on <var1:MType>*/;
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#length for (self: Object): Int */
-long VIRTUAL_model__MNullableType__length(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = model__MNullableType__length(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#collect_mclassdefs for (self: MNullableType, MModule): Set[MClassDef] */
-val* model__MNullableType__collect_mclassdefs(val* self, val* p0) {
-val* var /* : Set[MClassDef] */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var3 /* : MType */;
-val* var4 /* : Set[MClassDef] */;
-var_mmodule = p0;
-var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on <self:MNullableType>*/;
-var2 = !var1;
-if (!var2) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1316);
-exit(1);
-}
-var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_model__MType__collect_mclassdefs]))(var3, var_mmodule) /* collect_mclassdefs on <var3:MType>*/;
-var = var4;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
-val* VIRTUAL_model__MNullableType__collect_mclassdefs(val* self, val* p0) {
-val* var /* : Set[MClassDef] */;
-val* var1 /* : Set[MClassDef] */;
-var1 = model__MNullableType__collect_mclassdefs(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#collect_mclasses for (self: MNullableType, MModule): Set[MClass] */
-val* model__MNullableType__collect_mclasses(val* self, val* p0) {
-val* var /* : Set[MClass] */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var3 /* : MType */;
-val* var4 /* : Set[MClass] */;
-var_mmodule = p0;
-var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on <self:MNullableType>*/;
-var2 = !var1;
-if (!var2) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1322);
-exit(1);
-}
-var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_model__MType__collect_mclasses]))(var3, var_mmodule) /* collect_mclasses on <var3:MType>*/;
-var = var4;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#collect_mclasses for (self: Object, MModule): Set[MClass] */
-val* VIRTUAL_model__MNullableType__collect_mclasses(val* self, val* p0) {
-val* var /* : Set[MClass] */;
-val* var1 /* : Set[MClass] */;
-var1 = model__MNullableType__collect_mclasses(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#collect_mtypes for (self: MNullableType, MModule): Set[MClassType] */
-val* model__MNullableType__collect_mtypes(val* self, val* p0) {
-val* var /* : Set[MClassType] */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-val* var3 /* : MType */;
-val* var4 /* : Set[MClassType] */;
-var_mmodule = p0;
-var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on <self:MNullableType>*/;
-var2 = !var1;
-if (!var2) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1328);
-exit(1);
-}
-var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
-var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_model__MType__collect_mtypes]))(var3, var_mmodule) /* collect_mtypes on <var3:MType>*/;
-var = var4;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
-val* VIRTUAL_model__MNullableType__collect_mtypes(val* self, val* p0) {
-val* var /* : Set[MClassType] */;
-val* var1 /* : Set[MClassType] */;
-var1 = model__MNullableType__collect_mtypes(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#model for (self: MNullType): Model */
-val* model__MNullType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : Model */;
-var1 = self->attrs[COLOR_model__MNullType___64dmodel].val; /* @model on <self:MNullType> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @model", "src/model/model.nit", 1338);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#model for (self: Object): Model */
-val* VIRTUAL_model__MNullType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : Model */;
-var1 = model__MNullType__model(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#model= for (self: MNullType, Model) */
-void model__MNullType__model_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MNullType___64dmodel].val = p0; /* @model on <self:MNullType> */
-RET_LABEL:;
-}
-/* method model#MNullType#model= for (self: Object, Model) */
-void VIRTUAL_model__MNullType__model_61d(val* self, val* p0) {
-model__MNullType__model_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MNullType#init for (self: MNullType, Model) */
-void model__MNullType__init(val* self, val* p0) {
-val* var_model /* var model: Model */;
-var_model = p0;
-((void (*)(val*))(self->class->vft[COLOR_model__MType__init]))(self) /* init on <self:MNullType>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MNullType__model_61d]))(self, var_model) /* model= on <self:MNullType>*/;
-RET_LABEL:;
-}
-/* method model#MNullType#init for (self: Object, Model) */
-void VIRTUAL_model__MNullType__init(val* self, val* p0) {
-model__MNullType__init(self, p0);
-RET_LABEL:;
-}
-/* method model#MNullType#to_s for (self: MNullType): String */
-val* model__MNullType__to_s(val* self) {
-val* var /* : String */;
-static val* varonce;
-val* var1 /* : String */;
-char* var2 /* : NativeString */;
-long var3 /* : Int */;
-val* var4 /* : String */;
-if (varonce) {
-var1 = varonce;
-} else {
-var2 = "null";
-var3 = 4;
-var4 = string__NativeString__to_s_with_length(var2, var3);
-var1 = var4;
-varonce = var1;
-}
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#to_s for (self: Object): String */
-val* VIRTUAL_model__MNullType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MNullType__to_s(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#as_nullable for (self: MNullType): MType */
-val* model__MNullType__as_nullable(val* self) {
-val* var /* : MType */;
-var = self;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#as_nullable for (self: Object): MType */
-val* VIRTUAL_model__MNullType__as_nullable(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullType__as_nullable(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#need_anchor for (self: MNullType): Bool */
-short int model__MNullType__need_anchor(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = 0;
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#need_anchor for (self: Object): Bool */
-short int VIRTUAL_model__MNullType__need_anchor(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MNullType__need_anchor(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#resolve_for for (self: MNullType, MType, nullable MClassType, MModule, Bool): MType */
-val* model__MNullType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-var = self;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
-val* VIRTUAL_model__MNullType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullType__resolve_for(self, p0, p1, p2, p3);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#can_resolve_for for (self: MNullType, MType, nullable MClassType, MModule): Bool */
-short int model__MNullType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var1 = 1;
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
-short int VIRTUAL_model__MNullType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MNullType__can_resolve_for(self, p0, p1, p2);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#collect_mclassdefs for (self: MNullType, MModule): Set[MClassDef] */
-val* model__MNullType__collect_mclassdefs(val* self, val* p0) {
-val* var /* : Set[MClassDef] */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var1 /* : HashSet[MClassDef] */;
-var_mmodule = p0;
-var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[MClassDef]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#collect_mclassdefs for (self: Object, MModule): Set[MClassDef] */
-val* VIRTUAL_model__MNullType__collect_mclassdefs(val* self, val* p0) {
-val* var /* : Set[MClassDef] */;
-val* var1 /* : Set[MClassDef] */;
-var1 = model__MNullType__collect_mclassdefs(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#collect_mclasses for (self: MNullType, MModule): Set[MClass] */
-val* model__MNullType__collect_mclasses(val* self, val* p0) {
-val* var /* : Set[MClass] */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var1 /* : HashSet[MClass] */;
-var_mmodule = p0;
-var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[MClass]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#collect_mclasses for (self: Object, MModule): Set[MClass] */
-val* VIRTUAL_model__MNullType__collect_mclasses(val* self, val* p0) {
-val* var /* : Set[MClass] */;
-val* var1 /* : Set[MClass] */;
-var1 = model__MNullType__collect_mclasses(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#collect_mtypes for (self: MNullType, MModule): Set[MClassType] */
-val* model__MNullType__collect_mtypes(val* self, val* p0) {
-val* var /* : Set[MClassType] */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var1 /* : HashSet[MClassType] */;
-var_mmodule = p0;
-var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType);
-((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on <var1:HashSet[MClassType]>*/;
-CHECK_NEW_hash_collection__HashSet(var1);
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullType#collect_mtypes for (self: Object, MModule): Set[MClassType] */
-val* VIRTUAL_model__MNullType__collect_mtypes(val* self, val* p0) {
-val* var /* : Set[MClassType] */;
-val* var1 /* : Set[MClassType] */;
-var1 = model__MNullType__collect_mtypes(self, p0);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#mparameters for (self: MSignature): Array[MParameter] */
-val* model__MSignature__mparameters(val* self) {
-val* var /* : Array[MParameter] */;
-val* var1 /* : Array[MParameter] */;
-var1 = self->attrs[COLOR_model__MSignature___64dmparameters].val; /* @mparameters on <self:MSignature> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mparameters", "src/model/model.nit", 1360);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#mparameters for (self: Object): Array[MParameter] */
-val* VIRTUAL_model__MSignature__mparameters(val* self) {
-val* var /* : Array[MParameter] */;
-val* var1 /* : Array[MParameter] */;
-var1 = model__MSignature__mparameters(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#mparameters= for (self: MSignature, Array[MParameter]) */
-void model__MSignature__mparameters_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MSignature___64dmparameters].val = p0; /* @mparameters on <self:MSignature> */
-RET_LABEL:;
-}
-/* method model#MSignature#mparameters= for (self: Object, Array[MParameter]) */
-void VIRTUAL_model__MSignature__mparameters_61d(val* self, val* p0) {
-model__MSignature__mparameters_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MSignature#mclosures for (self: MSignature): Array[MParameter] */
-val* model__MSignature__mclosures(val* self) {
-val* var /* : Array[MParameter] */;
-val* var1 /* : Array[MParameter] */;
-var1 = self->attrs[COLOR_model__MSignature___64dmclosures].val; /* @mclosures on <self:MSignature> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclosures", "src/model/model.nit", 1363);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#mclosures for (self: Object): Array[MParameter] */
-val* VIRTUAL_model__MSignature__mclosures(val* self) {
-val* var /* : Array[MParameter] */;
-val* var1 /* : Array[MParameter] */;
-var1 = model__MSignature__mclosures(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#mclosures= for (self: MSignature, Array[MParameter]) */
-void model__MSignature__mclosures_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MSignature___64dmclosures].val = p0; /* @mclosures on <self:MSignature> */
-RET_LABEL:;
-}
-/* method model#MSignature#mclosures= for (self: Object, Array[MParameter]) */
-void VIRTUAL_model__MSignature__mclosures_61d(val* self, val* p0) {
-model__MSignature__mclosures_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MSignature#return_mtype for (self: MSignature): nullable MType */
-val* model__MSignature__return_mtype(val* self) {
-val* var /* : nullable MType */;
-val* var1 /* : nullable MType */;
-var1 = self->attrs[COLOR_model__MSignature___64dreturn_mtype].val; /* @return_mtype on <self:MSignature> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#return_mtype for (self: Object): nullable MType */
-val* VIRTUAL_model__MSignature__return_mtype(val* self) {
-val* var /* : nullable MType */;
-val* var1 /* : nullable MType */;
-var1 = model__MSignature__return_mtype(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#return_mtype= for (self: MSignature, nullable MType) */
-void model__MSignature__return_mtype_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MSignature___64dreturn_mtype].val = p0; /* @return_mtype on <self:MSignature> */
-RET_LABEL:;
-}
-/* method model#MSignature#return_mtype= for (self: Object, nullable MType) */
-void VIRTUAL_model__MSignature__return_mtype_61d(val* self, val* p0) {
-model__MSignature__return_mtype_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MSignature#depth for (self: MSignature): Int */
-long model__MSignature__depth(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var_dmax /* var dmax: Int */;
-val* var2 /* : nullable MType */;
-val* var_t /* var t: nullable MType */;
-val* var3 /* : null */;
-short int var4 /* : Bool */;
-long var5 /* : Int */;
-val* var6 /* : Array[MParameter] */;
-val* var7 /* : Iterator[nullable Object] */;
-short int var8 /* : Bool */;
-val* var9 /* : nullable Object */;
-val* var_p /* var p: MParameter */;
-val* var10 /* : MType */;
-long var11 /* : Int */;
-long var_d /* var d: Int */;
-short int var12 /* : Bool */;
-short int var14 /* : Bool */;
-int cltype;
-int idtype;
-short int var15 /* : Bool */;
-val* var16 /* : Array[MParameter] */;
-val* var17 /* : Iterator[nullable Object] */;
-short int var18 /* : Bool */;
-val* var19 /* : nullable Object */;
-val* var_p20 /* var p: MParameter */;
-val* var21 /* : MType */;
-long var22 /* : Int */;
-long var_d23 /* var d: Int */;
-short int var24 /* : Bool */;
-short int var26 /* : Bool */;
-int cltype27;
-int idtype28;
-short int var29 /* : Bool */;
-long var31 /* : Int */;
-long var32 /* : Int */;
-long var34 /* : Int */;
-var1 = 0;
-var_dmax = var1;
-var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__return_mtype]))(self) /* return_mtype on <self:MSignature>*/;
-var_t = var2;
-var3 = NULL;
-if (var_t == NULL) {
-var4 = 0; /* is null */
-} else {
-var4 = 1; /* arg is null and recv is not */
-}
-if (var4){
-var5 = ((long (*)(val*))(var_t->class->vft[COLOR_model__MType__depth]))(var_t) /* depth on <var_t:nullable MType(MType)>*/;
-var_dmax = var5;
-} else {
-}
-var6 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on <self:MSignature>*/;
-var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on <var6:Array[MParameter]>*/;
-for(;;) {
-var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on <var7:Iterator[nullable Object]>*/;
-if(!var8) break;
-var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on <var7:Iterator[nullable Object]>*/;
-var_p = var9;
-var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on <var_p:MParameter>*/;
-var11 = ((long (*)(val*))(var10->class->vft[COLOR_model__MType__depth]))(var10) /* depth on <var10:MType>*/;
-var_d = var11;
-{ /* Inline kernel#Int#> (var_d,var_dmax) */
-/* Covariant cast for argument 0 (i) <var_dmax:Int> isa OTHER */
-/* <var_dmax:Int> isa OTHER */
-var14 = 1; /* easy <var_dmax:Int> isa OTHER*/
-if (!var14) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
-exit(1);
-}
-var15 = var_d > var_dmax;
-var12 = var15;
-goto RET_LABEL13;
-RET_LABEL13:(void)0;
-}
-if (var12){
-var_dmax = var_d;
-} else {
-}
-CONTINUE_label: (void)0;
-((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on <var7:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-var16 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mclosures]))(self) /* mclosures on <self:MSignature>*/;
-var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on <var16:Array[MParameter]>*/;
-for(;;) {
-var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on <var17:Iterator[nullable Object]>*/;
-if(!var18) break;
-var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on <var17:Iterator[nullable Object]>*/;
-var_p20 = var19;
-var21 = ((val* (*)(val*))(var_p20->class->vft[COLOR_model__MParameter__mtype]))(var_p20) /* mtype on <var_p20:MParameter>*/;
-var22 = ((long (*)(val*))(var21->class->vft[COLOR_model__MType__depth]))(var21) /* depth on <var21:MType>*/;
-var_d23 = var22;
-{ /* Inline kernel#Int#> (var_d23,var_dmax) */
-/* Covariant cast for argument 0 (i) <var_dmax:Int> isa OTHER */
-/* <var_dmax:Int> isa OTHER */
-var26 = 1; /* easy <var_dmax:Int> isa OTHER*/
-if (!var26) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
-exit(1);
-}
-var29 = var_d23 > var_dmax;
-var24 = var29;
-goto RET_LABEL25;
-RET_LABEL25:(void)0;
-}
-if (var24){
-var_dmax = var_d23;
-} else {
-}
-CONTINUE_label30: (void)0;
-((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on <var17:Iterator[nullable Object]>*/;
-}
-BREAK_label30: (void)0;
-var31 = 1;
-{ /* Inline kernel#Int#+ (var_dmax,var31) */
-var34 = var_dmax + var31;
-var32 = var34;
-goto RET_LABEL33;
-RET_LABEL33:(void)0;
-}
-var = var32;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#depth for (self: Object): Int */
-long VIRTUAL_model__MSignature__depth(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = model__MSignature__depth(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#length for (self: MSignature): Int */
-long model__MSignature__length(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-long var_res /* var res: Int */;
-val* var2 /* : nullable MType */;
-val* var_t /* var t: nullable MType */;
-val* var3 /* : null */;
-short int var4 /* : Bool */;
-long var5 /* : Int */;
-long var6 /* : Int */;
-long var8 /* : Int */;
-val* var9 /* : Array[MParameter] */;
-val* var10 /* : Iterator[nullable Object] */;
-short int var11 /* : Bool */;
-val* var12 /* : nullable Object */;
-val* var_p /* var p: MParameter */;
-val* var13 /* : MType */;
-long var14 /* : Int */;
-long var15 /* : Int */;
-long var17 /* : Int */;
-val* var18 /* : Array[MParameter] */;
-val* var19 /* : Iterator[nullable Object] */;
-short int var20 /* : Bool */;
-val* var21 /* : nullable Object */;
-val* var_p22 /* var p: MParameter */;
-val* var23 /* : MType */;
-long var24 /* : Int */;
-long var25 /* : Int */;
-long var27 /* : Int */;
-var1 = 1;
-var_res = var1;
-var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__return_mtype]))(self) /* return_mtype on <self:MSignature>*/;
-var_t = var2;
-var3 = NULL;
-if (var_t == NULL) {
-var4 = 0; /* is null */
-} else {
-var4 = 1; /* arg is null and recv is not */
-}
-if (var4){
-var5 = ((long (*)(val*))(var_t->class->vft[COLOR_model__MType__length]))(var_t) /* length on <var_t:nullable MType(MType)>*/;
-{ /* Inline kernel#Int#+ (var_res,var5) */
-var8 = var_res + var5;
-var6 = var8;
-goto RET_LABEL7;
-RET_LABEL7:(void)0;
-}
-var_res = var6;
-} else {
-}
-var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on <self:MSignature>*/;
-var10 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var9) /* iterator on <var9:Array[MParameter]>*/;
-for(;;) {
-var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[nullable Object]>*/;
-if(!var11) break;
-var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[nullable Object]>*/;
-var_p = var12;
-var13 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on <var_p:MParameter>*/;
-var14 = ((long (*)(val*))(var13->class->vft[COLOR_model__MType__length]))(var13) /* length on <var13:MType>*/;
-{ /* Inline kernel#Int#+ (var_res,var14) */
-var17 = var_res + var14;
-var15 = var17;
-goto RET_LABEL16;
-RET_LABEL16:(void)0;
-}
-var_res = var15;
-CONTINUE_label: (void)0;
-((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-var18 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mclosures]))(self) /* mclosures on <self:MSignature>*/;
-var19 = ((val* (*)(val*))(var18->class->vft[COLOR_abstract_collection__Collection__iterator]))(var18) /* iterator on <var18:Array[MParameter]>*/;
-for(;;) {
-var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[nullable Object]>*/;
-if(!var20) break;
-var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on <var19:Iterator[nullable Object]>*/;
-var_p22 = var21;
-var23 = ((val* (*)(val*))(var_p22->class->vft[COLOR_model__MParameter__mtype]))(var_p22) /* mtype on <var_p22:MParameter>*/;
-var24 = ((long (*)(val*))(var23->class->vft[COLOR_model__MType__length]))(var23) /* length on <var23:MType>*/;
-{ /* Inline kernel#Int#+ (var_res,var24) */
-var27 = var_res + var24;
-var25 = var27;
-goto RET_LABEL26;
-RET_LABEL26:(void)0;
-}
-var_res = var25;
-CONTINUE_label28: (void)0;
-((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on <var19:Iterator[nullable Object]>*/;
-}
-BREAK_label28: (void)0;
-var = var_res;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#length for (self: Object): Int */
-long VIRTUAL_model__MSignature__length(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = model__MSignature__length(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#init for (self: MSignature, Array[MParameter], nullable MType) */
-void model__MSignature__init(val* self, val* p0, val* p1) {
-val* var_mparameters /* var mparameters: Array[MParameter] */;
-val* var_return_mtype /* var return_mtype: nullable MType */;
-long var /* : Int */;
-long var1 /* : Int */;
-long var3 /* : Int */;
-long var_vararg_rank /* var vararg_rank: Int */;
-val* var4 /* : Range[Int] */;
-long var5 /* : Int */;
-long var6 /* : Int */;
-val* var7 /* : Discrete */;
-val* var8 /* : Discrete */;
-val* var9 /* : Iterator[nullable Object] */;
-short int var10 /* : Bool */;
-val* var11 /* : nullable Object */;
-long var_i /* var i: Int */;
-long var12 /* : Int */;
-val* var13 /* : nullable Object */;
-val* var_parameter /* var parameter: MParameter */;
-short int var14 /* : Bool */;
-long var15 /* : Int */;
-long var16 /* : Int */;
-long var18 /* : Int */;
-short int var19 /* : Bool */;
-short int var21 /* : Bool */;
-var_mparameters = p0;
-var_return_mtype = p1;
-((void (*)(val*))(self->class->vft[COLOR_model__MType__init]))(self) /* init on <self:MSignature>*/;
-var = 1;
-{ /* Inline kernel#Int#unary - (var) */
-var3 = -var;
-var1 = var3;
-goto RET_LABEL2;
-RET_LABEL2:(void)0;
-}
-var_vararg_rank = var1;
-var4 = NEW_range__Range(&type_range__Rangekernel__Int);
-var5 = 0;
-var6 = ((long (*)(val*))(var_mparameters->class->vft[COLOR_abstract_collection__Collection__length]))(var_mparameters) /* length on <var_mparameters:Array[MParameter]>*/;
-var7 = BOX_kernel__Int(var5); /* autobox from Int to Discrete */
-var8 = BOX_kernel__Int(var6); /* autobox from Int to Discrete */
-((void (*)(val*, val*, val*))(var4->class->vft[COLOR_range__Range__without_last]))(var4, var7, var8) /* without_last on <var4:Range[Int]>*/;
-CHECK_NEW_range__Range(var4);
-var9 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on <var4:Range[Int]>*/;
-for(;;) {
-var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var9) /* is_ok on <var9:Iterator[nullable Object]>*/;
-if(!var10) break;
-var11 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__item]))(var9) /* item on <var9:Iterator[nullable Object]>*/;
-var12 = ((struct instance_kernel__Int*)var11)->value; /* autounbox from nullable Object to Int */;
-var_i = var12;
-var13 = ((val* (*)(val*, long))(var_mparameters->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_mparameters, var_i) /* [] on <var_mparameters:Array[MParameter]>*/;
-var_parameter = var13;
-var14 = ((short int (*)(val*))(var_parameter->class->vft[COLOR_model__MParameter__is_vararg]))(var_parameter) /* is_vararg on <var_parameter:MParameter>*/;
-if (var14){
-var15 = 1;
-{ /* Inline kernel#Int#unary - (var15) */
-var18 = -var15;
-var16 = var18;
-goto RET_LABEL17;
-RET_LABEL17:(void)0;
-}
-{ /* Inline kernel#Int#== (var_vararg_rank,var16) */
-var21 = var_vararg_rank == var16;
-var19 = var21;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
-}
-if (!var19) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1405);
-exit(1);
-}
-var_vararg_rank = var_i;
-} else {
-}
-CONTINUE_label: (void)0;
-((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__next]))(var9) /* next on <var9:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MSignature__mparameters_61d]))(self, var_mparameters) /* mparameters= on <self:MSignature>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MSignature__return_mtype_61d]))(self, var_return_mtype) /* return_mtype= on <self:MSignature>*/;
-((void (*)(val*, long))(self->class->vft[COLOR_model__MSignature__vararg_rank_61d]))(self, var_vararg_rank) /* vararg_rank= on <self:MSignature>*/;
-RET_LABEL:;
-}
-/* method model#MSignature#init for (self: Object, Array[MParameter], nullable MType) */
-void VIRTUAL_model__MSignature__init(val* self, val* p0, val* p1) {
-model__MSignature__init(self, p0, p1);
-RET_LABEL:;
-}
-/* method model#MSignature#vararg_rank for (self: MSignature): Int */
-long model__MSignature__vararg_rank(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = self->attrs[COLOR_model__MSignature___64dvararg_rank].l; /* @vararg_rank on <self:MSignature> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#vararg_rank for (self: Object): Int */
-long VIRTUAL_model__MSignature__vararg_rank(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = model__MSignature__vararg_rank(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#vararg_rank= for (self: MSignature, Int) */
-void model__MSignature__vararg_rank_61d(val* self, long p0) {
-self->attrs[COLOR_model__MSignature___64dvararg_rank].l = p0; /* @vararg_rank on <self:MSignature> */
-RET_LABEL:;
-}
-/* method model#MSignature#vararg_rank= for (self: Object, Int) */
-void VIRTUAL_model__MSignature__vararg_rank_61d(val* self, long p0) {
-model__MSignature__vararg_rank_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MSignature#arity for (self: MSignature): Int */
-long model__MSignature__arity(val* self) {
-long var /* : Int */;
-val* var1 /* : Array[MParameter] */;
-long var2 /* : Int */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on <self:MSignature>*/;
-var2 = ((long (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__length]))(var1) /* length on <var1:Array[MParameter]>*/;
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#arity for (self: Object): Int */
-long VIRTUAL_model__MSignature__arity(val* self) {
-long var /* : Int */;
-long var1 /* : Int */;
-var1 = model__MSignature__arity(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#to_s for (self: MSignature): String */
-val* model__MSignature__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : Buffer */;
-val* var_b /* var b: Buffer */;
-val* var2 /* : Array[MParameter] */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-static val* varonce;
-val* var5 /* : String */;
-char* var6 /* : NativeString */;
-long var7 /* : Int */;
-val* var8 /* : String */;
-val* var9 /* : Range[Int] */;
-long var10 /* : Int */;
-val* var11 /* : Array[MParameter] */;
-long var12 /* : Int */;
-val* var13 /* : Discrete */;
-val* var14 /* : Discrete */;
-val* var15 /* : Iterator[nullable Object] */;
-short int var16 /* : Bool */;
-val* var17 /* : nullable Object */;
-long var_i /* var i: Int */;
-long var18 /* : Int */;
-val* var19 /* : Array[MParameter] */;
-val* var20 /* : nullable Object */;
-val* var_mparameter /* var mparameter: MParameter */;
-long var21 /* : Int */;
-short int var22 /* : Bool */;
-short int var24 /* : Bool */;
-int cltype;
-int idtype;
-short int var25 /* : Bool */;
-static val* varonce26;
-val* var27 /* : String */;
-char* var28 /* : NativeString */;
-long var29 /* : Int */;
-val* var30 /* : String */;
-val* var31 /* : String */;
-static val* varonce32;
-val* var33 /* : String */;
-char* var34 /* : NativeString */;
-long var35 /* : Int */;
-val* var36 /* : String */;
-val* var37 /* : MType */;
-val* var38 /* : String */;
-short int var39 /* : Bool */;
-static val* varonce40;
-val* var41 /* : String */;
-char* var42 /* : NativeString */;
-long var43 /* : Int */;
-val* var44 /* : String */;
-static val* varonce45;
-val* var46 /* : String */;
-char* var47 /* : NativeString */;
-long var48 /* : Int */;
-val* var49 /* : String */;
-val* var50 /* : nullable MType */;
-val* var_ret /* var ret: nullable MType */;
-val* var51 /* : null */;
-short int var52 /* : Bool */;
-static val* varonce53;
-val* var54 /* : String */;
-char* var55 /* : NativeString */;
-long var56 /* : Int */;
-val* var57 /* : String */;
-val* var58 /* : String */;
-val* var59 /* : String */;
-var1 = NEW_string__Buffer(&type_string__Buffer);
-((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on <var1:Buffer>*/;
-CHECK_NEW_string__Buffer(var1);
-var_b = var1;
-var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on <self:MSignature>*/;
-var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var2) /* is_empty on <var2:Array[MParameter]>*/;
-var4 = !var3;
-if (var4){
-if (varonce) {
-var5 = varonce;
-} else {
-var6 = "(";
-var7 = 1;
-var8 = string__NativeString__to_s_with_length(var6, var7);
-var5 = var8;
-varonce = var5;
-}
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var5) /* append on <var_b:Buffer>*/;
-var9 = NEW_range__Range(&type_range__Rangekernel__Int);
-var10 = 0;
-var11 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on <self:MSignature>*/;
-var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collection__length]))(var11) /* length on <var11:Array[MParameter]>*/;
-var13 = BOX_kernel__Int(var10); /* autobox from Int to Discrete */
-var14 = BOX_kernel__Int(var12); /* autobox from Int to Discrete */
-((void (*)(val*, val*, val*))(var9->class->vft[COLOR_range__Range__without_last]))(var9, var13, var14) /* without_last on <var9:Range[Int]>*/;
-CHECK_NEW_range__Range(var9);
-var15 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var9) /* iterator on <var9:Range[Int]>*/;
-for(;;) {
-var16 = ((short int (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var15) /* is_ok on <var15:Iterator[nullable Object]>*/;
-if(!var16) break;
-var17 = ((val* (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__item]))(var15) /* item on <var15:Iterator[nullable Object]>*/;
-var18 = ((struct instance_kernel__Int*)var17)->value; /* autounbox from nullable Object to Int */;
-var_i = var18;
-var19 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on <self:MSignature>*/;
-var20 = ((val* (*)(val*, long))(var19->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var19, var_i) /* [] on <var19:Array[MParameter]>*/;
-var_mparameter = var20;
-var21 = 0;
-{ /* Inline kernel#Int#> (var_i,var21) */
-/* Covariant cast for argument 0 (i) <var21:Int> isa OTHER */
-/* <var21:Int> isa OTHER */
-var24 = 1; /* easy <var21:Int> isa OTHER*/
-if (!var24) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
-exit(1);
-}
-var25 = var_i > var21;
-var22 = var25;
-goto RET_LABEL23;
-RET_LABEL23:(void)0;
-}
-if (var22){
-if (varonce26) {
-var27 = varonce26;
-} else {
-var28 = ", ";
-var29 = 2;
-var30 = string__NativeString__to_s_with_length(var28, var29);
-var27 = var30;
-varonce26 = var27;
-}
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var27) /* append on <var_b:Buffer>*/;
-} else {
-}
-var31 = ((val* (*)(val*))(var_mparameter->class->vft[COLOR_model__MParameter__name]))(var_mparameter) /* name on <var_mparameter:MParameter>*/;
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var31) /* append on <var_b:Buffer>*/;
-if (varonce32) {
-var33 = varonce32;
-} else {
-var34 = ": ";
-var35 = 2;
-var36 = string__NativeString__to_s_with_length(var34, var35);
-var33 = var36;
-varonce32 = var33;
-}
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var33) /* append on <var_b:Buffer>*/;
-var37 = ((val* (*)(val*))(var_mparameter->class->vft[COLOR_model__MParameter__mtype]))(var_mparameter) /* mtype on <var_mparameter:MParameter>*/;
-var38 = ((val* (*)(val*))(var37->class->vft[COLOR_string__Object__to_s]))(var37) /* to_s on <var37:MType>*/;
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var38) /* append on <var_b:Buffer>*/;
-var39 = ((short int (*)(val*))(var_mparameter->class->vft[COLOR_model__MParameter__is_vararg]))(var_mparameter) /* is_vararg on <var_mparameter:MParameter>*/;
-if (var39){
-if (varonce40) {
-var41 = varonce40;
-} else {
-var42 = "...";
-var43 = 3;
-var44 = string__NativeString__to_s_with_length(var42, var43);
-var41 = var44;
-varonce40 = var41;
-}
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var41) /* append on <var_b:Buffer>*/;
-} else {
-}
-CONTINUE_label: (void)0;
-((void (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__next]))(var15) /* next on <var15:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-if (varonce45) {
-var46 = varonce45;
-} else {
-var47 = ")";
-var48 = 1;
-var49 = string__NativeString__to_s_with_length(var47, var48);
-var46 = var49;
-varonce45 = var46;
-}
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var46) /* append on <var_b:Buffer>*/;
-} else {
-}
-var50 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__return_mtype]))(self) /* return_mtype on <self:MSignature>*/;
-var_ret = var50;
-var51 = NULL;
-if (var_ret == NULL) {
-var52 = 0; /* is null */
-} else {
-var52 = 1; /* arg is null and recv is not */
-}
-if (var52){
-if (varonce53) {
-var54 = varonce53;
-} else {
-var55 = ": ";
-var56 = 2;
-var57 = string__NativeString__to_s_with_length(var55, var56);
-var54 = var57;
-varonce53 = var54;
-}
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var54) /* append on <var_b:Buffer>*/;
-var58 = ((val* (*)(val*))(var_ret->class->vft[COLOR_string__Object__to_s]))(var_ret) /* to_s on <var_ret:nullable MType(MType)>*/;
-((void (*)(val*, val*))(var_b->class->vft[COLOR_abstract_collection__Sequence__append]))(var_b, var58) /* append on <var_b:Buffer>*/;
-} else {
-}
-var59 = ((val* (*)(val*))(var_b->class->vft[COLOR_string__Object__to_s]))(var_b) /* to_s on <var_b:Buffer>*/;
-var = var59;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#to_s for (self: Object): String */
-val* VIRTUAL_model__MSignature__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MSignature__to_s(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#resolve_for for (self: MSignature, MType, nullable MClassType, MModule, Bool): MSignature */
-val* model__MSignature__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MSignature */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-val* var1 /* : Array[MParameter] */;
-val* var_params /* var params: Array[MParameter] */;
-val* var2 /* : Array[MParameter] */;
-val* var3 /* : Iterator[nullable Object] */;
-short int var4 /* : Bool */;
-val* var5 /* : nullable Object */;
-val* var_p /* var p: MParameter */;
-val* var6 /* : MParameter */;
-val* var7 /* : nullable MType */;
-val* var_ret /* var ret: nullable MType */;
-val* var8 /* : null */;
-short int var9 /* : Bool */;
-val* var10 /* : MType */;
-val* var11 /* : MSignature */;
-val* var_res /* var res: MSignature */;
-val* var12 /* : Array[MParameter] */;
-val* var13 /* : Iterator[nullable Object] */;
-short int var14 /* : Bool */;
-val* var15 /* : nullable Object */;
-val* var_p16 /* var p: MParameter */;
-val* var17 /* : Array[MParameter] */;
-val* var18 /* : MParameter */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-var1 = NEW_array__Array(&type_array__Arraymodel__MParameter);
-((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[MParameter]>*/;
-CHECK_NEW_array__Array(var1);
-var_params = var1;
-var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on <self:MSignature>*/;
-var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on <var2:Array[MParameter]>*/;
-for(;;) {
-var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on <var3:Iterator[nullable Object]>*/;
-if(!var4) break;
-var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on <var3:Iterator[nullable Object]>*/;
-var_p = var5;
-var6 = ((val* (*)(val*, val*, val*, val*, short int))(var_p->class->vft[COLOR_model__MParameter__resolve_for]))(var_p, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_p:MParameter>*/;
-((void (*)(val*, val*))(var_params->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_params, var6) /* add on <var_params:Array[MParameter]>*/;
-CONTINUE_label: (void)0;
-((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on <var3:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__return_mtype]))(self) /* return_mtype on <self:MSignature>*/;
-var_ret = var7;
-var8 = NULL;
-if (var_ret == NULL) {
-var9 = 0; /* is null */
-} else {
-var9 = 1; /* arg is null and recv is not */
-}
-if (var9){
-var10 = ((val* (*)(val*, val*, val*, val*, short int))(var_ret->class->vft[COLOR_model__MType__resolve_for]))(var_ret, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_ret:nullable MType(MType)>*/;
-var_ret = var10;
-} else {
-}
-var11 = NEW_model__MSignature(&type_model__MSignature);
-((void (*)(val*, val*, val*))(var11->class->vft[COLOR_model__MSignature__init]))(var11, var_params, var_ret) /* init on <var11:MSignature>*/;
-CHECK_NEW_model__MSignature(var11);
-var_res = var11;
-var12 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mclosures]))(self) /* mclosures on <self:MSignature>*/;
-var13 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Collection__iterator]))(var12) /* iterator on <var12:Array[MParameter]>*/;
-for(;;) {
-var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on <var13:Iterator[nullable Object]>*/;
-if(!var14) break;
-var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on <var13:Iterator[nullable Object]>*/;
-var_p16 = var15;
-var17 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MSignature__mclosures]))(var_res) /* mclosures on <var_res:MSignature>*/;
-var18 = ((val* (*)(val*, val*, val*, val*, short int))(var_p16->class->vft[COLOR_model__MParameter__resolve_for]))(var_p16, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_p16:MParameter>*/;
-((void (*)(val*, val*))(var17->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var17, var18) /* add on <var17:Array[MParameter]>*/;
-CONTINUE_label19: (void)0;
-((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on <var13:Iterator[nullable Object]>*/;
-}
-BREAK_label19: (void)0;
-var = var_res;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MSignature#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
-val* VIRTUAL_model__MSignature__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var1 /* : MSignature */;
-var1 = model__MSignature__resolve_for(self, p0, p1, p2, p3);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#name for (self: MParameter): String */
-val* model__MParameter__name(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = self->attrs[COLOR_model__MParameter___64dname].val; /* @name on <self:MParameter> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/model/model.nit", 1467);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#name for (self: Object): String */
-val* VIRTUAL_model__MParameter__name(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MParameter__name(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#name= for (self: MParameter, String) */
-void model__MParameter__name_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MParameter___64dname].val = p0; /* @name on <self:MParameter> */
-RET_LABEL:;
-}
-/* method model#MParameter#name= for (self: Object, String) */
-void VIRTUAL_model__MParameter__name_61d(val* self, val* p0) {
-model__MParameter__name_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MParameter#mtype for (self: MParameter): MType */
-val* model__MParameter__mtype(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = self->attrs[COLOR_model__MParameter___64dmtype].val; /* @mtype on <self:MParameter> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mtype", "src/model/model.nit", 1470);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#mtype for (self: Object): MType */
-val* VIRTUAL_model__MParameter__mtype(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MParameter__mtype(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#mtype= for (self: MParameter, MType) */
-void model__MParameter__mtype_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MParameter___64dmtype].val = p0; /* @mtype on <self:MParameter> */
-RET_LABEL:;
-}
-/* method model#MParameter#mtype= for (self: Object, MType) */
-void VIRTUAL_model__MParameter__mtype_61d(val* self, val* p0) {
-model__MParameter__mtype_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MParameter#is_vararg for (self: MParameter): Bool */
-short int model__MParameter__is_vararg(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = self->attrs[COLOR_model__MParameter___64dis_vararg].s; /* @is_vararg on <self:MParameter> */
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#is_vararg for (self: Object): Bool */
-short int VIRTUAL_model__MParameter__is_vararg(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MParameter__is_vararg(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#is_vararg= for (self: MParameter, Bool) */
-void model__MParameter__is_vararg_61d(val* self, short int p0) {
-self->attrs[COLOR_model__MParameter___64dis_vararg].s = p0; /* @is_vararg on <self:MParameter> */
-RET_LABEL:;
-}
-/* method model#MParameter#is_vararg= for (self: Object, Bool) */
-void VIRTUAL_model__MParameter__is_vararg_61d(val* self, short int p0) {
-model__MParameter__is_vararg_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MParameter#resolve_for for (self: MParameter, MType, nullable MClassType, MModule, Bool): MParameter */
-val* model__MParameter__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MParameter */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-val* var1 /* : MType */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-val* var4 /* : MType */;
-val* var5 /* : MType */;
-val* var_newtype /* var newtype: MType */;
-val* var6 /* : MParameter */;
-val* var7 /* : String */;
-short int var8 /* : Bool */;
-val* var_res /* var res: MParameter */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameter__mtype]))(self) /* mtype on <self:MParameter>*/;
-var2 = ((short int (*)(val*))(var1->class->vft[COLOR_model__MType__need_anchor]))(var1) /* need_anchor on <var1:MType>*/;
-var3 = !var2;
-if (var3){
-var = self;
-goto RET_LABEL;
-} else {
-}
-var4 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameter__mtype]))(self) /* mtype on <self:MParameter>*/;
-var5 = ((val* (*)(val*, val*, val*, val*, short int))(var4->class->vft[COLOR_model__MType__resolve_for]))(var4, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var4:MType>*/;
-var_newtype = var5;
-var6 = NEW_model__MParameter(&type_model__MParameter);
-var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameter__name]))(self) /* name on <self:MParameter>*/;
-var8 = ((short int (*)(val*))(self->class->vft[COLOR_model__MParameter__is_vararg]))(self) /* is_vararg on <self:MParameter>*/;
-((void (*)(val*, val*, val*, short int))(var6->class->vft[COLOR_model__MParameter__init]))(var6, var7, var_newtype, var8) /* init on <var6:MParameter>*/;
-CHECK_NEW_model__MParameter(var6);
-var_res = var6;
-var = var_res;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MParameter */
-val* VIRTUAL_model__MParameter__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MParameter */;
-val* var1 /* : MParameter */;
-var1 = model__MParameter__resolve_for(self, p0, p1, p2, p3);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameter#init for (self: MParameter, String, MType, Bool) */
-void model__MParameter__init(val* self, val* p0, val* p1, short int p2) {
-self->attrs[COLOR_model__MParameter___64dname].val = p0; /* @name on <self:MParameter> */
-self->attrs[COLOR_model__MParameter___64dmtype].val = p1; /* @mtype on <self:MParameter> */
-self->attrs[COLOR_model__MParameter___64dis_vararg].s = p2; /* @is_vararg on <self:MParameter> */
-RET_LABEL:;
-}
-/* method model#MParameter#init for (self: Object, String, MType, Bool) */
-void VIRTUAL_model__MParameter__init(val* self, val* p0, val* p1, short int p2) {
-model__MParameter__init(self, p0, p1, p2);
-RET_LABEL:;
-}
-/* method model#MProperty#intro_mclassdef for (self: MProperty): MClassDef */
-val* model__MProperty__intro_mclassdef(val* self) {
-val* var /* : MClassDef */;
-val* var1 /* : MClassDef */;
-var1 = self->attrs[COLOR_model__MProperty___64dintro_mclassdef].val; /* @intro_mclassdef on <self:MProperty> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @intro_mclassdef", "src/model/model.nit", 1501);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#intro_mclassdef for (self: Object): MClassDef */
-val* VIRTUAL_model__MProperty__intro_mclassdef(val* self) {
-val* var /* : MClassDef */;
-val* var1 /* : MClassDef */;
-var1 = model__MProperty__intro_mclassdef(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#intro_mclassdef= for (self: MProperty, MClassDef) */
-void model__MProperty__intro_mclassdef_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MProperty___64dintro_mclassdef].val = p0; /* @intro_mclassdef on <self:MProperty> */
-RET_LABEL:;
-}
-/* method model#MProperty#intro_mclassdef= for (self: Object, MClassDef) */
-void VIRTUAL_model__MProperty__intro_mclassdef_61d(val* self, val* p0) {
-model__MProperty__intro_mclassdef_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MProperty#name for (self: MProperty): String */
-val* model__MProperty__name(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = self->attrs[COLOR_model__MProperty___64dname].val; /* @name on <self:MProperty> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/model/model.nit", 1506);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#name for (self: Object): String */
-val* VIRTUAL_model__MProperty__name(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MProperty__name(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#name= for (self: MProperty, String) */
-void model__MProperty__name_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MProperty___64dname].val = p0; /* @name on <self:MProperty> */
-RET_LABEL:;
-}
-/* method model#MProperty#name= for (self: Object, String) */
-void VIRTUAL_model__MProperty__name_61d(val* self, val* p0) {
-model__MProperty__name_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MProperty#full_name for (self: MProperty): String */
-val* model__MProperty__full_name(val* self) {
-val* var /* : String */;
-val* var1 /* : Array[Object] */;
-long var2 /* : Int */;
-val* var_ /* var : Array[Object] */;
-static val* varonce;
-val* var3 /* : String */;
-char* var4 /* : NativeString */;
-long var5 /* : Int */;
-val* var6 /* : String */;
-val* var7 /* : MClassDef */;
-val* var8 /* : MModule */;
-val* var9 /* : String */;
-static val* varonce10;
-val* var11 /* : String */;
-char* var12 /* : NativeString */;
-long var13 /* : Int */;
-val* var14 /* : String */;
-val* var15 /* : MClassDef */;
-val* var16 /* : MClass */;
-val* var17 /* : String */;
-static val* varonce18;
-val* var19 /* : String */;
-char* var20 /* : NativeString */;
-long var21 /* : Int */;
-val* var22 /* : String */;
-val* var23 /* : String */;
-static val* varonce24;
-val* var25 /* : String */;
-char* var26 /* : NativeString */;
-long var27 /* : Int */;
-val* var28 /* : String */;
-val* var29 /* : String */;
-var1 = NEW_array__Array(&type_array__Arraykernel__Object);
-var2 = 7;
-((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on <var1:Array[Object]>*/;
-CHECK_NEW_array__Array(var1);
-var_ = var1;
-if (varonce) {
-var3 = varonce;
-} else {
-var4 = "";
-var5 = 0;
-var6 = string__NativeString__to_s_with_length(var4, var5);
-var3 = var6;
-varonce = var3;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on <var_:Array[Object]>*/;
-var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__intro_mclassdef]))(self) /* intro_mclassdef on <self:MProperty>*/;
-var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MClassDef__mmodule]))(var7) /* mmodule on <var7:MClassDef>*/;
-var9 = ((val* (*)(val*))(var8->class->vft[COLOR_model_base__MModule__full_name]))(var8) /* full_name on <var8:MModule>*/;
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var9) /* add on <var_:Array[Object]>*/;
-if (varonce10) {
-var11 = varonce10;
-} else {
-var12 = "::";
-var13 = 2;
-var14 = string__NativeString__to_s_with_length(var12, var13);
-var11 = var14;
-varonce10 = var11;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
-var15 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__intro_mclassdef]))(self) /* intro_mclassdef on <self:MProperty>*/;
-var16 = ((val* (*)(val*))(var15->class->vft[COLOR_model__MClassDef__mclass]))(var15) /* mclass on <var15:MClassDef>*/;
-var17 = ((val* (*)(val*))(var16->class->vft[COLOR_model__MClass__name]))(var16) /* name on <var16:MClass>*/;
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var17) /* add on <var_:Array[Object]>*/;
-if (varonce18) {
-var19 = varonce18;
-} else {
-var20 = "::";
-var21 = 2;
-var22 = string__NativeString__to_s_with_length(var20, var21);
-var19 = var22;
-varonce18 = var19;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var19) /* add on <var_:Array[Object]>*/;
-var23 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__name]))(self) /* name on <self:MProperty>*/;
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var23) /* add on <var_:Array[Object]>*/;
-if (varonce24) {
-var25 = varonce24;
-} else {
-var26 = "";
-var27 = 0;
-var28 = string__NativeString__to_s_with_length(var26, var27);
-var25 = var28;
-varonce24 = var25;
-}
-((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var25) /* add on <var_:Array[Object]>*/;
-var29 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
-var = var29;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#full_name for (self: Object): String */
-val* VIRTUAL_model__MProperty__full_name(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MProperty__full_name(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#visibility for (self: MProperty): MVisibility */
-val* model__MProperty__visibility(val* self) {
-val* var /* : MVisibility */;
-val* var1 /* : MVisibility */;
-var1 = self->attrs[COLOR_model__MProperty___64dvisibility].val; /* @visibility on <self:MProperty> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @visibility", "src/model/model.nit", 1516);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#visibility for (self: Object): MVisibility */
-val* VIRTUAL_model__MProperty__visibility(val* self) {
-val* var /* : MVisibility */;
-val* var1 /* : MVisibility */;
-var1 = model__MProperty__visibility(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#visibility= for (self: MProperty, MVisibility) */
-void model__MProperty__visibility_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MProperty___64dvisibility].val = p0; /* @visibility on <self:MProperty> */
-RET_LABEL:;
-}
-/* method model#MProperty#visibility= for (self: Object, MVisibility) */
-void VIRTUAL_model__MProperty__visibility_61d(val* self, val* p0) {
-model__MProperty__visibility_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MProperty#init for (self: MProperty, MClassDef, String, MVisibility) */
-void model__MProperty__init(val* self, val* p0, val* p1, val* p2) {
-val* var_intro_mclassdef /* var intro_mclassdef: MClassDef */;
-val* var_name /* var name: String */;
-val* var_visibility /* var visibility: MVisibility */;
-val* var /* : Array[MProperty] */;
-val* var1 /* : MModule */;
-val* var2 /* : Model */;
-val* var_model /* var model: Model */;
-val* var3 /* : MultiHashMap[String, MProperty] */;
-val* var4 /* : Array[MProperty] */;
-var_intro_mclassdef = p0;
-var_name = p1;
-var_visibility = p2;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MProperty__intro_mclassdef_61d]))(self, var_intro_mclassdef) /* intro_mclassdef= on <self:MProperty>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MProperty__name_61d]))(self, var_name) /* name= on <self:MProperty>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_model__MProperty__visibility_61d]))(self, var_visibility) /* visibility= on <self:MProperty>*/;
-var = ((val* (*)(val*))(var_intro_mclassdef->class->vft[COLOR_model__MClassDef__intro_mproperties]))(var_intro_mclassdef) /* intro_mproperties on <var_intro_mclassdef:MClassDef>*/;
-((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, self) /* add on <var:Array[MProperty]>*/;
-var1 = ((val* (*)(val*))(var_intro_mclassdef->class->vft[COLOR_model__MClassDef__mmodule]))(var_intro_mclassdef) /* mmodule on <var_intro_mclassdef:MClassDef>*/;
-var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model_base__MModule__model]))(var1) /* model on <var1:MModule>*/;
-var_model = var2;
-var3 = ((val* (*)(val*))(var_model->class->vft[COLOR_model__Model__mproperties_by_name]))(var_model) /* mproperties_by_name on <var_model:Model>*/;
-((void (*)(val*, val*, val*))(var3->class->vft[COLOR_more_collections__MultiHashMap__add_one]))(var3, var_name, self) /* add_one on <var3:MultiHashMap[String, MProperty]>*/;
-var4 = ((val* (*)(val*))(var_model->class->vft[COLOR_model__Model__mproperties]))(var_model) /* mproperties on <var_model:Model>*/;
-((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, self) /* add on <var4:Array[MProperty]>*/;
-RET_LABEL:;
-}
-/* method model#MProperty#init for (self: Object, MClassDef, String, MVisibility) */
-void VIRTUAL_model__MProperty__init(val* self, val* p0, val* p1, val* p2) {
-model__MProperty__init(self, p0, p1, p2);
-RET_LABEL:;
-}
-/* method model#MProperty#mpropdefs for (self: MProperty): Array[MPropDef] */
-val* model__MProperty__mpropdefs(val* self) {
-val* var /* : Array[MPropDef] */;
-val* var1 /* : Array[MPropDef] */;
-var1 = self->attrs[COLOR_model__MProperty___64dmpropdefs].val; /* @mpropdefs on <self:MProperty> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdefs", "src/model/model.nit", 1530);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#mpropdefs for (self: Object): Array[MPropDef] */
-val* VIRTUAL_model__MProperty__mpropdefs(val* self) {
-val* var /* : Array[MPropDef] */;
-val* var1 /* : Array[MPropDef] */;
-var1 = model__MProperty__mpropdefs(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#mpropdefs= for (self: MProperty, Array[MPropDef]) */
-void model__MProperty__mpropdefs_61d(val* self, val* p0) {
-short int var /* : Bool */;
-int cltype;
-int idtype;
-const struct type* type_struct;
-/* Covariant cast for argument 0 (mpropdefs) <p0:Array[MPropDef]> isa Array[MPROPDEF] */
-/* <p0:Array[MPropDef]> isa Array[MPROPDEF] */
-type_struct = self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF];
-cltype = type_struct->color;
-idtype = type_struct->id;
-if(cltype >= p0->type->table_size) {
-var = 0;
-} else {
-var = p0->type->type_table[cltype] == idtype;
-}
-if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1530);
-exit(1);
-}
-self->attrs[COLOR_model__MProperty___64dmpropdefs].val = p0; /* @mpropdefs on <self:MProperty> */
-RET_LABEL:;
-}
-/* method model#MProperty#mpropdefs= for (self: Object, Array[MPropDef]) */
-void VIRTUAL_model__MProperty__mpropdefs_61d(val* self, val* p0) {
-model__MProperty__mpropdefs_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MProperty#intro for (self: MProperty): MPropDef */
-val* model__MProperty__intro(val* self) {
-val* var /* : MPropDef */;
-val* var1 /* : Array[MPropDef] */;
-val* var2 /* : nullable Object */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__mpropdefs]))(self) /* mpropdefs on <self:MProperty>*/;
-var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__first]))(var1) /* first on <var1:Array[MPropDef]>*/;
-var = var2;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#intro for (self: Object): MPropDef */
-val* VIRTUAL_model__MProperty__intro(val* self) {
-val* var /* : MPropDef */;
-val* var1 /* : MPropDef */;
-var1 = model__MProperty__intro(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#to_s for (self: MProperty): String */
-val* model__MProperty__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__name]))(self) /* name on <self:MProperty>*/;
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#to_s for (self: Object): String */
-val* VIRTUAL_model__MProperty__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = model__MProperty__to_s(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#lookup_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
-val* model__MProperty__lookup_definitions(val* self, val* p0, val* p1) {
-val* var /* : Array[MPropDef] */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var_mtype /* var mtype: MType */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-int cltype;
-int idtype;
-val* var4 /* : MType */;
-val* var5 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var6 /* : nullable Object */;
-val* var_cache /* var cache: nullable Array[MPropDef] */;
-val* var7 /* : null */;
-short int var8 /* : Bool */;
-val* var9 /* : Array[MPropDef] */;
-val* var_candidates /* var candidates: Array[MPropDef] */;
-val* var10 /* : Array[MPropDef] */;
-val* var11 /* : Iterator[nullable Object] */;
-short int var12 /* : Bool */;
-val* var13 /* : nullable Object */;
-val* var_mpropdef /* var mpropdef: MPropDef */;
-val* var14 /* : POSetElement[MModule] */;
-val* var15 /* : MClassDef */;
-val* var16 /* : MModule */;
-short int var17 /* : Bool */;
-short int var18 /* : Bool */;
-val* var19 /* : null */;
-val* var20 /* : MClassDef */;
-val* var21 /* : MClassType */;
-short int var22 /* : Bool */;
-short int var23 /* : Bool */;
-long var24 /* : Int */;
-long var25 /* : Int */;
-short int var26 /* : Bool */;
-short int var28 /* : Bool */;
-int cltype29;
-int idtype30;
-short int var31 /* : Bool */;
-val* var32 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var33 /* : Array[MPropDef] */;
-val* var_res /* var res: Array[MPropDef] */;
-val* var34 /* : Iterator[nullable Object] */;
-short int var35 /* : Bool */;
-val* var36 /* : nullable Object */;
-val* var_pd1 /* var pd1: MPropDef */;
-val* var37 /* : MClassDef */;
-val* var_cd1 /* var cd1: MClassDef */;
-val* var38 /* : MClass */;
-val* var_c1 /* var c1: MClass */;
-short int var39 /* : Bool */;
-short int var_keep /* var keep: Bool */;
-val* var40 /* : Iterator[nullable Object] */;
-short int var41 /* : Bool */;
-val* var42 /* : nullable Object */;
-val* var_pd2 /* var pd2: MPropDef */;
-short int var43 /* : Bool */;
-val* var45 /* : MClassDef */;
-val* var_cd2 /* var cd2: MClassDef */;
-val* var46 /* : MClass */;
-val* var_c2 /* var c2: MClass */;
-val* var47 /* : MClassType */;
-val* var48 /* : MClassType */;
-short int var49 /* : Bool */;
-val* var50 /* : MModule */;
-val* var51 /* : POSetElement[MModule] */;
-val* var52 /* : MModule */;
-short int var53 /* : Bool */;
-short int var54 /* : Bool */;
-val* var55 /* : MClassType */;
-val* var56 /* : null */;
-val* var57 /* : MClassType */;
-short int var58 /* : Bool */;
-short int var59 /* : Bool */;
-short int var61 /* : Bool */;
-static val* varonce;
-val* var62 /* : String */;
-char* var63 /* : NativeString */;
-long var64 /* : Int */;
-val* var65 /* : String */;
-static val* varonce66;
-val* var67 /* : String */;
-char* var68 /* : NativeString */;
-long var69 /* : Int */;
-val* var70 /* : String */;
-val* var71 /* : String */;
-val* var72 /* : Array[Object] */;
-long var73 /* : Int */;
-val* var74 /* : NativeArray[Object] */;
-val* var75 /* : String */;
-val* var76 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-var_mmodule = p0;
-var_mtype = p1;
-var1 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
-var2 = !var1;
-if (!var2) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1552);
-exit(1);
-}
-/* <var_mtype:MType> isa MNullableType */
-cltype = type_model__MNullableType.color;
-idtype = type_model__MNullableType.id;
-if(cltype >= var_mtype->type->table_size) {
-var3 = 0;
-} else {
-var3 = var_mtype->type->type_table[cltype] == idtype;
-}
-if (var3){
-var4 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MNullableType__mtype]))(var_mtype) /* mtype on <var_mtype:MType(MNullableType)>*/;
-var_mtype = var4;
-} else {
-}
-var5 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__lookup_definitions_cache]))(self) /* lookup_definitions_cache on <self:MProperty>*/;
-var6 = ((val* (*)(val*, val*, val*))(var5->class->vft[COLOR_more_collections__HashMap2___91d_93d]))(var5, var_mmodule, var_mtype) /* [] on <var5:HashMap2[MModule, MType, Array[MPropDef]]>*/;
-var_cache = var6;
-var7 = NULL;
-if (var_cache == NULL) {
-var8 = 0; /* is null */
-} else {
-var8 = 1; /* arg is null and recv is not */
-}
-if (var8){
-var = var_cache;
-goto RET_LABEL;
-} else {
-}
-var9 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]);
-((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on <var9:Array[MPropDef]>*/;
-CHECK_NEW_array__Array(var9);
-var_candidates = var9;
-var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__mpropdefs]))(self) /* mpropdefs on <self:MProperty>*/;
-var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__iterator]))(var10) /* iterator on <var10:Array[MPropDef]>*/;
-for(;;) {
-var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var11) /* is_ok on <var11:Iterator[nullable Object]>*/;
-if(!var12) break;
-var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on <var11:Iterator[nullable Object]>*/;
-var_mpropdef = var13;
-var14 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_model_base__MModule__in_importation]))(var_mmodule) /* in_importation on <var_mmodule:MModule>*/;
-var15 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:MPropDef>*/;
-var16 = ((val* (*)(val*))(var15->class->vft[COLOR_model__MClassDef__mmodule]))(var15) /* mmodule on <var15:MClassDef>*/;
-var17 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_poset__POSetElement___60d_61d]))(var14, var16) /* <= on <var14:POSetElement[MModule]>*/;
-var18 = !var17;
-if (var18){
-goto CONTINUE_label;
-} else {
-}
-var19 = NULL;
-var20 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:MPropDef>*/;
-var21 = ((val* (*)(val*))(var20->class->vft[COLOR_model__MClassDef__bound_mtype]))(var20) /* bound_mtype on <var20:MClassDef>*/;
-var22 = ((short int (*)(val*, val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__is_subtype]))(var_mtype, var_mmodule, var19, var21) /* is_subtype on <var_mtype:MType>*/;
-var23 = !var22;
-if (var23){
-goto CONTINUE_label;
-} else {
-}
-((void (*)(val*, val*))(var_candidates->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_candidates, var_mpropdef) /* add on <var_candidates:Array[MPropDef]>*/;
-CONTINUE_label: (void)0;
-((void (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__next]))(var11) /* next on <var11:Iterator[nullable Object]>*/;
-}
-BREAK_label: (void)0;
-var24 = ((long (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__length]))(var_candidates) /* length on <var_candidates:Array[MPropDef]>*/;
-var25 = 1;
-{ /* Inline kernel#Int#<= (var24,var25) */
-/* Covariant cast for argument 0 (i) <var25:Int> isa OTHER */
-/* <var25:Int> isa OTHER */
-var28 = 1; /* easy <var25:Int> isa OTHER*/
-if (!var28) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
-exit(1);
-}
-var31 = var24 <= var25;
-var26 = var31;
-goto RET_LABEL27;
-RET_LABEL27:(void)0;
-}
-if (var26){
-var32 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__lookup_definitions_cache]))(self) /* lookup_definitions_cache on <self:MProperty>*/;
-((void (*)(val*, val*, val*, val*))(var32->class->vft[COLOR_more_collections__HashMap2___91d_93d_61d]))(var32, var_mmodule, var_mtype, var_candidates) /* []= on <var32:HashMap2[MModule, MType, Array[MPropDef]]>*/;
-var = var_candidates;
-goto RET_LABEL;
-} else {
-}
-var33 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]);
-((void (*)(val*))(var33->class->vft[COLOR_array__Array__init]))(var33) /* init on <var33:Array[MPropDef]>*/;
-CHECK_NEW_array__Array(var33);
-var_res = var33;
-var34 = ((val* (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_candidates) /* iterator on <var_candidates:Array[MPropDef]>*/;
-for(;;) {
-var35 = ((short int (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var34) /* is_ok on <var34:Iterator[nullable Object]>*/;
-if(!var35) break;
-var36 = ((val* (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__item]))(var34) /* item on <var34:Iterator[nullable Object]>*/;
-var_pd1 = var36;
-var37 = ((val* (*)(val*))(var_pd1->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pd1) /* mclassdef on <var_pd1:MPropDef>*/;
-var_cd1 = var37;
-var38 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__mclass]))(var_cd1) /* mclass on <var_cd1:MClassDef>*/;
-var_c1 = var38;
-var39 = 1;
-var_keep = var39;
-var40 = ((val* (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_candidates) /* iterator on <var_candidates:Array[MPropDef]>*/;
-for(;;) {
-var41 = ((short int (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var40) /* is_ok on <var40:Iterator[nullable Object]>*/;
-if(!var41) break;
-var42 = ((val* (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__item]))(var40) /* item on <var40:Iterator[nullable Object]>*/;
-var_pd2 = var42;
-var43 = ((short int (*)(val*, val*))(var_pd2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pd2, var_pd1) /* == on <var_pd2:MPropDef>*/;
-if (var43){
-goto CONTINUE_label44;
-} else {
-}
-var45 = ((val* (*)(val*))(var_pd2->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pd2) /* mclassdef on <var_pd2:MPropDef>*/;
-var_cd2 = var45;
-var46 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__mclass]))(var_cd2) /* mclass on <var_cd2:MClassDef>*/;
-var_c2 = var46;
-var47 = ((val* (*)(val*))(var_c2->class->vft[COLOR_model__MClass__mclass_type]))(var_c2) /* mclass_type on <var_c2:MClass>*/;
-var48 = ((val* (*)(val*))(var_c1->class->vft[COLOR_model__MClass__mclass_type]))(var_c1) /* mclass_type on <var_c1:MClass>*/;
-var49 = ((short int (*)(val*, val*))(var47->class->vft[COLOR_kernel__Object___61d_61d]))(var47, var48) /* == on <var47:MClassType>*/;
-if (var49){
-var50 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__mmodule]))(var_cd2) /* mmodule on <var_cd2:MClassDef>*/;
-var51 = ((val* (*)(val*))(var50->class->vft[COLOR_model_base__MModule__in_importation]))(var50) /* in_importation on <var50:MModule>*/;
-var52 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__mmodule]))(var_cd1) /* mmodule on <var_cd1:MClassDef>*/;
-var53 = ((short int (*)(val*, val*))(var51->class->vft[COLOR_poset__POSetElement___60d_61d]))(var51, var52) /* <= on <var51:POSetElement[MModule]>*/;
-if (var53){
-var54 = 0;
-var_keep = var54;
-goto BREAK_label44;
-} else {
-}
-} else {
-var55 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd2) /* bound_mtype on <var_cd2:MClassDef>*/;
-var56 = NULL;
-var57 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd1) /* bound_mtype on <var_cd1:MClassDef>*/;
-var58 = ((short int (*)(val*, val*, val*, val*))(var55->class->vft[COLOR_model__MType__is_subtype]))(var55, var_mmodule, var56, var57) /* is_subtype on <var55:MClassType>*/;
-if (var58){
-var59 = 0;
-var_keep = var59;
-goto BREAK_label44;
-} else {
-}
-}
-CONTINUE_label44: (void)0;
-((void (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__next]))(var40) /* next on <var40:Iterator[nullable Object]>*/;
-}
-BREAK_label44: (void)0;
-if (var_keep){
-((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var_pd1) /* add on <var_res:Array[MPropDef]>*/;
-} else {
-}
-CONTINUE_label60: (void)0;
-((void (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__next]))(var34) /* next on <var34:Iterator[nullable Object]>*/;
-}
-BREAK_label60: (void)0;
-var61 = ((short int (*)(val*))(var_res->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_res) /* is_empty on <var_res:Array[MPropDef]>*/;
-if (var61){
-if (varonce) {
-var62 = varonce;
-} else {
-var63 = "All lost! ";
-var64 = 10;
-var65 = string__NativeString__to_s_with_length(var63, var64);
-var62 = var65;
-varonce = var62;
-}
-if (varonce66) {
-var67 = varonce66;
-} else {
-var68 = ", ";
-var69 = 2;
-var70 = string__NativeString__to_s_with_length(var68, var69);
-var67 = var70;
-varonce66 = var67;
-}
-var71 = ((val* (*)(val*, val*))(var_candidates->class->vft[COLOR_string__Collection__join]))(var_candidates, var67) /* join on <var_candidates:Array[MPropDef]>*/;
-var72 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var72 = array_instance Array[Object] */
-var73 = 2;
-var74 = NEW_array__NativeArray(var73, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var74)->values[0] = (val*) var62;
-((struct instance_array__NativeArray*)var74)->values[1] = (val*) var71;
-((void (*)(val*, val*, long))(var72->class->vft[COLOR_array__Array__with_native]))(var72, var74, var73) /* with_native on <var72:Array[Object]>*/;
-CHECK_NEW_array__Array(var72);
-}
-var75 = ((val* (*)(val*))(var72->class->vft[COLOR_string__Object__to_s]))(var72) /* to_s on <var72:Array[Object]>*/;
-((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var75) /* print on <self:MProperty>*/;
-} else {
-}
-var76 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__lookup_definitions_cache]))(self) /* lookup_definitions_cache on <self:MProperty>*/;
-((void (*)(val*, val*, val*, val*))(var76->class->vft[COLOR_more_collections__HashMap2___91d_93d_61d]))(var76, var_mmodule, var_mtype, var_res) /* []= on <var76:HashMap2[MModule, MType, Array[MPropDef]]>*/;
-var = var_res;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#lookup_definitions for (self: Object, MModule, MType): Array[MPropDef] */
-val* VIRTUAL_model__MProperty__lookup_definitions(val* self, val* p0, val* p1) {
-val* var /* : Array[MPropDef] */;
-val* var1 /* : Array[MPropDef] */;
-var1 = model__MProperty__lookup_definitions(self, p0, p1);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#lookup_definitions_cache for (self: MProperty): HashMap2[MModule, MType, Array[MPropDef]] */
-val* model__MProperty__lookup_definitions_cache(val* self) {
-val* var /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var1 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-var1 = self->attrs[COLOR_model__MProperty___64dlookup_definitions_cache].val; /* @lookup_definitions_cache on <self:MProperty> */
-if (var1 == NULL) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @lookup_definitions_cache", "src/model/model.nit", 1609);
-exit(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#lookup_definitions_cache for (self: Object): HashMap2[MModule, MType, Array[MPropDef]] */
-val* VIRTUAL_model__MProperty__lookup_definitions_cache(val* self) {
-val* var /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var1 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-var1 = model__MProperty__lookup_definitions_cache(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MProperty#lookup_definitions_cache= for (self: MProperty, HashMap2[MModule, MType, Array[MPropDef]]) */
-void model__MProperty__lookup_definitions_cache_61d(val* self, val* p0) {
-short int var /* : Bool */;
-int cltype;
-int idtype;
-const struct type* type_struct;
-/* Covariant cast for argument 0 (lookup_definitions_cache) <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
-/* <p0:HashMap2[MModule, MType, Array[MPropDef]]> isa HashMap2[MModule, MType, Array[MPROPDEF]] */
-type_struct = self->type->resolution_table->types[COLOR_more_collections__HashMap2model_base__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF];
-cltype = type_struct->color;
-idtype = type_struct->id;
-if(cltype >= p0->type->table_size) {
-var = 0;
-} else {
-var = p0->type->type_table[cltype] == idtype;
-}
-if (!var) {
-fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1609);
-exit(1);
-}
-self->attrs[COLOR_model__MProperty___64dlookup_definitions_cache].val = p0; /* @lookup_definitions_cache on <self:MProperty> */
-RET_LABEL:;
-}
-/* method model#MProperty#lookup_definitions_cache= for (self: Object, HashMap2[MModule, MType, Array[MPropDef]]) */
-void VIRTUAL_model__MProperty__lookup_definitions_cache_61d(val* self, val* p0) {
-model__MProperty__lookup_definitions_cache_61d(self, p0);
-RET_LABEL:;
-}
-/* method model#MProperty#lookup_super_definitions for (self: MProperty, MModule, MType): Array[MPropDef] */
-val* model__MProperty__lookup_super_definitions(val* self, val* p0, val* p1) {
-val* var /* : Array[MPropDef] */;
-val* var_mmodule /* var mmodule: MModule */;
-val* var_mtype /* var mtype: MType */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-int cltype;
-int idtype;
-val* var4 /* : MType */;
-val* var5 /* : Array[MPropDef] */;
-val* var_candidates /* var candidates: Array[MPropDef] */;
-val* var6 /* : Array[MPropDef] */;
-val* var7 /* : Iterator[nullable Object] */;
-short int var8 /* : Bool */;
-val* var9 /* : nullable Object */;
-val* var_mpropdef /* var mpropdef: MPropDef */;
-val* var10 /* : POSetElement[MModule] */;
-val* var11 /* : MClassDef */;
-val* var12 /* : MModule */;
-short int var13 /* : Bool */;
-short int var14 /* : Bool */;
-val* var15 /* : null */;
-val* var16 /* : MClassDef */;
-val* var17 /* : MClassType */;
-short int var18 /* : Bool */;
-short int var19 /* : Bool */;
-short int var20 /* : Bool */;
-val* var21 /* : MClassDef */;
-val* var22 /* : MClassType */;
-short int var23 /* : Bool */;
-short int var_ /* var : Bool */;
-val* var24 /* : MClassDef */;
-val* var25 /* : MModule */;
-short int var26 /* : Bool */;
-long var27 /* : Int */;
-long var28 /* : Int */;
-short int var29 /* : Bool */;
-short int var31 /* : Bool */;
-int cltype32;
-int idtype33;
-short int var34 /* : Bool */;
-val* var35 /* : Array[MPropDef] */;
-val* var_res /* var res: Array[MPropDef] */;
-val* var36 /* : Iterator[nullable Object] */;
-short int var37 /* : Bool */;
-val* var38 /* : nullable Object */;
-val* var_pd1 /* var pd1: MPropDef */;
-val* var39 /* : MClassDef */;
-val* var_cd1 /* var cd1: MClassDef */;
-val* var40 /* : MClass */;
-val* var_c1 /* var c1: MClass */;
-short int var41 /* : Bool */;
-short int var_keep /* var keep: Bool */;
-val* var42 /* : Iterator[nullable Object] */;
-short int var43 /* : Bool */;
-val* var44 /* : nullable Object */;
-val* var_pd2 /* var pd2: MPropDef */;
-short int var45 /* : Bool */;
-val* var47 /* : MClassDef */;
-val* var_cd2 /* var cd2: MClassDef */;
-val* var48 /* : MClass */;
-val* var_c2 /* var c2: MClass */;
-val* var49 /* : MClassType */;
-val* var50 /* : MClassType */;
-short int var51 /* : Bool */;
-val* var52 /* : MModule */;
-val* var53 /* : POSetElement[MModule] */;
-val* var54 /* : MModule */;
-short int var55 /* : Bool */;
-short int var56 /* : Bool */;
-val* var57 /* : MClassType */;
-val* var58 /* : null */;
-val* var59 /* : MClassType */;
-short int var60 /* : Bool */;
-short int var61 /* : Bool */;
-short int var63 /* : Bool */;
-static val* varonce;
-val* var64 /* : String */;
-char* var65 /* : NativeString */;
-long var66 /* : Int */;
-val* var67 /* : String */;
-static val* varonce68;
-val* var69 /* : String */;
-char* var70 /* : NativeString */;
-long var71 /* : Int */;
-val* var72 /* : String */;
-val* var73 /* : String */;
-val* var74 /* : Array[Object] */;
-long var75 /* : Int */;
-val* var76 /* : NativeArray[Object] */;
-val* var77 /* : String */;