-/* 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* var6 /* : MClass */;
-val* var7 /* : MClass */;
-val* var9 /* : MClass */;
-short int var10 /* : Bool */;
-short int var11 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var13 /* : Bool */;
-short int var15 /* : Bool */;
-val* var16 /* : Array[MType] */;
-val* var18 /* : Array[MType] */;
-long var19 /* : Int */;
-long var21 /* : Int */;
-val* var22 /* : nullable Object */;
-val* var_res /* var res: MType */;
-short int var23 /* : Bool */;
-val* var24 /* : null */;
-short int var25 /* : Bool */;
-short int var26 /* : Bool */;
-val* var_other28 /* var other: nullable Object */;
-short int var29 /* : Bool */;
-short int var30 /* : Bool */;
-short int var31 /* : Bool */;
-short int var_32 /* var : Bool */;
-short int var33 /* : Bool */;
-val* var34 /* : MType */;
-val* var_r2 /* var r2: MType */;
-short int var35 /* : Bool */;
-short int var36 /* : Bool */;
-int cltype37;
-int idtype38;
-short int var_39 /* var : Bool */;
-val* var40 /* : MClass */;
-val* var42 /* : MClass */;
-val* var43 /* : MClassKind */;
-val* var45 /* : MClassKind */;
-val* var46 /* : MClassKind */;
-short int var47 /* : Bool */;
-short int var48 /* : Bool */;
-short int var50 /* : Bool */;
-short int var52 /* : Bool */;
-short int var53 /* : Bool */;
-val* var54 /* : null */;
-short int var55 /* : Bool */;
-short int var56 /* : Bool */;
-short int var58 /* : Bool */;
-short int var59 /* : Bool */;
-short int var60 /* : Bool */;
-val* var61 /* : MClass */;
-val* var63 /* : MClass */;
-val* var64 /* : MClassType */;
-val* var66 /* : MClassType */;
-short int var67 /* : Bool */;
-val* var68 /* : MType */;
-val* var_resolved_receiver /* var resolved_receiver: nullable Object */;
-short int var69 /* : Bool */;
-int cltype70;
-int idtype71;
-val* var72 /* : MType */;
-val* var74 /* : MType */;
-short int var75 /* : Bool */;
-int cltype76;
-int idtype77;
-val* var78 /* : MClass */;
-val* var80 /* : MClass */;
-val* var81 /* : MClass */;
-val* var83 /* : MClass */;
-short int var84 /* : Bool */;
-short int var85 /* : Bool */;
-short int var87 /* : Bool */;
-short int var89 /* : Bool */;
-val* var90 /* : Array[MType] */;
-val* var92 /* : Array[MType] */;
-long var93 /* : Int */;
-long var95 /* : Int */;
-val* var96 /* : nullable Object */;
-short int var97 /* : Bool */;
-int cltype98;
-int idtype99;
-val* var100 /* : MType */;
-val* var102 /* : MType */;
-short int var103 /* : Bool */;
-int cltype104;
-int idtype105;
-val* var106 /* : MClass */;
-val* var108 /* : MClass */;
-val* var109 /* : MClass */;
-val* var111 /* : MClass */;
-short int var112 /* : Bool */;
-short int var113 /* : Bool */;
-short int var115 /* : Bool */;
-short int var117 /* : Bool */;
-val* var118 /* : Array[MType] */;
-val* var120 /* : Array[MType] */;
-long var121 /* : Int */;
-long var123 /* : Int */;
-val* var124 /* : nullable Object */;
-val* var_res125 /* var res: MType */;
-short int var126 /* : Bool */;
-val* var127 /* : null */;
-short int var128 /* : Bool */;
-short int var129 /* : Bool */;
-short int var131 /* : Bool */;
-short int var132 /* : Bool */;
-short int var133 /* : Bool */;
-val* var134 /* : null */;
-short int var135 /* : Bool */;
-val* var136 /* : MType */;
-val* var137 /* : MType */;
-val* var_verbatim_bound /* var verbatim_bound: MType */;
-val* var138 /* : MType */;
-val* var_res139 /* var res: MType */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-{
-var1 = model__MParameterType__can_resolve_for(self, var_mtype, var_anchor, var_mmodule);
-}
-if (unlikely(!var1)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1301);
-show_backtrace(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){
-{
-{ /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MGenericType)> */
-var6 = var_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MGenericType)> */
-if (unlikely(var6 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var4 = var6;
-RET_LABEL5:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
-var9 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
-if (unlikely(var9 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
-show_backtrace(1);
-}
-var7 = var9;
-RET_LABEL8:(void)0;
-}
-}
-{
-{ /* Inline kernel#Object#== (var4,var7) on <var4:MClass> */
-var_other = var7;
-{
-{ /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MClass> */
-var15 = var4 == var_other;
-var13 = var15;
-goto RET_LABEL14;
-RET_LABEL14:(void)0;
-}
-}
-var11 = var13;
-goto RET_LABEL12;
-RET_LABEL12:(void)0;
-}
-var10 = var11;
-}
-var2 = var10;
-} else {
-var2 = var_;
-}
-if (var2){
-{
-{ /* Inline model#MClassType#arguments (var_mtype) on <var_mtype:MType(MGenericType)> */
-var18 = var_mtype->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_mtype:MType(MGenericType)> */
-if (unlikely(var18 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
-show_backtrace(1);
-}
-var16 = var18;
-RET_LABEL17:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
-var21 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
-var19 = var21;
-RET_LABEL20:(void)0;
-}
-}
-{
-var22 = array__Array___91d_93d(var16, var19);
-}
-var_res = var22;
-var24 = NULL;
-if (var_anchor == NULL) {
-var25 = 0; /* is null */
-} else {
-var25 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,var24) on <var_anchor:nullable MClassType> */
-var_other28 = var24;
-{
-var30 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
-var29 = var30;
-}
-var31 = !var29;
-var26 = var31;
-goto RET_LABEL27;
-RET_LABEL27:(void)0;
-}
-var25 = var26;
-}
-var_32 = var25;
-if (var25){
-{
-var33 = ((short int (*)(val*))(var_res->class->vft[COLOR_model__MType__need_anchor]))(var_res) /* need_anchor on <var_res:MType>*/;
-}
-var23 = var33;
-} else {
-var23 = var_32;
-}
-if (var23){
-{
-var34 = ((val* (*)(val*, val*, val*))(var_res->class->vft[COLOR_model__MType__anchor_to]))(var_res, var_mmodule, var_anchor) /* anchor_to on <var_res:MType>*/;
-}
-var_r2 = var34;
-/* <var_r2:MType> isa MClassType */
-cltype37 = type_model__MClassType.color;
-idtype38 = type_model__MClassType.id;
-if(cltype37 >= var_r2->type->table_size) {
-var36 = 0;
-} else {
-var36 = var_r2->type->type_table[cltype37] == idtype38;
-}
-var_39 = var36;
-if (var36){
-{
-{ /* Inline model#MClassType#mclass (var_r2) on <var_r2:MType(MClassType)> */
-var42 = var_r2->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_r2:MType(MClassType)> */
-if (unlikely(var42 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var40 = var42;
-RET_LABEL41:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#kind (var40) on <var40:MClass> */
-var45 = var40->attrs[COLOR_model__MClass___kind].val; /* _kind on <var40:MClass> */
-if (unlikely(var45 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
-show_backtrace(1);
-}
-var43 = var45;
-RET_LABEL44:(void)0;
-}
-}
-{
-var46 = model__Object__enum_kind(self);
-}
-{
-{ /* Inline kernel#Object#== (var43,var46) on <var43:MClassKind> */
-var_other = var46;
-{
-{ /* Inline kernel#Object#is_same_instance (var43,var_other) on <var43:MClassKind> */
-var52 = var43 == var_other;
-var50 = var52;
-goto RET_LABEL51;
-RET_LABEL51:(void)0;
-}
-}
-var48 = var50;
-goto RET_LABEL49;
-RET_LABEL49:(void)0;
-}
-var47 = var48;
-}
-var35 = var47;
-} else {
-var35 = var_39;
-}
-if (var35){
-var = var_r2;
-goto RET_LABEL;
-} else {
-}
-} else {
-}
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-{
-var53 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
-}
-if (var53){
-var54 = NULL;
-if (var_anchor == NULL) {
-var55 = 0; /* is null */
-} else {
-var55 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,var54) on <var_anchor:nullable MClassType> */
-var_other28 = var54;
-{
-var59 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
-var58 = var59;
-}
-var60 = !var58;
-var56 = var60;
-goto RET_LABEL57;
-RET_LABEL57:(void)0;
-}
-var55 = var56;
-}
-if (unlikely(!var55)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1320);
-show_backtrace(1);
-}
-{
-{ /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
-var63 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
-if (unlikely(var63 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var61 = var63;
-RET_LABEL62:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#mclass_type (var61) on <var61:MClass> */
-var66 = var61->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var61:MClass> */
-if (unlikely(var66 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
-show_backtrace(1);
-}
-var64 = var66;
-RET_LABEL65:(void)0;
-}
-}
-var67 = 1;
-{
-var68 = ((val* (*)(val*, val*, val*, val*, short int))(var_mtype->class->vft[COLOR_model__MType__resolve_for]))(var_mtype, var64, var_anchor, var_mmodule, var67) /* resolve_for on <var_mtype:MType>*/;
-}
-var_resolved_receiver = var68;
-} else {
-var_resolved_receiver = var_mtype;
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
-cltype70 = type_model__MNullableType.color;
-idtype71 = type_model__MNullableType.id;
-if(cltype70 >= var_resolved_receiver->type->table_size) {
-var69 = 0;
-} else {
-var69 = var_resolved_receiver->type->type_table[cltype70] == idtype71;
-}
-if (var69){
-{
-{ /* Inline model#MNullableType#mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
-var74 = var_resolved_receiver->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
-if (unlikely(var74 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var72 = var74;
-RET_LABEL73:(void)0;
-}
-}
-var_resolved_receiver = var72;
-} else {
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MParameterType */
-cltype76 = type_model__MParameterType.color;
-idtype77 = type_model__MParameterType.id;
-if(cltype76 >= var_resolved_receiver->type->table_size) {
-var75 = 0;
-} else {
-var75 = var_resolved_receiver->type->type_table[cltype76] == idtype77;
-}
-if (var75){
-{
-{ /* Inline model#MParameterType#mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
-var80 = var_resolved_receiver->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <var_resolved_receiver:nullable Object(MParameterType)> */
-if (unlikely(var80 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
-show_backtrace(1);
-}
-var78 = var80;
-RET_LABEL79:(void)0;
-}
-}
-if (var_anchor == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1327);
-show_backtrace(1);
-} else {
-{ /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType> */
-if (unlikely(var_anchor == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var83 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType> */
-if (unlikely(var83 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var81 = var83;
-RET_LABEL82:(void)0;
-}
-}
-{
-{ /* Inline kernel#Object#== (var78,var81) on <var78:MClass> */
-var_other = var81;
-{
-{ /* Inline kernel#Object#is_same_instance (var78,var_other) on <var78:MClass> */
-var89 = var78 == var_other;
-var87 = var89;
-goto RET_LABEL88;
-RET_LABEL88:(void)0;
-}
-}
-var85 = var87;
-goto RET_LABEL86;
-RET_LABEL86:(void)0;
-}
-var84 = var85;
-}
-if (unlikely(!var84)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1327);
-show_backtrace(1);
-}
-if (var_anchor == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1328);
-show_backtrace(1);
-} else {
-{ /* Inline model#MClassType#arguments (var_anchor) on <var_anchor:nullable MClassType> */
-if (unlikely(var_anchor == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
-show_backtrace(1);
-}
-var92 = var_anchor->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_anchor:nullable MClassType> */
-if (unlikely(var92 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
-show_backtrace(1);
-}
-var90 = var92;
-RET_LABEL91:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#rank (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
-var95 = var_resolved_receiver->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <var_resolved_receiver:nullable Object(MParameterType)> */
-var93 = var95;
-RET_LABEL94:(void)0;
-}
-}
-{
-var96 = array__Array___91d_93d(var90, var93);
-}
-var_resolved_receiver = var96;
-/* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
-cltype98 = type_model__MNullableType.color;
-idtype99 = type_model__MNullableType.id;
-if(cltype98 >= var_resolved_receiver->type->table_size) {
-var97 = 0;
-} else {
-var97 = var_resolved_receiver->type->type_table[cltype98] == idtype99;
-}
-if (var97){
-{
-{ /* Inline model#MNullableType#mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
-var102 = var_resolved_receiver->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
-if (unlikely(var102 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var100 = var102;
-RET_LABEL101:(void)0;
-}
-}
-var_resolved_receiver = var100;
-} else {
-}
-} else {
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MClassType */
-cltype104 = type_model__MClassType.color;
-idtype105 = type_model__MClassType.id;
-if(cltype104 >= var_resolved_receiver->type->table_size) {
-var103 = 0;
-} else {
-var103 = var_resolved_receiver->type->type_table[cltype104] == idtype105;
-}
-if (unlikely(!var103)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1331);
-show_backtrace(1);
-}
-{
-{ /* Inline model#MClassType#mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MClassType)> */
-var108 = var_resolved_receiver->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:nullable Object(MClassType)> */
-if (unlikely(var108 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var106 = var108;
-RET_LABEL107:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
-var111 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
-if (unlikely(var111 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
-show_backtrace(1);
-}
-var109 = var111;
-RET_LABEL110:(void)0;
-}
-}
-{
-{ /* Inline kernel#Object#== (var106,var109) on <var106:MClass> */
-var_other = var109;
-{
-{ /* Inline kernel#Object#is_same_instance (var106,var_other) on <var106:MClass> */
-var117 = var106 == var_other;
-var115 = var117;
-goto RET_LABEL116;
-RET_LABEL116:(void)0;
-}
-}
-var113 = var115;
-goto RET_LABEL114;
-RET_LABEL114:(void)0;
-}
-var112 = var113;
-}
-if (var112){
-{
-{ /* Inline model#MClassType#arguments (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MClassType)> */
-var120 = var_resolved_receiver->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_resolved_receiver:nullable Object(MClassType)> */
-if (unlikely(var120 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
-show_backtrace(1);
-}
-var118 = var120;
-RET_LABEL119:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
-var123 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
-var121 = var123;
-RET_LABEL122:(void)0;
-}
-}
-{
-var124 = array__Array___91d_93d(var118, var121);
-}
-var_res125 = var124;
-var = var_res125;
-goto RET_LABEL;
-} else {
-}
-{
-var126 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on <var_resolved_receiver:nullable Object(MClassType)>*/;
-}
-if (var126){
-var127 = NULL;
-if (var_anchor == NULL) {
-var128 = 0; /* is null */
-} else {
-var128 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,var127) on <var_anchor:nullable MClassType> */
-var_other28 = var127;
-{
-var132 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
-var131 = var132;
-}
-var133 = !var131;
-var129 = var133;
-goto RET_LABEL130;
-RET_LABEL130:(void)0;
-}
-var128 = var129;
-}
-if (unlikely(!var128)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1342);
-show_backtrace(1);
-}
-var134 = NULL;
-var135 = 0;
-{
-var136 = ((val* (*)(val*, val*, val*, val*, short int))(var_resolved_receiver->class->vft[COLOR_model__MType__resolve_for]))(var_resolved_receiver, var_anchor, var134, var_mmodule, var135) /* resolve_for on <var_resolved_receiver:nullable Object(MClassType)>*/;
-}
-var_resolved_receiver = var136;
-} else {
-}
-{
-var137 = model__MParameterType__lookup_bound(self, var_mmodule, var_resolved_receiver);
-}
-var_verbatim_bound = var137;
-{
-var138 = ((val* (*)(val*, val*, val*, val*, short int))(var_verbatim_bound->class->vft[COLOR_model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_verbatim_bound:MType>*/;
-}
-var_res139 = var138;
-var = var_res139;
-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 */;
-short int var4 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var6 /* : Bool */;
-short int var7 /* : Bool */;
-short int var8 /* : Bool */;
-val* var9 /* : MType */;
-val* var10 /* : Set[MClassDef] */;
-val* var11 /* : MClass */;
-val* var13 /* : MClass */;
-val* var14 /* : MClassDef */;
-short int var15 /* : 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 (0) {
-{ /* Inline kernel#Object#!= (var_anchor,var2) on <var_anchor:nullable MClassType> */
-var_other = var2;
-{
-var7 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
-var6 = var7;
-}
-var8 = !var6;
-var4 = var8;
-goto RET_LABEL5;
-RET_LABEL5:(void)0;
-}
-var3 = var4;
-}
-if (unlikely(!var3)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1358);
-show_backtrace(1);
-}
-{
-var9 = ((val* (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor) /* anchor_to on <var_mtype:MType>*/;
-}
-var_mtype = var9;
-} else {
-}
-{
-var10 = ((val* (*)(val*, val*))(var_mtype->class->vft[COLOR_model__MType__collect_mclassdefs]))(var_mtype, var_mmodule) /* collect_mclassdefs on <var_mtype:MType>*/;
-}
-{
-{ /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
-var13 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
-if (unlikely(var13 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
-show_backtrace(1);
-}
-var11 = var13;
-RET_LABEL12:(void)0;
-}
-}
-{
-var14 = model__MClass__intro(var11);
-}
-{
-var15 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__Collection__has]))(var10, var14) /* has on <var10:Set[MClassDef]>*/;
-}
-var = var15;
-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 */;
-{
-{ /* Inline model_base#MEntity#init (self) on <self:MParameterType> */
-RET_LABEL1:(void)0;
-}
-}
-var_mclass = p0;
-var_rank = p1;
-{
-{ /* Inline model#MParameterType#mclass= (self,var_mclass) on <self:MParameterType> */
-self->attrs[COLOR_model__MParameterType___mclass].val = var_mclass; /* _mclass on <self:MParameterType> */
-RET_LABEL2:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#rank= (self,var_rank) on <self:MParameterType> */
-self->attrs[COLOR_model__MParameterType___rank].l = var_rank; /* _rank on <self:MParameterType> */
-RET_LABEL3:(void)0;
-}
-}
-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); /* Direct call model#MParameterType#init on <self:Object(MParameterType)>*/
-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___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(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 */;
-val* var3 /* : MType */;
-{ /* Inline model#MNullableType#mtype (self) on <self:Object(MNullableType)> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:Object(MNullableType)> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-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___mtype].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) {
-{ /* Inline model#MNullableType#mtype= (self,p0) on <self:Object(MNullableType)> */
-self->attrs[COLOR_model__MNullableType___mtype].val = p0; /* _mtype on <self:Object(MNullableType)> */
-RET_LABEL1:(void)0;
-}
-RET_LABEL:;
-}
-/* method model#MNullableType#model for (self: MNullableType): Model */
-val* model__MNullableType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : MType */;
-val* var3 /* : MType */;
-val* var4 /* : Model */;
-{
-{ /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = ((val* (*)(val*))(var1->class->vft[COLOR_model_base__MEntity__model]))(var1) /* model on <var1:MType>*/;
-}
-var = var4;
-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* var3 /* : NativeString */;
-long var4 /* : Int */;
-val* var5 /* : FlatString */;
-val* var6 /* : Array[Object] */;
-long var7 /* : Int */;
-val* var8 /* : NativeArray[Object] */;
-val* var9 /* : String */;
-{
-{ /* Inline model_base#MEntity#init (self) on <self:MNullableType> */
-RET_LABEL1:(void)0;
-}
-}
-var_mtype = p0;
-{
-{ /* Inline model#MNullableType#mtype= (self,var_mtype) on <self:MNullableType> */
-self->attrs[COLOR_model__MNullableType___mtype].val = var_mtype; /* _mtype on <self:MNullableType> */
-RET_LABEL2:(void)0;
-}
-}
-if (varonce) {
-var = varonce;
-} else {
-var3 = "nullable ";
-var4 = 9;
-var5 = string__NativeString__to_s_with_length(var3, var4);
-var = var5;
-varonce = var;
-}
-var6 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var6 = array_instance Array[Object] */
-var7 = 2;
-var8 = NEW_array__NativeArray(var7, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var8)->values[0] = (val*) var;
-((struct instance_array__NativeArray*)var8)->values[1] = (val*) var_mtype;
-{
-((void (*)(val*, val*, long))(var6->class->vft[COLOR_array__Array__with_native]))(var6, var8, var7) /* with_native on <var6:Array[Object]>*/;
-}
-}
-{
-var9 = ((val* (*)(val*))(var6->class->vft[COLOR_string__Object__to_s]))(var6) /* to_s on <var6:Array[Object]>*/;
-}
-{
-{ /* Inline model#MNullableType#to_s= (self,var9) on <self:MNullableType> */
-self->attrs[COLOR_model__MNullableType___to_s].val = var9; /* _to_s on <self:MNullableType> */
-RET_LABEL10:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method model#MNullableType#init for (self: Object, MType) */
-void VIRTUAL_model__MNullableType__init(val* self, val* p0) {
-model__MNullableType__init(self, p0); /* Direct call model#MNullableType#init on <self:Object(MNullableType)>*/
-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___to_s].val; /* _to_s on <self:MNullableType> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1386);
-show_backtrace(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 */;
-val* var3 /* : String */;
-{ /* Inline model#MNullableType#to_s (self) on <self:Object(MNullableType)> */
-var3 = self->attrs[COLOR_model__MNullableType___to_s].val; /* _to_s on <self:Object(MNullableType)> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1386);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-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___to_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) {
-{ /* Inline model#MNullableType#to_s= (self,p0) on <self:Object(MNullableType)> */
-self->attrs[COLOR_model__MNullableType___to_s].val = p0; /* _to_s on <self:Object(MNullableType)> */
-RET_LABEL1:(void)0;
-}
-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 */;
-val* var3 /* : MType */;
-short int var4 /* : Bool */;
-{
-{ /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = ((short int (*)(val*))(var1->class->vft[COLOR_model__MType__need_anchor]))(var1) /* need_anchor on <var1:MType>*/;
-}
-var = var4;
-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#as_notnullable for (self: MNullableType): MType */
-val* model__MNullableType__as_notnullable(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-val* var3 /* : MType */;
-{
-{ /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#as_notnullable for (self: Object): MType */
-val* VIRTUAL_model__MNullableType__as_notnullable(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullableType__as_notnullable(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* var3 /* : MType */;
-val* var4 /* : MType */;
-val* var_res /* var res: MType */;
-val* var5 /* : MType */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-{
-{ /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = ((val* (*)(val*, val*, val*, val*, short int))(var1->class->vft[COLOR_model__MType__resolve_for]))(var1, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var1:MType>*/;
-}
-var_res = var4;
-{
-var5 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MType__as_nullable]))(var_res) /* as_nullable on <var_res:MType>*/;
-}
-var = var5;
-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;
-}