#include "model.sep.0.h"
+/* 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", "model/model.nit", 1313);
+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", "model/model.nit", 986);
+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", "model/model.nit", 1280);
+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", "model/model.nit", 996);
+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", "model/model.nit", 986);
+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", "model/model.nit", 371);
+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", "model/model.nit", 1332);
+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", "model/model.nit", 986);
+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", "model/model.nit", 435);
+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", "model/model.nit", 1388);
+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", "model/model.nit", 1280);
+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", "model/model.nit", 1339);
+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", "model/model.nit", 986);
+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", "model/model.nit", 986);
+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", "model/model.nit", 1339);
+show_backtrace(1);
+}
+if (var_anchor == NULL) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1340);
+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", "model/model.nit", 996);
+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", "model/model.nit", 996);
+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", "model/model.nit", 1388);
+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", "model/model.nit", 1343);
+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", "model/model.nit", 986);
+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", "model/model.nit", 1280);
+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", "model/model.nit", 996);
+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", "model/model.nit", 1354);
+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 */;
+val* var16 /* : MClassDef */;
+short int var17 /* : 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", "model/model.nit", 1370);
+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", "model/model.nit", 1280);
+show_backtrace(1);
+}
+var11 = var13;
+RET_LABEL12:(void)0;
+}
+}
+{
+{ /* Inline model#MClass#intro (var11) on <var11:MClass> */
+var16 = var11->attrs[COLOR_model__MClass___intro].val; /* _intro on <var11:MClass> */
+if (unlikely(var16 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
+show_backtrace(1);
+}
+var14 = var16;
+RET_LABEL15:(void)0;
+}
+}
+{
+var17 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__Collection__has]))(var10, var14) /* has on <var10:Set[MClassDef]>*/;
+}
+var = var17;
+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, String) */
+void model__MParameterType__init(val* self, val* p0, long p1, val* p2) {
+val* var_mclass /* var mclass: MClass */;
+long var_rank /* var rank: Int */;
+val* var_name /* var name: String */;
+{
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MParameterType>*/;
+}
+var_mclass = p0;
+var_rank = p1;
+var_name = p2;
+{
+{ /* Inline model#MParameterType#mclass= (self,var_mclass) on <self:MParameterType> */
+self->attrs[COLOR_model__MParameterType___mclass].val = var_mclass; /* _mclass on <self:MParameterType> */
+RET_LABEL1:(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_LABEL2:(void)0;
+}
+}
+{
+{ /* Inline model#MParameterType#name= (self,var_name) on <self:MParameterType> */
+self->attrs[COLOR_model__MParameterType___name].val = var_name; /* _name on <self:MParameterType> */
+RET_LABEL3:(void)0;
+}
+}
+RET_LABEL:;
+}
+/* method model#MParameterType#init for (self: Object, MClass, Int, String) */
+void VIRTUAL_model__MParameterType__init(val* self, val* p0, long p1, val* p2) {
+model__MParameterType__init(self, p0, p1, p2); /* 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", "model/model.nit", 1388);
+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", "model/model.nit", 1388);
+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", "model/model.nit", 1388);
+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* var2 /* : NativeString */;
+long var3 /* : Int */;
+val* var4 /* : FlatString */;
+val* var5 /* : Array[Object] */;
+long var6 /* : Int */;
+val* var7 /* : NativeArray[Object] */;
+val* var8 /* : String */;
+{
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MNullableType>*/;
+}
+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_LABEL1:(void)0;
+}
+}
+if (varonce) {
+var = varonce;
+} else {
+var2 = "nullable ";
+var3 = 9;
+var4 = string__NativeString__to_s_with_length(var2, var3);
+var = var4;
+varonce = var;
+}
+var5 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var5 = array_instance Array[Object] */
+var6 = 2;
+var7 = NEW_array__NativeArray(var6, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var7)->values[0] = (val*) var;
+((struct instance_array__NativeArray*)var7)->values[1] = (val*) var_mtype;
+{
+((void (*)(val*, val*, long))(var5->class->vft[COLOR_array__Array__with_native]))(var5, var7, var6) /* with_native on <var5:Array[Object]>*/;
+}
+}
+{
+var8 = ((val* (*)(val*))(var5->class->vft[COLOR_string__Object__to_s]))(var5) /* to_s on <var5:Array[Object]>*/;
+}
+{
+{ /* Inline model#MNullableType#to_s= (self,var8) on <self:MNullableType> */
+self->attrs[COLOR_model__MNullableType___to_s].val = var8; /* _to_s on <self:MNullableType> */
+RET_LABEL9:(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", "model/model.nit", 1399);
+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", "model/model.nit", 1399);
+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", "model/model.nit", 1388);
+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", "model/model.nit", 1388);
+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", "model/model.nit", 1388);
+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;
+}
/* 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 */;
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);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
show_backtrace(1);
}
var1 = var3;
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);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
show_backtrace(1);
}
var1 = var3;
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1408);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1421);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
show_backtrace(1);
}
var3 = var5;
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1414);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1427);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
show_backtrace(1);
}
var3 = var5;
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1420);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1433);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1388);
show_backtrace(1);
}
var3 = var5;
var1 = self->attrs[COLOR_model__MNullType___model].val; /* _model on <self:MNullType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1430);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1443);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MNullType___model].val; /* _model on <self:Object(MNullType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1430);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1443);
show_backtrace(1);
}
var1 = var3;
void model__MNullType__init(val* self, val* p0) {
val* var_model /* var model: Model */;
{
-{ /* Inline model_base#MEntity#init (self) on <self:MNullType> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MNullType>*/;
}
var_model = p0;
{
{ /* Inline model#MNullType#model= (self,var_model) on <self:MNullType> */
self->attrs[COLOR_model__MNullType___model].val = var_model; /* _model on <self:MNullType> */
-RET_LABEL2:(void)0;
+RET_LABEL1:(void)0;
}
}
RET_LABEL:;
var_mmodule = p0;
var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef);
{
-hash_collection__HashSet__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClassDef]>*/
+((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on <var1:HashSet[MClassDef]>*/;
}
var = var1;
goto RET_LABEL;
var_mmodule = p0;
var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass);
{
-hash_collection__HashSet__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClass]>*/
+((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on <var1:HashSet[MClass]>*/;
}
var = var1;
goto RET_LABEL;
var_mmodule = p0;
var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType);
{
-hash_collection__HashSet__init(var1); /* Direct call hash_collection#HashSet#init on <var1:HashSet[MClassType]>*/
+((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on <var1:HashSet[MClassType]>*/;
}
var = var1;
goto RET_LABEL;
var1 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:Object(MSignature)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
show_backtrace(1);
}
var1 = var3;
long var16 /* : Int */;
val* var17 /* : Array[MParameter] */;
val* var19 /* : Array[MParameter] */;
+val* var_ /* var : Array[MParameter] */;
val* var20 /* : ArrayIterator[nullable Object] */;
-short int var21 /* : Bool */;
-val* var22 /* : nullable Object */;
+val* var_21 /* var : ArrayIterator[MParameter] */;
+short int var22 /* : Bool */;
+val* var23 /* : nullable Object */;
val* var_p /* var p: MParameter */;
-val* var23 /* : MType */;
-val* var25 /* : MType */;
-long var26 /* : Int */;
+val* var24 /* : MType */;
+val* var26 /* : MType */;
long var27 /* : Int */;
-short int var29 /* : Bool */;
-int cltype30;
-int idtype31;
-const char* var_class_name32;
-long var33 /* : Int */;
+long var28 /* : Int */;
+short int var30 /* : Bool */;
+int cltype31;
+int idtype32;
+const char* var_class_name33;
+long var34 /* : Int */;
var1 = 1;
var_res = var1;
{
if (unlikely(!var15)) {
var_class_name = type_kernel__Int.name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
show_backtrace(1);
}
var16 = var_res + var12;
var19 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
if (unlikely(var19 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
show_backtrace(1);
}
var17 = var19;
RET_LABEL18:(void)0;
}
}
+var_ = var17;
{
-var20 = array__AbstractArrayRead__iterator(var17);
+var20 = array__AbstractArrayRead__iterator(var_);
}
+var_21 = var20;
for(;;) {
{
-var21 = array__ArrayIterator__is_ok(var20);
+var22 = array__ArrayIterator__is_ok(var_21);
}
-if(!var21) break;
+if (var22){
{
-var22 = array__ArrayIterator__item(var20);
+var23 = array__ArrayIterator__item(var_21);
}
-var_p = var22;
+var_p = var23;
{
{ /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
-var25 = var_p->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
-if (unlikely(var25 == NULL)) {
+var26 = var_p->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
+if (unlikely(var26 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
-var23 = var25;
-RET_LABEL24:(void)0;
+var24 = var26;
+RET_LABEL25:(void)0;
}
}
{
-var26 = ((long (*)(val*))(var23->class->vft[COLOR_model__MType__length]))(var23) /* length on <var23:MType>*/;
+var27 = ((long (*)(val*))(var24->class->vft[COLOR_model__MType__length]))(var24) /* length on <var24:MType>*/;
}
{
-{ /* Inline kernel#Int#+ (var_res,var26) on <var_res:Int> */
-/* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
-/* <var26:Int> isa OTHER */
-var29 = 1; /* easy <var26:Int> isa OTHER*/
-if (unlikely(!var29)) {
-var_class_name32 = type_kernel__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
-PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
+{ /* Inline kernel#Int#+ (var_res,var27) on <var_res:Int> */
+/* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
+/* <var27:Int> isa OTHER */
+var30 = 1; /* easy <var27:Int> isa OTHER*/
+if (unlikely(!var30)) {
+var_class_name33 = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
show_backtrace(1);
}
-var33 = var_res + var26;
-var27 = var33;
-goto RET_LABEL28;
-RET_LABEL28:(void)0;
+var34 = var_res + var27;
+var28 = var34;
+goto RET_LABEL29;
+RET_LABEL29:(void)0;
}
}
-var_res = var27;
-CONTINUE_label: (void)0;
+var_res = var28;
{
-array__ArrayIterator__next(var20); /* Direct call array#ArrayIterator#next on <var20:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_21); /* Direct call array#ArrayIterator#next on <var_21:ArrayIterator[MParameter]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_21) on <var_21:ArrayIterator[MParameter]> */
+RET_LABEL35:(void)0;
+}
+}
var = var_res;
goto RET_LABEL;
RET_LABEL:;
val* var_mparameters /* var mparameters: Array[MParameter] */;
val* var_return_mtype /* var return_mtype: nullable MType */;
long var /* : Int */;
-long var2 /* : Int */;
-long var4 /* : Int */;
+long var1 /* : Int */;
+long var3 /* : Int */;
long var_vararg_rank /* var vararg_rank: Int */;
-val* var5 /* : Range[Int] */;
-long var6 /* : Int */;
+long var4 /* : Int */;
+long var_i /* var i: Int */;
+long var5 /* : Int */;
long var7 /* : Int */;
-val* var8 /* : Discrete */;
-val* var9 /* : Discrete */;
-val* var10 /* : Iterator[Discrete] */;
+long var_ /* var : Int */;
+short int var8 /* : Bool */;
+short int var10 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
short int var11 /* : Bool */;
val* var12 /* : nullable Object */;
-long var_i /* var i: Int */;
-long var13 /* : Int */;
-val* var14 /* : nullable Object */;
val* var_parameter /* var parameter: MParameter */;
+short int var13 /* : Bool */;
short int var15 /* : Bool */;
-short int var17 /* : Bool */;
-long var18 /* : Int */;
+long var16 /* : Int */;
+long var17 /* : Int */;
long var19 /* : Int */;
-long var21 /* : Int */;
-short int var22 /* : Bool */;
+short int var20 /* : Bool */;
+short int var21 /* : Bool */;
short int var23 /* : Bool */;
-short int var25 /* : Bool */;
+long var24 /* : Int */;
+long var25 /* : Int */;
{
-{ /* Inline model_base#MEntity#init (self) on <self:MSignature> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MSignature>*/;
}
var_mparameters = p0;
var_return_mtype = p1;
var = 1;
{
{ /* Inline kernel#Int#unary - (var) on <var:Int> */
-var4 = -var;
-var2 = var4;
-goto RET_LABEL3;
-RET_LABEL3:(void)0;
-}
+var3 = -var;
+var1 = var3;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
}
-var_vararg_rank = var2;
-var5 = NEW_range__Range(&type_range__Rangekernel__Int);
-var6 = 0;
-{
-var7 = array__AbstractArrayRead__length(var_mparameters);
}
+var_vararg_rank = var1;
+var4 = 0;
+var_i = var4;
{
-var8 = BOX_kernel__Int(var6); /* autobox from Int to Discrete */
-var9 = BOX_kernel__Int(var7); /* autobox from Int to Discrete */
-range__Range__without_last(var5, var8, var9); /* Direct call range#Range#without_last on <var5:Range[Int]>*/
+{ /* Inline array#AbstractArrayRead#length (var_mparameters) on <var_mparameters:Array[MParameter]> */
+var7 = var_mparameters->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_mparameters:Array[MParameter]> */
+var5 = var7;
+RET_LABEL6:(void)0;
}
-{
-var10 = range__Range__iterator(var5);
}
+var_ = var5;
for(;;) {
{
-var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[Discrete]>*/;
+{ /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
+/* <var_:Int> isa OTHER */
+var10 = 1; /* easy <var_:Int> isa OTHER*/
+if (unlikely(!var10)) {
+var_class_name = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+show_backtrace(1);
}
-if(!var11) break;
-{
-var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[Discrete]>*/;
+var11 = var_i < var_;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
}
-var13 = ((struct instance_kernel__Int*)var12)->value; /* autounbox from nullable Object to Int */;
-var_i = var13;
+}
+if (var8){
{
-var14 = array__Array___91d_93d(var_mparameters, var_i);
+var12 = array__Array___91d_93d(var_mparameters, var_i);
}
-var_parameter = var14;
+var_parameter = var12;
{
{ /* Inline model#MParameter#is_vararg (var_parameter) on <var_parameter:MParameter> */
-var17 = var_parameter->attrs[COLOR_model__MParameter___is_vararg].s; /* _is_vararg on <var_parameter:MParameter> */
-var15 = var17;
-RET_LABEL16:(void)0;
+var15 = var_parameter->attrs[COLOR_model__MParameter___is_vararg].s; /* _is_vararg on <var_parameter:MParameter> */
+var13 = var15;
+RET_LABEL14:(void)0;
}
}
-if (var15){
-var18 = 1;
+if (var13){
+var16 = 1;
{
-{ /* Inline kernel#Int#unary - (var18) on <var18:Int> */
-var21 = -var18;
-var19 = var21;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
+{ /* Inline kernel#Int#unary - (var16) on <var16:Int> */
+var19 = -var16;
+var17 = var19;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
}
}
{
-{ /* Inline kernel#Int#== (var_vararg_rank,var19) on <var_vararg_rank:Int> */
-var25 = var_vararg_rank == var19;
-var23 = var25;
-goto RET_LABEL24;
-RET_LABEL24:(void)0;
+{ /* Inline kernel#Int#== (var_vararg_rank,var17) on <var_vararg_rank:Int> */
+var23 = var_vararg_rank == var17;
+var21 = var23;
+goto RET_LABEL22;
+RET_LABEL22:(void)0;
}
-var22 = var23;
+var20 = var21;
}
-if (unlikely(!var22)) {
+if (unlikely(!var20)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1488);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1501);
show_backtrace(1);
}
var_vararg_rank = var_i;
} else {
}
-CONTINUE_label: (void)0;
+var24 = 1;
{
-((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[Discrete]>*/;
+var25 = kernel__Int__successor(var_i, var24);
+}
+var_i = var25;
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
val* var1 /* : Array[MParameter] */;
val* var3 /* : Array[MParameter] */;
long var4 /* : Int */;
+long var6 /* : Int */;
{
{ /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
var3 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
show_backtrace(1);
}
var1 = var3;
}
}
{
-var4 = array__AbstractArrayRead__length(var1);
+{ /* Inline array#AbstractArrayRead#length (var1) on <var1:Array[MParameter]> */
+var6 = var1->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var1:Array[MParameter]> */
+var4 = var6;
+RET_LABEL5:(void)0;
+}
}
var = var4;
goto RET_LABEL;
char* var8 /* : NativeString */;
long var9 /* : Int */;
val* var10 /* : FlatString */;
-val* var11 /* : Range[Int] */;
-long var12 /* : Int */;
-val* var13 /* : Array[MParameter] */;
-val* var15 /* : Array[MParameter] */;
-long var16 /* : Int */;
-val* var17 /* : Discrete */;
-val* var18 /* : Discrete */;
-val* var19 /* : Iterator[Discrete] */;
-short int var20 /* : Bool */;
-val* var21 /* : nullable Object */;
+long var11 /* : Int */;
long var_i /* var i: Int */;
-long var22 /* : Int */;
-val* var23 /* : Array[MParameter] */;
-val* var25 /* : Array[MParameter] */;
-val* var26 /* : nullable Object */;
-val* var_mparameter /* var mparameter: MParameter */;
-long var27 /* : Int */;
-short int var28 /* : Bool */;
-short int var30 /* : Bool */;
+val* var12 /* : Array[MParameter] */;
+val* var14 /* : Array[MParameter] */;
+long var15 /* : Int */;
+long var17 /* : Int */;
+long var_ /* var : Int */;
+short int var18 /* : Bool */;
+short int var20 /* : Bool */;
int cltype;
int idtype;
const char* var_class_name;
-short int var31 /* : Bool */;
-static val* varonce32;
-val* var33 /* : String */;
-char* var34 /* : NativeString */;
-long var35 /* : Int */;
-val* var36 /* : FlatString */;
-val* var37 /* : String */;
+short int var21 /* : Bool */;
+val* var22 /* : Array[MParameter] */;
+val* var24 /* : Array[MParameter] */;
+val* var25 /* : nullable Object */;
+val* var_mparameter /* var mparameter: MParameter */;
+long var26 /* : Int */;
+short int var27 /* : Bool */;
+short int var29 /* : Bool */;
+int cltype30;
+int idtype31;
+const char* var_class_name32;
+short int var33 /* : Bool */;
+static val* varonce34;
+val* var35 /* : String */;
+char* var36 /* : NativeString */;
+long var37 /* : Int */;
+val* var38 /* : FlatString */;
val* var39 /* : String */;
-static val* varonce40;
val* var41 /* : String */;
-char* var42 /* : NativeString */;
-long var43 /* : Int */;
-val* var44 /* : FlatString */;
-val* var45 /* : MType */;
+static val* varonce42;
+val* var43 /* : String */;
+char* var44 /* : NativeString */;
+long var45 /* : Int */;
+val* var46 /* : FlatString */;
val* var47 /* : MType */;
-val* var48 /* : String */;
-short int var49 /* : Bool */;
+val* var49 /* : MType */;
+val* var50 /* : String */;
short int var51 /* : Bool */;
-static val* varonce52;
-val* var53 /* : String */;
-char* var54 /* : NativeString */;
-long var55 /* : Int */;
-val* var56 /* : FlatString */;
-static val* varonce57;
-val* var58 /* : String */;
-char* var59 /* : NativeString */;
+short int var53 /* : Bool */;
+static val* varonce54;
+val* var55 /* : String */;
+char* var56 /* : NativeString */;
+long var57 /* : Int */;
+val* var58 /* : FlatString */;
+long var59 /* : Int */;
long var60 /* : Int */;
-val* var61 /* : FlatString */;
-val* var62 /* : nullable MType */;
-val* var64 /* : nullable MType */;
+static val* varonce61;
+val* var62 /* : String */;
+char* var63 /* : NativeString */;
+long var64 /* : Int */;
+val* var65 /* : FlatString */;
+val* var66 /* : nullable MType */;
+val* var68 /* : nullable MType */;
val* var_ret /* var ret: nullable MType */;
-val* var65 /* : null */;
-short int var66 /* : Bool */;
-short int var67 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var69 /* : Bool */;
+val* var69 /* : null */;
short int var70 /* : Bool */;
short int var71 /* : Bool */;
-static val* varonce72;
-val* var73 /* : String */;
-char* var74 /* : NativeString */;
-long var75 /* : Int */;
-val* var76 /* : FlatString */;
+val* var_other /* var other: nullable Object */;
+short int var73 /* : Bool */;
+short int var74 /* : Bool */;
+short int var75 /* : Bool */;
+static val* varonce76;
val* var77 /* : String */;
-val* var78 /* : String */;
+char* var78 /* : NativeString */;
+long var79 /* : Int */;
+val* var80 /* : FlatString */;
+val* var81 /* : String */;
+val* var82 /* : String */;
var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
{
-string__FlatBuffer__init(var1); /* Direct call string#FlatBuffer#init on <var1:FlatBuffer>*/
+((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on <var1:FlatBuffer>*/;
}
var_b = var1;
{
var4 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
if (unlikely(var4 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
show_backtrace(1);
}
var2 = var4;
{
string__FlatBuffer__append(var_b, var7); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
-var11 = NEW_range__Range(&type_range__Rangekernel__Int);
-var12 = 0;
+var11 = 0;
+var_i = var11;
{
{ /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
-var15 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
-if (unlikely(var15 == NULL)) {
+var14 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
+if (unlikely(var14 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
show_backtrace(1);
}
-var13 = var15;
-RET_LABEL14:(void)0;
-}
+var12 = var14;
+RET_LABEL13:(void)0;
}
-{
-var16 = array__AbstractArrayRead__length(var13);
}
{
-var17 = BOX_kernel__Int(var12); /* autobox from Int to Discrete */
-var18 = BOX_kernel__Int(var16); /* autobox from Int to Discrete */
-range__Range__without_last(var11, var17, var18); /* Direct call range#Range#without_last on <var11:Range[Int]>*/
+{ /* Inline array#AbstractArrayRead#length (var12) on <var12:Array[MParameter]> */
+var17 = var12->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var12:Array[MParameter]> */
+var15 = var17;
+RET_LABEL16:(void)0;
}
-{
-var19 = range__Range__iterator(var11);
}
+var_ = var15;
for(;;) {
{
-var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[Discrete]>*/;
+{ /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
+/* <var_:Int> isa OTHER */
+var20 = 1; /* easy <var_:Int> isa OTHER*/
+if (unlikely(!var20)) {
+var_class_name = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+show_backtrace(1);
}
-if(!var20) break;
-{
-var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on <var19:Iterator[Discrete]>*/;
+var21 = var_i < var_;
+var18 = var21;
+goto RET_LABEL19;
+RET_LABEL19:(void)0;
}
-var22 = ((struct instance_kernel__Int*)var21)->value; /* autounbox from nullable Object to Int */;
-var_i = var22;
+}
+if (var18){
{
{ /* Inline model#MSignature#mparameters (self) on <self:MSignature> */
-var25 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
-if (unlikely(var25 == NULL)) {
+var24 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
+if (unlikely(var24 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
show_backtrace(1);
}
-var23 = var25;
-RET_LABEL24:(void)0;
+var22 = var24;
+RET_LABEL23:(void)0;
}
}
{
-var26 = array__Array___91d_93d(var23, var_i);
+var25 = array__Array___91d_93d(var22, var_i);
}
-var_mparameter = var26;
-var27 = 0;
+var_mparameter = var25;
+var26 = 0;
{
-{ /* Inline kernel#Int#> (var_i,var27) on <var_i:Int> */
-/* Covariant cast for argument 0 (i) <var27:Int> isa OTHER */
-/* <var27:Int> isa OTHER */
-var30 = 1; /* easy <var27:Int> isa OTHER*/
-if (unlikely(!var30)) {
-var_class_name = type_kernel__Int.name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
+{ /* Inline kernel#Int#> (var_i,var26) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
+/* <var26:Int> isa OTHER */
+var29 = 1; /* easy <var26:Int> isa OTHER*/
+if (unlikely(!var29)) {
+var_class_name32 = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
show_backtrace(1);
}
-var31 = var_i > var27;
-var28 = var31;
-goto RET_LABEL29;
-RET_LABEL29:(void)0;
+var33 = var_i > var26;
+var27 = var33;
+goto RET_LABEL28;
+RET_LABEL28:(void)0;
}
}
-if (var28){
-if (varonce32) {
-var33 = varonce32;
+if (var27){
+if (varonce34) {
+var35 = varonce34;
} else {
-var34 = ", ";
-var35 = 2;
-var36 = string__NativeString__to_s_with_length(var34, var35);
-var33 = var36;
-varonce32 = var33;
+var36 = ", ";
+var37 = 2;
+var38 = string__NativeString__to_s_with_length(var36, var37);
+var35 = var38;
+varonce34 = var35;
}
{
-string__FlatBuffer__append(var_b, var33); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
+string__FlatBuffer__append(var_b, var35); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
} else {
}
{
{ /* Inline model#MParameter#name (var_mparameter) on <var_mparameter:MParameter> */
-var39 = var_mparameter->attrs[COLOR_model__MParameter___name].val; /* _name on <var_mparameter:MParameter> */
-if (unlikely(var39 == NULL)) {
+var41 = var_mparameter->attrs[COLOR_model__MParameter___name].val; /* _name on <var_mparameter:MParameter> */
+if (unlikely(var41 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1549);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562);
show_backtrace(1);
}
-var37 = var39;
-RET_LABEL38:(void)0;
+var39 = var41;
+RET_LABEL40:(void)0;
}
}
{
-string__FlatBuffer__append(var_b, var37); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
+string__FlatBuffer__append(var_b, var39); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
-if (varonce40) {
-var41 = varonce40;
+if (varonce42) {
+var43 = varonce42;
} else {
-var42 = ": ";
-var43 = 2;
-var44 = string__NativeString__to_s_with_length(var42, var43);
-var41 = var44;
-varonce40 = var41;
+var44 = ": ";
+var45 = 2;
+var46 = string__NativeString__to_s_with_length(var44, var45);
+var43 = var46;
+varonce42 = var43;
}
{
-string__FlatBuffer__append(var_b, var41); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
+string__FlatBuffer__append(var_b, var43); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
{
{ /* Inline model#MParameter#mtype (var_mparameter) on <var_mparameter:MParameter> */
-var47 = var_mparameter->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_mparameter:MParameter> */
-if (unlikely(var47 == NULL)) {
+var49 = var_mparameter->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <var_mparameter:MParameter> */
+if (unlikely(var49 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
-var45 = var47;
-RET_LABEL46:(void)0;
+var47 = var49;
+RET_LABEL48:(void)0;
}
}
{
-var48 = ((val* (*)(val*))(var45->class->vft[COLOR_string__Object__to_s]))(var45) /* to_s on <var45:MType>*/;
+var50 = ((val* (*)(val*))(var47->class->vft[COLOR_string__Object__to_s]))(var47) /* to_s on <var47:MType>*/;
}
{
-string__FlatBuffer__append(var_b, var48); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
+string__FlatBuffer__append(var_b, var50); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
{
{ /* Inline model#MParameter#is_vararg (var_mparameter) on <var_mparameter:MParameter> */
-var51 = var_mparameter->attrs[COLOR_model__MParameter___is_vararg].s; /* _is_vararg on <var_mparameter:MParameter> */
-var49 = var51;
-RET_LABEL50:(void)0;
+var53 = var_mparameter->attrs[COLOR_model__MParameter___is_vararg].s; /* _is_vararg on <var_mparameter:MParameter> */
+var51 = var53;
+RET_LABEL52:(void)0;
}
}
-if (var49){
-if (varonce52) {
-var53 = varonce52;
+if (var51){
+if (varonce54) {
+var55 = varonce54;
} else {
-var54 = "...";
-var55 = 3;
-var56 = string__NativeString__to_s_with_length(var54, var55);
-var53 = var56;
-varonce52 = var53;
+var56 = "...";
+var57 = 3;
+var58 = string__NativeString__to_s_with_length(var56, var57);
+var55 = var58;
+varonce54 = var55;
}
{
-string__FlatBuffer__append(var_b, var53); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
+string__FlatBuffer__append(var_b, var55); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
} else {
}
-CONTINUE_label: (void)0;
+var59 = 1;
{
-((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on <var19:Iterator[Discrete]>*/;
+var60 = kernel__Int__successor(var_i, var59);
+}
+var_i = var60;
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
-if (varonce57) {
-var58 = varonce57;
+if (varonce61) {
+var62 = varonce61;
} else {
-var59 = ")";
-var60 = 1;
-var61 = string__NativeString__to_s_with_length(var59, var60);
-var58 = var61;
-varonce57 = var58;
+var63 = ")";
+var64 = 1;
+var65 = string__NativeString__to_s_with_length(var63, var64);
+var62 = var65;
+varonce61 = var62;
}
{
-string__FlatBuffer__append(var_b, var58); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
+string__FlatBuffer__append(var_b, var62); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
} else {
}
{
{ /* Inline model#MSignature#return_mtype (self) on <self:MSignature> */
-var64 = self->attrs[COLOR_model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
-var62 = var64;
-RET_LABEL63:(void)0;
+var68 = self->attrs[COLOR_model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
+var66 = var68;
+RET_LABEL67:(void)0;
}
}
-var_ret = var62;
-var65 = NULL;
+var_ret = var66;
+var69 = NULL;
if (var_ret == NULL) {
-var66 = 0; /* is null */
+var70 = 0; /* is null */
} else {
-var66 = 1; /* arg is null and recv is not */
+var70 = 1; /* arg is null and recv is not */
}
if (0) {
-{ /* Inline kernel#Object#!= (var_ret,var65) on <var_ret:nullable MType> */
-var_other = var65;
+{ /* Inline kernel#Object#!= (var_ret,var69) on <var_ret:nullable MType> */
+var_other = var69;
{
-var70 = ((short int (*)(val*, val*))(var_ret->class->vft[COLOR_kernel__Object___61d_61d]))(var_ret, var_other) /* == on <var_ret:nullable MType(MType)>*/;
-var69 = var70;
+var74 = ((short int (*)(val*, val*))(var_ret->class->vft[COLOR_kernel__Object___61d_61d]))(var_ret, var_other) /* == on <var_ret:nullable MType(MType)>*/;
+var73 = var74;
}
-var71 = !var69;
-var67 = var71;
-goto RET_LABEL68;
-RET_LABEL68:(void)0;
+var75 = !var73;
+var71 = var75;
+goto RET_LABEL72;
+RET_LABEL72:(void)0;
}
-var66 = var67;
+var70 = var71;
}
-if (var66){
-if (varonce72) {
-var73 = varonce72;
+if (var70){
+if (varonce76) {
+var77 = varonce76;
} else {
-var74 = ": ";
-var75 = 2;
-var76 = string__NativeString__to_s_with_length(var74, var75);
-var73 = var76;
-varonce72 = var73;
+var78 = ": ";
+var79 = 2;
+var80 = string__NativeString__to_s_with_length(var78, var79);
+var77 = var80;
+varonce76 = var77;
}
{
-string__FlatBuffer__append(var_b, var73); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
+string__FlatBuffer__append(var_b, var77); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
{
-var77 = ((val* (*)(val*))(var_ret->class->vft[COLOR_string__Object__to_s]))(var_ret) /* to_s on <var_ret:nullable MType(MType)>*/;
+var81 = ((val* (*)(val*))(var_ret->class->vft[COLOR_string__Object__to_s]))(var_ret) /* to_s on <var_ret:nullable MType(MType)>*/;
}
{
-string__FlatBuffer__append(var_b, var77); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
+string__FlatBuffer__append(var_b, var81); /* Direct call string#FlatBuffer#append on <var_b:FlatBuffer>*/
}
} else {
}
{
-var78 = string__FlatBuffer__to_s(var_b);
+var82 = string__FlatBuffer__to_s(var_b);
}
-var = var78;
+var = var82;
goto RET_LABEL;
RET_LABEL:;
return var;
val* var_params /* var params: Array[MParameter] */;
val* var2 /* : Array[MParameter] */;
val* var4 /* : Array[MParameter] */;
+val* var_ /* var : Array[MParameter] */;
val* var5 /* : ArrayIterator[nullable Object] */;
-short int var6 /* : Bool */;
-val* var7 /* : nullable Object */;
+val* var_6 /* var : ArrayIterator[MParameter] */;
+short int var7 /* : Bool */;
+val* var8 /* : nullable Object */;
val* var_p /* var p: MParameter */;
-val* var8 /* : MParameter */;
-val* var9 /* : nullable MType */;
+val* var9 /* : MParameter */;
val* var11 /* : nullable MType */;
+val* var13 /* : nullable MType */;
val* var_ret /* var ret: nullable MType */;
-val* var12 /* : null */;
-short int var13 /* : Bool */;
-short int var14 /* : Bool */;
-val* var_other /* var other: nullable Object */;
+val* var14 /* : null */;
+short int var15 /* : Bool */;
short int var16 /* : Bool */;
-short int var17 /* : Bool */;
+val* var_other /* var other: nullable Object */;
short int var18 /* : Bool */;
-val* var19 /* : MType */;
-val* var20 /* : MSignature */;
+short int var19 /* : Bool */;
+short int var20 /* : Bool */;
+val* var21 /* : MType */;
+val* var22 /* : MSignature */;
val* var_res /* var res: MSignature */;
var_mtype = p0;
var_anchor = p1;
var_cleanup_virtual = p3;
var1 = NEW_array__Array(&type_array__Arraymodel__MParameter);
{
-array__Array__init(var1); /* Direct call array#Array#init on <var1:Array[MParameter]>*/
+((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on <var1:Array[MParameter]>*/;
}
var_params = var1;
{
var4 = self->attrs[COLOR_model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
if (unlikely(var4 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1465);
show_backtrace(1);
}
var2 = var4;
RET_LABEL3:(void)0;
}
}
+var_ = var2;
{
-var5 = array__AbstractArrayRead__iterator(var2);
+var5 = array__AbstractArrayRead__iterator(var_);
}
+var_6 = var5;
for(;;) {
{
-var6 = array__ArrayIterator__is_ok(var5);
+var7 = array__ArrayIterator__is_ok(var_6);
}
-if(!var6) break;
+if (var7){
{
-var7 = array__ArrayIterator__item(var5);
+var8 = array__ArrayIterator__item(var_6);
}
-var_p = var7;
+var_p = var8;
{
-var8 = model__MParameter__resolve_for(var_p, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual);
+var9 = model__MParameter__resolve_for(var_p, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual);
}
{
-array__Array__add(var_params, var8); /* Direct call array#Array#add on <var_params:Array[MParameter]>*/
+array__Array__add(var_params, var9); /* Direct call array#Array#add on <var_params:Array[MParameter]>*/
}
-CONTINUE_label: (void)0;
{
-array__ArrayIterator__next(var5); /* Direct call array#ArrayIterator#next on <var5:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_6); /* Direct call array#ArrayIterator#next on <var_6:ArrayIterator[MParameter]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
{
-{ /* Inline model#MSignature#return_mtype (self) on <self:MSignature> */
-var11 = self->attrs[COLOR_model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
-var9 = var11;
+{ /* Inline abstract_collection#Iterator#finish (var_6) on <var_6:ArrayIterator[MParameter]> */
RET_LABEL10:(void)0;
}
}
-var_ret = var9;
-var12 = NULL;
+{
+{ /* Inline model#MSignature#return_mtype (self) on <self:MSignature> */
+var13 = self->attrs[COLOR_model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
+var11 = var13;
+RET_LABEL12:(void)0;
+}
+}
+var_ret = var11;
+var14 = NULL;
if (var_ret == NULL) {
-var13 = 0; /* is null */
+var15 = 0; /* is null */
} else {
-var13 = 1; /* arg is null and recv is not */
+var15 = 1; /* arg is null and recv is not */
}
if (0) {
-{ /* Inline kernel#Object#!= (var_ret,var12) on <var_ret:nullable MType> */
-var_other = var12;
+{ /* Inline kernel#Object#!= (var_ret,var14) on <var_ret:nullable MType> */
+var_other = var14;
{
-var17 = ((short int (*)(val*, val*))(var_ret->class->vft[COLOR_kernel__Object___61d_61d]))(var_ret, var_other) /* == on <var_ret:nullable MType(MType)>*/;
-var16 = var17;
+var19 = ((short int (*)(val*, val*))(var_ret->class->vft[COLOR_kernel__Object___61d_61d]))(var_ret, var_other) /* == on <var_ret:nullable MType(MType)>*/;
+var18 = var19;
}
-var18 = !var16;
-var14 = var18;
-goto RET_LABEL15;
-RET_LABEL15:(void)0;
+var20 = !var18;
+var16 = var20;
+goto RET_LABEL17;
+RET_LABEL17:(void)0;
}
-var13 = var14;
+var15 = var16;
}
-if (var13){
+if (var15){
{
-var19 = ((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)>*/;
+var21 = ((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 = var19;
+var_ret = var21;
} else {
}
-var20 = NEW_model__MSignature(&type_model__MSignature);
+var22 = NEW_model__MSignature(&type_model__MSignature);
{
-model__MSignature__init(var20, var_params, var_ret); /* Direct call model#MSignature#init on <var20:MSignature>*/
+model__MSignature__init(var22, var_params, var_ret); /* Direct call model#MSignature#init on <var22:MSignature>*/
}
-var_res = var20;
+var_res = var22;
var = var_res;
goto RET_LABEL;
RET_LABEL:;
var1 = self->attrs[COLOR_model__MParameter___name].val; /* _name on <self:MParameter> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1549);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MParameter___name].val; /* _name on <self:Object(MParameter)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1549);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <self:Object(MParameter)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
var1 = var3;
val* var_mtype /* var mtype: MType */;
short int var_is_vararg /* var is_vararg: Bool */;
{
-{ /* Inline model_base#MEntity#init (self) on <self:MParameter> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MParameter>*/;
}
var_name = p0;
var_mtype = p1;
{
{ /* Inline model#MParameter#name= (self,var_name) on <self:MParameter> */
self->attrs[COLOR_model__MParameter___name].val = var_name; /* _name on <self:MParameter> */
-RET_LABEL2:(void)0;
+RET_LABEL1:(void)0;
}
}
{
{ /* Inline model#MParameter#mtype= (self,var_mtype) on <self:MParameter> */
self->attrs[COLOR_model__MParameter___mtype].val = var_mtype; /* _mtype on <self:MParameter> */
-RET_LABEL3:(void)0;
+RET_LABEL2:(void)0;
}
}
{
{ /* Inline model#MParameter#is_vararg= (self,var_is_vararg) on <self:MParameter> */
self->attrs[COLOR_model__MParameter___is_vararg].s = var_is_vararg; /* _is_vararg on <self:MParameter> */
-RET_LABEL4:(void)0;
+RET_LABEL3:(void)0;
}
}
RET_LABEL:;
var6 = self->attrs[COLOR_model__MParameter___name].val; /* _name on <self:MParameter> */
if (unlikely(var6 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1549);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562);
show_backtrace(1);
}
var4 = var6;
var13 = self->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
if (unlikely(var13 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
var11 = var13;
var25 = self->attrs[COLOR_model__MParameter___name].val; /* _name on <self:MParameter> */
if (unlikely(var25 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1549);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562);
show_backtrace(1);
}
var23 = var25;
var33 = self->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
if (unlikely(var33 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
var31 = var33;
var3 = self->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
var1 = var3;
var8 = self->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
if (unlikely(var8 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
var6 = var8;
var13 = self->attrs[COLOR_model__MParameter___name].val; /* _name on <self:MParameter> */
if (unlikely(var13 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1549);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1562);
show_backtrace(1);
}
var11 = var13;
var3 = self->attrs[COLOR_model__MParameter___mtype].val; /* _mtype on <self:MParameter> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1565);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:Object(MProperty)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MProperty___name].val; /* _name on <self:MProperty> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MProperty___name].val; /* _name on <self:Object(MProperty)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
show_backtrace(1);
}
var1 = var3;
var3 = self->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
show_backtrace(1);
}
var1 = var3;
var6 = var1->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var1:MClassDef> */
if (unlikely(var6 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
show_backtrace(1);
}
var4 = var6;
var14 = self->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <self:MProperty> */
if (unlikely(var14 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1602);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
show_backtrace(1);
}
var12 = var14;
var17 = var12->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var12:MClassDef> */
if (unlikely(var17 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
show_backtrace(1);
}
var15 = var17;
var20 = var15->attrs[COLOR_model__MClass___name].val; /* _name on <var15:MClass> */
if (unlikely(var20 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 352);
show_backtrace(1);
}
var18 = var20;
var28 = self->attrs[COLOR_model__MProperty___name].val; /* _name on <self:MProperty> */
if (unlikely(var28 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
show_backtrace(1);
}
var26 = var28;
var1 = self->attrs[COLOR_model__MProperty___visibility].val; /* _visibility on <self:MProperty> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1617);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1630);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MProperty___visibility].val; /* _visibility on <self:Object(MProperty)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1617);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1630);
show_backtrace(1);
}
var1 = var3;
val* var_name /* var name: String */;
val* var_visibility /* var visibility: MVisibility */;
val* var /* : Array[MProperty] */;
-val* var6 /* : Array[MProperty] */;
-val* var7 /* : MModule */;
-val* var9 /* : MModule */;
-val* var10 /* : Model */;
-val* var12 /* : Model */;
+val* var5 /* : Array[MProperty] */;
+val* var6 /* : MModule */;
+val* var8 /* : MModule */;
+val* var9 /* : Model */;
+val* var11 /* : Model */;
val* var_model /* var model: Model */;
-val* var13 /* : MultiHashMap[String, MProperty] */;
-val* var15 /* : MultiHashMap[String, MProperty] */;
-val* var16 /* : Array[MProperty] */;
-val* var18 /* : Array[MProperty] */;
+val* var12 /* : MultiHashMap[String, MProperty] */;
+val* var14 /* : MultiHashMap[String, MProperty] */;
+val* var15 /* : Array[MProperty] */;
+val* var17 /* : Array[MProperty] */;
{
-{ /* Inline model_base#MEntity#init (self) on <self:MProperty> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MProperty>*/;
}
var_intro_mclassdef = p0;
var_name = p1;
{
{ /* Inline model#MProperty#intro_mclassdef= (self,var_intro_mclassdef) on <self:MProperty> */
self->attrs[COLOR_model__MProperty___intro_mclassdef].val = var_intro_mclassdef; /* _intro_mclassdef on <self:MProperty> */
-RET_LABEL2:(void)0;
+RET_LABEL1:(void)0;
}
}
{
{ /* Inline model#MProperty#name= (self,var_name) on <self:MProperty> */
self->attrs[COLOR_model__MProperty___name].val = var_name; /* _name on <self:MProperty> */
-RET_LABEL3:(void)0;
+RET_LABEL2:(void)0;
}
}
{
{ /* Inline model#MProperty#visibility= (self,var_visibility) on <self:MProperty> */
self->attrs[COLOR_model__MProperty___visibility].val = var_visibility; /* _visibility on <self:MProperty> */
-RET_LABEL4:(void)0;
+RET_LABEL3:(void)0;
}
}
{
{ /* Inline model#MClassDef#intro_mproperties (var_intro_mclassdef) on <var_intro_mclassdef:MClassDef> */
-var6 = var_intro_mclassdef->attrs[COLOR_model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <var_intro_mclassdef:MClassDef> */
-if (unlikely(var6 == NULL)) {
+var5 = var_intro_mclassdef->attrs[COLOR_model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <var_intro_mclassdef:MClassDef> */
+if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 571);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 588);
show_backtrace(1);
}
-var = var6;
-RET_LABEL5:(void)0;
+var = var5;
+RET_LABEL4:(void)0;
}
}
{
}
{
{ /* Inline model#MClassDef#mmodule (var_intro_mclassdef) on <var_intro_mclassdef:MClassDef> */
-var9 = var_intro_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_intro_mclassdef:MClassDef> */
-if (unlikely(var9 == NULL)) {
+var8 = var_intro_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_intro_mclassdef:MClassDef> */
+if (unlikely(var8 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
show_backtrace(1);
}
-var7 = var9;
-RET_LABEL8:(void)0;
+var6 = var8;
+RET_LABEL7:(void)0;
}
}
{
-{ /* Inline mmodule#MModule#model (var7) on <var7:MModule> */
-var12 = var7->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var7:MModule> */
-if (unlikely(var12 == NULL)) {
+{ /* Inline mmodule#MModule#model (var6) on <var6:MModule> */
+var11 = var6->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var6:MModule> */
+if (unlikely(var11 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
-PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 74);
+PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
show_backtrace(1);
}
-var10 = var12;
-RET_LABEL11:(void)0;
+var9 = var11;
+RET_LABEL10:(void)0;
}
}
-var_model = var10;
+var_model = var9;
{
{ /* Inline model#Model#mproperties_by_name (var_model) on <var_model:Model> */
-var15 = var_model->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on <var_model:Model> */
-if (unlikely(var15 == NULL)) {
+var14 = var_model->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on <var_model:Model> */
+if (unlikely(var14 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 86);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 84);
show_backtrace(1);
}
-var13 = var15;
-RET_LABEL14:(void)0;
+var12 = var14;
+RET_LABEL13:(void)0;
}
}
{
-more_collections__MultiHashMap__add_one(var13, var_name, self); /* Direct call more_collections#MultiHashMap#add_one on <var13:MultiHashMap[String, MProperty]>*/
+more_collections__MultiHashMap__add_one(var12, var_name, self); /* Direct call more_collections#MultiHashMap#add_one on <var12:MultiHashMap[String, MProperty]>*/
}
{
{ /* Inline model#Model#mproperties (var_model) on <var_model:Model> */
-var18 = var_model->attrs[COLOR_model__Model___mproperties].val; /* _mproperties on <var_model:Model> */
-if (unlikely(var18 == NULL)) {
+var17 = var_model->attrs[COLOR_model__Model___mproperties].val; /* _mproperties on <var_model:Model> */
+if (unlikely(var17 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 39);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 37);
show_backtrace(1);
}
-var16 = var18;
-RET_LABEL17:(void)0;
+var15 = var17;
+RET_LABEL16:(void)0;
}
}
{
-array__Array__add(var16, self); /* Direct call array#Array#add on <var16:Array[MProperty]>*/
+array__Array__add(var15, self); /* Direct call array#Array#add on <var15:Array[MProperty]>*/
}
RET_LABEL:;
}
var1 = self->attrs[COLOR_model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MProperty___mpropdefs].val; /* _mpropdefs on <self:Object(MProperty)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
show_backtrace(1);
}
var1 = var3;
/* method model#MProperty#intro for (self: MProperty): MPropDef */
val* model__MProperty__intro(val* self) {
val* var /* : MPropDef */;
-val* var1 /* : Array[MPropDef] */;
-val* var3 /* : Array[MPropDef] */;
-val* var4 /* : nullable Object */;
-{
-{ /* Inline model#MProperty#mpropdefs (self) on <self:MProperty> */
-var3 = self->attrs[COLOR_model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
+val* var1 /* : MPropDef */;
+var1 = self->attrs[COLOR_model__MProperty___intro].val; /* _intro on <self:MProperty> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
show_backtrace(1);
}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = abstract_collection__SequenceRead__first(var1);
-}
-var = var4;
-goto RET_LABEL;
+var = var1;
RET_LABEL:;
return var;
}
val* VIRTUAL_model__MProperty__intro(val* self) {
val* var /* : MPropDef */;
val* var1 /* : MPropDef */;
-var1 = model__MProperty__intro(self);
+val* var3 /* : MPropDef */;
+{ /* Inline model#MProperty#intro (self) on <self:Object(MProperty)> */
+var3 = self->attrs[COLOR_model__MProperty___intro].val; /* _intro on <self:Object(MProperty)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
var = var1;
RET_LABEL:;
return var;
}
+/* method model#MProperty#intro= for (self: MProperty, MPropDef) */
+void model__MProperty__intro_61d(val* self, val* p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+/* Covariant cast for argument 0 (intro) <p0:MPropDef> isa MPROPDEF */
+/* <p0:MPropDef> isa MPROPDEF */
+type_struct = self->type->resolution_table->types[COLOR_model__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 (unlikely(!var)) {
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
+show_backtrace(1);
+}
+self->attrs[COLOR_model__MProperty___intro].val = p0; /* _intro on <self:MProperty> */
+RET_LABEL:;
+}
+/* method model#MProperty#intro= for (self: Object, MPropDef) */
+void VIRTUAL_model__MProperty__intro_61d(val* self, val* p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+{ /* Inline model#MProperty#intro= (self,p0) on <self:Object(MProperty)> */
+/* Covariant cast for argument 0 (intro) <p0:MPropDef> isa MPROPDEF */
+/* <p0:MPropDef> isa MPROPDEF */
+type_struct = self->type->resolution_table->types[COLOR_model__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 (unlikely(!var)) {
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
+show_backtrace(1);
+}
+self->attrs[COLOR_model__MProperty___intro].val = p0; /* _intro on <self:Object(MProperty)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
/* method model#MProperty#model for (self: MProperty): Model */
val* model__MProperty__model(val* self) {
val* var /* : Model */;
val* var1 /* : MPropDef */;
-val* var2 /* : Model */;
+val* var3 /* : MPropDef */;
+val* var4 /* : Model */;
{
-var1 = model__MProperty__intro(self);
+{ /* Inline model#MProperty#intro (self) on <self:MProperty> */
+var3 = self->attrs[COLOR_model__MProperty___intro].val; /* _intro on <self:MProperty> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
}
{
-var2 = model__MPropDef__model(var1);
+var4 = model__MPropDef__model(var1);
}
-var = var2;
+var = var4;
goto RET_LABEL;
RET_LABEL:;
return var;
var3 = self->attrs[COLOR_model__MProperty___name].val; /* _name on <self:MProperty> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
show_backtrace(1);
}
var1 = var3;
val* var_candidates /* var candidates: Array[MPropDef] */;
val* var16 /* : Array[MPropDef] */;
val* var18 /* : Array[MPropDef] */;
+val* var_ /* var : Array[MPropDef] */;
val* var19 /* : ArrayIterator[nullable Object] */;
-short int var20 /* : Bool */;
-val* var21 /* : nullable Object */;
+val* var_20 /* var : ArrayIterator[MPropDef] */;
+short int var21 /* : Bool */;
+val* var22 /* : nullable Object */;
val* var_mpropdef /* var mpropdef: MPropDef */;
-val* var22 /* : POSetElement[MModule] */;
-val* var24 /* : POSetElement[MModule] */;
-val* var25 /* : MClassDef */;
-val* var27 /* : MClassDef */;
-val* var28 /* : MModule */;
-val* var30 /* : MModule */;
-short int var31 /* : Bool */;
+val* var23 /* : POSetElement[MModule] */;
+val* var25 /* : POSetElement[MModule] */;
+val* var26 /* : MClassDef */;
+val* var28 /* : MClassDef */;
+val* var29 /* : MModule */;
+val* var31 /* : MModule */;
short int var32 /* : Bool */;
-val* var33 /* : null */;
-val* var34 /* : MClassDef */;
-val* var36 /* : MClassDef */;
-val* var37 /* : MClassType */;
-val* var39 /* : MClassType */;
-short int var40 /* : Bool */;
+short int var33 /* : Bool */;
+val* var34 /* : null */;
+val* var35 /* : MClassDef */;
+val* var37 /* : MClassDef */;
+val* var38 /* : MClassType */;
+val* var40 /* : MClassType */;
short int var41 /* : Bool */;
-long var42 /* : Int */;
-long var43 /* : Int */;
-short int var44 /* : Bool */;
-short int var46 /* : Bool */;
+short int var42 /* : Bool */;
+long var45 /* : Int */;
+long var47 /* : Int */;
+long var48 /* : Int */;
+short int var49 /* : Bool */;
+short int var51 /* : Bool */;
int cltype;
int idtype;
const char* var_class_name;
-short int var47 /* : Bool */;
-val* var48 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var50 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var51 /* : Array[MPropDef] */;
+short int var52 /* : Bool */;
+val* var53 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
+val* var55 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
+val* var56 /* : Array[MPropDef] */;
var_mmodule = p0;
var_mtype = p1;
{
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1655);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1668);
show_backtrace(1);
}
{
var6 = self->attrs[COLOR_model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
if (unlikely(var6 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1682);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1695);
show_backtrace(1);
}
var4 = var6;
}
var15 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]);
{
-array__Array__init(var15); /* Direct call array#Array#init on <var15:Array[MPropDef]>*/
+((void (*)(val*))(var15->class->vft[COLOR_kernel__Object__init]))(var15) /* init on <var15:Array[MPropDef]>*/;
}
var_candidates = var15;
{
var18 = self->attrs[COLOR_model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
if (unlikely(var18 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
show_backtrace(1);
}
var16 = var18;
RET_LABEL17:(void)0;
}
}
+var_ = var16;
{
-var19 = array__AbstractArrayRead__iterator(var16);
+var19 = array__AbstractArrayRead__iterator(var_);
}
+var_20 = var19;
for(;;) {
{
-var20 = array__ArrayIterator__is_ok(var19);
+var21 = array__ArrayIterator__is_ok(var_20);
}
-if(!var20) break;
+if (var21){
{
-var21 = array__ArrayIterator__item(var19);
+var22 = array__ArrayIterator__item(var_20);
}
-var_mpropdef = var21;
+var_mpropdef = var22;
{
{ /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
-var24 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
-if (unlikely(var24 == NULL)) {
+var25 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
+if (unlikely(var25 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
-PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
+PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
show_backtrace(1);
}
-var22 = var24;
-RET_LABEL23:(void)0;
+var23 = var25;
+RET_LABEL24:(void)0;
}
}
{
{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
-var27 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
-if (unlikely(var27 == NULL)) {
+var28 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var28 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var25 = var27;
-RET_LABEL26:(void)0;
+var26 = var28;
+RET_LABEL27:(void)0;
}
}
{
-{ /* Inline model#MClassDef#mmodule (var25) on <var25:MClassDef> */
-var30 = var25->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var25:MClassDef> */
-if (unlikely(var30 == NULL)) {
+{ /* Inline model#MClassDef#mmodule (var26) on <var26:MClassDef> */
+var31 = var26->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var26:MClassDef> */
+if (unlikely(var31 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
show_backtrace(1);
}
-var28 = var30;
-RET_LABEL29:(void)0;
-}
+var29 = var31;
+RET_LABEL30:(void)0;
+}
}
{
-var31 = poset__POSetElement___60d_61d(var22, var28);
+var32 = poset__POSetElement___60d_61d(var23, var29);
}
-var32 = !var31;
-if (var32){
-goto CONTINUE_label;
+var33 = !var32;
+if (var33){
+goto BREAK_label;
} else {
}
-var33 = NULL;
+var34 = NULL;
{
{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
-var36 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
-if (unlikely(var36 == NULL)) {
+var37 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var37 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var34 = var36;
-RET_LABEL35:(void)0;
+var35 = var37;
+RET_LABEL36:(void)0;
}
}
{
-{ /* Inline model#MClassDef#bound_mtype (var34) on <var34:MClassDef> */
-var39 = var34->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var34:MClassDef> */
-if (unlikely(var39 == NULL)) {
+{ /* Inline model#MClassDef#bound_mtype (var35) on <var35:MClassDef> */
+var40 = var35->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var35:MClassDef> */
+if (unlikely(var40 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
show_backtrace(1);
}
-var37 = var39;
-RET_LABEL38:(void)0;
+var38 = var40;
+RET_LABEL39:(void)0;
}
}
{
-var40 = model__MType__is_subtype(var_mtype, var_mmodule, var33, var37);
+var41 = model__MType__is_subtype(var_mtype, var_mmodule, var34, var38);
}
-var41 = !var40;
-if (var41){
-goto CONTINUE_label;
+var42 = !var41;
+if (var42){
+goto BREAK_label;
} else {
}
{
array__Array__add(var_candidates, var_mpropdef); /* Direct call array#Array#add on <var_candidates:Array[MPropDef]>*/
}
-CONTINUE_label: (void)0;
+BREAK_label: (void)0;
{
-array__ArrayIterator__next(var19); /* Direct call array#ArrayIterator#next on <var19:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_20); /* Direct call array#ArrayIterator#next on <var_20:ArrayIterator[MPropDef]>*/
+}
+} else {
+goto BREAK_label43;
+}
+}
+BREAK_label43: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_20) on <var_20:ArrayIterator[MPropDef]> */
+RET_LABEL44:(void)0;
}
}
-BREAK_label: (void)0;
{
-var42 = array__AbstractArrayRead__length(var_candidates);
+{ /* Inline array#AbstractArrayRead#length (var_candidates) on <var_candidates:Array[MPropDef]> */
+var47 = var_candidates->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
+var45 = var47;
+RET_LABEL46:(void)0;
+}
}
-var43 = 1;
+var48 = 1;
{
-{ /* Inline kernel#Int#<= (var42,var43) on <var42:Int> */
-/* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
-/* <var43:Int> isa OTHER */
-var46 = 1; /* easy <var43:Int> isa OTHER*/
-if (unlikely(!var46)) {
+{ /* Inline kernel#Int#<= (var45,var48) on <var45:Int> */
+/* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
+/* <var48:Int> isa OTHER */
+var51 = 1; /* easy <var48:Int> isa OTHER*/
+if (unlikely(!var51)) {
var_class_name = type_kernel__Int.name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
show_backtrace(1);
}
-var47 = var42 <= var43;
-var44 = var47;
-goto RET_LABEL45;
-RET_LABEL45:(void)0;
+var52 = var45 <= var48;
+var49 = var52;
+goto RET_LABEL50;
+RET_LABEL50:(void)0;
}
}
-if (var44){
+if (var49){
{
{ /* Inline model#MProperty#lookup_definitions_cache (self) on <self:MProperty> */
-var50 = self->attrs[COLOR_model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
-if (unlikely(var50 == NULL)) {
+var55 = self->attrs[COLOR_model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
+if (unlikely(var55 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1682);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1695);
show_backtrace(1);
}
-var48 = var50;
-RET_LABEL49:(void)0;
+var53 = var55;
+RET_LABEL54:(void)0;
}
}
{
-more_collections__HashMap2___91d_93d_61d(var48, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections#HashMap2#[]= on <var48:HashMap2[MModule, MType, Array[MPropDef]]>*/
+more_collections__HashMap2___91d_93d_61d(var53, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections#HashMap2#[]= on <var53:HashMap2[MModule, MType, Array[MPropDef]]>*/
}
var = var_candidates;
goto RET_LABEL;
} else {
}
{
-var51 = model__MProperty__select_most_specific(self, var_mmodule, var_candidates);
+var56 = model__MProperty__select_most_specific(self, var_mmodule, var_candidates);
}
-var = var51;
+var = var56;
goto RET_LABEL;
RET_LABEL:;
return var;
var1 = self->attrs[COLOR_model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:MProperty> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1682);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1695);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MProperty___lookup_definitions_cache].val; /* _lookup_definitions_cache on <self:Object(MProperty)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1682);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1695);
show_backtrace(1);
}
var1 = var3;
val* var_candidates /* var candidates: Array[MPropDef] */;
val* var5 /* : Array[MPropDef] */;
val* var7 /* : Array[MPropDef] */;
+val* var_ /* var : Array[MPropDef] */;
val* var8 /* : ArrayIterator[nullable Object] */;
-short int var9 /* : Bool */;
-val* var10 /* : nullable Object */;
+val* var_9 /* var : ArrayIterator[MPropDef] */;
+short int var10 /* : Bool */;
+val* var11 /* : nullable Object */;
val* var_mpropdef /* var mpropdef: MPropDef */;
-val* var11 /* : POSetElement[MModule] */;
-val* var13 /* : POSetElement[MModule] */;
-val* var14 /* : MClassDef */;
-val* var16 /* : MClassDef */;
-val* var17 /* : MModule */;
-val* var19 /* : MModule */;
-short int var20 /* : Bool */;
+val* var12 /* : POSetElement[MModule] */;
+val* var14 /* : POSetElement[MModule] */;
+val* var15 /* : MClassDef */;
+val* var17 /* : MClassDef */;
+val* var18 /* : MModule */;
+val* var20 /* : MModule */;
short int var21 /* : Bool */;
-val* var22 /* : null */;
-val* var23 /* : MClassDef */;
-val* var25 /* : MClassDef */;
-val* var26 /* : MClassType */;
-val* var28 /* : MClassType */;
-short int var29 /* : Bool */;
+short int var22 /* : Bool */;
+val* var23 /* : null */;
+val* var24 /* : MClassDef */;
+val* var26 /* : MClassDef */;
+val* var27 /* : MClassType */;
+val* var29 /* : MClassType */;
short int var30 /* : Bool */;
short int var31 /* : Bool */;
-val* var32 /* : MClassDef */;
-val* var34 /* : MClassDef */;
-val* var35 /* : MClassType */;
-val* var37 /* : MClassType */;
-short int var38 /* : Bool */;
+short int var32 /* : Bool */;
+val* var33 /* : MClassDef */;
+val* var35 /* : MClassDef */;
+val* var36 /* : MClassType */;
+val* var38 /* : MClassType */;
short int var39 /* : Bool */;
+short int var40 /* : Bool */;
val* var_other /* var other: nullable Object */;
-short int var41 /* : Bool */;
-short int var43 /* : Bool */;
-short int var_ /* var : Bool */;
-val* var44 /* : MClassDef */;
+short int var42 /* : Bool */;
+short int var44 /* : Bool */;
+short int var_45 /* var : Bool */;
val* var46 /* : MClassDef */;
-val* var47 /* : MModule */;
+val* var48 /* : MClassDef */;
val* var49 /* : MModule */;
-short int var50 /* : Bool */;
-short int var51 /* : Bool */;
+val* var51 /* : MModule */;
+short int var52 /* : Bool */;
short int var53 /* : Bool */;
short int var55 /* : Bool */;
-long var56 /* : Int */;
-long var57 /* : Int */;
-short int var58 /* : Bool */;
-short int var60 /* : Bool */;
+short int var57 /* : Bool */;
+long var60 /* : Int */;
+long var62 /* : Int */;
+long var63 /* : Int */;
+short int var64 /* : Bool */;
+short int var66 /* : Bool */;
int cltype;
int idtype;
const char* var_class_name;
-short int var61 /* : Bool */;
-val* var62 /* : Array[MPropDef] */;
+short int var67 /* : Bool */;
+val* var68 /* : Array[MPropDef] */;
var_mmodule = p0;
var_mtype = p1;
{
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1694);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1707);
show_backtrace(1);
}
{
var_mtype = var3;
var4 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]);
{
-array__Array__init(var4); /* Direct call array#Array#init on <var4:Array[MPropDef]>*/
+((void (*)(val*))(var4->class->vft[COLOR_kernel__Object__init]))(var4) /* init on <var4:Array[MPropDef]>*/;
}
var_candidates = var4;
{
var7 = self->attrs[COLOR_model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
if (unlikely(var7 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
show_backtrace(1);
}
var5 = var7;
RET_LABEL6:(void)0;
}
}
+var_ = var5;
{
-var8 = array__AbstractArrayRead__iterator(var5);
+var8 = array__AbstractArrayRead__iterator(var_);
}
+var_9 = var8;
for(;;) {
{
-var9 = array__ArrayIterator__is_ok(var8);
+var10 = array__ArrayIterator__is_ok(var_9);
}
-if(!var9) break;
+if (var10){
{
-var10 = array__ArrayIterator__item(var8);
+var11 = array__ArrayIterator__item(var_9);
}
-var_mpropdef = var10;
+var_mpropdef = var11;
{
{ /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
-var13 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
-if (unlikely(var13 == NULL)) {
+var14 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
+if (unlikely(var14 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
-PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
+PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
show_backtrace(1);
}
-var11 = var13;
-RET_LABEL12:(void)0;
+var12 = var14;
+RET_LABEL13:(void)0;
}
}
{
{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
-var16 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
-if (unlikely(var16 == NULL)) {
+var17 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var17 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var14 = var16;
-RET_LABEL15:(void)0;
+var15 = var17;
+RET_LABEL16:(void)0;
}
}
{
-{ /* Inline model#MClassDef#mmodule (var14) on <var14:MClassDef> */
-var19 = var14->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var14:MClassDef> */
-if (unlikely(var19 == NULL)) {
+{ /* Inline model#MClassDef#mmodule (var15) on <var15:MClassDef> */
+var20 = var15->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var15:MClassDef> */
+if (unlikely(var20 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
show_backtrace(1);
}
-var17 = var19;
-RET_LABEL18:(void)0;
+var18 = var20;
+RET_LABEL19:(void)0;
}
}
{
-var20 = poset__POSetElement___60d_61d(var11, var17);
+var21 = poset__POSetElement___60d_61d(var12, var18);
}
-var21 = !var20;
-if (var21){
-goto CONTINUE_label;
+var22 = !var21;
+if (var22){
+goto BREAK_label;
} else {
}
-var22 = NULL;
+var23 = NULL;
{
{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
-var25 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
-if (unlikely(var25 == NULL)) {
+var26 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var26 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var23 = var25;
-RET_LABEL24:(void)0;
+var24 = var26;
+RET_LABEL25:(void)0;
}
}
{
-{ /* Inline model#MClassDef#bound_mtype (var23) on <var23:MClassDef> */
-var28 = var23->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var23:MClassDef> */
-if (unlikely(var28 == NULL)) {
+{ /* Inline model#MClassDef#bound_mtype (var24) on <var24:MClassDef> */
+var29 = var24->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var24:MClassDef> */
+if (unlikely(var29 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
show_backtrace(1);
}
-var26 = var28;
-RET_LABEL27:(void)0;
+var27 = var29;
+RET_LABEL28:(void)0;
}
}
{
-var29 = model__MType__is_subtype(var_mtype, var_mmodule, var22, var26);
+var30 = model__MType__is_subtype(var_mtype, var_mmodule, var23, var27);
}
-var30 = !var29;
-if (var30){
-goto CONTINUE_label;
+var31 = !var30;
+if (var31){
+goto BREAK_label;
} else {
}
{
{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
-var34 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
-if (unlikely(var34 == NULL)) {
+var35 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var35 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var32 = var34;
-RET_LABEL33:(void)0;
+var33 = var35;
+RET_LABEL34:(void)0;
}
}
{
-{ /* Inline model#MClassDef#bound_mtype (var32) on <var32:MClassDef> */
-var37 = var32->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var32:MClassDef> */
-if (unlikely(var37 == NULL)) {
+{ /* Inline model#MClassDef#bound_mtype (var33) on <var33:MClassDef> */
+var38 = var33->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var33:MClassDef> */
+if (unlikely(var38 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
show_backtrace(1);
}
-var35 = var37;
-RET_LABEL36:(void)0;
+var36 = var38;
+RET_LABEL37:(void)0;
}
}
{
-{ /* Inline kernel#Object#== (var_mtype,var35) on <var_mtype:MType> */
-var_other = var35;
+{ /* Inline kernel#Object#== (var_mtype,var36) on <var_mtype:MType> */
+var_other = var36;
{
{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:MType> */
-var43 = var_mtype == var_other;
-var41 = var43;
-goto RET_LABEL42;
-RET_LABEL42:(void)0;
+var44 = var_mtype == var_other;
+var42 = var44;
+goto RET_LABEL43;
+RET_LABEL43:(void)0;
}
}
-var39 = var41;
-goto RET_LABEL40;
-RET_LABEL40:(void)0;
+var40 = var42;
+goto RET_LABEL41;
+RET_LABEL41:(void)0;
}
-var38 = var39;
+var39 = var40;
}
-var_ = var38;
-if (var38){
+var_45 = var39;
+if (var39){
{
{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
-var46 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
-if (unlikely(var46 == NULL)) {
+var48 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var48 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var44 = var46;
-RET_LABEL45:(void)0;
+var46 = var48;
+RET_LABEL47:(void)0;
}
}
{
-{ /* Inline model#MClassDef#mmodule (var44) on <var44:MClassDef> */
-var49 = var44->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var44:MClassDef> */
-if (unlikely(var49 == NULL)) {
+{ /* Inline model#MClassDef#mmodule (var46) on <var46:MClassDef> */
+var51 = var46->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var46:MClassDef> */
+if (unlikely(var51 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
show_backtrace(1);
}
-var47 = var49;
-RET_LABEL48:(void)0;
+var49 = var51;
+RET_LABEL50:(void)0;
}
}
{
-{ /* Inline kernel#Object#== (var_mmodule,var47) on <var_mmodule:MModule> */
-var_other = var47;
+{ /* Inline kernel#Object#== (var_mmodule,var49) on <var_mmodule:MModule> */
+var_other = var49;
{
{ /* Inline kernel#Object#is_same_instance (var_mmodule,var_other) on <var_mmodule:MModule> */
-var55 = var_mmodule == var_other;
+var57 = var_mmodule == var_other;
+var55 = var57;
+goto RET_LABEL56;
+RET_LABEL56:(void)0;
+}
+}
var53 = var55;
goto RET_LABEL54;
RET_LABEL54:(void)0;
}
+var52 = var53;
}
-var51 = var53;
-goto RET_LABEL52;
-RET_LABEL52:(void)0;
-}
-var50 = var51;
-}
-var31 = var50;
+var32 = var52;
} else {
-var31 = var_;
+var32 = var_45;
}
-if (var31){
-goto CONTINUE_label;
+if (var32){
+goto BREAK_label;
} else {
}
{
array__Array__add(var_candidates, var_mpropdef); /* Direct call array#Array#add on <var_candidates:Array[MPropDef]>*/
}
-CONTINUE_label: (void)0;
+BREAK_label: (void)0;
+{
+array__ArrayIterator__next(var_9); /* Direct call array#ArrayIterator#next on <var_9:ArrayIterator[MPropDef]>*/
+}
+} else {
+goto BREAK_label58;
+}
+}
+BREAK_label58: (void)0;
{
-array__ArrayIterator__next(var8); /* Direct call array#ArrayIterator#next on <var8:ArrayIterator[nullable Object]>*/
+{ /* Inline abstract_collection#Iterator#finish (var_9) on <var_9:ArrayIterator[MPropDef]> */
+RET_LABEL59:(void)0;
}
}
-BREAK_label: (void)0;
{
-var56 = array__AbstractArrayRead__length(var_candidates);
+{ /* Inline array#AbstractArrayRead#length (var_candidates) on <var_candidates:Array[MPropDef]> */
+var62 = var_candidates->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
+var60 = var62;
+RET_LABEL61:(void)0;
+}
}
-var57 = 1;
+var63 = 1;
{
-{ /* Inline kernel#Int#<= (var56,var57) on <var56:Int> */
-/* Covariant cast for argument 0 (i) <var57:Int> isa OTHER */
-/* <var57:Int> isa OTHER */
-var60 = 1; /* easy <var57:Int> isa OTHER*/
-if (unlikely(!var60)) {
+{ /* Inline kernel#Int#<= (var60,var63) on <var60:Int> */
+/* Covariant cast for argument 0 (i) <var63:Int> isa OTHER */
+/* <var63:Int> isa OTHER */
+var66 = 1; /* easy <var63:Int> isa OTHER*/
+if (unlikely(!var66)) {
var_class_name = type_kernel__Int.name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
show_backtrace(1);
}
-var61 = var56 <= var57;
-var58 = var61;
-goto RET_LABEL59;
-RET_LABEL59:(void)0;
+var67 = var60 <= var63;
+var64 = var67;
+goto RET_LABEL65;
+RET_LABEL65:(void)0;
}
}
-if (var58){
+if (var64){
var = var_candidates;
goto RET_LABEL;
} else {
}
{
-var62 = model__MProperty__select_most_specific(self, var_mmodule, var_candidates);
+var68 = model__MProperty__select_most_specific(self, var_mmodule, var_candidates);
}
-var = var62;
+var = var68;
goto RET_LABEL;
RET_LABEL:;
return var;
val* var_candidates /* var candidates: Array[MPropDef] */;
val* var2 /* : Array[MPropDef] */;
val* var_res /* var res: Array[MPropDef] */;
+val* var_ /* var : Array[MPropDef] */;
val* var3 /* : ArrayIterator[nullable Object] */;
-short int var4 /* : Bool */;
-val* var5 /* : nullable Object */;
+val* var_4 /* var : ArrayIterator[MPropDef] */;
+short int var5 /* : Bool */;
+val* var6 /* : nullable Object */;
val* var_pd1 /* var pd1: MPropDef */;
-val* var6 /* : MClassDef */;
-val* var8 /* : MClassDef */;
+val* var7 /* : MClassDef */;
+val* var9 /* : MClassDef */;
val* var_cd1 /* var cd1: MClassDef */;
-val* var9 /* : MClass */;
-val* var11 /* : MClass */;
+val* var10 /* : MClass */;
+val* var12 /* : MClass */;
val* var_c1 /* var c1: MClass */;
-short int var12 /* : Bool */;
+short int var13 /* : Bool */;
short int var_keep /* var keep: Bool */;
-val* var13 /* : ArrayIterator[nullable Object] */;
-short int var14 /* : Bool */;
-val* var15 /* : nullable Object */;
-val* var_pd2 /* var pd2: MPropDef */;
-short int var16 /* : Bool */;
+val* var_14 /* var : Array[MPropDef] */;
+val* var15 /* : ArrayIterator[nullable Object] */;
+val* var_16 /* var : ArrayIterator[MPropDef] */;
short int var17 /* : Bool */;
-val* var_other /* var other: nullable Object */;
+val* var18 /* : nullable Object */;
+val* var_pd2 /* var pd2: MPropDef */;
short int var19 /* : Bool */;
-short int var21 /* : Bool */;
-val* var22 /* : MClassDef */;
-val* var24 /* : MClassDef */;
+short int var20 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var22 /* : Bool */;
+short int var24 /* : Bool */;
+val* var25 /* : MClassDef */;
+val* var27 /* : MClassDef */;
val* var_cd2 /* var cd2: MClassDef */;
-val* var25 /* : MClass */;
-val* var27 /* : MClass */;
+val* var28 /* : MClass */;
+val* var30 /* : MClass */;
val* var_c2 /* var c2: MClass */;
-val* var28 /* : MClassType */;
-val* var30 /* : MClassType */;
val* var31 /* : MClassType */;
val* var33 /* : MClassType */;
-short int var34 /* : Bool */;
-short int var35 /* : Bool */;
+val* var34 /* : MClassType */;
+val* var36 /* : MClassType */;
short int var37 /* : Bool */;
-short int var39 /* : Bool */;
-val* var40 /* : MModule */;
-val* var42 /* : MModule */;
-val* var43 /* : POSetElement[MModule] */;
-val* var45 /* : POSetElement[MModule] */;
-val* var46 /* : MModule */;
-val* var48 /* : MModule */;
-short int var49 /* : Bool */;
-short int var50 /* : Bool */;
-short int var51 /* : Bool */;
-val* var52 /* : MClassType */;
-val* var54 /* : MClassType */;
-val* var55 /* : null */;
+short int var38 /* : Bool */;
+short int var40 /* : Bool */;
+short int var42 /* : Bool */;
+val* var43 /* : MModule */;
+val* var45 /* : MModule */;
+val* var46 /* : POSetElement[MModule] */;
+val* var48 /* : POSetElement[MModule] */;
+val* var49 /* : MModule */;
+val* var51 /* : MModule */;
+short int var52 /* : Bool */;
+short int var53 /* : Bool */;
+short int var55 /* : Bool */;
val* var56 /* : MClassType */;
val* var58 /* : MClassType */;
-short int var59 /* : Bool */;
-short int var_ /* var : Bool */;
+val* var59 /* : null */;
val* var60 /* : MClassType */;
val* var62 /* : MClassType */;
-val* var63 /* : MClassType */;
+short int var63 /* : Bool */;
+short int var_64 /* var : Bool */;
val* var65 /* : MClassType */;
-short int var66 /* : Bool */;
-short int var67 /* : Bool */;
-val* var_other69 /* var other: nullable Object */;
-short int var70 /* : Bool */;
+val* var67 /* : MClassType */;
+val* var68 /* : MClassType */;
+val* var70 /* : MClassType */;
short int var71 /* : Bool */;
short int var72 /* : Bool */;
-short int var73 /* : Bool */;
+val* var_other74 /* var other: nullable Object */;
short int var75 /* : Bool */;
+short int var76 /* : Bool */;
+short int var77 /* : Bool */;
+short int var78 /* : Bool */;
+short int var82 /* : Bool */;
static val* varonce;
-val* var76 /* : String */;
-char* var77 /* : NativeString */;
-long var78 /* : Int */;
-val* var79 /* : FlatString */;
-static val* varonce80;
-val* var81 /* : String */;
-char* var82 /* : NativeString */;
-long var83 /* : Int */;
-val* var84 /* : FlatString */;
-val* var85 /* : String */;
-val* var86 /* : Array[Object] */;
-long var87 /* : Int */;
-val* var88 /* : NativeArray[Object] */;
-val* var89 /* : String */;
+val* var83 /* : String */;
+char* var84 /* : NativeString */;
+long var85 /* : Int */;
+val* var86 /* : FlatString */;
+static val* varonce87;
+val* var88 /* : String */;
+char* var89 /* : NativeString */;
+long var90 /* : Int */;
+val* var91 /* : FlatString */;
+val* var92 /* : String */;
+val* var93 /* : Array[Object] */;
+long var94 /* : Int */;
+val* var95 /* : NativeArray[Object] */;
+val* var96 /* : String */;
/* Covariant cast for argument 1 (candidates) <p1:Array[MPropDef]> isa Array[MPROPDEF] */
/* <p1:Array[MPropDef]> isa Array[MPROPDEF] */
type_struct = self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF];
if (unlikely(!var1)) {
var_class_name = p1 == NULL ? "null" : p1->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[MPROPDEF]", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1716);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1729);
show_backtrace(1);
}
var_mmodule = p0;
var_candidates = p1;
var2 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]);
{
-array__Array__init(var2); /* Direct call array#Array#init on <var2:Array[MPropDef]>*/
+((void (*)(val*))(var2->class->vft[COLOR_kernel__Object__init]))(var2) /* init on <var2:Array[MPropDef]>*/;
}
var_res = var2;
+var_ = var_candidates;
{
-var3 = array__AbstractArrayRead__iterator(var_candidates);
+var3 = array__AbstractArrayRead__iterator(var_);
}
+var_4 = var3;
for(;;) {
{
-var4 = array__ArrayIterator__is_ok(var3);
+var5 = array__ArrayIterator__is_ok(var_4);
}
-if(!var4) break;
+if (var5){
{
-var5 = array__ArrayIterator__item(var3);
+var6 = array__ArrayIterator__item(var_4);
}
-var_pd1 = var5;
+var_pd1 = var6;
{
{ /* Inline model#MPropDef#mclassdef (var_pd1) on <var_pd1:MPropDef> */
-var8 = var_pd1->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_pd1:MPropDef> */
-if (unlikely(var8 == NULL)) {
+var9 = var_pd1->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_pd1:MPropDef> */
+if (unlikely(var9 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var6 = var8;
-RET_LABEL7:(void)0;
+var7 = var9;
+RET_LABEL8:(void)0;
}
}
-var_cd1 = var6;
+var_cd1 = var7;
{
{ /* Inline model#MClassDef#mclass (var_cd1) on <var_cd1:MClassDef> */
-var11 = var_cd1->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_cd1:MClassDef> */
-if (unlikely(var11 == NULL)) {
+var12 = var_cd1->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_cd1:MClassDef> */
+if (unlikely(var12 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
show_backtrace(1);
}
-var9 = var11;
-RET_LABEL10:(void)0;
+var10 = var12;
+RET_LABEL11:(void)0;
}
}
-var_c1 = var9;
-var12 = 1;
-var_keep = var12;
+var_c1 = var10;
+var13 = 1;
+var_keep = var13;
+var_14 = var_candidates;
{
-var13 = array__AbstractArrayRead__iterator(var_candidates);
+var15 = array__AbstractArrayRead__iterator(var_14);
}
+var_16 = var15;
for(;;) {
{
-var14 = array__ArrayIterator__is_ok(var13);
+var17 = array__ArrayIterator__is_ok(var_16);
}
-if(!var14) break;
+if (var17){
{
-var15 = array__ArrayIterator__item(var13);
+var18 = array__ArrayIterator__item(var_16);
}
-var_pd2 = var15;
+var_pd2 = var18;
{
{ /* Inline kernel#Object#== (var_pd2,var_pd1) on <var_pd2:MPropDef> */
var_other = var_pd1;
{
{ /* Inline kernel#Object#is_same_instance (var_pd2,var_other) on <var_pd2:MPropDef> */
-var21 = var_pd2 == var_other;
-var19 = var21;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
+var24 = var_pd2 == var_other;
+var22 = var24;
+goto RET_LABEL23;
+RET_LABEL23:(void)0;
}
}
-var17 = var19;
-goto RET_LABEL18;
-RET_LABEL18:(void)0;
+var20 = var22;
+goto RET_LABEL21;
+RET_LABEL21:(void)0;
}
-var16 = var17;
+var19 = var20;
}
-if (var16){
-goto CONTINUE_label;
+if (var19){
+goto BREAK_label;
} else {
}
{
{ /* Inline model#MPropDef#mclassdef (var_pd2) on <var_pd2:MPropDef> */
-var24 = var_pd2->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_pd2:MPropDef> */
-if (unlikely(var24 == NULL)) {
+var27 = var_pd2->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_pd2:MPropDef> */
+if (unlikely(var27 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var22 = var24;
-RET_LABEL23:(void)0;
+var25 = var27;
+RET_LABEL26:(void)0;
}
}
-var_cd2 = var22;
+var_cd2 = var25;
{
{ /* Inline model#MClassDef#mclass (var_cd2) on <var_cd2:MClassDef> */
-var27 = var_cd2->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_cd2:MClassDef> */
-if (unlikely(var27 == NULL)) {
+var30 = var_cd2->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_cd2:MClassDef> */
+if (unlikely(var30 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
show_backtrace(1);
}
-var25 = var27;
-RET_LABEL26:(void)0;
+var28 = var30;
+RET_LABEL29:(void)0;
}
}
-var_c2 = var25;
+var_c2 = var28;
{
{ /* Inline model#MClass#mclass_type (var_c2) on <var_c2:MClass> */
-var30 = var_c2->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var_c2:MClass> */
-if (unlikely(var30 == NULL)) {
+var33 = var_c2->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var_c2:MClass> */
+if (unlikely(var33 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
show_backtrace(1);
}
-var28 = var30;
-RET_LABEL29:(void)0;
+var31 = var33;
+RET_LABEL32:(void)0;
}
}
{
{ /* Inline model#MClass#mclass_type (var_c1) on <var_c1:MClass> */
-var33 = var_c1->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var_c1:MClass> */
-if (unlikely(var33 == NULL)) {
+var36 = var_c1->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var_c1:MClass> */
+if (unlikely(var36 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
show_backtrace(1);
}
-var31 = var33;
-RET_LABEL32:(void)0;
+var34 = var36;
+RET_LABEL35:(void)0;
}
}
{
-{ /* Inline kernel#Object#== (var28,var31) on <var28:MClassType> */
-var_other = var31;
+{ /* Inline kernel#Object#== (var31,var34) on <var31:MClassType> */
+var_other = var34;
{
-{ /* Inline kernel#Object#is_same_instance (var28,var_other) on <var28:MClassType> */
-var39 = var28 == var_other;
-var37 = var39;
-goto RET_LABEL38;
-RET_LABEL38:(void)0;
+{ /* Inline kernel#Object#is_same_instance (var31,var_other) on <var31:MClassType> */
+var42 = var31 == var_other;
+var40 = var42;
+goto RET_LABEL41;
+RET_LABEL41:(void)0;
}
}
-var35 = var37;
-goto RET_LABEL36;
-RET_LABEL36:(void)0;
+var38 = var40;
+goto RET_LABEL39;
+RET_LABEL39:(void)0;
}
-var34 = var35;
+var37 = var38;
}
-if (var34){
+if (var37){
{
{ /* Inline model#MClassDef#mmodule (var_cd2) on <var_cd2:MClassDef> */
-var42 = var_cd2->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_cd2:MClassDef> */
-if (unlikely(var42 == NULL)) {
+var45 = var_cd2->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_cd2:MClassDef> */
+if (unlikely(var45 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
show_backtrace(1);
}
-var40 = var42;
-RET_LABEL41:(void)0;
+var43 = var45;
+RET_LABEL44:(void)0;
}
}
{
-{ /* Inline mmodule#MModule#in_importation (var40) on <var40:MModule> */
-var45 = var40->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var40:MModule> */
-if (unlikely(var45 == NULL)) {
+{ /* Inline mmodule#MModule#in_importation (var43) on <var43:MModule> */
+var48 = var43->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var43:MModule> */
+if (unlikely(var48 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
-PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
+PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
show_backtrace(1);
}
-var43 = var45;
-RET_LABEL44:(void)0;
+var46 = var48;
+RET_LABEL47:(void)0;
}
}
{
{ /* Inline model#MClassDef#mmodule (var_cd1) on <var_cd1:MClassDef> */
-var48 = var_cd1->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_cd1:MClassDef> */
-if (unlikely(var48 == NULL)) {
+var51 = var_cd1->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_cd1:MClassDef> */
+if (unlikely(var51 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
show_backtrace(1);
}
-var46 = var48;
-RET_LABEL47:(void)0;
+var49 = var51;
+RET_LABEL50:(void)0;
}
}
{
-var49 = poset__POSetElement___60d(var43, var46);
+var52 = poset__POSetElement___60d(var46, var49);
}
-if (var49){
-var50 = 0;
-var_keep = var50;
-goto BREAK_label;
+if (var52){
+var53 = 0;
+var_keep = var53;
+goto BREAK_label54;
} else {
}
} else {
{
{ /* Inline model#MClassDef#bound_mtype (var_cd2) on <var_cd2:MClassDef> */
-var54 = var_cd2->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd2:MClassDef> */
-if (unlikely(var54 == NULL)) {
+var58 = var_cd2->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd2:MClassDef> */
+if (unlikely(var58 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
show_backtrace(1);
}
-var52 = var54;
-RET_LABEL53:(void)0;
+var56 = var58;
+RET_LABEL57:(void)0;
}
}
-var55 = NULL;
+var59 = NULL;
{
{ /* Inline model#MClassDef#bound_mtype (var_cd1) on <var_cd1:MClassDef> */
-var58 = var_cd1->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd1:MClassDef> */
-if (unlikely(var58 == NULL)) {
+var62 = var_cd1->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd1:MClassDef> */
+if (unlikely(var62 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
show_backtrace(1);
}
-var56 = var58;
-RET_LABEL57:(void)0;
+var60 = var62;
+RET_LABEL61:(void)0;
}
}
{
-var59 = model__MType__is_subtype(var52, var_mmodule, var55, var56);
+var63 = model__MType__is_subtype(var56, var_mmodule, var59, var60);
}
-var_ = var59;
-if (var59){
+var_64 = var63;
+if (var63){
{
{ /* Inline model#MClassDef#bound_mtype (var_cd2) on <var_cd2:MClassDef> */
-var62 = var_cd2->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd2:MClassDef> */
-if (unlikely(var62 == NULL)) {
+var67 = var_cd2->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd2:MClassDef> */
+if (unlikely(var67 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
show_backtrace(1);
}
-var60 = var62;
-RET_LABEL61:(void)0;
+var65 = var67;
+RET_LABEL66:(void)0;
}
}
{
{ /* Inline model#MClassDef#bound_mtype (var_cd1) on <var_cd1:MClassDef> */
-var65 = var_cd1->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd1:MClassDef> */
-if (unlikely(var65 == NULL)) {
+var70 = var_cd1->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_cd1:MClassDef> */
+if (unlikely(var70 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
show_backtrace(1);
}
-var63 = var65;
-RET_LABEL64:(void)0;
+var68 = var70;
+RET_LABEL69:(void)0;
}
}
{
-{ /* Inline kernel#Object#!= (var60,var63) on <var60:MClassType> */
-var_other69 = var63;
+{ /* Inline kernel#Object#!= (var65,var68) on <var65:MClassType> */
+var_other74 = var68;
{
-var71 = ((short int (*)(val*, val*))(var60->class->vft[COLOR_kernel__Object___61d_61d]))(var60, var_other69) /* == on <var60:MClassType>*/;
-var70 = var71;
+var76 = ((short int (*)(val*, val*))(var65->class->vft[COLOR_kernel__Object___61d_61d]))(var65, var_other74) /* == on <var65:MClassType>*/;
+var75 = var76;
}
-var72 = !var70;
-var67 = var72;
-goto RET_LABEL68;
-RET_LABEL68:(void)0;
+var77 = !var75;
+var72 = var77;
+goto RET_LABEL73;
+RET_LABEL73:(void)0;
}
-var66 = var67;
+var71 = var72;
}
-var51 = var66;
+var55 = var71;
} else {
-var51 = var_;
+var55 = var_64;
}
-if (var51){
-var73 = 0;
-var_keep = var73;
-goto BREAK_label;
+if (var55){
+var78 = 0;
+var_keep = var78;
+goto BREAK_label54;
} else {
}
}
-CONTINUE_label: (void)0;
+BREAK_label: (void)0;
{
-array__ArrayIterator__next(var13); /* Direct call array#ArrayIterator#next on <var13:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_16); /* Direct call array#ArrayIterator#next on <var_16:ArrayIterator[MPropDef]>*/
+}
+} else {
+goto BREAK_label54;
+}
+}
+BREAK_label54: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_16) on <var_16:ArrayIterator[MPropDef]> */
+RET_LABEL79:(void)0;
}
}
-BREAK_label: (void)0;
if (var_keep){
{
array__Array__add(var_res, var_pd1); /* Direct call array#Array#add on <var_res:Array[MPropDef]>*/
}
} else {
}
-CONTINUE_label74: (void)0;
{
-array__ArrayIterator__next(var3); /* Direct call array#ArrayIterator#next on <var3:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_4); /* Direct call array#ArrayIterator#next on <var_4:ArrayIterator[MPropDef]>*/
+}
+} else {
+goto BREAK_label80;
}
}
-BREAK_label74: (void)0;
+BREAK_label80: (void)0;
{
-var75 = array__AbstractArrayRead__is_empty(var_res);
+{ /* Inline abstract_collection#Iterator#finish (var_4) on <var_4:ArrayIterator[MPropDef]> */
+RET_LABEL81:(void)0;
}
-if (var75){
+}
+{
+var82 = array__AbstractArrayRead__is_empty(var_res);
+}
+if (var82){
if (varonce) {
-var76 = varonce;
+var83 = varonce;
} else {
-var77 = "All lost! ";
-var78 = 10;
-var79 = string__NativeString__to_s_with_length(var77, var78);
-var76 = var79;
-varonce = var76;
-}
-if (varonce80) {
-var81 = varonce80;
+var84 = "All lost! ";
+var85 = 10;
+var86 = string__NativeString__to_s_with_length(var84, var85);
+var83 = var86;
+varonce = var83;
+}
+if (varonce87) {
+var88 = varonce87;
} else {
-var82 = ", ";
-var83 = 2;
-var84 = string__NativeString__to_s_with_length(var82, var83);
-var81 = var84;
-varonce80 = var81;
+var89 = ", ";
+var90 = 2;
+var91 = string__NativeString__to_s_with_length(var89, var90);
+var88 = var91;
+varonce87 = var88;
}
{
-var85 = string__Collection__join(var_candidates, var81);
+var92 = string__Collection__join(var_candidates, var88);
}
-var86 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var86 = array_instance Array[Object] */
-var87 = 2;
-var88 = NEW_array__NativeArray(var87, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var88)->values[0] = (val*) var76;
-((struct instance_array__NativeArray*)var88)->values[1] = (val*) var85;
+var93 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var93 = array_instance Array[Object] */
+var94 = 2;
+var95 = NEW_array__NativeArray(var94, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var95)->values[0] = (val*) var83;
+((struct instance_array__NativeArray*)var95)->values[1] = (val*) var92;
{
-((void (*)(val*, val*, long))(var86->class->vft[COLOR_array__Array__with_native]))(var86, var88, var87) /* with_native on <var86:Array[Object]>*/;
+((void (*)(val*, val*, long))(var93->class->vft[COLOR_array__Array__with_native]))(var93, var95, var94) /* with_native on <var93:Array[Object]>*/;
}
}
{
-var89 = ((val* (*)(val*))(var86->class->vft[COLOR_string__Object__to_s]))(var86) /* to_s on <var86:Array[Object]>*/;
+var96 = ((val* (*)(val*))(var93->class->vft[COLOR_string__Object__to_s]))(var93) /* to_s on <var93:Array[Object]>*/;
}
{
-file__Object__print(self, var89); /* Direct call file#Object#print on <self:MProperty>*/
+file__Object__print(self, var96); /* Direct call file#Object#print on <self:MProperty>*/
}
} else {
}
}
if (unlikely(!var1)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1763);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1776);
show_backtrace(1);
}
{
val* var_candidates /* var candidates: Array[MPropDef] */;
val* var16 /* : Array[MPropDef] */;
val* var18 /* : Array[MPropDef] */;
+val* var_ /* var : Array[MPropDef] */;
val* var19 /* : ArrayIterator[nullable Object] */;
-short int var20 /* : Bool */;
-val* var21 /* : nullable Object */;
+val* var_20 /* var : ArrayIterator[MPropDef] */;
+short int var21 /* : Bool */;
+val* var22 /* : nullable Object */;
val* var_mpropdef /* var mpropdef: MPropDef */;
-val* var22 /* : POSetElement[MModule] */;
-val* var24 /* : POSetElement[MModule] */;
-val* var25 /* : MClassDef */;
-val* var27 /* : MClassDef */;
-val* var28 /* : MModule */;
-val* var30 /* : MModule */;
-short int var31 /* : Bool */;
+val* var23 /* : POSetElement[MModule] */;
+val* var25 /* : POSetElement[MModule] */;
+val* var26 /* : MClassDef */;
+val* var28 /* : MClassDef */;
+val* var29 /* : MModule */;
+val* var31 /* : MModule */;
short int var32 /* : Bool */;
-val* var33 /* : null */;
-val* var34 /* : MClassDef */;
-val* var36 /* : MClassDef */;
-val* var37 /* : MClassType */;
-val* var39 /* : MClassType */;
-short int var40 /* : Bool */;
+short int var33 /* : Bool */;
+val* var34 /* : null */;
+val* var35 /* : MClassDef */;
+val* var37 /* : MClassDef */;
+val* var38 /* : MClassType */;
+val* var40 /* : MClassType */;
short int var41 /* : Bool */;
-long var42 /* : Int */;
-long var43 /* : Int */;
-short int var44 /* : Bool */;
-short int var46 /* : Bool */;
+short int var42 /* : Bool */;
+long var45 /* : Int */;
+long var47 /* : Int */;
+long var48 /* : Int */;
+short int var49 /* : Bool */;
+short int var51 /* : Bool */;
int cltype;
int idtype;
const char* var_class_name;
-short int var47 /* : Bool */;
-val* var48 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var50 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var51 /* : Array[nullable Object] */;
-val* var52 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
-val* var54 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
+short int var52 /* : Bool */;
+val* var53 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
+val* var55 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
+val* var56 /* : Array[nullable Object] */;
+val* var57 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
+val* var59 /* : HashMap2[MModule, MType, Array[MPropDef]] */;
var_mmodule = p0;
var_mtype = p1;
{
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1771);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1784);
show_backtrace(1);
}
{
var6 = self->attrs[COLOR_model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
if (unlikely(var6 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1800);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1813);
show_backtrace(1);
}
var4 = var6;
}
var15 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]);
{
-array__Array__init(var15); /* Direct call array#Array#init on <var15:Array[MPropDef]>*/
+((void (*)(val*))(var15->class->vft[COLOR_kernel__Object__init]))(var15) /* init on <var15:Array[MPropDef]>*/;
}
var_candidates = var15;
{
var18 = self->attrs[COLOR_model__MProperty___mpropdefs].val; /* _mpropdefs on <self:MProperty> */
if (unlikely(var18 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
show_backtrace(1);
}
var16 = var18;
RET_LABEL17:(void)0;
}
}
+var_ = var16;
{
-var19 = array__AbstractArrayRead__iterator(var16);
+var19 = array__AbstractArrayRead__iterator(var_);
}
+var_20 = var19;
for(;;) {
{
-var20 = array__ArrayIterator__is_ok(var19);
+var21 = array__ArrayIterator__is_ok(var_20);
}
-if(!var20) break;
+if (var21){
{
-var21 = array__ArrayIterator__item(var19);
+var22 = array__ArrayIterator__item(var_20);
}
-var_mpropdef = var21;
+var_mpropdef = var22;
{
{ /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
-var24 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
-if (unlikely(var24 == NULL)) {
+var25 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
+if (unlikely(var25 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
-PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 101);
+PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 93);
show_backtrace(1);
}
-var22 = var24;
-RET_LABEL23:(void)0;
+var23 = var25;
+RET_LABEL24:(void)0;
}
}
{
{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
-var27 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
-if (unlikely(var27 == NULL)) {
+var28 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var28 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var25 = var27;
-RET_LABEL26:(void)0;
+var26 = var28;
+RET_LABEL27:(void)0;
}
}
{
-{ /* Inline model#MClassDef#mmodule (var25) on <var25:MClassDef> */
-var30 = var25->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var25:MClassDef> */
-if (unlikely(var30 == NULL)) {
+{ /* Inline model#MClassDef#mmodule (var26) on <var26:MClassDef> */
+var31 = var26->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var26:MClassDef> */
+if (unlikely(var31 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 489);
show_backtrace(1);
}
-var28 = var30;
-RET_LABEL29:(void)0;
+var29 = var31;
+RET_LABEL30:(void)0;
}
}
{
-var31 = poset__POSetElement___60d_61d(var22, var28);
+var32 = poset__POSetElement___60d_61d(var23, var29);
}
-var32 = !var31;
-if (var32){
-goto CONTINUE_label;
+var33 = !var32;
+if (var33){
+goto BREAK_label;
} else {
}
-var33 = NULL;
+var34 = NULL;
{
{ /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
-var36 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
-if (unlikely(var36 == NULL)) {
+var37 = var_mpropdef->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
+if (unlikely(var37 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
-var34 = var36;
-RET_LABEL35:(void)0;
+var35 = var37;
+RET_LABEL36:(void)0;
}
}
{
-{ /* Inline model#MClassDef#bound_mtype (var34) on <var34:MClassDef> */
-var39 = var34->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var34:MClassDef> */
-if (unlikely(var39 == NULL)) {
+{ /* Inline model#MClassDef#bound_mtype (var35) on <var35:MClassDef> */
+var40 = var35->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var35:MClassDef> */
+if (unlikely(var40 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 495);
show_backtrace(1);
}
-var37 = var39;
-RET_LABEL38:(void)0;
+var38 = var40;
+RET_LABEL39:(void)0;
}
}
{
-var40 = model__MType__is_subtype(var_mtype, var_mmodule, var33, var37);
+var41 = model__MType__is_subtype(var_mtype, var_mmodule, var34, var38);
}
-var41 = !var40;
-if (var41){
-goto CONTINUE_label;
+var42 = !var41;
+if (var42){
+goto BREAK_label;
} else {
}
{
array__Array__add(var_candidates, var_mpropdef); /* Direct call array#Array#add on <var_candidates:Array[MPropDef]>*/
}
-CONTINUE_label: (void)0;
+BREAK_label: (void)0;
{
-array__ArrayIterator__next(var19); /* Direct call array#ArrayIterator#next on <var19:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_20); /* Direct call array#ArrayIterator#next on <var_20:ArrayIterator[MPropDef]>*/
+}
+} else {
+goto BREAK_label43;
+}
+}
+BREAK_label43: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_20) on <var_20:ArrayIterator[MPropDef]> */
+RET_LABEL44:(void)0;
}
}
-BREAK_label: (void)0;
{
-var42 = array__AbstractArrayRead__length(var_candidates);
+{ /* Inline array#AbstractArrayRead#length (var_candidates) on <var_candidates:Array[MPropDef]> */
+var47 = var_candidates->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_candidates:Array[MPropDef]> */
+var45 = var47;
+RET_LABEL46:(void)0;
+}
}
-var43 = 1;
+var48 = 1;
{
-{ /* Inline kernel#Int#<= (var42,var43) on <var42:Int> */
-/* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
-/* <var43:Int> isa OTHER */
-var46 = 1; /* easy <var43:Int> isa OTHER*/
-if (unlikely(!var46)) {
+{ /* Inline kernel#Int#<= (var45,var48) on <var45:Int> */
+/* Covariant cast for argument 0 (i) <var48:Int> isa OTHER */
+/* <var48:Int> isa OTHER */
+var51 = 1; /* easy <var48:Int> isa OTHER*/
+if (unlikely(!var51)) {
var_class_name = type_kernel__Int.name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
show_backtrace(1);
}
-var47 = var42 <= var43;
-var44 = var47;
-goto RET_LABEL45;
-RET_LABEL45:(void)0;
+var52 = var45 <= var48;
+var49 = var52;
+goto RET_LABEL50;
+RET_LABEL50:(void)0;
}
}
-if (var44){
+if (var49){
{
{ /* Inline model#MProperty#lookup_all_definitions_cache (self) on <self:MProperty> */
-var50 = self->attrs[COLOR_model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
-if (unlikely(var50 == NULL)) {
+var55 = self->attrs[COLOR_model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
+if (unlikely(var55 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1800);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1813);
show_backtrace(1);
}
-var48 = var50;
-RET_LABEL49:(void)0;
+var53 = var55;
+RET_LABEL54:(void)0;
}
}
{
-more_collections__HashMap2___91d_93d_61d(var48, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections#HashMap2#[]= on <var48:HashMap2[MModule, MType, Array[MPropDef]]>*/
+more_collections__HashMap2___91d_93d_61d(var53, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections#HashMap2#[]= on <var53:HashMap2[MModule, MType, Array[MPropDef]]>*/
}
var = var_candidates;
goto RET_LABEL;
model__MModule__linearize_mpropdefs(var_mmodule, var_candidates); /* Direct call model#MModule#linearize_mpropdefs on <var_mmodule:MModule>*/
}
{
-var51 = array__AbstractArrayRead__reversed(var_candidates);
+var56 = array__AbstractArrayRead__reversed(var_candidates);
}
-var_candidates = var51;
+var_candidates = var56;
{
{ /* Inline model#MProperty#lookup_all_definitions_cache (self) on <self:MProperty> */
-var54 = self->attrs[COLOR_model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
-if (unlikely(var54 == NULL)) {
+var59 = self->attrs[COLOR_model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
+if (unlikely(var59 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1800);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1813);
show_backtrace(1);
}
-var52 = var54;
-RET_LABEL53:(void)0;
+var57 = var59;
+RET_LABEL58:(void)0;
}
}
{
-more_collections__HashMap2___91d_93d_61d(var52, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections#HashMap2#[]= on <var52:HashMap2[MModule, MType, Array[MPropDef]]>*/
+more_collections__HashMap2___91d_93d_61d(var57, var_mmodule, var_mtype, var_candidates); /* Direct call more_collections#HashMap2#[]= on <var57:HashMap2[MModule, MType, Array[MPropDef]]>*/
}
var = var_candidates;
goto RET_LABEL;
var1 = self->attrs[COLOR_model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:MProperty> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1800);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1813);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MProperty___lookup_all_definitions_cache].val; /* _lookup_all_definitions_cache on <self:Object(MProperty)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lookup_all_definitions_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1800);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1813);
show_backtrace(1);
}
var1 = var3;
}
RET_LABEL:;
}
+/* method model#MMethod#is_root_init for (self: MMethod): Bool */
+short int model__MMethod__is_root_init(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = self->attrs[COLOR_model__MMethod___is_root_init].s; /* _is_root_init on <self:MMethod> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MMethod#is_root_init for (self: Object): Bool */
+short int VIRTUAL_model__MMethod__is_root_init(val* self) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+short int var3 /* : Bool */;
+{ /* Inline model#MMethod#is_root_init (self) on <self:Object(MMethod)> */
+var3 = self->attrs[COLOR_model__MMethod___is_root_init].s; /* _is_root_init on <self:Object(MMethod)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MMethod#is_root_init= for (self: MMethod, Bool) */
+void model__MMethod__is_root_init_61d(val* self, short int p0) {
+self->attrs[COLOR_model__MMethod___is_root_init].s = p0; /* _is_root_init on <self:MMethod> */
+RET_LABEL:;
+}
+/* method model#MMethod#is_root_init= for (self: Object, Bool) */
+void VIRTUAL_model__MMethod__is_root_init_61d(val* self, short int p0) {
+{ /* Inline model#MMethod#is_root_init= (self,p0) on <self:Object(MMethod)> */
+self->attrs[COLOR_model__MMethod___is_root_init].s = p0; /* _is_root_init on <self:Object(MMethod)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
/* method model#MMethod#is_new for (self: MMethod): Bool */
short int model__MMethod__is_new(val* self) {
short int var /* : Bool */;
var1 = self->attrs[COLOR_model__MVirtualTypeProp___mvirtualtype].val; /* _mvirtualtype on <self:MVirtualTypeProp> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mvirtualtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1858);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1874);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MVirtualTypeProp___mvirtualtype].val; /* _mvirtualtype on <self:Object(MVirtualTypeProp)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mvirtualtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1858);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1874);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MPropDef___location].val; /* _location on <self:MPropDef> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1876);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1892);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MPropDef___location].val; /* _location on <self:Object(MPropDef)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1876);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1892);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <self:Object(MPropDef)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <self:Object(MPropDef)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
show_backtrace(1);
}
var1 = var3;
if (unlikely(!var)) {
var_class_name = p0 == NULL ? "null" : p0->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
show_backtrace(1);
}
self->attrs[COLOR_model__MPropDef___mproperty].val = p0; /* _mproperty on <self:MPropDef> */
if (unlikely(!var)) {
var_class_name = p0 == NULL ? "null" : p0->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
show_backtrace(1);
}
self->attrs[COLOR_model__MPropDef___mproperty].val = p0; /* _mproperty on <self:Object(MPropDef)> */
val* var_mclassdef /* var mclassdef: MClassDef */;
val* var_mproperty /* var mproperty: MProperty */;
val* var_location /* var location: Location */;
-short int var4 /* : Bool */;
-int cltype5;
-int idtype6;
-const struct type* type_struct7;
-const char* var_class_name8;
-val* var10 /* : Array[MPropDef] */;
+short int var3 /* : Bool */;
+int cltype4;
+int idtype5;
+const struct type* type_struct6;
+const char* var_class_name7;
+val* var9 /* : Array[MPropDef] */;
+val* var11 /* : Array[MPropDef] */;
val* var12 /* : Array[MPropDef] */;
-val* var13 /* : Array[MPropDef] */;
-val* var15 /* : Array[MPropDef] */;
+val* var14 /* : Array[MPropDef] */;
+val* var15 /* : MClassDef */;
+val* var17 /* : MClassDef */;
+short int var18 /* : Bool */;
+short int var19 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var21 /* : Bool */;
+short int var23 /* : Bool */;
+short int var24 /* : Bool */;
+short int var25 /* : Bool */;
+short int var27 /* : Bool */;
+int cltype28;
+int idtype29;
+const struct type* type_struct30;
+const char* var_class_name31;
static val* varonce;
-val* var16 /* : String */;
-char* var17 /* : NativeString */;
-long var18 /* : Int */;
-val* var19 /* : FlatString */;
-val* var20 /* : Array[Object] */;
-long var21 /* : Int */;
-val* var22 /* : NativeArray[Object] */;
-val* var23 /* : String */;
+val* var32 /* : String */;
+char* var33 /* : NativeString */;
+long var34 /* : Int */;
+val* var35 /* : FlatString */;
+val* var36 /* : Array[Object] */;
+long var37 /* : Int */;
+val* var38 /* : NativeArray[Object] */;
+val* var39 /* : String */;
/* Covariant cast for argument 1 (mproperty) <p1:MProperty> isa MPROPERTY */
/* <p1:MProperty> isa MPROPERTY */
type_struct = self->type->resolution_table->types[COLOR_model__MPropDef_VTMPROPERTY];
if (unlikely(!var)) {
var_class_name = p1 == NULL ? "null" : p1->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1885);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1901);
show_backtrace(1);
}
{
-{ /* Inline model_base#MEntity#init (self) on <self:MPropDef> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MPropDef>*/;
}
var_mclassdef = p0;
var_mproperty = p1;
{
{ /* Inline model#MPropDef#mclassdef= (self,var_mclassdef) on <self:MPropDef> */
self->attrs[COLOR_model__MPropDef___mclassdef].val = var_mclassdef; /* _mclassdef on <self:MPropDef> */
-RET_LABEL2:(void)0;
+RET_LABEL1:(void)0;
}
}
{
{ /* Inline model#MPropDef#mproperty= (self,var_mproperty) on <self:MPropDef> */
/* Covariant cast for argument 0 (mproperty) <var_mproperty:MProperty> isa MPROPERTY */
/* <var_mproperty:MProperty> isa MPROPERTY */
-type_struct7 = self->type->resolution_table->types[COLOR_model__MPropDef_VTMPROPERTY];
-cltype5 = type_struct7->color;
-idtype6 = type_struct7->id;
-if(cltype5 >= var_mproperty->type->table_size) {
-var4 = 0;
+type_struct6 = self->type->resolution_table->types[COLOR_model__MPropDef_VTMPROPERTY];
+cltype4 = type_struct6->color;
+idtype5 = type_struct6->id;
+if(cltype4 >= var_mproperty->type->table_size) {
+var3 = 0;
} else {
-var4 = var_mproperty->type->type_table[cltype5] == idtype6;
+var3 = var_mproperty->type->type_table[cltype4] == idtype5;
}
-if (unlikely(!var4)) {
-var_class_name8 = var_mproperty == NULL ? "null" : var_mproperty->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name8);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
+if (unlikely(!var3)) {
+var_class_name7 = var_mproperty == NULL ? "null" : var_mproperty->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name7);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
show_backtrace(1);
}
self->attrs[COLOR_model__MPropDef___mproperty].val = var_mproperty; /* _mproperty on <self:MPropDef> */
-RET_LABEL3:(void)0;
+RET_LABEL2:(void)0;
}
}
{
{ /* Inline model#MPropDef#location= (self,var_location) on <self:MPropDef> */
self->attrs[COLOR_model__MPropDef___location].val = var_location; /* _location on <self:MPropDef> */
-RET_LABEL9:(void)0;
+RET_LABEL8:(void)0;
}
}
{
{ /* Inline model#MClassDef#mpropdefs (var_mclassdef) on <var_mclassdef:MClassDef> */
-var12 = var_mclassdef->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on <var_mclassdef:MClassDef> */
-if (unlikely(var12 == NULL)) {
+var11 = var_mclassdef->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on <var_mclassdef:MClassDef> */
+if (unlikely(var11 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 574);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 591);
show_backtrace(1);
}
-var10 = var12;
-RET_LABEL11:(void)0;
+var9 = var11;
+RET_LABEL10:(void)0;
}
}
{
-array__Array__add(var10, self); /* Direct call array#Array#add on <var10:Array[MPropDef]>*/
+array__Array__add(var9, self); /* Direct call array#Array#add on <var9:Array[MPropDef]>*/
}
{
{ /* Inline model#MProperty#mpropdefs (var_mproperty) on <var_mproperty:MProperty> */
-var15 = var_mproperty->attrs[COLOR_model__MProperty___mpropdefs].val; /* _mpropdefs on <var_mproperty:MProperty> */
-if (unlikely(var15 == NULL)) {
+var14 = var_mproperty->attrs[COLOR_model__MProperty___mpropdefs].val; /* _mpropdefs on <var_mproperty:MProperty> */
+if (unlikely(var14 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1631);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1644);
show_backtrace(1);
}
-var13 = var15;
-RET_LABEL14:(void)0;
+var12 = var14;
+RET_LABEL13:(void)0;
+}
+}
+{
+array__Array__add(var12, self); /* Direct call array#Array#add on <var12:Array[MPropDef]>*/
+}
+{
+{ /* Inline model#MProperty#intro_mclassdef (var_mproperty) on <var_mproperty:MProperty> */
+var17 = var_mproperty->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mproperty:MProperty> */
+if (unlikely(var17 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1615);
+show_backtrace(1);
+}
+var15 = var17;
+RET_LABEL16:(void)0;
+}
+}
+{
+{ /* Inline kernel#Object#== (var15,var_mclassdef) on <var15:MClassDef> */
+var_other = var_mclassdef;
+{
+{ /* Inline kernel#Object#is_same_instance (var15,var_other) on <var15:MClassDef> */
+var23 = var15 == var_other;
+var21 = var23;
+goto RET_LABEL22;
+RET_LABEL22:(void)0;
}
}
+var19 = var21;
+goto RET_LABEL20;
+RET_LABEL20:(void)0;
+}
+var18 = var19;
+}
+if (var18){
+var24 = var_mproperty->attrs[COLOR_model__MProperty___intro].val != NULL; /* _intro on <var_mproperty:MProperty> */
+var25 = !var24;
+if (unlikely(!var25)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1909);
+show_backtrace(1);
+}
{
-array__Array__add(var13, self); /* Direct call array#Array#add on <var13:Array[MPropDef]>*/
+{ /* Inline model#MProperty#intro= (var_mproperty,self) on <var_mproperty:MProperty> */
+/* Covariant cast for argument 0 (intro) <self:MPropDef> isa MPROPDEF */
+/* <self:MPropDef> isa MPROPDEF */
+type_struct30 = var_mproperty->type->resolution_table->types[COLOR_model__MProperty_VTMPROPDEF];
+cltype28 = type_struct30->color;
+idtype29 = type_struct30->id;
+if(cltype28 >= self->type->table_size) {
+var27 = 0;
+} else {
+var27 = self->type->type_table[cltype28] == idtype29;
+}
+if (unlikely(!var27)) {
+var_class_name31 = self == NULL ? "null" : self->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name31);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
+show_backtrace(1);
+}
+var_mproperty->attrs[COLOR_model__MProperty___intro].val = self; /* _intro on <var_mproperty:MProperty> */
+RET_LABEL26:(void)0;
+}
+}
+} else {
}
if (varonce) {
-var16 = varonce;
+var32 = varonce;
} else {
-var17 = "#";
-var18 = 1;
-var19 = string__NativeString__to_s_with_length(var17, var18);
-var16 = var19;
-varonce = var16;
+var33 = "#";
+var34 = 1;
+var35 = string__NativeString__to_s_with_length(var33, var34);
+var32 = var35;
+varonce = var32;
}
-var20 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var20 = array_instance Array[Object] */
-var21 = 3;
-var22 = NEW_array__NativeArray(var21, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var22)->values[0] = (val*) var_mclassdef;
-((struct instance_array__NativeArray*)var22)->values[1] = (val*) var16;
-((struct instance_array__NativeArray*)var22)->values[2] = (val*) var_mproperty;
+var36 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var36 = array_instance Array[Object] */
+var37 = 3;
+var38 = NEW_array__NativeArray(var37, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var38)->values[0] = (val*) var_mclassdef;
+((struct instance_array__NativeArray*)var38)->values[1] = (val*) var32;
+((struct instance_array__NativeArray*)var38)->values[2] = (val*) var_mproperty;
{
-((void (*)(val*, val*, long))(var20->class->vft[COLOR_array__Array__with_native]))(var20, var22, var21) /* with_native on <var20:Array[Object]>*/;
+((void (*)(val*, val*, long))(var36->class->vft[COLOR_array__Array__with_native]))(var36, var38, var37) /* with_native on <var36:Array[Object]>*/;
}
}
{
-var23 = ((val* (*)(val*))(var20->class->vft[COLOR_string__Object__to_s]))(var20) /* to_s on <var20:Array[Object]>*/;
+var39 = ((val* (*)(val*))(var36->class->vft[COLOR_string__Object__to_s]))(var36) /* to_s on <var36:Array[Object]>*/;
}
{
-{ /* Inline model#MPropDef#to_s= (self,var23) on <self:MPropDef> */
-self->attrs[COLOR_model__MPropDef___to_s].val = var23; /* _to_s on <self:MPropDef> */
-RET_LABEL24:(void)0;
+{ /* Inline model#MPropDef#to_s= (self,var39) on <self:MPropDef> */
+self->attrs[COLOR_model__MPropDef___to_s].val = var39; /* _to_s on <self:MPropDef> */
+RET_LABEL40:(void)0;
}
}
RET_LABEL:;
var3 = self->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
show_backtrace(1);
}
var1 = var3;
var6 = var1->attrs[COLOR_model__MProperty___name].val; /* _name on <var1:MProperty> */
if (unlikely(var6 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1620);
show_backtrace(1);
}
var4 = var6;
var3 = self->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <self:MPropDef> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1895);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MPropDef___to_s].val; /* _to_s on <self:MPropDef> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1900);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1920);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MPropDef___to_s].val; /* _to_s on <self:Object(MPropDef)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1900);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1920);
show_backtrace(1);
}
var1 = var3;
val* var1 /* : MProperty */;
val* var3 /* : MProperty */;
val* var4 /* : MPropDef */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-val* var_other /* var other: nullable Object */;
+val* var6 /* : MPropDef */;
+short int var7 /* : Bool */;
short int var8 /* : Bool */;
+val* var_other /* var other: nullable Object */;
short int var10 /* : Bool */;
+short int var12 /* : Bool */;
{
{ /* Inline model#MPropDef#mproperty (self) on <self:MPropDef> */
var3 = self->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
show_backtrace(1);
}
var1 = var3;
}
}
{
-var4 = model__MProperty__intro(var1);
+{ /* Inline model#MProperty#intro (var1) on <var1:MProperty> */
+var6 = var1->attrs[COLOR_model__MProperty___intro].val; /* _intro on <var1:MProperty> */
+if (unlikely(var6 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1649);
+show_backtrace(1);
+}
+var4 = var6;
+RET_LABEL5:(void)0;
+}
}
{
{ /* Inline kernel#Object#== (var4,self) on <var4:MPropDef> */
var_other = self;
{
{ /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MPropDef> */
-var10 = var4 == var_other;
+var12 = var4 == var_other;
+var10 = var12;
+goto RET_LABEL11;
+RET_LABEL11:(void)0;
+}
+}
var8 = var10;
goto RET_LABEL9;
RET_LABEL9:(void)0;
}
+var7 = var8;
}
-var6 = var8;
-goto RET_LABEL7;
-RET_LABEL7:(void)0;
-}
-var5 = var6;
-}
-var = var5;
+var = var7;
goto RET_LABEL;
RET_LABEL:;
return var;
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1914);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1934);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MPropDef___mproperty].val; /* _mproperty on <self:MPropDef> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1898);
show_backtrace(1);
}
var3 = var5;
} else {
var8 = var_;
}
-if (!var8) break;
+if (var8){
{
array__ArrayIterator__next(var_i); /* Direct call array#ArrayIterator#next on <var_i:ArrayIterator[MPropDef]>*/
}
-CONTINUE_label: (void)0;
+} else {
+goto BREAK_label;
+}
}
BREAK_label: (void)0;
{
}
if (unlikely(!var17)) {
PRINT_ERROR("Runtime error: %s", "Assert \'has_property\' failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1919);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1939);
show_backtrace(1);
}
{
}
if (unlikely(!var18)) {
PRINT_ERROR("Runtime error: %s", "Assert \'has_next_property\' failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1921);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1941);
show_backtrace(1);
}
{
if (unlikely(!var20)) {
var_class_name = var19 == NULL ? "null" : var19->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1922);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1942);
show_backtrace(1);
}
var = var19;
if (unlikely(!var)) {
var_class_name = p1 == NULL ? "null" : p1->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1933);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1953);
show_backtrace(1);
}
var_mclassdef = p0;
}
RET_LABEL:;
}
+/* method model#MMethodDef#new_msignature for (self: MMethodDef): nullable MSignature */
+val* model__MMethodDef__new_msignature(val* self) {
+val* var /* : nullable MSignature */;
+val* var1 /* : nullable MSignature */;
+var1 = self->attrs[COLOR_model__MMethodDef___new_msignature].val; /* _new_msignature on <self:MMethodDef> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MMethodDef#new_msignature for (self: Object): nullable MSignature */
+val* VIRTUAL_model__MMethodDef__new_msignature(val* self) {
+val* var /* : nullable MSignature */;
+val* var1 /* : nullable MSignature */;
+val* var3 /* : nullable MSignature */;
+{ /* Inline model#MMethodDef#new_msignature (self) on <self:Object(MMethodDef)> */
+var3 = self->attrs[COLOR_model__MMethodDef___new_msignature].val; /* _new_msignature on <self:Object(MMethodDef)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MMethodDef#new_msignature= for (self: MMethodDef, nullable MSignature) */
+void model__MMethodDef__new_msignature_61d(val* self, val* p0) {
+self->attrs[COLOR_model__MMethodDef___new_msignature].val = p0; /* _new_msignature on <self:MMethodDef> */
+RET_LABEL:;
+}
+/* method model#MMethodDef#new_msignature= for (self: Object, nullable MSignature) */
+void VIRTUAL_model__MMethodDef__new_msignature_61d(val* self, val* p0) {
+{ /* Inline model#MMethodDef#new_msignature= (self,p0) on <self:Object(MMethodDef)> */
+self->attrs[COLOR_model__MMethodDef___new_msignature].val = p0; /* _new_msignature on <self:Object(MMethodDef)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method model#MMethodDef#initializers for (self: MMethodDef): Array[MProperty] */
+val* model__MMethodDef__initializers(val* self) {
+val* var /* : Array[MProperty] */;
+val* var1 /* : Array[MProperty] */;
+var1 = self->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <self:MMethodDef> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MMethodDef#initializers for (self: Object): Array[MProperty] */
+val* VIRTUAL_model__MMethodDef__initializers(val* self) {
+val* var /* : Array[MProperty] */;
+val* var1 /* : Array[MProperty] */;
+val* var3 /* : Array[MProperty] */;
+{ /* Inline model#MMethodDef#initializers (self) on <self:Object(MMethodDef)> */
+var3 = self->attrs[COLOR_model__MMethodDef___initializers].val; /* _initializers on <self:Object(MMethodDef)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1967);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
/* method model#MMethodDef#is_abstract for (self: MMethodDef): Bool */
short int model__MMethodDef__is_abstract(val* self) {
short int var /* : Bool */;
}
RET_LABEL:;
}
+/* method model#MMethodDef#constant_value for (self: MMethodDef): nullable Object */
+val* model__MMethodDef__constant_value(val* self) {
+val* var /* : nullable Object */;
+val* var1 /* : nullable Object */;
+var1 = self->attrs[COLOR_model__MMethodDef___constant_value].val; /* _constant_value on <self:MMethodDef> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MMethodDef#constant_value for (self: Object): nullable Object */
+val* VIRTUAL_model__MMethodDef__constant_value(val* self) {
+val* var /* : nullable Object */;
+val* var1 /* : nullable Object */;
+val* var3 /* : nullable Object */;
+{ /* Inline model#MMethodDef#constant_value (self) on <self:Object(MMethodDef)> */
+var3 = self->attrs[COLOR_model__MMethodDef___constant_value].val; /* _constant_value on <self:Object(MMethodDef)> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MMethodDef#constant_value= for (self: MMethodDef, nullable Object) */
+void model__MMethodDef__constant_value_61d(val* self, val* p0) {
+self->attrs[COLOR_model__MMethodDef___constant_value].val = p0; /* _constant_value on <self:MMethodDef> */
+RET_LABEL:;
+}
+/* method model#MMethodDef#constant_value= for (self: Object, nullable Object) */
+void VIRTUAL_model__MMethodDef__constant_value_61d(val* self, val* p0) {
+{ /* Inline model#MMethodDef#constant_value= (self,p0) on <self:Object(MMethodDef)> */
+self->attrs[COLOR_model__MMethodDef___constant_value].val = p0; /* _constant_value on <self:Object(MMethodDef)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
/* method model#MAttributeDef#init for (self: MAttributeDef, MClassDef, MAttribute, Location) */
void model__MAttributeDef__init(val* self, val* p0, val* p1, val* p2) {
short int var /* : Bool */;
if (unlikely(!var)) {
var_class_name = p1 == NULL ? "null" : p1->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1958);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 2001);
show_backtrace(1);
}
var_mclassdef = p0;
if (unlikely(!var)) {
var_class_name = p1 == NULL ? "null" : p1->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1974);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 2017);
show_backtrace(1);
}
var_mclassdef = p0;
var1 = self->attrs[COLOR_model__MClassKind___to_s].val; /* _to_s on <self:MClassKind> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1997);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 2040);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassKind___to_s].val; /* _to_s on <self:Object(MClassKind)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1997);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 2040);
show_backtrace(1);
}
var1 = var3;