var1 = self->attrs[COLOR_model__Model___mclasses].val; /* _mclasses on <self:Model> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 36);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 34);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__Model___mclasses].val; /* _mclasses on <self:Object(Model)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 36);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 34);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__Model___mproperties].val; /* _mproperties on <self:Model> */
if (unlikely(var1 == 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);
}
var = var1;
var3 = self->attrs[COLOR_model__Model___mproperties].val; /* _mproperties on <self:Object(Model)> */
if (unlikely(var3 == 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);
}
var1 = var3;
var1 = self->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on <self:Model> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 42);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on <self:Object(Model)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 42);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on <self:Model> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 48);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 46);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on <self:Object(Model)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 48);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 46);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on <self:Model> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 59);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 57);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on <self:Object(Model)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 59);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 57);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on <self:Model> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 68);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on <self:Object(Model)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 68);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
show_backtrace(1);
}
var1 = var3;
var3 = self->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on <self:Model> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 68);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
show_backtrace(1);
}
var1 = var3;
var7 = self->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on <self:Model> */
if (unlikely(var7 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 68);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
show_backtrace(1);
}
var5 = var7;
var1 = self->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on <self:Model> */
if (unlikely(var1 == 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);
}
var = var1;
var3 = self->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on <self:Object(Model)> */
if (unlikely(var3 == 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);
}
var1 = var3;
var3 = self->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on <self:Model> */
if (unlikely(var3 == 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);
}
var1 = var3;
var9 = self->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on <self:Model> */
if (unlikely(var9 == 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);
}
var7 = var9;
var1 = self->attrs[COLOR_model__Model___null_type].val; /* _null_type on <self:Model> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 104);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 102);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__Model___null_type].val; /* _null_type on <self:Object(Model)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 104);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 102);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on <self:MModule> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 138);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on <self:Object(MModule)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 138);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on <self:MModule> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on <self:Object(MModule)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
show_backtrace(1);
}
var1 = var3;
short int var9 /* : Bool */;
short int var10 /* : Bool */;
val* var11 /* : POSet[MClass] */;
-val* var13 /* : POSetElement[MModule] */;
-val* var15 /* : POSetElement[MModule] */;
-val* var16 /* : Collection[Object] */;
-val* var17 /* : Iterator[nullable Object] */;
+val* var12 /* : POSetElement[MModule] */;
+val* var14 /* : POSetElement[MModule] */;
+val* var15 /* : Collection[Object] */;
+val* var_ /* var : Collection[MModule] */;
+val* var16 /* : Iterator[nullable Object] */;
+val* var_17 /* var : Iterator[MModule] */;
short int var18 /* : Bool */;
val* var19 /* : nullable Object */;
val* var_m /* var m: MModule */;
val* var20 /* : Array[MClassDef] */;
val* var22 /* : Array[MClassDef] */;
-val* var23 /* : ArrayIterator[nullable Object] */;
-short int var24 /* : Bool */;
-val* var25 /* : nullable Object */;
+val* var_23 /* var : Array[MClassDef] */;
+val* var24 /* : ArrayIterator[nullable Object] */;
+val* var_25 /* var : ArrayIterator[MClassDef] */;
+short int var26 /* : Bool */;
+val* var27 /* : nullable Object */;
val* var_cd /* var cd: MClassDef */;
-val* var26 /* : MClass */;
val* var28 /* : MClass */;
+val* var30 /* : MClass */;
val* var_c /* var c: MClass */;
-val* var29 /* : POSetElement[Object] */;
-val* var30 /* : Array[MClassType] */;
+val* var31 /* : POSetElement[Object] */;
val* var32 /* : Array[MClassType] */;
-val* var33 /* : ArrayIterator[nullable Object] */;
-short int var34 /* : Bool */;
-val* var35 /* : nullable Object */;
+val* var34 /* : Array[MClassType] */;
+val* var_35 /* var : Array[MClassType] */;
+val* var36 /* : ArrayIterator[nullable Object] */;
+val* var_37 /* var : ArrayIterator[MClassType] */;
+short int var38 /* : Bool */;
+val* var39 /* : nullable Object */;
val* var_s /* var s: MClassType */;
-val* var36 /* : MClass */;
-val* var38 /* : MClass */;
+val* var40 /* : MClass */;
+val* var42 /* : MClass */;
{
{ /* Inline model#MModule#flatten_mclass_hierarchy_cache (self) on <self:MModule> */
var3 = self->attrs[COLOR_model__MModule___flatten_mclass_hierarchy_cache].val; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
}
var11 = NEW_poset__POSet(&type_poset__POSetmodel__MClass);
{
-{ /* Inline poset#POSet#init (var11) on <var11:POSet[MClass]> */
-RET_LABEL12:(void)0;
-}
+((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on <var11:POSet[MClass]>*/;
}
var_res = var11;
{
{ /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
-var15 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <self:MModule> */
-if (unlikely(var15 == NULL)) {
+var14 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <self: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);
}
-var13 = var15;
-RET_LABEL14:(void)0;
+var12 = var14;
+RET_LABEL13:(void)0;
}
}
{
-var16 = poset__POSetElement__greaters(var13);
+var15 = poset__POSetElement__greaters(var12);
}
+var_ = var15;
{
-var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on <var16:Collection[Object](Collection[MModule])>*/;
+var16 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Collection[MModule]>*/;
}
+var_17 = var16;
for(;;) {
{
-var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on <var17:Iterator[nullable Object]>*/;
+var18 = ((short int (*)(val*))(var_17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_17) /* is_ok on <var_17:Iterator[MModule]>*/;
}
-if(!var18) break;
+if (var18){
{
-var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on <var17:Iterator[nullable Object]>*/;
+var19 = ((val* (*)(val*))(var_17->class->vft[COLOR_abstract_collection__Iterator__item]))(var_17) /* item on <var_17:Iterator[MModule]>*/;
}
var_m = var19;
{
var22 = var_m->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on <var_m:MModule> */
if (unlikely(var22 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
show_backtrace(1);
}
var20 = var22;
RET_LABEL21:(void)0;
}
}
+var_23 = var20;
{
-var23 = array__AbstractArrayRead__iterator(var20);
+var24 = array__AbstractArrayRead__iterator(var_23);
}
+var_25 = var24;
for(;;) {
{
-var24 = array__ArrayIterator__is_ok(var23);
+var26 = array__ArrayIterator__is_ok(var_25);
}
-if(!var24) break;
+if (var26){
{
-var25 = array__ArrayIterator__item(var23);
+var27 = array__ArrayIterator__item(var_25);
}
-var_cd = var25;
+var_cd = var27;
{
{ /* Inline model#MClassDef#mclass (var_cd) on <var_cd:MClassDef> */
-var28 = var_cd->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_cd:MClassDef> */
-if (unlikely(var28 == NULL)) {
+var30 = var_cd->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_cd: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);
}
-var26 = var28;
-RET_LABEL27:(void)0;
+var28 = var30;
+RET_LABEL29:(void)0;
}
}
-var_c = var26;
+var_c = var28;
{
-var29 = poset__POSet__add_node(var_res, var_c);
+var31 = poset__POSet__add_node(var_res, var_c);
}
-var29;
{
{ /* Inline model#MClassDef#supertypes (var_cd) on <var_cd:MClassDef> */
-var32 = var_cd->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <var_cd:MClassDef> */
-if (unlikely(var32 == NULL)) {
+var34 = var_cd->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <var_cd:MClassDef> */
+if (unlikely(var34 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
show_backtrace(1);
}
-var30 = var32;
-RET_LABEL31:(void)0;
+var32 = var34;
+RET_LABEL33:(void)0;
}
}
+var_35 = var32;
{
-var33 = array__AbstractArrayRead__iterator(var30);
+var36 = array__AbstractArrayRead__iterator(var_35);
}
+var_37 = var36;
for(;;) {
{
-var34 = array__ArrayIterator__is_ok(var33);
+var38 = array__ArrayIterator__is_ok(var_37);
}
-if(!var34) break;
+if (var38){
{
-var35 = array__ArrayIterator__item(var33);
+var39 = array__ArrayIterator__item(var_37);
}
-var_s = var35;
+var_s = var39;
{
{ /* Inline model#MClassType#mclass (var_s) on <var_s:MClassType> */
-var38 = var_s->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_s:MClassType> */
-if (unlikely(var38 == NULL)) {
+var42 = var_s->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_s:MClassType> */
+if (unlikely(var42 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
-var36 = var38;
-RET_LABEL37:(void)0;
+var40 = var42;
+RET_LABEL41:(void)0;
}
}
{
-poset__POSet__add_edge(var_res, var_c, var36); /* Direct call poset#POSet#add_edge on <var_res:nullable POSet[MClass](POSet[MClass])>*/
+poset__POSet__add_edge(var_res, var_c, var40); /* Direct call poset#POSet#add_edge on <var_res:nullable POSet[MClass](POSet[MClass])>*/
}
-CONTINUE_label: (void)0;
{
-array__ArrayIterator__next(var33); /* Direct call array#ArrayIterator#next on <var33:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_37); /* Direct call array#ArrayIterator#next on <var_37:ArrayIterator[MClassType]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
-CONTINUE_label39: (void)0;
{
-array__ArrayIterator__next(var23); /* Direct call array#ArrayIterator#next on <var23:ArrayIterator[nullable Object]>*/
+{ /* Inline abstract_collection#Iterator#finish (var_37) on <var_37:ArrayIterator[MClassType]> */
+RET_LABEL43:(void)0;
+}
+}
+{
+array__ArrayIterator__next(var_25); /* Direct call array#ArrayIterator#next on <var_25:ArrayIterator[MClassDef]>*/
+}
+} else {
+goto BREAK_label44;
+}
+}
+BREAK_label44: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_25) on <var_25:ArrayIterator[MClassDef]> */
+RET_LABEL45:(void)0;
+}
+}
+{
+((void (*)(val*))(var_17->class->vft[COLOR_abstract_collection__Iterator__next]))(var_17) /* next on <var_17:Iterator[MModule]>*/;
+}
+} else {
+goto BREAK_label46;
}
}
-BREAK_label39: (void)0;
-CONTINUE_label40: (void)0;
+BREAK_label46: (void)0;
{
-((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on <var17:Iterator[nullable Object]>*/;
+{ /* Inline abstract_collection#Iterator#finish (var_17) on <var_17:Iterator[MModule]> */
+RET_LABEL47:(void)0;
}
}
-BREAK_label40: (void)0;
{
{ /* Inline model#MModule#flatten_mclass_hierarchy_cache= (self,var_res) on <self:MModule> */
self->attrs[COLOR_model__MModule___flatten_mclass_hierarchy_cache].val = var_res; /* _flatten_mclass_hierarchy_cache on <self:MModule> */
-RET_LABEL41:(void)0;
+RET_LABEL48:(void)0;
}
}
var = var_res;
var_mclassdefs = p0;
var = NEW_model__MClassDefSorter(&type_model__MClassDefSorter);
{
-{ /* Inline model#MClassDefSorter#init (var,self) on <var:MClassDefSorter> */
-var->attrs[COLOR_model__MClassDefSorter___mmodule].val = self; /* _mmodule on <var:MClassDefSorter> */
-RET_LABEL1:(void)0;
+((void (*)(val*, val*))(var->class->vft[COLOR_model__MClassDefSorter__mmodule_61d]))(var, self) /* mmodule= on <var:MClassDefSorter>*/;
}
+{
+((void (*)(val*))(var->class->vft[COLOR_kernel__Object__init]))(var) /* init on <var:MClassDefSorter>*/;
}
var_sorter = var;
{
var_mpropdefs = p0;
var = NEW_model__MPropDefSorter(&type_model__MPropDefSorter);
{
-{ /* Inline model#MPropDefSorter#init (var,self) on <var:MPropDefSorter> */
-var->attrs[COLOR_model__MPropDefSorter___mmodule].val = self; /* _mmodule on <var:MPropDefSorter> */
-RET_LABEL1:(void)0;
+((void (*)(val*, val*))(var->class->vft[COLOR_model__MPropDefSorter__mmodule_61d]))(var, self) /* mmodule= on <var:MPropDefSorter>*/;
}
+{
+((void (*)(val*))(var->class->vft[COLOR_kernel__Object__init]))(var) /* init on <var:MPropDefSorter>*/;
}
var_sorter = var;
{
var18 = var15->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var15:MClass> */
if (unlikely(var18 == 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);
}
var16 = var18;
}
RET_LABEL:;
}
+/* method model#MModule#pointer_type for (self: MModule): MClassType */
+val* model__MModule__pointer_type(val* self) {
+val* var /* : MClassType */;
+short int var1 /* : Bool */;
+val* var2 /* : MClassType */;
+static val* varonce;
+val* var3 /* : String */;
+char* var4 /* : NativeString */;
+long var5 /* : Int */;
+val* var6 /* : FlatString */;
+val* var7 /* : MClass */;
+val* var8 /* : MClassType */;
+val* var10 /* : MClassType */;
+var1 = self->attrs[COLOR_model__MModule___pointer_type].val != NULL; /* _pointer_type on <self:MModule> */
+if(likely(var1)) {
+var2 = self->attrs[COLOR_model__MModule___pointer_type].val; /* _pointer_type on <self:MModule> */
+if (unlikely(var2 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pointer_type");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 217);
+show_backtrace(1);
+}
+} else {
+if (varonce) {
+var3 = varonce;
+} else {
+var4 = "Pointer";
+var5 = 7;
+var6 = string__NativeString__to_s_with_length(var4, var5);
+var3 = var6;
+varonce = var3;
+}
+{
+var7 = model__MModule__get_primitive_class(self, var3);
+}
+{
+{ /* Inline model#MClass#mclass_type (var7) on <var7:MClass> */
+var10 = var7->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var7:MClass> */
+if (unlikely(var10 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
+show_backtrace(1);
+}
+var8 = var10;
+RET_LABEL9:(void)0;
+}
+}
+self->attrs[COLOR_model__MModule___pointer_type].val = var8; /* _pointer_type on <self:MModule> */
+var2 = var8;
+}
+var = var2;
+RET_LABEL:;
+return var;
+}
+/* method model#MModule#pointer_type for (self: Object): MClassType */
+val* VIRTUAL_model__MModule__pointer_type(val* self) {
+val* var /* : MClassType */;
+val* var1 /* : MClassType */;
+short int var3 /* : Bool */;
+val* var4 /* : MClassType */;
+static val* varonce;
+val* var5 /* : String */;
+char* var6 /* : NativeString */;
+long var7 /* : Int */;
+val* var8 /* : FlatString */;
+val* var9 /* : MClass */;
+val* var10 /* : MClassType */;
+val* var12 /* : MClassType */;
+{ /* Inline model#MModule#pointer_type (self) on <self:Object(MModule)> */
+var3 = self->attrs[COLOR_model__MModule___pointer_type].val != NULL; /* _pointer_type on <self:Object(MModule)> */
+if(likely(var3)) {
+var4 = self->attrs[COLOR_model__MModule___pointer_type].val; /* _pointer_type on <self:Object(MModule)> */
+if (unlikely(var4 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pointer_type");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 217);
+show_backtrace(1);
+}
+} else {
+if (varonce) {
+var5 = varonce;
+} else {
+var6 = "Pointer";
+var7 = 7;
+var8 = string__NativeString__to_s_with_length(var6, var7);
+var5 = var8;
+varonce = var5;
+}
+{
+var9 = model__MModule__get_primitive_class(self, var5);
+}
+{
+{ /* Inline model#MClass#mclass_type (var9) on <var9:MClass> */
+var12 = var9->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var9:MClass> */
+if (unlikely(var12 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
+show_backtrace(1);
+}
+var10 = var12;
+RET_LABEL11:(void)0;
+}
+}
+self->attrs[COLOR_model__MModule___pointer_type].val = var10; /* _pointer_type on <self:Object(MModule)> */
+var4 = var10;
+}
+var1 = var4;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
/* method model#MModule#bool_type for (self: MModule): MClassType */
val* model__MModule__bool_type(val* self) {
val* var /* : MClassType */;
var18 = var15->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var15:MClass> */
if (unlikely(var18 == 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);
}
var16 = var18;
var3 = self->attrs[COLOR_mmodule__MModule___model].val; /* _model on <self:MModule> */
if (unlikely(var3 == 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);
}
var1 = var3;
var10 = 0; /* arg is null but recv is not */
}
if (0) {
-var11 = abstract_collection__SequenceRead___61d_61d(var_clas, var9);
+var11 = array__Array___61d_61d(var_clas, var9);
var10 = var11;
}
if (var10){
var21 = var18->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var18:MClass> */
if (unlikely(var21 == 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);
}
var19 = var21;
RET_LABEL:;
return var;
}
+/* method model#MModule#finalizable_type for (self: MModule): nullable MClassType */
+val* model__MModule__finalizable_type(val* self) {
+val* var /* : nullable MClassType */;
+val* var1 /* : Model */;
+val* var3 /* : Model */;
+static val* varonce;
+val* var4 /* : String */;
+char* var5 /* : NativeString */;
+long var6 /* : Int */;
+val* var7 /* : FlatString */;
+val* var8 /* : nullable Array[MClass] */;
+val* var_clas /* var clas: nullable Array[MClass] */;
+val* var9 /* : null */;
+short int var10 /* : Bool */;
+short int var11 /* : Bool */;
+val* var12 /* : null */;
+static val* varonce13;
+val* var14 /* : String */;
+char* var15 /* : NativeString */;
+long var16 /* : Int */;
+val* var17 /* : FlatString */;
+val* var18 /* : MClass */;
+val* var19 /* : MClassType */;
+val* var21 /* : MClassType */;
+{
+{ /* Inline mmodule#MModule#model (self) on <self:MModule> */
+var3 = self->attrs[COLOR_mmodule__MModule___model].val; /* _model on <self:MModule> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
+PRINT_ERROR(" (%s:%d)\n", "model/mmodule.nit", 72);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+}
+if (varonce) {
+var4 = varonce;
+} else {
+var5 = "Finalizable";
+var6 = 11;
+var7 = string__NativeString__to_s_with_length(var5, var6);
+var4 = var7;
+varonce = var4;
+}
+{
+var8 = model__Model__get_mclasses_by_name(var1, var4);
+}
+var_clas = var8;
+var9 = NULL;
+if (var_clas == NULL) {
+var10 = 1; /* is null */
+} else {
+var10 = 0; /* arg is null but recv is not */
+}
+if (0) {
+var11 = array__Array___61d_61d(var_clas, var9);
+var10 = var11;
+}
+if (var10){
+var12 = NULL;
+var = var12;
+goto RET_LABEL;
+} else {
+}
+if (varonce13) {
+var14 = varonce13;
+} else {
+var15 = "Finalizable";
+var16 = 11;
+var17 = string__NativeString__to_s_with_length(var15, var16);
+var14 = var17;
+varonce13 = var14;
+}
+{
+var18 = model__MModule__get_primitive_class(self, var14);
+}
+{
+{ /* Inline model#MClass#mclass_type (var18) on <var18:MClass> */
+var21 = var18->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var18:MClass> */
+if (unlikely(var21 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 435);
+show_backtrace(1);
+}
+var19 = var21;
+RET_LABEL20:(void)0;
+}
+}
+var = var19;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method model#MModule#finalizable_type for (self: Object): nullable MClassType */
+val* VIRTUAL_model__MModule__finalizable_type(val* self) {
+val* var /* : nullable MClassType */;
+val* var1 /* : nullable MClassType */;
+var1 = model__MModule__finalizable_type(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
/* method model#MModule#get_primitive_class for (self: MModule, String): MClass */
val* model__MModule__get_primitive_class(val* self, val* p0) {
val* var /* : MClass */;
short int var12 /* : Bool */;
short int var13 /* : Bool */;
val* var14 /* : MClass */;
-long var15 /* : Int */;
+val* var15 /* : null */;
val* var16 /* : MClassKind */;
val* var17 /* : MVisibility */;
val* var_c /* var c: MClass */;
long var25 /* : Int */;
long var26 /* : Int */;
long var27 /* : Int */;
-val* var28 /* : Array[String] */;
val* var_cladef /* var cladef: MClassDef */;
-static val* varonce29;
-val* var30 /* : String */;
-char* var31 /* : NativeString */;
-long var32 /* : Int */;
-val* var33 /* : FlatString */;
-val* var34 /* : Array[Object] */;
-long var35 /* : Int */;
-val* var36 /* : NativeArray[Object] */;
-val* var37 /* : String */;
-long var38 /* : Int */;
-long var40 /* : Int */;
+static val* varonce28;
+val* var29 /* : String */;
+char* var30 /* : NativeString */;
+long var31 /* : Int */;
+val* var32 /* : FlatString */;
+val* var33 /* : Array[Object] */;
+long var34 /* : Int */;
+val* var35 /* : NativeArray[Object] */;
+val* var36 /* : String */;
+long var37 /* : Int */;
+long var39 /* : Int */;
long var41 /* : Int */;
-short int var42 /* : Bool */;
+long var42 /* : Int */;
short int var43 /* : Bool */;
-short int var45 /* : Bool */;
+short int var44 /* : Bool */;
short int var46 /* : Bool */;
-static val* varonce47;
-val* var48 /* : String */;
-char* var49 /* : NativeString */;
-long var50 /* : Int */;
-val* var51 /* : FlatString */;
-static val* varonce52;
-val* var53 /* : String */;
-char* var54 /* : NativeString */;
-long var55 /* : Int */;
-val* var56 /* : FlatString */;
-val* var57 /* : Array[Object] */;
-long var58 /* : Int */;
-val* var59 /* : NativeArray[Object] */;
-val* var60 /* : String */;
+short int var47 /* : Bool */;
+static val* varonce48;
+val* var49 /* : String */;
+char* var50 /* : NativeString */;
+long var51 /* : Int */;
+val* var52 /* : FlatString */;
+static val* varonce53;
+val* var54 /* : String */;
+char* var55 /* : NativeString */;
+long var56 /* : Int */;
+val* var57 /* : FlatString */;
+val* var58 /* : Array[Object] */;
+long var59 /* : Int */;
+val* var60 /* : NativeArray[Object] */;
+val* var61 /* : String */;
val* var_msg /* var msg: String */;
-val* var61 /* : ArrayIterator[nullable Object] */;
-short int var62 /* : Bool */;
-val* var63 /* : nullable Object */;
-val* var_c64 /* var c: MClass */;
-static val* varonce65;
-val* var66 /* : String */;
-char* var67 /* : NativeString */;
-long var68 /* : Int */;
-val* var69 /* : FlatString */;
-val* var70 /* : String */;
-val* var71 /* : Array[Object] */;
-long var72 /* : Int */;
-val* var73 /* : NativeArray[Object] */;
-val* var74 /* : String */;
-val* var75 /* : String */;
-long var76 /* : Int */;
-val* var78 /* : nullable Object */;
+val* var_ /* var : nullable Array[MClass] */;
+val* var62 /* : ArrayIterator[nullable Object] */;
+val* var_63 /* var : ArrayIterator[MClass] */;
+short int var64 /* : Bool */;
+val* var65 /* : nullable Object */;
+val* var_c66 /* var c: MClass */;
+static val* varonce67;
+val* var68 /* : String */;
+char* var69 /* : NativeString */;
+long var70 /* : Int */;
+val* var71 /* : FlatString */;
+val* var72 /* : String */;
+val* var73 /* : Array[Object] */;
+long var74 /* : Int */;
+val* var75 /* : NativeArray[Object] */;
+val* var76 /* : String */;
+val* var77 /* : String */;
+long var79 /* : Int */;
+val* var81 /* : nullable Object */;
var_name = p0;
{
{ /* Inline mmodule#MModule#model (self) on <self:MModule> */
var3 = self->attrs[COLOR_mmodule__MModule___model].val; /* _model on <self:MModule> */
if (unlikely(var3 == 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);
}
var1 = var3;
var6 = 0; /* arg is null but recv is not */
}
if (0) {
-var7 = abstract_collection__SequenceRead___61d_61d(var_cla, var5);
+var7 = array__Array___61d_61d(var_cla, var5);
var6 = var7;
}
if (var6){
}
if (var12){
var14 = NEW_model__MClass(&type_model__MClass);
-var15 = 0;
+var15 = NULL;
{
var16 = model__Object__enum_kind(self);
}
var21 = var_c->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var_c:MClass> */
if (unlikely(var21 == 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);
}
var19 = var21;
{
location__Location__init(var22, var23, var24, var25, var26, var27); /* Direct call location#Location#init on <var22:Location>*/
}
-var28 = NEW_array__Array(&type_array__Arraystring__String);
-{
-array__Array__init(var28); /* Direct call array#Array#init on <var28:Array[String]>*/
-}
{
-model__MClassDef__init(var18, self, var19, var22, var28); /* Direct call model#MClassDef#init on <var18:MClassDef>*/
+model__MClassDef__init(var18, self, var19, var22); /* Direct call model#MClassDef#init on <var18:MClassDef>*/
}
var_cladef = var18;
var = var_c;
goto RET_LABEL;
} else {
}
-if (varonce29) {
-var30 = varonce29;
+if (varonce28) {
+var29 = varonce28;
} else {
-var31 = "Fatal Error: no primitive class ";
-var32 = 32;
-var33 = string__NativeString__to_s_with_length(var31, var32);
-var30 = var33;
-varonce29 = var30;
+var30 = "Fatal Error: no primitive class ";
+var31 = 32;
+var32 = string__NativeString__to_s_with_length(var30, var31);
+var29 = var32;
+varonce28 = var29;
}
-var34 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var34 = array_instance Array[Object] */
-var35 = 2;
-var36 = NEW_array__NativeArray(var35, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var36)->values[0] = (val*) var30;
-((struct instance_array__NativeArray*)var36)->values[1] = (val*) var_name;
+var33 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var33 = array_instance Array[Object] */
+var34 = 2;
+var35 = NEW_array__NativeArray(var34, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var35)->values[0] = (val*) var29;
+((struct instance_array__NativeArray*)var35)->values[1] = (val*) var_name;
{
-((void (*)(val*, val*, long))(var34->class->vft[COLOR_array__Array__with_native]))(var34, var36, var35) /* with_native on <var34:Array[Object]>*/;
+((void (*)(val*, val*, long))(var33->class->vft[COLOR_array__Array__with_native]))(var33, var35, var34) /* with_native on <var33:Array[Object]>*/;
}
}
{
-var37 = ((val* (*)(val*))(var34->class->vft[COLOR_string__Object__to_s]))(var34) /* to_s on <var34:Array[Object]>*/;
+var36 = ((val* (*)(val*))(var33->class->vft[COLOR_string__Object__to_s]))(var33) /* to_s on <var33:Array[Object]>*/;
}
{
-file__Object__print(self, var37); /* Direct call file#Object#print on <self:MModule>*/
+file__Object__print(self, var36); /* Direct call file#Object#print on <self:MModule>*/
}
-var38 = 1;
+var37 = 1;
{
-{ /* Inline kernel#Object#exit (self,var38) on <self:MModule> */
-exit(var38);
-RET_LABEL39:(void)0;
+{ /* Inline kernel#Object#exit (self,var37) on <self:MModule> */
+exit(var37);
+RET_LABEL38:(void)0;
}
}
} else {
}
if (var_cla == NULL) {
PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 252);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 262);
show_backtrace(1);
} else {
-var40 = array__AbstractArrayRead__length(var_cla);
+{ /* Inline array#AbstractArrayRead#length (var_cla) on <var_cla:nullable Array[MClass]> */
+if (unlikely(var_cla == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Receiver is null");
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 24);
+show_backtrace(1);
}
-var41 = 1;
+var41 = var_cla->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_cla:nullable Array[MClass]> */
+var39 = var41;
+RET_LABEL40:(void)0;
+}
+}
+var42 = 1;
{
-{ /* Inline kernel#Int#!= (var40,var41) on <var40:Int> */
-var45 = var40 == var41;
-var46 = !var45;
-var43 = var46;
-goto RET_LABEL44;
-RET_LABEL44:(void)0;
+{ /* Inline kernel#Int#!= (var39,var42) on <var39:Int> */
+var46 = var39 == var42;
+var47 = !var46;
+var44 = var47;
+goto RET_LABEL45;
+RET_LABEL45:(void)0;
}
-var42 = var43;
+var43 = var44;
}
-if (var42){
-if (varonce47) {
-var48 = varonce47;
+if (var43){
+if (varonce48) {
+var49 = varonce48;
} else {
-var49 = "Fatal Error: more than one primitive class ";
-var50 = 43;
-var51 = string__NativeString__to_s_with_length(var49, var50);
-var48 = var51;
-varonce47 = var48;
+var50 = "Fatal Error: more than one primitive class ";
+var51 = 43;
+var52 = string__NativeString__to_s_with_length(var50, var51);
+var49 = var52;
+varonce48 = var49;
}
-if (varonce52) {
-var53 = varonce52;
+if (varonce53) {
+var54 = varonce53;
} else {
-var54 = ":";
-var55 = 1;
-var56 = string__NativeString__to_s_with_length(var54, var55);
-var53 = var56;
-varonce52 = var53;
+var55 = ":";
+var56 = 1;
+var57 = string__NativeString__to_s_with_length(var55, var56);
+var54 = var57;
+varonce53 = var54;
}
-var57 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var57 = array_instance Array[Object] */
-var58 = 3;
-var59 = NEW_array__NativeArray(var58, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var59)->values[0] = (val*) var48;
-((struct instance_array__NativeArray*)var59)->values[1] = (val*) var_name;
-((struct instance_array__NativeArray*)var59)->values[2] = (val*) var53;
+var58 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var58 = array_instance Array[Object] */
+var59 = 3;
+var60 = NEW_array__NativeArray(var59, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var60)->values[0] = (val*) var49;
+((struct instance_array__NativeArray*)var60)->values[1] = (val*) var_name;
+((struct instance_array__NativeArray*)var60)->values[2] = (val*) var54;
{
-((void (*)(val*, val*, long))(var57->class->vft[COLOR_array__Array__with_native]))(var57, var59, var58) /* with_native on <var57:Array[Object]>*/;
+((void (*)(val*, val*, long))(var58->class->vft[COLOR_array__Array__with_native]))(var58, var60, var59) /* with_native on <var58:Array[Object]>*/;
}
}
{
-var60 = ((val* (*)(val*))(var57->class->vft[COLOR_string__Object__to_s]))(var57) /* to_s on <var57:Array[Object]>*/;
+var61 = ((val* (*)(val*))(var58->class->vft[COLOR_string__Object__to_s]))(var58) /* to_s on <var58:Array[Object]>*/;
}
-var_msg = var60;
-if (var_cla == NULL) {
+var_msg = var61;
+var_ = var_cla;
+if (var_ == NULL) {
PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 254);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 264);
show_backtrace(1);
} else {
-var61 = array__AbstractArrayRead__iterator(var_cla);
+var62 = array__AbstractArrayRead__iterator(var_);
}
+var_63 = var62;
for(;;) {
{
-var62 = array__ArrayIterator__is_ok(var61);
+var64 = array__ArrayIterator__is_ok(var_63);
}
-if(!var62) break;
+if (var64){
{
-var63 = array__ArrayIterator__item(var61);
+var65 = array__ArrayIterator__item(var_63);
}
-var_c64 = var63;
-if (varonce65) {
-var66 = varonce65;
+var_c66 = var65;
+if (varonce67) {
+var68 = varonce67;
} else {
-var67 = " ";
-var68 = 1;
-var69 = string__NativeString__to_s_with_length(var67, var68);
-var66 = var69;
-varonce65 = var66;
+var69 = " ";
+var70 = 1;
+var71 = string__NativeString__to_s_with_length(var69, var70);
+var68 = var71;
+varonce67 = var68;
}
{
-var70 = model__MClass__full_name(var_c64);
+var72 = model__MClass__full_name(var_c66);
}
-var71 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var71 = array_instance Array[Object] */
-var72 = 2;
-var73 = NEW_array__NativeArray(var72, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var73)->values[0] = (val*) var66;
-((struct instance_array__NativeArray*)var73)->values[1] = (val*) var70;
+var73 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var73 = array_instance Array[Object] */
+var74 = 2;
+var75 = NEW_array__NativeArray(var74, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var75)->values[0] = (val*) var68;
+((struct instance_array__NativeArray*)var75)->values[1] = (val*) var72;
{
-((void (*)(val*, val*, long))(var71->class->vft[COLOR_array__Array__with_native]))(var71, var73, var72) /* with_native on <var71:Array[Object]>*/;
+((void (*)(val*, val*, long))(var73->class->vft[COLOR_array__Array__with_native]))(var73, var75, var74) /* with_native on <var73:Array[Object]>*/;
}
}
{
-var74 = ((val* (*)(val*))(var71->class->vft[COLOR_string__Object__to_s]))(var71) /* to_s on <var71:Array[Object]>*/;
+var76 = ((val* (*)(val*))(var73->class->vft[COLOR_string__Object__to_s]))(var73) /* to_s on <var73:Array[Object]>*/;
}
{
-var75 = string__FlatString___43d(var_msg, var74);
+var77 = string__FlatString___43d(var_msg, var76);
}
-var_msg = var75;
-CONTINUE_label: (void)0;
+var_msg = var77;
{
-array__ArrayIterator__next(var61); /* Direct call array#ArrayIterator#next on <var61:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_63); /* Direct call array#ArrayIterator#next on <var_63:ArrayIterator[MClass]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
{
+{ /* Inline abstract_collection#Iterator#finish (var_63) on <var_63:ArrayIterator[MClass]> */
+RET_LABEL78:(void)0;
+}
+}
+{
file__Object__print(self, var_msg); /* Direct call file#Object#print on <self:MModule>*/
}
-var76 = 1;
+var79 = 1;
{
-{ /* Inline kernel#Object#exit (self,var76) on <self:MModule> */
-exit(var76);
-RET_LABEL77:(void)0;
+{ /* Inline kernel#Object#exit (self,var79) on <self:MModule> */
+exit(var79);
+RET_LABEL80:(void)0;
}
}
} else {
}
if (var_cla == NULL) {
PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 258);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 268);
show_backtrace(1);
} else {
-var78 = abstract_collection__SequenceRead__first(var_cla);
+var81 = abstract_collection__SequenceRead__first(var_cla);
}
-var = var78;
+var = var81;
goto RET_LABEL;
RET_LABEL:;
return var;
val* var8 /* : null */;
val* var9 /* : null */;
val* var_res /* var res: nullable MMethod */;
+val* var_ /* var : Array[MProperty] */;
val* var10 /* : ArrayIterator[nullable Object] */;
-short int var11 /* : Bool */;
-val* var12 /* : nullable Object */;
+val* var_11 /* var : ArrayIterator[MProperty] */;
+short int var12 /* : Bool */;
+val* var13 /* : nullable Object */;
val* var_mprop /* var mprop: MProperty */;
-short int var13 /* : Bool */;
+short int var14 /* : Bool */;
int cltype;
int idtype;
-val* var14 /* : MClassDef */;
-val* var16 /* : MClassDef */;
+val* var15 /* : MClassDef */;
+val* var17 /* : MClassDef */;
val* var_intro /* var intro: MClassDef */;
-val* var17 /* : Array[MClassDef] */;
-val* var19 /* : Array[MClassDef] */;
-val* var20 /* : ArrayIterator[nullable Object] */;
-short int var21 /* : Bool */;
-val* var22 /* : nullable Object */;
+val* var18 /* : Array[MClassDef] */;
+val* var20 /* : Array[MClassDef] */;
+val* var_21 /* var : Array[MClassDef] */;
+val* var22 /* : ArrayIterator[nullable Object] */;
+val* var_23 /* var : ArrayIterator[MClassDef] */;
+short int var24 /* : Bool */;
+val* var25 /* : nullable Object */;
val* var_mclassdef /* var mclassdef: MClassDef */;
-val* var23 /* : POSetElement[MModule] */;
-val* var25 /* : POSetElement[MModule] */;
-val* var26 /* : Collection[Object] */;
-val* var27 /* : MModule */;
-val* var29 /* : MModule */;
-short int var30 /* : Bool */;
-short int var31 /* : Bool */;
-val* var32 /* : nullable POSetElement[MClassDef] */;
-val* var34 /* : nullable POSetElement[MClassDef] */;
-val* var35 /* : Collection[Object] */;
-short int var36 /* : Bool */;
-short int var37 /* : Bool */;
-val* var38 /* : null */;
+val* var26 /* : POSetElement[MModule] */;
+val* var28 /* : POSetElement[MModule] */;
+val* var29 /* : Collection[Object] */;
+val* var30 /* : MModule */;
+val* var32 /* : MModule */;
+short int var33 /* : Bool */;
+short int var34 /* : Bool */;
+val* var35 /* : nullable POSetElement[MClassDef] */;
+val* var37 /* : nullable POSetElement[MClassDef] */;
+val* var38 /* : Collection[Object] */;
short int var39 /* : Bool */;
short int var40 /* : Bool */;
-val* var_other /* var other: nullable Object */;
+val* var41 /* : null */;
short int var42 /* : Bool */;
-short int var44 /* : Bool */;
+short int var43 /* : Bool */;
+val* var_other /* var other: nullable Object */;
short int var45 /* : Bool */;
-short int var46 /* : Bool */;
-val* var_other48 /* var other: nullable Object */;
+short int var47 /* : Bool */;
+short int var48 /* : Bool */;
short int var49 /* : Bool */;
-short int var50 /* : Bool */;
-short int var51 /* : Bool */;
+val* var_other51 /* var other: nullable Object */;
+short int var52 /* : Bool */;
+short int var53 /* : Bool */;
+short int var54 /* : Bool */;
static val* varonce;
-val* var52 /* : String */;
-char* var53 /* : NativeString */;
-long var54 /* : Int */;
-val* var55 /* : FlatString */;
-static val* varonce56;
-val* var57 /* : String */;
-char* var58 /* : NativeString */;
-long var59 /* : Int */;
-val* var60 /* : FlatString */;
-val* var61 /* : String */;
-static val* varonce62;
-val* var63 /* : String */;
-char* var64 /* : NativeString */;
-long var65 /* : Int */;
-val* var66 /* : FlatString */;
-val* var67 /* : String */;
-val* var68 /* : Array[Object] */;
-long var69 /* : Int */;
-val* var70 /* : NativeArray[Object] */;
-val* var71 /* : String */;
+val* var55 /* : String */;
+char* var56 /* : NativeString */;
+long var57 /* : Int */;
+val* var58 /* : FlatString */;
+static val* varonce59;
+val* var60 /* : String */;
+char* var61 /* : NativeString */;
+long var62 /* : Int */;
+val* var63 /* : FlatString */;
+val* var64 /* : String */;
+static val* varonce65;
+val* var66 /* : String */;
+char* var67 /* : NativeString */;
+long var68 /* : Int */;
+val* var69 /* : FlatString */;
+val* var70 /* : String */;
+val* var71 /* : Array[Object] */;
+long var72 /* : Int */;
+val* var73 /* : NativeArray[Object] */;
+val* var74 /* : String */;
var_name = p0;
var_recv = p1;
{
var3 = self->attrs[COLOR_mmodule__MModule___model].val; /* _model on <self:MModule> */
if (unlikely(var3 == 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);
}
var1 = var3;
var6 = 0; /* arg is null but recv is not */
}
if (0) {
-var7 = abstract_collection__SequenceRead___61d_61d(var_props, var5);
+var7 = array__Array___61d_61d(var_props, var5);
var6 = var7;
}
if (var6){
}
var9 = NULL;
var_res = var9;
+var_ = var_props;
{
-var10 = array__AbstractArrayRead__iterator(var_props);
+var10 = array__AbstractArrayRead__iterator(var_);
}
+var_11 = var10;
for(;;) {
{
-var11 = array__ArrayIterator__is_ok(var10);
+var12 = array__ArrayIterator__is_ok(var_11);
}
-if(!var11) break;
+if (var12){
{
-var12 = array__ArrayIterator__item(var10);
+var13 = array__ArrayIterator__item(var_11);
}
-var_mprop = var12;
+var_mprop = var13;
/* <var_mprop:MProperty> isa MMethod */
cltype = type_model__MMethod.color;
idtype = type_model__MMethod.id;
if(cltype >= var_mprop->type->table_size) {
-var13 = 0;
+var14 = 0;
} else {
-var13 = var_mprop->type->type_table[cltype] == idtype;
+var14 = var_mprop->type->type_table[cltype] == idtype;
}
-if (unlikely(!var13)) {
+if (unlikely(!var14)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 268);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 278);
show_backtrace(1);
}
{
{ /* Inline model#MProperty#intro_mclassdef (var_mprop) on <var_mprop:MProperty(MMethod)> */
-var16 = var_mprop->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
-if (unlikely(var16 == NULL)) {
+var17 = var_mprop->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mprop:MProperty(MMethod)> */
+if (unlikely(var17 == 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);
}
-var14 = var16;
-RET_LABEL15:(void)0;
+var15 = var17;
+RET_LABEL16:(void)0;
}
}
-var_intro = var14;
+var_intro = var15;
{
{ /* Inline model#MClass#mclassdefs (var_recv) on <var_recv:MClass> */
-var19 = var_recv->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <var_recv:MClass> */
-if (unlikely(var19 == NULL)) {
+var20 = var_recv->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <var_recv:MClass> */
+if (unlikely(var20 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
show_backtrace(1);
}
-var17 = var19;
-RET_LABEL18:(void)0;
+var18 = var20;
+RET_LABEL19:(void)0;
}
}
+var_21 = var18;
{
-var20 = array__AbstractArrayRead__iterator(var17);
+var22 = array__AbstractArrayRead__iterator(var_21);
}
+var_23 = var22;
for(;;) {
{
-var21 = array__ArrayIterator__is_ok(var20);
+var24 = array__ArrayIterator__is_ok(var_23);
}
-if(!var21) break;
+if (var24){
{
-var22 = array__ArrayIterator__item(var20);
+var25 = array__ArrayIterator__item(var_23);
}
-var_mclassdef = var22;
+var_mclassdef = var25;
{
{ /* Inline mmodule#MModule#in_importation (self) on <self:MModule> */
-var25 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <self:MModule> */
-if (unlikely(var25 == NULL)) {
+var28 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <self:MModule> */
+if (unlikely(var28 == 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);
}
-var23 = var25;
-RET_LABEL24:(void)0;
+var26 = var28;
+RET_LABEL27:(void)0;
}
}
{
-var26 = poset__POSetElement__greaters(var23);
+var29 = poset__POSetElement__greaters(var26);
}
{
{ /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
-var29 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
-if (unlikely(var29 == NULL)) {
+var32 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
+if (unlikely(var32 == 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);
}
-var27 = var29;
-RET_LABEL28:(void)0;
+var30 = var32;
+RET_LABEL31:(void)0;
}
}
{
-var30 = ((short int (*)(val*, val*))(var26->class->vft[COLOR_abstract_collection__Collection__has]))(var26, var27) /* has on <var26:Collection[Object](Collection[MModule])>*/;
+var33 = ((short int (*)(val*, val*))(var29->class->vft[COLOR_abstract_collection__Collection__has]))(var29, var30) /* has on <var29:Collection[Object](Collection[MModule])>*/;
}
-var31 = !var30;
-if (var31){
-goto CONTINUE_label;
+var34 = !var33;
+if (var34){
+goto BREAK_label;
} else {
}
{
{ /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on <var_mclassdef:MClassDef> */
-var34 = var_mclassdef->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <var_mclassdef:MClassDef> */
-var32 = var34;
-RET_LABEL33:(void)0;
+var37 = var_mclassdef->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <var_mclassdef:MClassDef> */
+var35 = var37;
+RET_LABEL36:(void)0;
}
}
-if (var32 == NULL) {
+if (var35 == NULL) {
PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 272);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 282);
show_backtrace(1);
} else {
-var35 = poset__POSetElement__greaters(var32);
+var38 = poset__POSetElement__greaters(var35);
}
{
-var36 = ((short int (*)(val*, val*))(var35->class->vft[COLOR_abstract_collection__Collection__has]))(var35, var_intro) /* has on <var35:Collection[Object](Collection[MClassDef])>*/;
+var39 = ((short int (*)(val*, val*))(var38->class->vft[COLOR_abstract_collection__Collection__has]))(var38, var_intro) /* has on <var38:Collection[Object](Collection[MClassDef])>*/;
}
-var37 = !var36;
-if (var37){
-goto CONTINUE_label;
+var40 = !var39;
+if (var40){
+goto BREAK_label;
} else {
}
-var38 = NULL;
+var41 = NULL;
if (var_res == NULL) {
-var39 = 1; /* is null */
+var42 = 1; /* is null */
} else {
-var39 = 0; /* arg is null but recv is not */
+var42 = 0; /* arg is null but recv is not */
}
if (0) {
-{ /* Inline kernel#Object#== (var_res,var38) on <var_res:nullable MMethod> */
-var_other = var38;
+{ /* Inline kernel#Object#== (var_res,var41) on <var_res:nullable MMethod> */
+var_other = var41;
{
{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MMethod(MMethod)> */
-var44 = var_res == var_other;
-var42 = var44;
-goto RET_LABEL43;
-RET_LABEL43:(void)0;
+var47 = var_res == var_other;
+var45 = var47;
+goto RET_LABEL46;
+RET_LABEL46:(void)0;
}
}
-var40 = var42;
-goto RET_LABEL41;
-RET_LABEL41:(void)0;
+var43 = var45;
+goto RET_LABEL44;
+RET_LABEL44:(void)0;
}
-var39 = var40;
+var42 = var43;
}
-if (var39){
+if (var42){
var_res = var_mprop;
} else {
{
{ /* Inline kernel#Object#!= (var_res,var_mprop) on <var_res:nullable MMethod(MMethod)> */
-var_other48 = var_mprop;
+var_other51 = var_mprop;
{
-var50 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other48) /* == on <var_res:nullable MMethod(MMethod)>*/;
-var49 = var50;
+var53 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other51) /* == on <var_res:nullable MMethod(MMethod)>*/;
+var52 = var53;
}
-var51 = !var49;
-var46 = var51;
-goto RET_LABEL47;
-RET_LABEL47:(void)0;
+var54 = !var52;
+var49 = var54;
+goto RET_LABEL50;
+RET_LABEL50:(void)0;
}
-var45 = var46;
+var48 = var49;
}
-if (var45){
+if (var48){
if (varonce) {
-var52 = varonce;
+var55 = varonce;
} else {
-var53 = "Fatal Error: ambigous property name \'";
-var54 = 37;
-var55 = string__NativeString__to_s_with_length(var53, var54);
-var52 = var55;
-varonce = var52;
+var56 = "Fatal Error: ambigous property name \'";
+var57 = 37;
+var58 = string__NativeString__to_s_with_length(var56, var57);
+var55 = var58;
+varonce = var55;
}
-if (varonce56) {
-var57 = varonce56;
+if (varonce59) {
+var60 = varonce59;
} else {
-var58 = "\'; conflict between ";
-var59 = 20;
-var60 = string__NativeString__to_s_with_length(var58, var59);
-var57 = var60;
-varonce56 = var57;
+var61 = "\'; conflict between ";
+var62 = 20;
+var63 = string__NativeString__to_s_with_length(var61, var62);
+var60 = var63;
+varonce59 = var60;
}
{
-var61 = model__MProperty__full_name(var_mprop);
+var64 = model__MProperty__full_name(var_mprop);
}
-if (varonce62) {
-var63 = varonce62;
+if (varonce65) {
+var66 = varonce65;
} else {
-var64 = " and ";
-var65 = 5;
-var66 = string__NativeString__to_s_with_length(var64, var65);
-var63 = var66;
-varonce62 = var63;
+var67 = " and ";
+var68 = 5;
+var69 = string__NativeString__to_s_with_length(var67, var68);
+var66 = var69;
+varonce65 = var66;
}
{
-var67 = model__MProperty__full_name(var_res);
+var70 = model__MProperty__full_name(var_res);
}
-var68 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var68 = array_instance Array[Object] */
-var69 = 6;
-var70 = NEW_array__NativeArray(var69, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var70)->values[0] = (val*) var52;
-((struct instance_array__NativeArray*)var70)->values[1] = (val*) var_name;
-((struct instance_array__NativeArray*)var70)->values[2] = (val*) var57;
-((struct instance_array__NativeArray*)var70)->values[3] = (val*) var61;
-((struct instance_array__NativeArray*)var70)->values[4] = (val*) var63;
-((struct instance_array__NativeArray*)var70)->values[5] = (val*) var67;
+var71 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var71 = array_instance Array[Object] */
+var72 = 6;
+var73 = NEW_array__NativeArray(var72, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var73)->values[0] = (val*) var55;
+((struct instance_array__NativeArray*)var73)->values[1] = (val*) var_name;
+((struct instance_array__NativeArray*)var73)->values[2] = (val*) var60;
+((struct instance_array__NativeArray*)var73)->values[3] = (val*) var64;
+((struct instance_array__NativeArray*)var73)->values[4] = (val*) var66;
+((struct instance_array__NativeArray*)var73)->values[5] = (val*) var70;
{
-((void (*)(val*, val*, long))(var68->class->vft[COLOR_array__Array__with_native]))(var68, var70, var69) /* with_native on <var68:Array[Object]>*/;
+((void (*)(val*, val*, long))(var71->class->vft[COLOR_array__Array__with_native]))(var71, var73, var72) /* with_native on <var71:Array[Object]>*/;
}
}
{
-var71 = ((val* (*)(val*))(var68->class->vft[COLOR_string__Object__to_s]))(var68) /* to_s on <var68:Array[Object]>*/;
+var74 = ((val* (*)(val*))(var71->class->vft[COLOR_string__Object__to_s]))(var71) /* to_s on <var71:Array[Object]>*/;
}
{
-file__Object__print(self, var71); /* Direct call file#Object#print on <self:MModule>*/
+file__Object__print(self, var74); /* Direct call file#Object#print on <self:MModule>*/
}
PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 277);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 287);
show_backtrace(1);
} else {
}
}
-CONTINUE_label: (void)0;
+BREAK_label: (void)0;
{
-array__ArrayIterator__next(var20); /* Direct call array#ArrayIterator#next on <var20:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_23); /* Direct call array#ArrayIterator#next on <var_23:ArrayIterator[MClassDef]>*/
+}
+} else {
+goto BREAK_label75;
+}
+}
+BREAK_label75: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_23) on <var_23:ArrayIterator[MClassDef]> */
+RET_LABEL76:(void)0;
}
}
-BREAK_label: (void)0;
-CONTINUE_label72: (void)0;
{
-array__ArrayIterator__next(var10); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_11); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[MProperty]>*/
+}
+} else {
+goto BREAK_label77;
+}
+}
+BREAK_label77: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[MProperty]> */
+RET_LABEL78:(void)0;
}
}
-BREAK_label72: (void)0;
var = var_res;
goto RET_LABEL;
RET_LABEL:;
var1 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on <self:MClassDefSorter> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 287);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 298);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on <self:Object(MClassDefSorter)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 287);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 298);
show_backtrace(1);
}
var1 = var3;
RET_LABEL:;
return var;
}
+/* method model#MClassDefSorter#mmodule= for (self: MClassDefSorter, MModule) */
+void model__MClassDefSorter__mmodule_61d(val* self, val* p0) {
+self->attrs[COLOR_model__MClassDefSorter___mmodule].val = p0; /* _mmodule on <self:MClassDefSorter> */
+RET_LABEL:;
+}
+/* method model#MClassDefSorter#mmodule= for (self: Object, MModule) */
+void VIRTUAL_model__MClassDefSorter__mmodule_61d(val* self, val* p0) {
+{ /* Inline model#MClassDefSorter#mmodule= (self,p0) on <self:Object(MClassDefSorter)> */
+self->attrs[COLOR_model__MClassDefSorter___mmodule].val = p0; /* _mmodule on <self:Object(MClassDefSorter)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
/* method model#MClassDefSorter#compare for (self: MClassDefSorter, MClassDef, MClassDef): Int */
long model__MClassDefSorter__compare(val* self, val* p0, val* p1) {
long var /* : Int */;
short int var1 /* : Bool */;
int cltype;
int idtype;
+const struct type* type_struct;
const char* var_class_name;
short int var2 /* : Bool */;
int cltype3;
int idtype4;
-const char* var_class_name5;
+const struct type* type_struct5;
+const char* var_class_name6;
val* var_a /* var a: MClassDef */;
val* var_b /* var b: MClassDef */;
-val* var6 /* : MClass */;
-val* var8 /* : MClass */;
-val* var_ca /* var ca: MClass */;
+val* var7 /* : MClass */;
val* var9 /* : MClass */;
-val* var11 /* : MClass */;
+val* var_ca /* var ca: MClass */;
+val* var10 /* : MClass */;
+val* var12 /* : MClass */;
val* var_cb /* var cb: MClass */;
-short int var12 /* : Bool */;
short int var13 /* : Bool */;
+short int var14 /* : Bool */;
val* var_other /* var other: nullable Object */;
-short int var15 /* : Bool */;
short int var16 /* : Bool */;
short int var17 /* : Bool */;
-val* var18 /* : MModule */;
-val* var20 /* : MModule */;
-val* var21 /* : POSet[MClass] */;
-long var22 /* : Int */;
-val* var23 /* : MModule */;
-val* var25 /* : MModule */;
-val* var26 /* : Model */;
-val* var28 /* : Model */;
-val* var29 /* : POSet[MClassDef] */;
-val* var31 /* : POSet[MClassDef] */;
-long var32 /* : Int */;
-/* Covariant cast for argument 0 (a) <p0:MClassDef> isa Comparator#0 */
-/* <p0:MClassDef> isa Comparator#0 */
-var1 = 1; /* easy <p0:MClassDef> isa Comparator#0*/
+short int var18 /* : Bool */;
+val* var19 /* : MModule */;
+val* var21 /* : MModule */;
+val* var22 /* : POSet[MClass] */;
+long var23 /* : Int */;
+val* var24 /* : MModule */;
+val* var26 /* : MModule */;
+val* var27 /* : Model */;
+val* var29 /* : Model */;
+val* var30 /* : POSet[MClassDef] */;
+val* var32 /* : POSet[MClassDef] */;
+long var33 /* : Int */;
+/* Covariant cast for argument 0 (a) <p0:MClassDef> isa COMPARED */
+/* <p0:MClassDef> isa COMPARED */
+type_struct = self->type->resolution_table->types[COLOR_sorter__Comparator_VTCOMPARED];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= p0->type->table_size) {
+var1 = 0;
+} else {
+var1 = p0->type->type_table[cltype] == idtype;
+}
if (unlikely(!var1)) {
var_class_name = p0 == NULL ? "null" : p0->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Comparator#0", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 288);
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 299);
show_backtrace(1);
}
-/* Covariant cast for argument 1 (b) <p1:MClassDef> isa Comparator#0 */
-/* <p1:MClassDef> isa Comparator#0 */
-var2 = 1; /* easy <p1:MClassDef> isa Comparator#0*/
+/* Covariant cast for argument 1 (b) <p1:MClassDef> isa COMPARED */
+/* <p1:MClassDef> isa COMPARED */
+type_struct5 = self->type->resolution_table->types[COLOR_sorter__Comparator_VTCOMPARED];
+cltype3 = type_struct5->color;
+idtype4 = type_struct5->id;
+if(cltype3 >= p1->type->table_size) {
+var2 = 0;
+} else {
+var2 = p1->type->type_table[cltype3] == idtype4;
+}
if (unlikely(!var2)) {
-var_class_name5 = p1 == NULL ? "null" : p1->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Comparator#0", var_class_name5);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 288);
+var_class_name6 = p1 == NULL ? "null" : p1->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name6);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 299);
show_backtrace(1);
}
var_a = p0;
var_b = p1;
{
{ /* Inline model#MClassDef#mclass (var_a) on <var_a:MClassDef> */
-var8 = var_a->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_a:MClassDef> */
-if (unlikely(var8 == NULL)) {
+var9 = var_a->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_a:MClassDef> */
+if (unlikely(var9 == 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);
}
-var6 = var8;
-RET_LABEL7:(void)0;
+var7 = var9;
+RET_LABEL8:(void)0;
}
}
-var_ca = var6;
+var_ca = var7;
{
{ /* Inline model#MClassDef#mclass (var_b) on <var_b:MClassDef> */
-var11 = var_b->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_b:MClassDef> */
-if (unlikely(var11 == NULL)) {
+var12 = var_b->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_b: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_cb = var9;
+var_cb = var10;
{
{ /* Inline kernel#Object#!= (var_ca,var_cb) on <var_ca:MClass> */
var_other = var_cb;
{
-var16 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___61d_61d]))(var_ca, var_other) /* == on <var_ca:MClass>*/;
-var15 = var16;
+var17 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___61d_61d]))(var_ca, var_other) /* == on <var_ca:MClass>*/;
+var16 = var17;
}
-var17 = !var15;
-var13 = var17;
-goto RET_LABEL14;
-RET_LABEL14:(void)0;
+var18 = !var16;
+var14 = var18;
+goto RET_LABEL15;
+RET_LABEL15:(void)0;
}
-var12 = var13;
+var13 = var14;
}
-if (var12){
+if (var13){
{
{ /* Inline model#MClassDefSorter#mmodule (self) on <self:MClassDefSorter> */
-var20 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on <self:MClassDefSorter> */
-if (unlikely(var20 == NULL)) {
+var21 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on <self:MClassDefSorter> */
+if (unlikely(var21 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 287);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 298);
show_backtrace(1);
}
-var18 = var20;
-RET_LABEL19:(void)0;
+var19 = var21;
+RET_LABEL20:(void)0;
}
}
{
-var21 = model__MModule__flatten_mclass_hierarchy(var18);
+var22 = model__MModule__flatten_mclass_hierarchy(var19);
}
{
-var22 = poset__POSet__compare(var21, var_ca, var_cb);
+var23 = poset__POSet__compare(var22, var_ca, var_cb);
}
-var = var22;
+var = var23;
goto RET_LABEL;
} else {
}
{
{ /* Inline model#MClassDefSorter#mmodule (self) on <self:MClassDefSorter> */
-var25 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on <self:MClassDefSorter> */
-if (unlikely(var25 == NULL)) {
+var26 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on <self:MClassDefSorter> */
+if (unlikely(var26 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 287);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 298);
show_backtrace(1);
}
-var23 = var25;
-RET_LABEL24:(void)0;
+var24 = var26;
+RET_LABEL25:(void)0;
}
}
{
-{ /* Inline mmodule#MModule#model (var23) on <var23:MModule> */
-var28 = var23->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var23:MModule> */
-if (unlikely(var28 == NULL)) {
+{ /* Inline mmodule#MModule#model (var24) on <var24:MModule> */
+var29 = var24->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var24:MModule> */
+if (unlikely(var29 == 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);
}
-var26 = var28;
-RET_LABEL27:(void)0;
+var27 = var29;
+RET_LABEL28:(void)0;
}
}
{
-{ /* Inline model#Model#mclassdef_hierarchy (var26) on <var26:Model> */
-var31 = var26->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on <var26:Model> */
-if (unlikely(var31 == NULL)) {
+{ /* Inline model#Model#mclassdef_hierarchy (var27) on <var27:Model> */
+var32 = var27->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on <var27:Model> */
+if (unlikely(var32 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 42);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
show_backtrace(1);
}
-var29 = var31;
-RET_LABEL30:(void)0;
+var30 = var32;
+RET_LABEL31:(void)0;
}
}
{
-var32 = poset__POSet__compare(var29, var_a, var_b);
+var33 = poset__POSet__compare(var30, var_a, var_b);
}
-var = var32;
+var = var33;
goto RET_LABEL;
RET_LABEL:;
return var;
RET_LABEL:;
return var;
}
-/* method model#MClassDefSorter#init for (self: MClassDefSorter, MModule) */
-void model__MClassDefSorter__init(val* self, val* p0) {
-self->attrs[COLOR_model__MClassDefSorter___mmodule].val = p0; /* _mmodule on <self:MClassDefSorter> */
+/* method model#MClassDefSorter#init for (self: MClassDefSorter) */
+void model__MClassDefSorter__init(val* self) {
+{
+((void (*)(val*))(self->class->vft[COLOR_model__MClassDefSorter__init]))(self) /* init on <self:MClassDefSorter>*/;
+}
RET_LABEL:;
}
-/* method model#MClassDefSorter#init for (self: Object, MModule) */
-void VIRTUAL_model__MClassDefSorter__init(val* self, val* p0) {
-{ /* Inline model#MClassDefSorter#init (self,p0) on <self:Object(MClassDefSorter)> */
-self->attrs[COLOR_model__MClassDefSorter___mmodule].val = p0; /* _mmodule on <self:Object(MClassDefSorter)> */
+/* method model#MClassDefSorter#init for (self: Object) */
+void VIRTUAL_model__MClassDefSorter__init(val* self) {
+{ /* Inline model#MClassDefSorter#init (self) on <self:Object(MClassDefSorter)> */
+{
+((void (*)(val*))(self->class->vft[COLOR_model__MClassDefSorter__init]))(self) /* init on <self:Object(MClassDefSorter)>*/;
+}
RET_LABEL1:(void)0;
}
RET_LABEL:;
var1 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on <self:MPropDefSorter> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 299);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 311);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on <self:Object(MPropDefSorter)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 299);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 311);
show_backtrace(1);
}
var1 = var3;
RET_LABEL:;
return var;
}
+/* method model#MPropDefSorter#mmodule= for (self: MPropDefSorter, MModule) */
+void model__MPropDefSorter__mmodule_61d(val* self, val* p0) {
+self->attrs[COLOR_model__MPropDefSorter___mmodule].val = p0; /* _mmodule on <self:MPropDefSorter> */
+RET_LABEL:;
+}
+/* method model#MPropDefSorter#mmodule= for (self: Object, MModule) */
+void VIRTUAL_model__MPropDefSorter__mmodule_61d(val* self, val* p0) {
+{ /* Inline model#MPropDefSorter#mmodule= (self,p0) on <self:Object(MPropDefSorter)> */
+self->attrs[COLOR_model__MPropDefSorter___mmodule].val = p0; /* _mmodule on <self:Object(MPropDefSorter)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
/* method model#MPropDefSorter#compare for (self: MPropDefSorter, MPropDef, MPropDef): Int */
long model__MPropDefSorter__compare(val* self, val* p0, val* p1) {
long var /* : Int */;
short int var1 /* : Bool */;
int cltype;
int idtype;
+const struct type* type_struct;
const char* var_class_name;
short int var2 /* : Bool */;
int cltype3;
int idtype4;
-const char* var_class_name5;
+const struct type* type_struct5;
+const char* var_class_name6;
val* var_pa /* var pa: MPropDef */;
val* var_pb /* var pb: MPropDef */;
-val* var6 /* : MClassDef */;
-val* var8 /* : MClassDef */;
-val* var_a /* var a: MClassDef */;
+val* var7 /* : MClassDef */;
val* var9 /* : MClassDef */;
-val* var11 /* : MClassDef */;
+val* var_a /* var a: MClassDef */;
+val* var10 /* : MClassDef */;
+val* var12 /* : MClassDef */;
val* var_b /* var b: MClassDef */;
-val* var12 /* : MClass */;
-val* var14 /* : MClass */;
-val* var_ca /* var ca: MClass */;
+val* var13 /* : MClass */;
val* var15 /* : MClass */;
-val* var17 /* : MClass */;
+val* var_ca /* var ca: MClass */;
+val* var16 /* : MClass */;
+val* var18 /* : MClass */;
val* var_cb /* var cb: MClass */;
-short int var18 /* : Bool */;
short int var19 /* : Bool */;
+short int var20 /* : Bool */;
val* var_other /* var other: nullable Object */;
-short int var21 /* : Bool */;
short int var22 /* : Bool */;
short int var23 /* : Bool */;
-val* var24 /* : MModule */;
-val* var26 /* : MModule */;
-val* var27 /* : POSet[MClass] */;
-long var28 /* : Int */;
-val* var29 /* : MModule */;
-val* var31 /* : MModule */;
-val* var32 /* : Model */;
-val* var34 /* : Model */;
-val* var35 /* : POSet[MClassDef] */;
-val* var37 /* : POSet[MClassDef] */;
-long var38 /* : Int */;
-/* Covariant cast for argument 0 (pa) <p0:MPropDef> isa Comparator#0 */
-/* <p0:MPropDef> isa Comparator#0 */
-var1 = 1; /* easy <p0:MPropDef> isa Comparator#0*/
+short int var24 /* : Bool */;
+val* var25 /* : MModule */;
+val* var27 /* : MModule */;
+val* var28 /* : POSet[MClass] */;
+long var29 /* : Int */;
+val* var30 /* : MModule */;
+val* var32 /* : MModule */;
+val* var33 /* : Model */;
+val* var35 /* : Model */;
+val* var36 /* : POSet[MClassDef] */;
+val* var38 /* : POSet[MClassDef] */;
+long var39 /* : Int */;
+/* Covariant cast for argument 0 (pa) <p0:MPropDef> isa COMPARED */
+/* <p0:MPropDef> isa COMPARED */
+type_struct = self->type->resolution_table->types[COLOR_sorter__Comparator_VTCOMPARED];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= p0->type->table_size) {
+var1 = 0;
+} else {
+var1 = p0->type->type_table[cltype] == idtype;
+}
if (unlikely(!var1)) {
var_class_name = p0 == NULL ? "null" : p0->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Comparator#0", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 300);
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 312);
show_backtrace(1);
}
-/* Covariant cast for argument 1 (pb) <p1:MPropDef> isa Comparator#0 */
-/* <p1:MPropDef> isa Comparator#0 */
-var2 = 1; /* easy <p1:MPropDef> isa Comparator#0*/
+/* Covariant cast for argument 1 (pb) <p1:MPropDef> isa COMPARED */
+/* <p1:MPropDef> isa COMPARED */
+type_struct5 = self->type->resolution_table->types[COLOR_sorter__Comparator_VTCOMPARED];
+cltype3 = type_struct5->color;
+idtype4 = type_struct5->id;
+if(cltype3 >= p1->type->table_size) {
+var2 = 0;
+} else {
+var2 = p1->type->type_table[cltype3] == idtype4;
+}
if (unlikely(!var2)) {
-var_class_name5 = p1 == NULL ? "null" : p1->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Comparator#0", var_class_name5);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 300);
+var_class_name6 = p1 == NULL ? "null" : p1->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPARED", var_class_name6);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 312);
show_backtrace(1);
}
var_pa = p0;
var_pb = p1;
{
{ /* Inline model#MPropDef#mclassdef (var_pa) on <var_pa:MPropDef> */
-var8 = var_pa->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_pa:MPropDef> */
-if (unlikely(var8 == NULL)) {
+var9 = var_pa->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_pa: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_a = var6;
+var_a = var7;
{
{ /* Inline model#MPropDef#mclassdef (var_pb) on <var_pb:MPropDef> */
-var11 = var_pb->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_pb:MPropDef> */
-if (unlikely(var11 == NULL)) {
+var12 = var_pb->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var_pb:MPropDef> */
+if (unlikely(var12 == 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);
}
-var9 = var11;
-RET_LABEL10:(void)0;
+var10 = var12;
+RET_LABEL11:(void)0;
}
}
-var_b = var9;
+var_b = var10;
{
{ /* Inline model#MClassDef#mclass (var_a) on <var_a:MClassDef> */
-var14 = var_a->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_a:MClassDef> */
-if (unlikely(var14 == NULL)) {
+var15 = var_a->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_a:MClassDef> */
+if (unlikely(var15 == 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);
}
-var12 = var14;
-RET_LABEL13:(void)0;
+var13 = var15;
+RET_LABEL14:(void)0;
}
}
-var_ca = var12;
+var_ca = var13;
{
{ /* Inline model#MClassDef#mclass (var_b) on <var_b:MClassDef> */
-var17 = var_b->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_b:MClassDef> */
-if (unlikely(var17 == NULL)) {
+var18 = var_b->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <var_b:MClassDef> */
+if (unlikely(var18 == 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;
-RET_LABEL16:(void)0;
+var16 = var18;
+RET_LABEL17:(void)0;
}
}
-var_cb = var15;
+var_cb = var16;
{
{ /* Inline kernel#Object#!= (var_ca,var_cb) on <var_ca:MClass> */
var_other = var_cb;
{
-var22 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___61d_61d]))(var_ca, var_other) /* == on <var_ca:MClass>*/;
-var21 = var22;
+var23 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___61d_61d]))(var_ca, var_other) /* == on <var_ca:MClass>*/;
+var22 = var23;
}
-var23 = !var21;
-var19 = var23;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
+var24 = !var22;
+var20 = var24;
+goto RET_LABEL21;
+RET_LABEL21:(void)0;
}
-var18 = var19;
+var19 = var20;
}
-if (var18){
+if (var19){
{
{ /* Inline model#MPropDefSorter#mmodule (self) on <self:MPropDefSorter> */
-var26 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on <self:MPropDefSorter> */
-if (unlikely(var26 == NULL)) {
+var27 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on <self:MPropDefSorter> */
+if (unlikely(var27 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 299);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 311);
show_backtrace(1);
}
-var24 = var26;
-RET_LABEL25:(void)0;
+var25 = var27;
+RET_LABEL26:(void)0;
}
}
{
-var27 = model__MModule__flatten_mclass_hierarchy(var24);
+var28 = model__MModule__flatten_mclass_hierarchy(var25);
}
{
-var28 = poset__POSet__compare(var27, var_ca, var_cb);
+var29 = poset__POSet__compare(var28, var_ca, var_cb);
}
-var = var28;
+var = var29;
goto RET_LABEL;
} else {
}
{
{ /* Inline model#MPropDefSorter#mmodule (self) on <self:MPropDefSorter> */
-var31 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on <self:MPropDefSorter> */
-if (unlikely(var31 == NULL)) {
+var32 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on <self:MPropDefSorter> */
+if (unlikely(var32 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 299);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 311);
show_backtrace(1);
}
-var29 = var31;
-RET_LABEL30:(void)0;
+var30 = var32;
+RET_LABEL31:(void)0;
}
}
{
-{ /* Inline mmodule#MModule#model (var29) on <var29:MModule> */
-var34 = var29->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var29:MModule> */
-if (unlikely(var34 == NULL)) {
+{ /* Inline mmodule#MModule#model (var30) on <var30:MModule> */
+var35 = var30->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var30:MModule> */
+if (unlikely(var35 == 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);
}
-var32 = var34;
-RET_LABEL33:(void)0;
+var33 = var35;
+RET_LABEL34:(void)0;
}
}
{
-{ /* Inline model#Model#mclassdef_hierarchy (var32) on <var32:Model> */
-var37 = var32->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on <var32:Model> */
-if (unlikely(var37 == NULL)) {
+{ /* Inline model#Model#mclassdef_hierarchy (var33) on <var33:Model> */
+var38 = var33->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on <var33:Model> */
+if (unlikely(var38 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 42);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
show_backtrace(1);
}
-var35 = var37;
-RET_LABEL36:(void)0;
+var36 = var38;
+RET_LABEL37:(void)0;
}
}
{
-var38 = poset__POSet__compare(var35, var_a, var_b);
+var39 = poset__POSet__compare(var36, var_a, var_b);
}
-var = var38;
+var = var39;
goto RET_LABEL;
RET_LABEL:;
return var;
RET_LABEL:;
return var;
}
-/* method model#MPropDefSorter#init for (self: MPropDefSorter, MModule) */
-void model__MPropDefSorter__init(val* self, val* p0) {
-self->attrs[COLOR_model__MPropDefSorter___mmodule].val = p0; /* _mmodule on <self:MPropDefSorter> */
+/* method model#MPropDefSorter#init for (self: MPropDefSorter) */
+void model__MPropDefSorter__init(val* self) {
+{
+((void (*)(val*))(self->class->vft[COLOR_model__MPropDefSorter__init]))(self) /* init on <self:MPropDefSorter>*/;
+}
RET_LABEL:;
}
-/* method model#MPropDefSorter#init for (self: Object, MModule) */
-void VIRTUAL_model__MPropDefSorter__init(val* self, val* p0) {
-{ /* Inline model#MPropDefSorter#init (self,p0) on <self:Object(MPropDefSorter)> */
-self->attrs[COLOR_model__MPropDefSorter___mmodule].val = p0; /* _mmodule on <self:Object(MPropDefSorter)> */
+/* method model#MPropDefSorter#init for (self: Object) */
+void VIRTUAL_model__MPropDefSorter__init(val* self) {
+{ /* Inline model#MPropDefSorter#init (self) on <self:Object(MPropDefSorter)> */
+{
+((void (*)(val*))(self->class->vft[COLOR_model__MPropDefSorter__init]))(self) /* init on <self:Object(MPropDefSorter)>*/;
+}
RET_LABEL1:(void)0;
}
RET_LABEL:;
var1 = self->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <self:MClass> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <self:Object(MClass)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MClass___name].val; /* _name on <self:MClass> */
if (unlikely(var1 == 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);
}
var = var1;
var3 = self->attrs[COLOR_model__MClass___name].val; /* _name on <self:Object(MClass)> */
if (unlikely(var3 == 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);
}
var1 = var3;
var3 = self->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <self:MClass> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
show_backtrace(1);
}
var1 = var3;
var11 = self->attrs[COLOR_model__MClass___name].val; /* _name on <self:MClass> */
if (unlikely(var11 == 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);
}
var9 = var11;
}
RET_LABEL:;
}
+/* method model#MClass#mparameters for (self: MClass): Array[MParameterType] */
+val* model__MClass__mparameters(val* self) {
+val* var /* : Array[MParameterType] */;
+val* var1 /* : Array[MParameterType] */;
+var1 = self->attrs[COLOR_model__MClass___mparameters].val; /* _mparameters on <self:MClass> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 367);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MClass#mparameters for (self: Object): Array[MParameterType] */
+val* VIRTUAL_model__MClass__mparameters(val* self) {
+val* var /* : Array[MParameterType] */;
+val* var1 /* : Array[MParameterType] */;
+val* var3 /* : Array[MParameterType] */;
+{ /* Inline model#MClass#mparameters (self) on <self:Object(MClass)> */
+var3 = self->attrs[COLOR_model__MClass___mparameters].val; /* _mparameters on <self:Object(MClass)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 367);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MClass#mparameters= for (self: MClass, Array[MParameterType]) */
+void model__MClass__mparameters_61d(val* self, val* p0) {
+self->attrs[COLOR_model__MClass___mparameters].val = p0; /* _mparameters on <self:MClass> */
+RET_LABEL:;
+}
+/* method model#MClass#mparameters= for (self: Object, Array[MParameterType]) */
+void VIRTUAL_model__MClass__mparameters_61d(val* self, val* p0) {
+{ /* Inline model#MClass#mparameters= (self,p0) on <self:Object(MClass)> */
+self->attrs[COLOR_model__MClass___mparameters].val = p0; /* _mparameters on <self:Object(MClass)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
/* method model#MClass#kind for (self: MClass): MClassKind */
val* model__MClass__kind(val* self) {
val* var /* : MClassKind */;
var1 = self->attrs[COLOR_model__MClass___kind].val; /* _kind on <self:MClass> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClass___kind].val; /* _kind on <self:Object(MClass)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MClass___visibility].val; /* _visibility on <self:MClass> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 359);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClass___visibility].val; /* _visibility on <self:Object(MClass)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 359);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 375);
show_backtrace(1);
}
var1 = var3;
}
RET_LABEL:;
}
-/* method model#MClass#init for (self: MClass, MModule, String, Int, MClassKind, MVisibility) */
-void model__MClass__init(val* self, val* p0, val* p1, long p2, val* p3, val* p4) {
+/* method model#MClass#init for (self: MClass, MModule, String, nullable Array[String], MClassKind, MVisibility) */
+void model__MClass__init(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
val* var_intro_mmodule /* var intro_mmodule: MModule */;
val* var_name /* var name: String */;
-long var_arity /* var arity: Int */;
+val* var_parameter_names /* var parameter_names: nullable Array[String] */;
val* var_kind /* var kind: MClassKind */;
val* var_visibility /* var visibility: MVisibility */;
-val* var /* : Array[MClass] */;
-val* var8 /* : Array[MClass] */;
-val* var9 /* : Model */;
-val* var11 /* : Model */;
-val* var_model /* var model: Model */;
-val* var12 /* : MultiHashMap[String, MClass] */;
-val* var14 /* : MultiHashMap[String, MClass] */;
+val* var /* : null */;
+short int var3 /* : Bool */;
+short int var4 /* : Bool */;
+long var5 /* : Int */;
+long var7 /* : Int */;
+long var9 /* : Int */;
+val* var13 /* : Array[MClass] */;
val* var15 /* : Array[MClass] */;
-val* var17 /* : Array[MClass] */;
-long var18 /* : Int */;
-short int var19 /* : Bool */;
-short int var21 /* : Bool */;
+val* var16 /* : Model */;
+val* var18 /* : Model */;
+val* var_model /* var model: Model */;
+val* var19 /* : MultiHashMap[String, MClass] */;
+val* var21 /* : MultiHashMap[String, MClass] */;
+val* var22 /* : Array[MClass] */;
+val* var24 /* : Array[MClass] */;
+long var25 /* : Int */;
+long var27 /* : Int */;
+long var28 /* : Int */;
+short int var29 /* : Bool */;
+short int var31 /* : Bool */;
int cltype;
int idtype;
const char* var_class_name;
-short int var22 /* : Bool */;
-val* var23 /* : Array[MParameterType] */;
+short int var32 /* : Bool */;
+val* var33 /* : null */;
+short int var34 /* : Bool */;
+short int var35 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var37 /* : Bool */;
+short int var38 /* : Bool */;
+short int var39 /* : Bool */;
+val* var40 /* : Array[MParameterType] */;
val* var_mparametertypes /* var mparametertypes: Array[MParameterType] */;
-val* var24 /* : Range[Int] */;
-long var25 /* : Int */;
-val* var26 /* : Discrete */;
-val* var27 /* : Discrete */;
-val* var28 /* : Iterator[Discrete] */;
-short int var29 /* : Bool */;
-val* var30 /* : nullable Object */;
+long var41 /* : Int */;
long var_i /* var i: Int */;
-long var31 /* : Int */;
-val* var32 /* : MParameterType */;
+long var42 /* : Int */;
+long var44 /* : Int */;
+long var_ /* var : Int */;
+short int var45 /* : Bool */;
+short int var47 /* : Bool */;
+int cltype48;
+int idtype49;
+const char* var_class_name50;
+short int var51 /* : Bool */;
+val* var52 /* : MParameterType */;
+val* var53 /* : nullable Object */;
val* var_mparametertype /* var mparametertype: MParameterType */;
-val* var33 /* : MGenericType */;
+long var54 /* : Int */;
+long var55 /* : Int */;
+val* var57 /* : MGenericType */;
val* var_mclass_type /* var mclass_type: MGenericType */;
-val* var35 /* : Array[MGenericType] */;
-val* var37 /* : Array[MGenericType] */;
-val* var38 /* : MClassType */;
+val* var59 /* : Array[MGenericType] */;
+val* var61 /* : Array[MGenericType] */;
+val* var62 /* : MClassType */;
{
-{ /* Inline model_base#MEntity#init (self) on <self:MClass> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MClass>*/;
}
var_intro_mmodule = p0;
var_name = p1;
-var_arity = p2;
+var_parameter_names = p2;
var_kind = p3;
var_visibility = p4;
{
{ /* Inline model#MClass#intro_mmodule= (self,var_intro_mmodule) on <self:MClass> */
self->attrs[COLOR_model__MClass___intro_mmodule].val = var_intro_mmodule; /* _intro_mmodule on <self:MClass> */
-RET_LABEL2:(void)0;
+RET_LABEL1:(void)0;
}
}
{
{ /* Inline model#MClass#name= (self,var_name) on <self:MClass> */
self->attrs[COLOR_model__MClass___name].val = var_name; /* _name on <self:MClass> */
-RET_LABEL3:(void)0;
+RET_LABEL2:(void)0;
+}
+}
+var = NULL;
+if (var_parameter_names == NULL) {
+var3 = 1; /* is null */
+} else {
+var3 = 0; /* arg is null but recv is not */
}
+if (0) {
+var4 = array__Array___61d_61d(var_parameter_names, var);
+var3 = var4;
}
+if (var3){
+var5 = 0;
{
-{ /* Inline model#MClass#arity= (self,var_arity) on <self:MClass> */
-self->attrs[COLOR_model__MClass___arity].l = var_arity; /* _arity on <self:MClass> */
-RET_LABEL4:(void)0;
+{ /* Inline model#MClass#arity= (self,var5) on <self:MClass> */
+self->attrs[COLOR_model__MClass___arity].l = var5; /* _arity on <self:MClass> */
+RET_LABEL6:(void)0;
+}
+}
+} else {
+{
+{ /* Inline array#AbstractArrayRead#length (var_parameter_names) on <var_parameter_names:nullable Array[String](Array[String])> */
+var9 = var_parameter_names->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_parameter_names:nullable Array[String](Array[String])> */
+var7 = var9;
+RET_LABEL8:(void)0;
+}
+}
+{
+{ /* Inline model#MClass#arity= (self,var7) on <self:MClass> */
+self->attrs[COLOR_model__MClass___arity].l = var7; /* _arity on <self:MClass> */
+RET_LABEL10:(void)0;
+}
}
}
{
{ /* Inline model#MClass#kind= (self,var_kind) on <self:MClass> */
self->attrs[COLOR_model__MClass___kind].val = var_kind; /* _kind on <self:MClass> */
-RET_LABEL5:(void)0;
+RET_LABEL11:(void)0;
}
}
{
{ /* Inline model#MClass#visibility= (self,var_visibility) on <self:MClass> */
self->attrs[COLOR_model__MClass___visibility].val = var_visibility; /* _visibility on <self:MClass> */
-RET_LABEL6:(void)0;
+RET_LABEL12:(void)0;
}
}
{
{ /* Inline model#MModule#intro_mclasses (var_intro_mmodule) on <var_intro_mmodule:MModule> */
-var8 = var_intro_mmodule->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on <var_intro_mmodule:MModule> */
-if (unlikely(var8 == NULL)) {
+var15 = var_intro_mmodule->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on <var_intro_mmodule:MModule> */
+if (unlikely(var15 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 138);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 136);
show_backtrace(1);
}
-var = var8;
-RET_LABEL7:(void)0;
+var13 = var15;
+RET_LABEL14:(void)0;
}
}
{
-array__Array__add(var, self); /* Direct call array#Array#add on <var:Array[MClass]>*/
+array__Array__add(var13, self); /* Direct call array#Array#add on <var13:Array[MClass]>*/
}
{
{ /* Inline mmodule#MModule#model (var_intro_mmodule) on <var_intro_mmodule:MModule> */
-var11 = var_intro_mmodule->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var_intro_mmodule:MModule> */
-if (unlikely(var11 == NULL)) {
+var18 = var_intro_mmodule->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var_intro_mmodule:MModule> */
+if (unlikely(var18 == 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);
}
-var9 = var11;
-RET_LABEL10:(void)0;
+var16 = var18;
+RET_LABEL17:(void)0;
}
}
-var_model = var9;
+var_model = var16;
{
{ /* Inline model#Model#mclasses_by_name (var_model) on <var_model:Model> */
-var14 = var_model->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on <var_model:Model> */
-if (unlikely(var14 == NULL)) {
+var21 = var_model->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on <var_model:Model> */
+if (unlikely(var21 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 68);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 66);
show_backtrace(1);
}
-var12 = var14;
-RET_LABEL13:(void)0;
+var19 = var21;
+RET_LABEL20:(void)0;
}
}
{
-more_collections__MultiHashMap__add_one(var12, var_name, self); /* Direct call more_collections#MultiHashMap#add_one on <var12:MultiHashMap[String, MClass]>*/
+more_collections__MultiHashMap__add_one(var19, var_name, self); /* Direct call more_collections#MultiHashMap#add_one on <var19:MultiHashMap[String, MClass]>*/
}
{
{ /* Inline model#Model#mclasses (var_model) on <var_model:Model> */
-var17 = var_model->attrs[COLOR_model__Model___mclasses].val; /* _mclasses on <var_model:Model> */
-if (unlikely(var17 == NULL)) {
+var24 = var_model->attrs[COLOR_model__Model___mclasses].val; /* _mclasses on <var_model:Model> */
+if (unlikely(var24 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 36);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 34);
show_backtrace(1);
}
-var15 = var17;
-RET_LABEL16:(void)0;
+var22 = var24;
+RET_LABEL23:(void)0;
}
}
{
-array__Array__add(var15, self); /* Direct call array#Array#add on <var15:Array[MClass]>*/
+array__Array__add(var22, self); /* Direct call array#Array#add on <var22:Array[MClass]>*/
}
-var18 = 0;
{
-{ /* Inline kernel#Int#> (var_arity,var18) on <var_arity:Int> */
-/* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
-/* <var18:Int> isa OTHER */
-var21 = 1; /* easy <var18:Int> isa OTHER*/
-if (unlikely(!var21)) {
+{ /* Inline model#MClass#arity (self) on <self:MClass> */
+var27 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on <self:MClass> */
+var25 = var27;
+RET_LABEL26:(void)0;
+}
+}
+var28 = 0;
+{
+{ /* Inline kernel#Int#> (var25,var28) on <var25:Int> */
+/* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
+/* <var28:Int> isa OTHER */
+var31 = 1; /* easy <var28:Int> isa OTHER*/
+if (unlikely(!var31)) {
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);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
show_backtrace(1);
}
-var22 = var_arity > var18;
-var19 = var22;
-goto RET_LABEL20;
-RET_LABEL20:(void)0;
+var32 = var25 > var28;
+var29 = var32;
+goto RET_LABEL30;
+RET_LABEL30:(void)0;
}
}
-if (var19){
-var23 = NEW_array__Array(&type_array__Arraymodel__MParameterType);
+if (var29){
+var33 = NULL;
+if (var_parameter_names == NULL) {
+var34 = 0; /* is null */
+} else {
+var34 = 1; /* arg is null and recv is not */
+}
+if (0) {
+{ /* Inline kernel#Object#!= (var_parameter_names,var33) on <var_parameter_names:nullable Array[String]> */
+var_other = var33;
{
-array__Array__init(var23); /* Direct call array#Array#init on <var23:Array[MParameterType]>*/
+var38 = ((short int (*)(val*, val*))(var_parameter_names->class->vft[COLOR_kernel__Object___61d_61d]))(var_parameter_names, var_other) /* == on <var_parameter_names:nullable Array[String](Array[String])>*/;
+var37 = var38;
}
-var_mparametertypes = var23;
-var24 = NEW_range__Range(&type_range__Rangekernel__Int);
-var25 = 0;
+var39 = !var37;
+var35 = var39;
+goto RET_LABEL36;
+RET_LABEL36:(void)0;
+}
+var34 = var35;
+}
+if (unlikely(!var34)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 397);
+show_backtrace(1);
+}
+var40 = NEW_array__Array(&type_array__Arraymodel__MParameterType);
{
-var26 = BOX_kernel__Int(var25); /* autobox from Int to Discrete */
-var27 = BOX_kernel__Int(var_arity); /* autobox from Int to Discrete */
-range__Range__without_last(var24, var26, var27); /* Direct call range#Range#without_last on <var24:Range[Int]>*/
+((void (*)(val*))(var40->class->vft[COLOR_kernel__Object__init]))(var40) /* init on <var40:Array[MParameterType]>*/;
}
+var_mparametertypes = var40;
+var41 = 0;
+var_i = var41;
{
-var28 = range__Range__iterator(var24);
+{ /* Inline model#MClass#arity (self) on <self:MClass> */
+var44 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on <self:MClass> */
+var42 = var44;
+RET_LABEL43:(void)0;
}
+}
+var_ = var42;
for(;;) {
{
-var29 = ((short int (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var28) /* is_ok on <var28: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 */
+var47 = 1; /* easy <var_:Int> isa OTHER*/
+if (unlikely(!var47)) {
+var_class_name50 = type_kernel__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50);
+PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
+show_backtrace(1);
}
-if(!var29) break;
+var51 = var_i < var_;
+var45 = var51;
+goto RET_LABEL46;
+RET_LABEL46:(void)0;
+}
+}
+if (var45){
+var52 = NEW_model__MParameterType(&type_model__MParameterType);
{
-var30 = ((val* (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__item]))(var28) /* item on <var28:Iterator[Discrete]>*/;
+var53 = array__Array___91d_93d(var_parameter_names, var_i);
}
-var31 = ((struct instance_kernel__Int*)var30)->value; /* autounbox from nullable Object to Int */;
-var_i = var31;
-var32 = NEW_model__MParameterType(&type_model__MParameterType);
{
-model__MParameterType__init(var32, self, var_i); /* Direct call model#MParameterType#init on <var32:MParameterType>*/
+model__MParameterType__init(var52, self, var_i, var53); /* Direct call model#MParameterType#init on <var52:MParameterType>*/
}
-var_mparametertype = var32;
+var_mparametertype = var52;
{
array__Array__add(var_mparametertypes, var_mparametertype); /* Direct call array#Array#add on <var_mparametertypes:Array[MParameterType]>*/
}
-CONTINUE_label: (void)0;
+var54 = 1;
{
-((void (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__next]))(var28) /* next on <var28:Iterator[Discrete]>*/;
+var55 = kernel__Int__successor(var_i, var54);
+}
+var_i = var55;
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
-var33 = NEW_model__MGenericType(&type_model__MGenericType);
{
-model__MGenericType__init(var33, self, var_mparametertypes); /* Direct call model#MGenericType#init on <var33:MGenericType>*/
+{ /* Inline model#MClass#mparameters= (self,var_mparametertypes) on <self:MClass> */
+self->attrs[COLOR_model__MClass___mparameters].val = var_mparametertypes; /* _mparameters on <self:MClass> */
+RET_LABEL56:(void)0;
+}
+}
+var57 = NEW_model__MGenericType(&type_model__MGenericType);
+{
+model__MGenericType__init(var57, self, var_mparametertypes); /* Direct call model#MGenericType#init on <var57:MGenericType>*/
}
-var_mclass_type = var33;
+var_mclass_type = var57;
{
{ /* Inline model#MClass#mclass_type= (self,var_mclass_type) on <self:MClass> */
self->attrs[COLOR_model__MClass___mclass_type].val = var_mclass_type; /* _mclass_type on <self:MClass> */
-RET_LABEL34:(void)0;
+RET_LABEL58:(void)0;
}
}
{
{ /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
-var37 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on <self:MClass> */
-if (unlikely(var37 == NULL)) {
+var61 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on <self:MClass> */
+if (unlikely(var61 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
show_backtrace(1);
}
-var35 = var37;
-RET_LABEL36:(void)0;
+var59 = var61;
+RET_LABEL60:(void)0;
}
}
{
-array__Array__add(var35, var_mclass_type); /* Direct call array#Array#add on <var35:Array[MGenericType]>*/
+array__Array__add(var59, var_mclass_type); /* Direct call array#Array#add on <var59:Array[MGenericType]>*/
}
} else {
-var38 = NEW_model__MClassType(&type_model__MClassType);
+var62 = NEW_model__MClassType(&type_model__MClassType);
{
-model__MClassType__init(var38, self); /* Direct call model#MClassType#init on <var38:MClassType>*/
+model__MClassType__init(var62, self); /* Direct call model#MClassType#init on <var62:MClassType>*/
}
{
-{ /* Inline model#MClass#mclass_type= (self,var38) on <self:MClass> */
-self->attrs[COLOR_model__MClass___mclass_type].val = var38; /* _mclass_type on <self:MClass> */
-RET_LABEL39:(void)0;
+{ /* Inline model#MClass#mclass_type= (self,var62) on <self:MClass> */
+self->attrs[COLOR_model__MClass___mclass_type].val = var62; /* _mclass_type on <self:MClass> */
+RET_LABEL63:(void)0;
}
}
}
RET_LABEL:;
}
-/* method model#MClass#init for (self: Object, MModule, String, Int, MClassKind, MVisibility) */
-void VIRTUAL_model__MClass__init(val* self, val* p0, val* p1, long p2, val* p3, val* p4) {
+/* method model#MClass#init for (self: Object, MModule, String, nullable Array[String], MClassKind, MVisibility) */
+void VIRTUAL_model__MClass__init(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
model__MClass__init(self, p0, p1, p2, p3, p4); /* Direct call model#MClass#init on <self:Object(MClass)>*/
RET_LABEL:;
}
var3 = self->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <self:MClass> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
show_backtrace(1);
}
var1 = var3;
var6 = var1->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var1:MModule> */
if (unlikely(var6 == 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);
}
var4 = var6;
var1 = self->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <self:MClass> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <self:Object(MClass)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
show_backtrace(1);
}
var1 = var3;
var3 = self->attrs[COLOR_model__MClass___name].val; /* _name on <self:MClass> */
if (unlikely(var3 == 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);
}
var1 = var3;
/* method model#MClass#intro for (self: MClass): MClassDef */
val* model__MClass__intro(val* self) {
val* var /* : MClassDef */;
-val* var1 /* : Array[MClassDef] */;
-val* var3 /* : Array[MClassDef] */;
-short int var4 /* : Bool */;
-short int var5 /* : Bool */;
-val* var6 /* : Array[MClassDef] */;
-val* var8 /* : Array[MClassDef] */;
-val* var9 /* : nullable Object */;
-{
-{ /* Inline model#MClass#mclassdefs (self) on <self:MClass> */
-var3 = self->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <self:MClass> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = array__AbstractArrayRead__is_empty(var1);
-}
-var5 = !var4;
-if (unlikely(!var5)) {
-PRINT_ERROR("Runtime error: %s", "Assert \'has_a_first_definition\' failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 404);
-show_backtrace(1);
-}
-{
-{ /* Inline model#MClass#mclassdefs (self) on <self:MClass> */
-var8 = self->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <self:MClass> */
-if (unlikely(var8 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
+val* var1 /* : MClassDef */;
+var1 = self->attrs[COLOR_model__MClass___intro].val; /* _intro on <self:MClass> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
show_backtrace(1);
}
-var6 = var8;
-RET_LABEL7:(void)0;
-}
-}
-{
-var9 = abstract_collection__SequenceRead__first(var6);
-}
-var = var9;
-goto RET_LABEL;
+var = var1;
RET_LABEL:;
return var;
}
val* VIRTUAL_model__MClass__intro(val* self) {
val* var /* : MClassDef */;
val* var1 /* : MClassDef */;
-var1 = model__MClass__intro(self);
+val* var3 /* : MClassDef */;
+{ /* Inline model#MClass#intro (self) on <self:Object(MClass)> */
+var3 = self->attrs[COLOR_model__MClass___intro].val; /* _intro on <self:Object(MClass)> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
+show_backtrace(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
var = var1;
RET_LABEL:;
return var;
}
-/* method model#MClass#in_hierarchy for (self: MClass, MModule): POSetElement[MClass] */
-val* model__MClass__in_hierarchy(val* self, val* p0) {
-val* var /* : POSetElement[MClass] */;
-val* var_mmodule /* var mmodule: MModule */;
+/* method model#MClass#intro= for (self: MClass, MClassDef) */
+void model__MClass__intro_61d(val* self, val* p0) {
+self->attrs[COLOR_model__MClass___intro].val = p0; /* _intro on <self:MClass> */
+RET_LABEL:;
+}
+/* method model#MClass#intro= for (self: Object, MClassDef) */
+void VIRTUAL_model__MClass__intro_61d(val* self, val* p0) {
+{ /* Inline model#MClass#intro= (self,p0) on <self:Object(MClass)> */
+self->attrs[COLOR_model__MClass___intro].val = p0; /* _intro on <self:Object(MClass)> */
+RET_LABEL1:(void)0;
+}
+RET_LABEL:;
+}
+/* method model#MClass#in_hierarchy for (self: MClass, MModule): POSetElement[MClass] */
+val* model__MClass__in_hierarchy(val* self, val* p0) {
+val* var /* : POSetElement[MClass] */;
+val* var_mmodule /* var mmodule: MModule */;
val* var1 /* : POSet[MClass] */;
val* var2 /* : POSetElement[Object] */;
var_mmodule = p0;
var1 = self->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <self:MClass> */
if (unlikely(var1 == 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);
}
var = var1;
var3 = self->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <self:Object(MClass)> */
if (unlikely(var3 == 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);
}
var1 = var3;
val* var /* : MClassType */;
val* var_mtype_arguments /* var mtype_arguments: Array[MType] */;
long var1 /* : Int */;
-long var2 /* : Int */;
+long var3 /* : Int */;
long var4 /* : Int */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
+long var6 /* : Int */;
+short int var7 /* : Bool */;
short int var8 /* : Bool */;
-long var9 /* : Int */;
+short int var10 /* : Bool */;
long var11 /* : Int */;
-long var12 /* : Int */;
-short int var13 /* : Bool */;
-short int var14 /* : Bool */;
+long var13 /* : Int */;
+long var14 /* : Int */;
+short int var15 /* : Bool */;
short int var16 /* : Bool */;
-val* var17 /* : MClassType */;
+short int var18 /* : Bool */;
val* var19 /* : MClassType */;
-val* var20 /* : Array[MGenericType] */;
+val* var21 /* : MClassType */;
val* var22 /* : Array[MGenericType] */;
-val* var23 /* : ArrayIterator[nullable Object] */;
-short int var24 /* : Bool */;
-val* var25 /* : nullable Object */;
+val* var24 /* : Array[MGenericType] */;
+val* var_ /* var : Array[MGenericType] */;
+val* var25 /* : ArrayIterator[nullable Object] */;
+val* var_26 /* var : ArrayIterator[MGenericType] */;
+short int var27 /* : Bool */;
+val* var28 /* : nullable Object */;
val* var_t /* var t: MGenericType */;
-val* var26 /* : Array[MType] */;
-val* var28 /* : Array[MType] */;
-short int var29 /* : Bool */;
-short int var30 /* : Bool */;
-val* var31 /* : MGenericType */;
+val* var29 /* : Array[MType] */;
+val* var31 /* : Array[MType] */;
+short int var32 /* : Bool */;
+short int var33 /* : Bool */;
+val* var35 /* : MGenericType */;
val* var_res /* var res: MGenericType */;
-val* var32 /* : Array[MGenericType] */;
-val* var34 /* : Array[MGenericType] */;
+val* var36 /* : Array[MGenericType] */;
+val* var38 /* : Array[MGenericType] */;
var_mtype_arguments = p0;
{
-var1 = array__AbstractArrayRead__length(var_mtype_arguments);
+{ /* Inline array#AbstractArrayRead#length (var_mtype_arguments) on <var_mtype_arguments:Array[MType]> */
+var3 = var_mtype_arguments->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_mtype_arguments:Array[MType]> */
+var1 = var3;
+RET_LABEL2:(void)0;
+}
}
{
{ /* Inline model#MClass#arity (self) on <self:MClass> */
-var4 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on <self:MClass> */
-var2 = var4;
-RET_LABEL3:(void)0;
+var6 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on <self:MClass> */
+var4 = var6;
+RET_LABEL5:(void)0;
}
}
{
-{ /* Inline kernel#Int#== (var1,var2) on <var1:Int> */
-var8 = var1 == var2;
-var6 = var8;
-goto RET_LABEL7;
-RET_LABEL7:(void)0;
+{ /* Inline kernel#Int#== (var1,var4) on <var1:Int> */
+var10 = var1 == var4;
+var8 = var10;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
}
-var5 = var6;
+var7 = var8;
}
-if (unlikely(!var5)) {
+if (unlikely(!var7)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 440);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 458);
show_backtrace(1);
}
{
{ /* Inline model#MClass#arity (self) on <self:MClass> */
-var11 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on <self:MClass> */
-var9 = var11;
-RET_LABEL10:(void)0;
+var13 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on <self:MClass> */
+var11 = var13;
+RET_LABEL12:(void)0;
}
}
-var12 = 0;
+var14 = 0;
{
-{ /* Inline kernel#Int#== (var9,var12) on <var9:Int> */
-var16 = var9 == var12;
-var14 = var16;
-goto RET_LABEL15;
-RET_LABEL15:(void)0;
+{ /* Inline kernel#Int#== (var11,var14) on <var11:Int> */
+var18 = var11 == var14;
+var16 = var18;
+goto RET_LABEL17;
+RET_LABEL17:(void)0;
}
-var13 = var14;
+var15 = var16;
}
-if (var13){
+if (var15){
{
{ /* Inline model#MClass#mclass_type (self) on <self:MClass> */
-var19 = self->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <self:MClass> */
-if (unlikely(var19 == NULL)) {
+var21 = self->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <self:MClass> */
+if (unlikely(var21 == 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);
}
-var17 = var19;
-RET_LABEL18:(void)0;
+var19 = var21;
+RET_LABEL20:(void)0;
}
}
-var = var17;
+var = var19;
goto RET_LABEL;
} else {
}
{
{ /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
-var22 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on <self:MClass> */
-if (unlikely(var22 == NULL)) {
+var24 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on <self:MClass> */
+if (unlikely(var24 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
show_backtrace(1);
}
-var20 = var22;
-RET_LABEL21:(void)0;
+var22 = var24;
+RET_LABEL23:(void)0;
}
}
+var_ = var22;
{
-var23 = array__AbstractArrayRead__iterator(var20);
+var25 = array__AbstractArrayRead__iterator(var_);
}
+var_26 = var25;
for(;;) {
{
-var24 = array__ArrayIterator__is_ok(var23);
+var27 = array__ArrayIterator__is_ok(var_26);
}
-if(!var24) break;
+if (var27){
{
-var25 = array__ArrayIterator__item(var23);
+var28 = array__ArrayIterator__item(var_26);
}
-var_t = var25;
+var_t = var28;
{
{ /* Inline model#MClassType#arguments (var_t) on <var_t:MGenericType> */
-var28 = var_t->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_t:MGenericType> */
-if (unlikely(var28 == NULL)) {
+var31 = var_t->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_t:MGenericType> */
+if (unlikely(var31 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
show_backtrace(1);
}
-var26 = var28;
-RET_LABEL27:(void)0;
+var29 = var31;
+RET_LABEL30:(void)0;
}
}
{
-var30 = abstract_collection__SequenceRead___61d_61d(var26, var_mtype_arguments);
-var29 = var30;
+var33 = array__Array___61d_61d(var29, var_mtype_arguments);
+var32 = var33;
}
-if (var29){
+if (var32){
var = var_t;
goto RET_LABEL;
} else {
}
-CONTINUE_label: (void)0;
{
-array__ArrayIterator__next(var23); /* Direct call array#ArrayIterator#next on <var23:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_26); /* Direct call array#ArrayIterator#next on <var_26:ArrayIterator[MGenericType]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
-var31 = NEW_model__MGenericType(&type_model__MGenericType);
{
-model__MGenericType__init(var31, self, var_mtype_arguments); /* Direct call model#MGenericType#init on <var31:MGenericType>*/
+{ /* Inline abstract_collection#Iterator#finish (var_26) on <var_26:ArrayIterator[MGenericType]> */
+RET_LABEL34:(void)0;
+}
+}
+var35 = NEW_model__MGenericType(&type_model__MGenericType);
+{
+model__MGenericType__init(var35, self, var_mtype_arguments); /* Direct call model#MGenericType#init on <var35:MGenericType>*/
}
-var_res = var31;
+var_res = var35;
{
{ /* Inline model#MClass#get_mtype_cache (self) on <self:MClass> */
-var34 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on <self:MClass> */
-if (unlikely(var34 == NULL)) {
+var38 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on <self:MClass> */
+if (unlikely(var38 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
show_backtrace(1);
}
-var32 = var34;
-RET_LABEL33:(void)0;
+var36 = var38;
+RET_LABEL37:(void)0;
}
}
{
-array__Array__add(var32, var_res); /* Direct call array#Array#add on <var32:Array[MGenericType]>*/
+array__Array__add(var36, var_res); /* Direct call array#Array#add on <var36:Array[MGenericType]>*/
}
var = var_res;
goto RET_LABEL;
var1 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on <self:MClass> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on <self:Object(MClass)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 452);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 470);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <self:MClassDef> */
if (unlikely(var1 == 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);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <self:Object(MClassDef)> */
if (unlikely(var3 == 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);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
if (unlikely(var1 == 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);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:Object(MClassDef)> */
if (unlikely(var3 == 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);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <self:MClassDef> */
if (unlikely(var1 == 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);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <self:Object(MClassDef)> */
if (unlikely(var3 == 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);
}
var1 = var3;
}
RET_LABEL:;
}
-/* method model#MClassDef#parameter_names for (self: MClassDef): Array[String] */
-val* model__MClassDef__parameter_names(val* self) {
-val* var /* : Array[String] */;
-val* var1 /* : Array[String] */;
-var1 = self->attrs[COLOR_model__MClassDef___parameter_names].val; /* _parameter_names on <self:MClassDef> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parameter_names");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 489);
-show_backtrace(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MClassDef#parameter_names for (self: Object): Array[String] */
-val* VIRTUAL_model__MClassDef__parameter_names(val* self) {
-val* var /* : Array[String] */;
-val* var1 /* : Array[String] */;
-val* var3 /* : Array[String] */;
-{ /* Inline model#MClassDef#parameter_names (self) on <self:Object(MClassDef)> */
-var3 = self->attrs[COLOR_model__MClassDef___parameter_names].val; /* _parameter_names on <self:Object(MClassDef)> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _parameter_names");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 489);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MClassDef#parameter_names= for (self: MClassDef, Array[String]) */
-void model__MClassDef__parameter_names_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MClassDef___parameter_names].val = p0; /* _parameter_names on <self:MClassDef> */
-RET_LABEL:;
-}
-/* method model#MClassDef#parameter_names= for (self: Object, Array[String]) */
-void VIRTUAL_model__MClassDef__parameter_names_61d(val* self, val* p0) {
-{ /* Inline model#MClassDef#parameter_names= (self,p0) on <self:Object(MClassDef)> */
-self->attrs[COLOR_model__MClassDef___parameter_names].val = p0; /* _parameter_names on <self:Object(MClassDef)> */
-RET_LABEL1:(void)0;
-}
-RET_LABEL:;
-}
/* method model#MClassDef#location= for (self: MClassDef, Location) */
void model__MClassDef__location_61d(val* self, val* p0) {
self->attrs[COLOR_model__MClassDef___location].val = p0; /* _location on <self:MClassDef> */
var1 = self->attrs[COLOR_model__MClassDef___to_s].val; /* _to_s on <self:MClassDef> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 495);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 510);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassDef___to_s].val; /* _to_s on <self:Object(MClassDef)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 495);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 510);
show_backtrace(1);
}
var1 = var3;
}
RET_LABEL:;
}
-/* method model#MClassDef#init for (self: MClassDef, MModule, MClassType, Location, Array[String]) */
-void model__MClassDef__init(val* self, val* p0, val* p1, val* p2, val* p3) {
+/* method model#MClassDef#init for (self: MClassDef, MModule, MClassType, Location) */
+void model__MClassDef__init(val* self, val* p0, val* p1, val* p2) {
val* var_mmodule /* var mmodule: MModule */;
val* var_bound_mtype /* var bound_mtype: MClassType */;
val* var_location /* var location: Location */;
-val* var_parameter_names /* var parameter_names: Array[String] */;
val* var /* : MClass */;
-val* var3 /* : MClass */;
-long var4 /* : Int */;
-long var6 /* : Int */;
-long var7 /* : Int */;
-short int var8 /* : Bool */;
-short int var9 /* : Bool */;
-short int var11 /* : Bool */;
-val* var14 /* : MClass */;
+val* var4 /* : MClass */;
+val* var7 /* : Array[MClassDef] */;
+val* var9 /* : Array[MClassDef] */;
+val* var10 /* : MClass */;
+val* var12 /* : MClass */;
+val* var13 /* : Array[MClassDef] */;
+val* var15 /* : Array[MClassDef] */;
val* var16 /* : MClass */;
-val* var19 /* : Array[MClassDef] */;
-val* var21 /* : Array[MClassDef] */;
-val* var22 /* : MClass */;
-val* var24 /* : MClass */;
-val* var25 /* : Array[MClassDef] */;
-val* var27 /* : Array[MClassDef] */;
-static val* varonce;
-val* var29 /* : String */;
-char* var30 /* : NativeString */;
-long var31 /* : Int */;
-val* var32 /* : FlatString */;
+val* var18 /* : MClass */;
+val* var19 /* : MModule */;
+val* var21 /* : MModule */;
+short int var22 /* : Bool */;
+short int var23 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var25 /* : Bool */;
+short int var27 /* : Bool */;
+val* var28 /* : MClass */;
+val* var30 /* : MClass */;
+short int var31 /* : Bool */;
+short int var32 /* : Bool */;
val* var33 /* : MClass */;
val* var35 /* : MClass */;
-val* var36 /* : Array[Object] */;
-long var37 /* : Int */;
-val* var38 /* : NativeArray[Object] */;
-val* var39 /* : String */;
+static val* varonce;
+val* var37 /* : String */;
+char* var38 /* : NativeString */;
+long var39 /* : Int */;
+val* var40 /* : FlatString */;
+val* var41 /* : MClass */;
+val* var43 /* : MClass */;
+val* var44 /* : Array[Object] */;
+long var45 /* : Int */;
+val* var46 /* : NativeArray[Object] */;
+val* var47 /* : String */;
{
-{ /* Inline model_base#MEntity#init (self) on <self:MClassDef> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MClassDef>*/;
}
var_mmodule = p0;
var_bound_mtype = p1;
var_location = p2;
-var_parameter_names = p3;
-{
-{ /* Inline model#MClassType#mclass (var_bound_mtype) on <var_bound_mtype:MClassType> */
-var3 = var_bound_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_bound_mtype:MClassType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#arity (var) on <var:MClass> */
-var6 = var->attrs[COLOR_model__MClass___arity].l; /* _arity on <var:MClass> */
-var4 = var6;
-RET_LABEL5:(void)0;
-}
-}
-{
-var7 = array__AbstractArrayRead__length(var_parameter_names);
-}
-{
-{ /* Inline kernel#Int#== (var4,var7) on <var4:Int> */
-var11 = var4 == var7;
-var9 = var11;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
-}
-var8 = var9;
-}
-if (unlikely(!var8)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 501);
-show_backtrace(1);
-}
{
{ /* Inline model#MClassDef#bound_mtype= (self,var_bound_mtype) on <self:MClassDef> */
self->attrs[COLOR_model__MClassDef___bound_mtype].val = var_bound_mtype; /* _bound_mtype on <self:MClassDef> */
-RET_LABEL12:(void)0;
+RET_LABEL1:(void)0;
}
}
{
{ /* Inline model#MClassDef#mmodule= (self,var_mmodule) on <self:MClassDef> */
self->attrs[COLOR_model__MClassDef___mmodule].val = var_mmodule; /* _mmodule on <self:MClassDef> */
-RET_LABEL13:(void)0;
+RET_LABEL2:(void)0;
}
}
{
{ /* Inline model#MClassType#mclass (var_bound_mtype) on <var_bound_mtype:MClassType> */
-var16 = var_bound_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_bound_mtype:MClassType> */
-if (unlikely(var16 == NULL)) {
+var4 = var_bound_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_bound_mtype:MClassType> */
+if (unlikely(var4 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
-var14 = var16;
-RET_LABEL15:(void)0;
+var = var4;
+RET_LABEL3:(void)0;
}
}
{
-{ /* Inline model#MClassDef#mclass= (self,var14) on <self:MClassDef> */
-self->attrs[COLOR_model__MClassDef___mclass].val = var14; /* _mclass on <self:MClassDef> */
-RET_LABEL17:(void)0;
+{ /* Inline model#MClassDef#mclass= (self,var) on <self:MClassDef> */
+self->attrs[COLOR_model__MClassDef___mclass].val = var; /* _mclass on <self:MClassDef> */
+RET_LABEL5:(void)0;
}
}
{
{ /* Inline model#MClassDef#location= (self,var_location) on <self:MClassDef> */
self->attrs[COLOR_model__MClassDef___location].val = var_location; /* _location on <self:MClassDef> */
-RET_LABEL18:(void)0;
+RET_LABEL6:(void)0;
}
}
{
{ /* Inline model#MModule#mclassdefs (var_mmodule) on <var_mmodule:MModule> */
-var21 = var_mmodule->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on <var_mmodule:MModule> */
-if (unlikely(var21 == NULL)) {
+var9 = var_mmodule->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on <var_mmodule:MModule> */
+if (unlikely(var9 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 141);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 139);
show_backtrace(1);
}
-var19 = var21;
-RET_LABEL20:(void)0;
+var7 = var9;
+RET_LABEL8:(void)0;
}
}
{
-array__Array__add(var19, self); /* Direct call array#Array#add on <var19:Array[MClassDef]>*/
+array__Array__add(var7, self); /* Direct call array#Array#add on <var7:Array[MClassDef]>*/
}
{
{ /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
-var24 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
-if (unlikely(var24 == NULL)) {
+var12 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self: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);
}
-var22 = var24;
-RET_LABEL23:(void)0;
+var10 = var12;
+RET_LABEL11:(void)0;
}
}
{
-{ /* Inline model#MClass#mclassdefs (var22) on <var22:MClass> */
-var27 = var22->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <var22:MClass> */
-if (unlikely(var27 == NULL)) {
+{ /* Inline model#MClass#mclassdefs (var10) on <var10:MClass> */
+var15 = var10->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <var10:MClass> */
+if (unlikely(var15 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
show_backtrace(1);
}
-var25 = var27;
-RET_LABEL26:(void)0;
-}
+var13 = var15;
+RET_LABEL14:(void)0;
}
-{
-array__Array__add(var25, self); /* Direct call array#Array#add on <var25:Array[MClassDef]>*/
}
{
-{ /* Inline model#MClassDef#parameter_names= (self,var_parameter_names) on <self:MClassDef> */
-self->attrs[COLOR_model__MClassDef___parameter_names].val = var_parameter_names; /* _parameter_names on <self:MClassDef> */
-RET_LABEL28:(void)0;
-}
-}
-if (varonce) {
-var29 = varonce;
-} else {
-var30 = "#";
-var31 = 1;
-var32 = string__NativeString__to_s_with_length(var30, var31);
-var29 = var32;
-varonce = var29;
+array__Array__add(var13, self); /* Direct call array#Array#add on <var13:Array[MClassDef]>*/
}
{
{ /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
-var35 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
-if (unlikely(var35 == NULL)) {
+var18 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
+if (unlikely(var18 == 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);
}
-var33 = var35;
-RET_LABEL34:(void)0;
+var16 = var18;
+RET_LABEL17:(void)0;
}
}
-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_mmodule;
-((struct instance_array__NativeArray*)var38)->values[1] = (val*) var29;
-((struct instance_array__NativeArray*)var38)->values[2] = (val*) var33;
{
-((void (*)(val*, val*, long))(var36->class->vft[COLOR_array__Array__with_native]))(var36, var38, var37) /* with_native on <var36:Array[Object]>*/;
+{ /* Inline model#MClass#intro_mmodule (var16) on <var16:MClass> */
+var21 = var16->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <var16:MClass> */
+if (unlikely(var21 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
+show_backtrace(1);
}
+var19 = var21;
+RET_LABEL20:(void)0;
}
-{
-var39 = ((val* (*)(val*))(var36->class->vft[COLOR_string__Object__to_s]))(var36) /* to_s on <var36:Array[Object]>*/;
}
{
-{ /* Inline model#MClassDef#to_s= (self,var39) on <self:MClassDef> */
-self->attrs[COLOR_model__MClassDef___to_s].val = var39; /* _to_s on <self:MClassDef> */
-RET_LABEL40:(void)0;
+{ /* Inline kernel#Object#== (var19,var_mmodule) on <var19:MModule> */
+var_other = var_mmodule;
+{
+{ /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:MModule> */
+var27 = var19 == var_other;
+var25 = var27;
+goto RET_LABEL26;
+RET_LABEL26:(void)0;
}
}
-RET_LABEL:;
+var23 = var25;
+goto RET_LABEL24;
+RET_LABEL24:(void)0;
}
-/* method model#MClassDef#init for (self: Object, MModule, MClassType, Location, Array[String]) */
-void VIRTUAL_model__MClassDef__init(val* self, val* p0, val* p1, val* p2, val* p3) {
-model__MClassDef__init(self, p0, p1, p2, p3); /* Direct call model#MClassDef#init on <self:Object(MClassDef)>*/
-RET_LABEL:;
+var22 = var23;
}
-/* method model#MClassDef#name for (self: MClassDef): String */
-val* model__MClassDef__name(val* self) {
-val* var /* : String */;
-val* var1 /* : MClass */;
-val* var3 /* : MClass */;
-val* var4 /* : String */;
-val* var6 /* : String */;
+if (var22){
{
{ /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
-var3 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
-if (unlikely(var3 == NULL)) {
+var30 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
+if (unlikely(var30 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
+show_backtrace(1);
+}
+var28 = var30;
+RET_LABEL29:(void)0;
+}
+}
+var31 = var28->attrs[COLOR_model__MClass___intro].val != NULL; /* _intro on <var28:MClass> */
+var32 = !var31;
+if (unlikely(!var32)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 523);
+show_backtrace(1);
+}
+{
+{ /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
+var35 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
+if (unlikely(var35 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
+show_backtrace(1);
+}
+var33 = var35;
+RET_LABEL34:(void)0;
+}
+}
+{
+{ /* Inline model#MClass#intro= (var33,self) on <var33:MClass> */
+var33->attrs[COLOR_model__MClass___intro].val = self; /* _intro on <var33:MClass> */
+RET_LABEL36:(void)0;
+}
+}
+} else {
+}
+if (varonce) {
+var37 = varonce;
+} else {
+var38 = "#";
+var39 = 1;
+var40 = string__NativeString__to_s_with_length(var38, var39);
+var37 = var40;
+varonce = var37;
+}
+{
+{ /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
+var43 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
+if (unlikely(var43 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 492);
+show_backtrace(1);
+}
+var41 = var43;
+RET_LABEL42:(void)0;
+}
+}
+var44 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var44 = array_instance Array[Object] */
+var45 = 3;
+var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var46)->values[0] = (val*) var_mmodule;
+((struct instance_array__NativeArray*)var46)->values[1] = (val*) var37;
+((struct instance_array__NativeArray*)var46)->values[2] = (val*) var41;
+{
+((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on <var44:Array[Object]>*/;
+}
+}
+{
+var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on <var44:Array[Object]>*/;
+}
+{
+{ /* Inline model#MClassDef#to_s= (self,var47) on <self:MClassDef> */
+self->attrs[COLOR_model__MClassDef___to_s].val = var47; /* _to_s on <self:MClassDef> */
+RET_LABEL48:(void)0;
+}
+}
+RET_LABEL:;
+}
+/* method model#MClassDef#init for (self: Object, MModule, MClassType, Location) */
+void VIRTUAL_model__MClassDef__init(val* self, val* p0, val* p1, val* p2) {
+model__MClassDef__init(self, p0, p1, p2); /* Direct call model#MClassDef#init on <self:Object(MClassDef)>*/
+RET_LABEL:;
+}
+/* method model#MClassDef#name for (self: MClassDef): String */
+val* model__MClassDef__name(val* self) {
+val* var /* : String */;
+val* var1 /* : MClass */;
+val* var3 /* : MClass */;
+val* var4 /* : String */;
+val* var6 /* : String */;
+{
+{ /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
+var3 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
+if (unlikely(var3 == 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);
}
var1 = var3;
var6 = var1->attrs[COLOR_model__MClass___name].val; /* _name on <var1:MClass> */
if (unlikely(var6 == 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);
}
var4 = var6;
var3 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <self:MClassDef> */
if (unlikely(var3 == 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);
}
var1 = var3;
var6 = var1->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var1:MModule> */
if (unlikely(var6 == 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);
}
var4 = var6;
var1 = self->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <self:MClassDef> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <self:Object(MClassDef)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
show_backtrace(1);
}
var1 = var3;
val* var16 /* : MClassType */;
val* var18 /* : MClassType */;
val* var_mtype /* var mtype: MClassType */;
+val* var_ /* var : Array[MClassType] */;
val* var19 /* : ArrayIterator[nullable Object] */;
-short int var20 /* : Bool */;
-val* var21 /* : nullable Object */;
+val* var_20 /* var : ArrayIterator[MClassType] */;
+short int var21 /* : Bool */;
+val* var22 /* : nullable Object */;
val* var_supertype /* var supertype: MClassType */;
-val* var22 /* : Array[MClassType] */;
-val* var24 /* : Array[MClassType] */;
-val* var25 /* : POSet[MClassType] */;
-val* var27 /* : POSet[MClassType] */;
-short int var28 /* : Bool */;
-val* var29 /* : MClass */;
-val* var31 /* : MClass */;
-val* var32 /* : MModule */;
-val* var34 /* : MModule */;
-short int var35 /* : Bool */;
+val* var23 /* : Array[MClassType] */;
+val* var25 /* : Array[MClassType] */;
+val* var26 /* : POSet[MClassType] */;
+val* var28 /* : POSet[MClassType] */;
+short int var29 /* : Bool */;
+val* var30 /* : MClass */;
+val* var32 /* : MClass */;
+val* var33 /* : MModule */;
+val* var35 /* : MModule */;
short int var36 /* : Bool */;
-short int var38 /* : Bool */;
-short int var40 /* : Bool */;
-short int var_ /* var : Bool */;
-val* var41 /* : MClass */;
+short int var37 /* : Bool */;
+short int var39 /* : Bool */;
+short int var41 /* : Bool */;
+short int var_42 /* var : Bool */;
val* var43 /* : MClass */;
-val* var44 /* : MModule */;
+val* var45 /* : MClass */;
val* var46 /* : MModule */;
-short int var47 /* : Bool */;
-short int var48 /* : Bool */;
+val* var48 /* : MModule */;
+short int var49 /* : Bool */;
short int var50 /* : Bool */;
short int var52 /* : Bool */;
-val* var53 /* : POSet[MClassType] */;
+short int var54 /* : Bool */;
val* var55 /* : POSet[MClassType] */;
+val* var57 /* : POSet[MClassType] */;
var_supertypes = p0;
{
{ /* Inline model#MClassDef#in_hierarchy (self) on <self:MClassDef> */
}
if (unlikely(!var4)) {
PRINT_ERROR("Runtime error: %s", "Assert \'unique_invocation\' failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 527);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 544);
show_backtrace(1);
}
{
var12 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <self:MClassDef> */
if (unlikely(var12 == 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);
}
var10 = var12;
var15 = var_mmodule->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var_mmodule:MModule> */
if (unlikely(var15 == 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);
}
var13 = var15;
var18 = self->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <self:MClassDef> */
if (unlikely(var18 == 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);
}
var16 = var18;
}
}
var_mtype = var16;
+var_ = var_supertypes;
{
-var19 = array__AbstractArrayRead__iterator(var_supertypes);
+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_supertype = var21;
+var_supertype = var22;
{
{ /* Inline model#MClassDef#supertypes (self) on <self:MClassDef> */
-var24 = self->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <self:MClassDef> */
-if (unlikely(var24 == NULL)) {
+var25 = self->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <self:MClassDef> */
+if (unlikely(var25 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
show_backtrace(1);
}
-var22 = var24;
-RET_LABEL23:(void)0;
+var23 = var25;
+RET_LABEL24:(void)0;
}
}
{
-array__Array__add(var22, var_supertype); /* Direct call array#Array#add on <var22:Array[MClassType]>*/
+array__Array__add(var23, var_supertype); /* Direct call array#Array#add on <var23:Array[MClassType]>*/
}
{
{ /* Inline model#Model#full_mtype_specialization_hierarchy (var_model) on <var_model:Model> */
-var27 = var_model->attrs[COLOR_model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on <var_model:Model> */
-if (unlikely(var27 == NULL)) {
+var28 = var_model->attrs[COLOR_model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on <var_model:Model> */
+if (unlikely(var28 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 59);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 57);
show_backtrace(1);
}
-var25 = var27;
-RET_LABEL26:(void)0;
+var26 = var28;
+RET_LABEL27:(void)0;
}
}
{
-poset__POSet__add_edge(var25, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on <var25:POSet[MClassType]>*/
+poset__POSet__add_edge(var26, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on <var26:POSet[MClassType]>*/
}
{
{ /* Inline model#MClassDef#mclass (self) on <self:MClassDef> */
-var31 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
-if (unlikely(var31 == NULL)) {
+var32 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
+if (unlikely(var32 == 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);
}
-var29 = var31;
-RET_LABEL30:(void)0;
+var30 = var32;
+RET_LABEL31:(void)0;
}
}
{
-{ /* Inline model#MClass#intro_mmodule (var29) on <var29:MClass> */
-var34 = var29->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <var29:MClass> */
-if (unlikely(var34 == NULL)) {
+{ /* Inline model#MClass#intro_mmodule (var30) on <var30:MClass> */
+var35 = var30->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <var30:MClass> */
+if (unlikely(var35 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
show_backtrace(1);
}
-var32 = var34;
-RET_LABEL33:(void)0;
+var33 = var35;
+RET_LABEL34:(void)0;
}
}
{
-{ /* Inline kernel#Object#== (var32,var_mmodule) on <var32:MModule> */
+{ /* Inline kernel#Object#== (var33,var_mmodule) on <var33:MModule> */
var_other = var_mmodule;
{
-{ /* Inline kernel#Object#is_same_instance (var32,var_other) on <var32:MModule> */
-var40 = var32 == var_other;
-var38 = var40;
-goto RET_LABEL39;
-RET_LABEL39:(void)0;
+{ /* Inline kernel#Object#is_same_instance (var33,var_other) on <var33:MModule> */
+var41 = var33 == var_other;
+var39 = var41;
+goto RET_LABEL40;
+RET_LABEL40:(void)0;
}
}
-var36 = var38;
-goto RET_LABEL37;
-RET_LABEL37:(void)0;
+var37 = var39;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
}
-var35 = var36;
+var36 = var37;
}
-var_ = var35;
-if (var35){
+var_42 = var36;
+if (var36){
{
{ /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
-var43 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_supertype:MClassType> */
-if (unlikely(var43 == NULL)) {
+var45 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_supertype:MClassType> */
+if (unlikely(var45 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
-var41 = var43;
-RET_LABEL42:(void)0;
+var43 = var45;
+RET_LABEL44:(void)0;
}
}
{
-{ /* Inline model#MClass#intro_mmodule (var41) on <var41:MClass> */
-var46 = var41->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <var41:MClass> */
-if (unlikely(var46 == NULL)) {
+{ /* Inline model#MClass#intro_mmodule (var43) on <var43:MClass> */
+var48 = var43->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <var43:MClass> */
+if (unlikely(var48 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
show_backtrace(1);
}
-var44 = var46;
-RET_LABEL45:(void)0;
+var46 = var48;
+RET_LABEL47:(void)0;
}
}
{
-{ /* Inline kernel#Object#== (var44,var_mmodule) on <var44:MModule> */
+{ /* Inline kernel#Object#== (var46,var_mmodule) on <var46:MModule> */
var_other = var_mmodule;
{
-{ /* Inline kernel#Object#is_same_instance (var44,var_other) on <var44:MModule> */
-var52 = var44 == var_other;
+{ /* Inline kernel#Object#is_same_instance (var46,var_other) on <var46:MModule> */
+var54 = var46 == var_other;
+var52 = var54;
+goto RET_LABEL53;
+RET_LABEL53:(void)0;
+}
+}
var50 = var52;
goto RET_LABEL51;
RET_LABEL51:(void)0;
}
+var49 = var50;
}
-var48 = var50;
-goto RET_LABEL49;
-RET_LABEL49:(void)0;
-}
-var47 = var48;
-}
-var28 = var47;
+var29 = var49;
} else {
-var28 = var_;
+var29 = var_42;
}
-if (var28){
+if (var29){
{
{ /* Inline model#Model#intro_mtype_specialization_hierarchy (var_model) on <var_model:Model> */
-var55 = var_model->attrs[COLOR_model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on <var_model:Model> */
-if (unlikely(var55 == NULL)) {
+var57 = var_model->attrs[COLOR_model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on <var_model:Model> */
+if (unlikely(var57 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 48);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 46);
show_backtrace(1);
}
-var53 = var55;
-RET_LABEL54:(void)0;
+var55 = var57;
+RET_LABEL56:(void)0;
}
}
{
-poset__POSet__add_edge(var53, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on <var53:POSet[MClassType]>*/
+poset__POSet__add_edge(var55, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on <var55:POSet[MClassType]>*/
}
} else {
}
-CONTINUE_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[MClassType]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_20) on <var_20:ArrayIterator[MClassType]> */
+RET_LABEL58:(void)0;
+}
+}
RET_LABEL:;
}
/* method model#MClassDef#set_supertypes for (self: Object, Array[MClassType]) */
val* var24 /* : MModule */;
val* var26 /* : MModule */;
val* var27 /* : Set[MClassDef] */;
+val* var_ /* var : Set[MClassDef] */;
val* var28 /* : Iterator[nullable Object] */;
-short int var29 /* : Bool */;
-val* var30 /* : nullable Object */;
+val* var_29 /* var : Iterator[MClassDef] */;
+short int var30 /* : Bool */;
+val* var31 /* : nullable Object */;
val* var_mclassdef /* var mclassdef: MClassDef */;
-val* var31 /* : POSet[Object] */;
-val* var33 /* : POSet[Object] */;
+val* var32 /* : POSet[Object] */;
+val* var34 /* : POSet[Object] */;
{
{ /* Inline model#MClassDef#in_hierarchy (self) on <self:MClassDef> */
var2 = self->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on <self:MClassDef> */
}
if (unlikely(!var4)) {
PRINT_ERROR("Runtime error: %s", "Assert \'unique_invocation\' failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 552);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 569);
show_backtrace(1);
}
{
var12 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <self:MClassDef> */
if (unlikely(var12 == 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);
}
var10 = var12;
var15 = var10->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var10:MModule> */
if (unlikely(var15 == 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);
}
var13 = var15;
var18 = var_model->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on <var_model:Model> */
if (unlikely(var18 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 42);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 40);
show_backtrace(1);
}
var16 = var18;
var23 = self->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <self:MClassDef> */
if (unlikely(var23 == 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);
}
var21 = var23;
var26 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <self:MClassDef> */
if (unlikely(var26 == 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);
}
var24 = var26;
{
var27 = model__MClassType__collect_mclassdefs(var_mtype, var24);
}
+var_ = var27;
{
-var28 = ((val* (*)(val*))(var27->class->vft[COLOR_abstract_collection__Collection__iterator]))(var27) /* iterator on <var27:Set[MClassDef]>*/;
+var28 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Set[MClassDef]>*/;
}
+var_29 = var28;
for(;;) {
{
-var29 = ((short int (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var28) /* is_ok on <var28:Iterator[nullable Object]>*/;
+var30 = ((short int (*)(val*))(var_29->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_29) /* is_ok on <var_29:Iterator[MClassDef]>*/;
}
-if(!var29) break;
+if (var30){
{
-var30 = ((val* (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__item]))(var28) /* item on <var28:Iterator[nullable Object]>*/;
+var31 = ((val* (*)(val*))(var_29->class->vft[COLOR_abstract_collection__Iterator__item]))(var_29) /* item on <var_29:Iterator[MClassDef]>*/;
}
-var_mclassdef = var30;
+var_mclassdef = var31;
{
{ /* Inline poset#POSetElement#poset (var_res) on <var_res:POSetElement[MClassDef]> */
-var33 = var_res->attrs[COLOR_poset__POSetElement___poset].val; /* _poset on <var_res:POSetElement[MClassDef]> */
-if (unlikely(var33 == NULL)) {
+var34 = var_res->attrs[COLOR_poset__POSetElement___poset].val; /* _poset on <var_res:POSetElement[MClassDef]> */
+if (unlikely(var34 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset");
-PRINT_ERROR(" (%s:%d)\n", "lib/poset.nit", 188);
+PRINT_ERROR(" (%s:%d)\n", "../lib/poset.nit", 239);
show_backtrace(1);
}
-var31 = var33;
-RET_LABEL32:(void)0;
+var32 = var34;
+RET_LABEL33:(void)0;
}
}
{
-poset__POSet__add_edge(var31, self, var_mclassdef); /* Direct call poset#POSet#add_edge on <var31:POSet[Object](POSet[MClassDef])>*/
+poset__POSet__add_edge(var32, self, var_mclassdef); /* Direct call poset#POSet#add_edge on <var32:POSet[Object](POSet[MClassDef])>*/
}
-CONTINUE_label: (void)0;
{
-((void (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__next]))(var28) /* next on <var28:Iterator[nullable Object]>*/;
+((void (*)(val*))(var_29->class->vft[COLOR_abstract_collection__Iterator__next]))(var_29) /* next on <var_29:Iterator[MClassDef]>*/;
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_29) on <var_29:Iterator[MClassDef]> */
+RET_LABEL35:(void)0;
+}
+}
RET_LABEL:;
}
/* method model#MClassDef#add_in_hierarchy for (self: Object) */
val* var1 /* : MClass */;
val* var3 /* : MClass */;
val* var4 /* : MClassDef */;
-short int var5 /* : Bool */;
-short int var6 /* : Bool */;
-val* var_other /* var other: nullable Object */;
+val* var6 /* : MClassDef */;
+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#MClassDef#mclass (self) on <self:MClassDef> */
var3 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on <self:MClassDef> */
if (unlikely(var3 == 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);
}
var1 = var3;
}
}
{
-var4 = model__MClass__intro(var1);
+{ /* Inline model#MClass#intro (var1) on <var1:MClass> */
+var6 = var1->attrs[COLOR_model__MClass___intro].val; /* _intro on <var1:MClass> */
+if (unlikely(var6 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 420);
+show_backtrace(1);
+}
+var4 = var6;
+RET_LABEL5:(void)0;
+}
}
{
{ /* Inline kernel#Object#== (var4,self) on <var4:MClassDef> */
var_other = self;
{
{ /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MClassDef> */
-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;
var1 = self->attrs[COLOR_model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <self:MClassDef> */
if (unlikely(var1 == 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 = var1;
var3 = self->attrs[COLOR_model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <self:Object(MClassDef)> */
if (unlikely(var3 == 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);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on <self:MClassDef> */
if (unlikely(var1 == 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);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on <self:Object(MClassDef)> */
if (unlikely(var3 == 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);
}
var1 = var3;
short int var183 /* : Bool */;
short int var185 /* : Bool */;
short int var187 /* : Bool */;
-val* var188 /* : Range[Int] */;
-long var189 /* : Int */;
-val* var190 /* : MClass */;
-val* var192 /* : MClass */;
-long var193 /* : Int */;
-long var195 /* : Int */;
-val* var196 /* : Discrete */;
-val* var197 /* : Discrete */;
-val* var198 /* : Iterator[Discrete] */;
-short int var199 /* : Bool */;
-val* var200 /* : nullable Object */;
+long var188 /* : Int */;
long var_i /* var i: Int */;
-long var201 /* : Int */;
+val* var189 /* : MClass */;
+val* var191 /* : MClass */;
+long var192 /* : Int */;
+long var194 /* : Int */;
+long var_195 /* var : Int */;
+short int var196 /* : Bool */;
+short int var198 /* : Bool */;
+int cltype199;
+int idtype200;
+const char* var_class_name;
+short int var201 /* : Bool */;
val* var202 /* : Array[MType] */;
val* var204 /* : Array[MType] */;
val* var205 /* : nullable Object */;
short int var213 /* : Bool */;
short int var215 /* : Bool */;
short int var216 /* : Bool */;
-short int var217 /* : Bool */;
+long var217 /* : Int */;
+long var218 /* : Int */;
+short int var219 /* : Bool */;
var_mmodule = p0;
var_anchor = p1;
var_sup = p2;
var16 = !var15;
if (unlikely(!var16)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 620);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 637);
show_backtrace(1);
}
{
var18 = !var17;
if (unlikely(!var18)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 621);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 638);
show_backtrace(1);
}
} else {
}
if (unlikely(!var20)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 623);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 640);
show_backtrace(1);
}
var21 = NULL;
}
if (unlikely(!var22)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 624);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 641);
show_backtrace(1);
}
}
}
if (unlikely(!var29)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 631);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 648);
show_backtrace(1);
}
{
var38 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
if (unlikely(var38 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var36 = var38;
var41 = var36->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var36:MClass> */
if (unlikely(var41 == 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);
}
var39 = var41;
}
if (unlikely(!var53)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 635);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 652);
show_backtrace(1);
}
{
var61 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
if (unlikely(var61 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var59 = var61;
var64 = var59->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var59:MClass> */
if (unlikely(var64 == 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);
}
var62 = var64;
var74 = var_sup->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <var_sup:MType(MNullableType)> */
if (unlikely(var74 == 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);
}
var72 = var74;
var86 = var_sub->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <var_sub:MType(MNullableType)> */
if (unlikely(var86 == 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);
}
var84 = var86;
}
if (unlikely(!var113)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 667);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 684);
show_backtrace(1);
}
{
var127 = var_sub->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <var_sub:MType(MNullableType)> */
if (unlikely(var127 == 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);
}
var125 = var127;
}
if (unlikely(!var131)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 679);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 696);
show_backtrace(1);
}
/* <var_sup:MType> isa MNullType */
}
if (unlikely(!var138)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 686);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 703);
show_backtrace(1);
}
{
var159 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_sup:MType(MClassType)> */
if (unlikely(var159 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var157 = var159;
var174 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_sup:MType(MGenericType)> */
if (unlikely(var174 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var172 = var174;
var178 = var_sub2->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_sub2:MClassType> */
if (unlikely(var178 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var176 = var178;
var181 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_sup:MType(MGenericType)> */
if (unlikely(var181 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var179 = var181;
}
if (unlikely(!var182)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 698);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 715);
show_backtrace(1);
}
-var188 = NEW_range__Range(&type_range__Rangekernel__Int);
-var189 = 0;
+var188 = 0;
+var_i = var188;
{
{ /* Inline model#MClassType#mclass (var_sup) on <var_sup:MType(MGenericType)> */
-var192 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_sup:MType(MGenericType)> */
-if (unlikely(var192 == NULL)) {
+var191 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_sup:MType(MGenericType)> */
+if (unlikely(var191 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
-var190 = var192;
-RET_LABEL191:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#arity (var190) on <var190:MClass> */
-var195 = var190->attrs[COLOR_model__MClass___arity].l; /* _arity on <var190:MClass> */
-var193 = var195;
-RET_LABEL194:(void)0;
+var189 = var191;
+RET_LABEL190:(void)0;
}
}
{
-var196 = BOX_kernel__Int(var189); /* autobox from Int to Discrete */
-var197 = BOX_kernel__Int(var193); /* autobox from Int to Discrete */
-range__Range__without_last(var188, var196, var197); /* Direct call range#Range#without_last on <var188:Range[Int]>*/
+{ /* Inline model#MClass#arity (var189) on <var189:MClass> */
+var194 = var189->attrs[COLOR_model__MClass___arity].l; /* _arity on <var189:MClass> */
+var192 = var194;
+RET_LABEL193:(void)0;
}
-{
-var198 = range__Range__iterator(var188);
}
+var_195 = var192;
for(;;) {
{
-var199 = ((short int (*)(val*))(var198->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var198) /* is_ok on <var198:Iterator[Discrete]>*/;
+{ /* Inline kernel#Int#< (var_i,var_195) on <var_i:Int> */
+/* Covariant cast for argument 0 (i) <var_195:Int> isa OTHER */
+/* <var_195:Int> isa OTHER */
+var198 = 1; /* easy <var_195:Int> isa OTHER*/
+if (unlikely(!var198)) {
+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(!var199) break;
-{
-var200 = ((val* (*)(val*))(var198->class->vft[COLOR_abstract_collection__Iterator__item]))(var198) /* item on <var198:Iterator[Discrete]>*/;
+var201 = var_i < var_195;
+var196 = var201;
+goto RET_LABEL197;
+RET_LABEL197:(void)0;
}
-var201 = ((struct instance_kernel__Int*)var200)->value; /* autounbox from nullable Object to Int */;
-var_i = var201;
+}
+if (var196){
{
{ /* Inline model#MClassType#arguments (var_sub2) on <var_sub2:MClassType> */
var204 = var_sub2->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_sub2:MClassType> */
if (unlikely(var204 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
show_backtrace(1);
}
var202 = var204;
var208 = var_sup->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_sup:MType(MGenericType)> */
if (unlikely(var208 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
show_backtrace(1);
}
var206 = var208;
goto RET_LABEL;
} else {
}
-CONTINUE_label: (void)0;
+var217 = 1;
{
-((void (*)(val*))(var198->class->vft[COLOR_abstract_collection__Iterator__next]))(var198) /* next on <var198:Iterator[Discrete]>*/;
+var218 = kernel__Int__successor(var_i, var217);
+}
+var_i = var218;
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
-var217 = 1;
-var = var217;
+var219 = 1;
+var = var219;
goto RET_LABEL;
RET_LABEL:;
return var;
var4 = !var3;
if (unlikely(!var4)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 743);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 760);
show_backtrace(1);
}
var5 = NULL;
var9 = !var8;
if (unlikely(!var9)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 746);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 763);
show_backtrace(1);
}
var = var_res;
val* var_resolved_self /* var resolved_self: nullable Object */;
val* var33 /* : Set[MClassType] */;
val* var_supertypes /* var supertypes: Set[MClassType] */;
-val* var34 /* : Iterator[nullable Object] */;
-short int var35 /* : Bool */;
-val* var36 /* : nullable Object */;
+val* var_34 /* var : Set[MClassType] */;
+val* var35 /* : Iterator[nullable Object] */;
+val* var_36 /* var : Iterator[MClassType] */;
+short int var37 /* : Bool */;
+val* var38 /* : nullable Object */;
val* var_supertype /* var supertype: MClassType */;
-val* var37 /* : MClass */;
val* var39 /* : MClass */;
-short int var40 /* : Bool */;
-short int var41 /* : Bool */;
+val* var41 /* : MClass */;
+short int var42 /* : Bool */;
short int var43 /* : Bool */;
short int var45 /* : Bool */;
-short int var46 /* : Bool */;
-val* var47 /* : MType */;
+short int var47 /* : Bool */;
+short int var48 /* : Bool */;
+val* var49 /* : MType */;
var_mmodule = p0;
var_anchor = p1;
var_super_mclass = p2;
var11 = var_super_mclass->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var_super_mclass:MClass> */
if (unlikely(var11 == 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);
}
var9 = var11;
var16 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MType(MClassType)> */
if (unlikely(var16 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var14 = var16;
}
if (unlikely(!var25)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 772);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 789);
show_backtrace(1);
}
{
var33 = ((val* (*)(val*, val*))(var_resolved_self->class->vft[COLOR_model__MType__collect_mtypes]))(var_resolved_self, var_mmodule) /* collect_mtypes on <var_resolved_self:nullable Object(MType)>*/;
}
var_supertypes = var33;
+var_34 = var_supertypes;
{
-var34 = ((val* (*)(val*))(var_supertypes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_supertypes) /* iterator on <var_supertypes:Set[MClassType]>*/;
+var35 = ((val* (*)(val*))(var_34->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_34) /* iterator on <var_34:Set[MClassType]>*/;
}
+var_36 = var35;
for(;;) {
{
-var35 = ((short int (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var34) /* is_ok on <var34:Iterator[nullable Object]>*/;
+var37 = ((short int (*)(val*))(var_36->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_36) /* is_ok on <var_36:Iterator[MClassType]>*/;
}
-if(!var35) break;
+if (var37){
{
-var36 = ((val* (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__item]))(var34) /* item on <var34:Iterator[nullable Object]>*/;
+var38 = ((val* (*)(val*))(var_36->class->vft[COLOR_abstract_collection__Iterator__item]))(var_36) /* item on <var_36:Iterator[MClassType]>*/;
}
-var_supertype = var36;
+var_supertype = var38;
{
{ /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
-var39 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_supertype:MClassType> */
-if (unlikely(var39 == NULL)) {
+var41 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_supertype:MClassType> */
+if (unlikely(var41 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
-var37 = var39;
-RET_LABEL38:(void)0;
+var39 = var41;
+RET_LABEL40:(void)0;
}
}
{
-{ /* Inline kernel#Object#== (var37,var_super_mclass) on <var37:MClass> */
+{ /* Inline kernel#Object#== (var39,var_super_mclass) on <var39:MClass> */
var_other = var_super_mclass;
{
-{ /* Inline kernel#Object#is_same_instance (var37,var_other) on <var37:MClass> */
-var45 = var37 == var_other;
+{ /* Inline kernel#Object#is_same_instance (var39,var_other) on <var39:MClass> */
+var47 = var39 == var_other;
+var45 = var47;
+goto RET_LABEL46;
+RET_LABEL46:(void)0;
+}
+}
var43 = var45;
goto RET_LABEL44;
RET_LABEL44:(void)0;
}
+var42 = var43;
}
-var41 = var43;
-goto RET_LABEL42;
-RET_LABEL42:(void)0;
-}
-var40 = var41;
-}
-if (var40){
-var46 = 0;
+if (var42){
+var48 = 0;
{
-var47 = ((val* (*)(val*, val*, val*, val*, short int))(var_supertype->class->vft[COLOR_model__MType__resolve_for]))(var_supertype, self, var_anchor, var_mmodule, var46) /* resolve_for on <var_supertype:MClassType>*/;
+var49 = ((val* (*)(val*, val*, val*, val*, short int))(var_supertype->class->vft[COLOR_model__MType__resolve_for]))(var_supertype, self, var_anchor, var_mmodule, var48) /* resolve_for on <var_supertype:MClassType>*/;
}
-var = var47;
+var = var49;
goto RET_LABEL;
} else {
}
-CONTINUE_label: (void)0;
{
-((void (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__next]))(var34) /* next on <var34:Iterator[nullable Object]>*/;
+((void (*)(val*))(var_36->class->vft[COLOR_abstract_collection__Iterator__next]))(var_36) /* next on <var_36:Iterator[MClassType]>*/;
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_36) on <var_36:Iterator[MClassType]> */
+RET_LABEL50:(void)0;
+}
+}
PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 784);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 801);
show_backtrace(1);
RET_LABEL:;
return var;
const char* var_class_name;
var_class_name = self == NULL ? "null" : self->type->name;
PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 857);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 874);
show_backtrace(1);
RET_LABEL:;
return var;
{ /* Inline model#MType#can_resolve_for (self,p0,p1,p2) on <self:Object(MType)> */
var_class_name = self == NULL ? "null" : self->type->name;
PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 857);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 874);
show_backtrace(1);
RET_LABEL2:(void)0;
}
const char* var_class_name;
var_class_name = self == NULL ? "null" : self->type->name;
PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 929);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 946);
show_backtrace(1);
RET_LABEL:;
return var;
{ /* Inline model#MType#collect_mclassdefs (self,p0) on <self:Object(MType)> */
var_class_name = self == NULL ? "null" : self->type->name;
PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 929);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 946);
show_backtrace(1);
RET_LABEL2:(void)0;
}
const char* var_class_name;
var_class_name = self == NULL ? "null" : self->type->name;
PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 939);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 956);
show_backtrace(1);
RET_LABEL:;
return var;
{ /* Inline model#MType#collect_mclasses (self,p0) on <self:Object(MType)> */
var_class_name = self == NULL ? "null" : self->type->name;
PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 939);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 956);
show_backtrace(1);
RET_LABEL2:(void)0;
}
const char* var_class_name;
var_class_name = self == NULL ? "null" : self->type->name;
PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 945);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 962);
show_backtrace(1);
RET_LABEL:;
return var;
{ /* Inline model#MType#collect_mtypes (self,p0) on <self:Object(MType)> */
var_class_name = self == NULL ? "null" : self->type->name;
PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 945);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 962);
show_backtrace(1);
RET_LABEL2:(void)0;
}
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 958);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 975);
show_backtrace(1);
}
{
var6 = var_mproperty->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var_mproperty:MProperty> */
if (unlikely(var6 == 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);
}
var4 = var6;
var1 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:Object(MClassType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var1 = var3;
var3 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var1 = var3;
var6 = var1->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <var1:MClass> */
if (unlikely(var6 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
show_backtrace(1);
}
var4 = var6;
var9 = var4->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var4:MModule> */
if (unlikely(var9 == 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);
}
var7 = var9;
void model__MClassType__init(val* self, val* p0) {
val* var_mclass /* var mclass: MClass */;
{
-{ /* Inline model_base#MEntity#init (self) on <self:MClassType> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MClassType>*/;
}
var_mclass = p0;
{
{ /* Inline model#MClassType#mclass= (self,var_mclass) on <self:MClassType> */
self->attrs[COLOR_model__MClassType___mclass].val = var_mclass; /* _mclass on <self:MClassType> */
-RET_LABEL2:(void)0;
+RET_LABEL1:(void)0;
}
}
RET_LABEL:;
var1 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <self:MClassType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <self:Object(MClassType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
show_backtrace(1);
}
var1 = var3;
var3 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var1 = var3;
if (unlikely(!var2)) {
var_class_name = var1 == NULL ? "null" : var1->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 989);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1006);
show_backtrace(1);
}
var = var1;
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 998);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1015);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on <self:MClassType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1056);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1073);
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", 1008);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1025);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on <self:MClassType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1057);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1074);
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", 1018);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1035);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on <self:MClassType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1058);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1075);
show_backtrace(1);
}
var3 = var5;
val* var_mclass /* var mclass: MClass */;
val* var14 /* : Array[MClassDef] */;
val* var16 /* : Array[MClassDef] */;
-val* var17 /* : ArrayIterator[nullable Object] */;
-short int var18 /* : Bool */;
-val* var19 /* : nullable Object */;
+val* var_17 /* var : Array[MClassDef] */;
+val* var18 /* : ArrayIterator[nullable Object] */;
+val* var_19 /* var : ArrayIterator[MClassDef] */;
+short int var20 /* : Bool */;
+val* var21 /* : nullable Object */;
val* var_mclassdef /* var mclassdef: MClassDef */;
-val* var20 /* : POSetElement[MModule] */;
val* var22 /* : POSetElement[MModule] */;
-val* var23 /* : MModule */;
+val* var24 /* : POSetElement[MModule] */;
val* var25 /* : MModule */;
-short int var26 /* : Bool */;
-short int var27 /* : Bool */;
-val* var28 /* : Array[MClassType] */;
+val* var27 /* : MModule */;
+short int var28 /* : Bool */;
+short int var29 /* : Bool */;
val* var30 /* : Array[MClassType] */;
-val* var31 /* : ArrayIterator[nullable Object] */;
-short int var32 /* : Bool */;
-val* var33 /* : nullable Object */;
+val* var32 /* : Array[MClassType] */;
+val* var_33 /* var : Array[MClassType] */;
+val* var34 /* : ArrayIterator[nullable Object] */;
+val* var_35 /* var : ArrayIterator[MClassType] */;
+short int var36 /* : Bool */;
+val* var37 /* : nullable Object */;
val* var_supertype /* var supertype: MClassType */;
-val* var34 /* : MClass */;
-val* var36 /* : MClass */;
+val* var38 /* : MClass */;
+val* var40 /* : MClass */;
val* var_superclass /* var superclass: MClass */;
-short int var37 /* : Bool */;
-val* var40 /* : HashMap[MModule, Set[MClassDef]] */;
-val* var42 /* : HashMap[MModule, Set[MClassDef]] */;
-val* var43 /* : HashMap[MModule, Set[MClass]] */;
-val* var45 /* : HashMap[MModule, Set[MClass]] */;
-val* var46 /* : HashMap[MModule, Set[MClassType]] */;
-val* var48 /* : HashMap[MModule, Set[MClassType]] */;
+short int var41 /* : Bool */;
+val* var48 /* : HashMap[MModule, Set[MClassDef]] */;
+val* var50 /* : HashMap[MModule, Set[MClassDef]] */;
+val* var51 /* : HashMap[MModule, Set[MClass]] */;
+val* var53 /* : HashMap[MModule, Set[MClass]] */;
+val* var54 /* : HashMap[MModule, Set[MClassType]] */;
+val* var56 /* : HashMap[MModule, Set[MClassType]] */;
var_mmodule = p0;
var = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef);
{
-hash_collection__HashSet__init(var); /* Direct call hash_collection#HashSet#init on <var:HashSet[MClassDef]>*/
+((void (*)(val*))(var->class->vft[COLOR_kernel__Object__init]))(var) /* init on <var:HashSet[MClassDef]>*/;
}
var_res = var;
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_seen = var1;
var2 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType);
{
-hash_collection__HashSet__init(var2); /* Direct call hash_collection#HashSet#init on <var2:HashSet[MClassType]>*/
+((void (*)(val*))(var2->class->vft[COLOR_kernel__Object__init]))(var2) /* init on <var2:HashSet[MClassType]>*/;
}
var_types = var2;
{
var5 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var3 = var5;
var10 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
if (unlikely(var10 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var8 = var10;
var11 = array__AbstractArrayRead__is_empty(var_todo);
}
var12 = !var11;
-if (!var12) break;
+if (var12){
{
var13 = array__AbstractArray__pop(var_todo);
}
var16 = var_mclass->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on <var_mclass:MClass> */
if (unlikely(var16 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 392);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 414);
show_backtrace(1);
}
var14 = var16;
RET_LABEL15:(void)0;
}
}
+var_17 = var14;
{
-var17 = array__AbstractArrayRead__iterator(var14);
+var18 = array__AbstractArrayRead__iterator(var_17);
}
+var_19 = var18;
for(;;) {
{
-var18 = array__ArrayIterator__is_ok(var17);
+var20 = array__ArrayIterator__is_ok(var_19);
}
-if(!var18) break;
+if (var20){
{
-var19 = array__ArrayIterator__item(var17);
+var21 = array__ArrayIterator__item(var_19);
}
-var_mclassdef = var19;
+var_mclassdef = var21;
{
{ /* Inline mmodule#MModule#in_importation (var_mmodule) on <var_mmodule:MModule> */
-var22 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
-if (unlikely(var22 == NULL)) {
+var24 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on <var_mmodule:MModule> */
+if (unlikely(var24 == 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);
}
-var20 = var22;
-RET_LABEL21:(void)0;
+var22 = var24;
+RET_LABEL23:(void)0;
}
}
{
{ /* Inline model#MClassDef#mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
-var25 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
-if (unlikely(var25 == NULL)) {
+var27 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
+if (unlikely(var27 == 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);
}
-var23 = var25;
-RET_LABEL24:(void)0;
+var25 = var27;
+RET_LABEL26:(void)0;
}
}
{
-var26 = poset__POSetElement___60d_61d(var20, var23);
+var28 = poset__POSetElement___60d_61d(var22, var25);
}
-var27 = !var26;
-if (var27){
-goto CONTINUE_label;
+var29 = !var28;
+if (var29){
+goto BREAK_label;
} else {
}
{
}
{
{ /* Inline model#MClassDef#supertypes (var_mclassdef) on <var_mclassdef:MClassDef> */
-var30 = var_mclassdef->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <var_mclassdef:MClassDef> */
-if (unlikely(var30 == NULL)) {
+var32 = var_mclassdef->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on <var_mclassdef:MClassDef> */
+if (unlikely(var32 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 517);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 534);
show_backtrace(1);
}
-var28 = var30;
-RET_LABEL29:(void)0;
+var30 = var32;
+RET_LABEL31:(void)0;
}
}
+var_33 = var30;
{
-var31 = array__AbstractArrayRead__iterator(var28);
+var34 = array__AbstractArrayRead__iterator(var_33);
}
+var_35 = var34;
for(;;) {
{
-var32 = array__ArrayIterator__is_ok(var31);
+var36 = array__ArrayIterator__is_ok(var_35);
}
-if(!var32) break;
+if (var36){
{
-var33 = array__ArrayIterator__item(var31);
+var37 = array__ArrayIterator__item(var_35);
}
-var_supertype = var33;
+var_supertype = var37;
{
hash_collection__HashSet__add(var_types, var_supertype); /* Direct call hash_collection#HashSet#add on <var_types:HashSet[MClassType]>*/
}
{
{ /* Inline model#MClassType#mclass (var_supertype) on <var_supertype:MClassType> */
-var36 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_supertype:MClassType> */
-if (unlikely(var36 == NULL)) {
+var40 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_supertype:MClassType> */
+if (unlikely(var40 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
-var34 = var36;
-RET_LABEL35:(void)0;
+var38 = var40;
+RET_LABEL39:(void)0;
}
}
-var_superclass = var34;
+var_superclass = var38;
{
-var37 = hash_collection__HashSet__has(var_seen, var_superclass);
+var41 = hash_collection__HashSet__has(var_seen, var_superclass);
}
-if (var37){
-goto CONTINUE_label38;
+if (var41){
+goto BREAK_label42;
} else {
}
{
{
array__Array__add(var_todo, var_superclass); /* Direct call array#Array#add on <var_todo:Array[MClass]>*/
}
-CONTINUE_label38: (void)0;
+BREAK_label42: (void)0;
{
-array__ArrayIterator__next(var31); /* Direct call array#ArrayIterator#next on <var31:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_35); /* Direct call array#ArrayIterator#next on <var_35:ArrayIterator[MClassType]>*/
+}
+} else {
+goto BREAK_label43;
}
}
-BREAK_label38: (void)0;
-CONTINUE_label: (void)0;
+BREAK_label43: (void)0;
{
-array__ArrayIterator__next(var17); /* Direct call array#ArrayIterator#next on <var17:ArrayIterator[nullable Object]>*/
+{ /* Inline abstract_collection#Iterator#finish (var_35) on <var_35:ArrayIterator[MClassType]> */
+RET_LABEL44:(void)0;
}
}
BREAK_label: (void)0;
-CONTINUE_label39: (void)0;
+{
+array__ArrayIterator__next(var_19); /* Direct call array#ArrayIterator#next on <var_19:ArrayIterator[MClassDef]>*/
+}
+} else {
+goto BREAK_label45;
+}
+}
+BREAK_label45: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_19) on <var_19:ArrayIterator[MClassDef]> */
+RET_LABEL46:(void)0;
}
-BREAK_label39: (void)0;
+}
+} else {
+goto BREAK_label47;
+}
+}
+BREAK_label47: (void)0;
{
{ /* Inline model#MClassType#collect_mclassdefs_cache (self) on <self:MClassType> */
-var42 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on <self:MClassType> */
-if (unlikely(var42 == NULL)) {
+var50 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on <self:MClassType> */
+if (unlikely(var50 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1056);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1073);
show_backtrace(1);
}
-var40 = var42;
-RET_LABEL41:(void)0;
+var48 = var50;
+RET_LABEL49:(void)0;
}
}
{
-hash_collection__HashMap___91d_93d_61d(var40, var_mmodule, var_res); /* Direct call hash_collection#HashMap#[]= on <var40:HashMap[MModule, Set[MClassDef]]>*/
+hash_collection__HashMap___91d_93d_61d(var48, var_mmodule, var_res); /* Direct call hash_collection#HashMap#[]= on <var48:HashMap[MModule, Set[MClassDef]]>*/
}
{
{ /* Inline model#MClassType#collect_mclasses_cache (self) on <self:MClassType> */
-var45 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on <self:MClassType> */
-if (unlikely(var45 == NULL)) {
+var53 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on <self:MClassType> */
+if (unlikely(var53 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1057);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1074);
show_backtrace(1);
}
-var43 = var45;
-RET_LABEL44:(void)0;
+var51 = var53;
+RET_LABEL52:(void)0;
}
}
{
-hash_collection__HashMap___91d_93d_61d(var43, var_mmodule, var_seen); /* Direct call hash_collection#HashMap#[]= on <var43:HashMap[MModule, Set[MClass]]>*/
+hash_collection__HashMap___91d_93d_61d(var51, var_mmodule, var_seen); /* Direct call hash_collection#HashMap#[]= on <var51:HashMap[MModule, Set[MClass]]>*/
}
{
{ /* Inline model#MClassType#collect_mtypes_cache (self) on <self:MClassType> */
-var48 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on <self:MClassType> */
-if (unlikely(var48 == NULL)) {
+var56 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on <self:MClassType> */
+if (unlikely(var56 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1058);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1075);
show_backtrace(1);
}
-var46 = var48;
-RET_LABEL47:(void)0;
+var54 = var56;
+RET_LABEL55:(void)0;
}
}
{
-hash_collection__HashMap___91d_93d_61d(var46, var_mmodule, var_types); /* Direct call hash_collection#HashMap#[]= on <var46:HashMap[MModule, Set[MClassType]]>*/
+hash_collection__HashMap___91d_93d_61d(var54, var_mmodule, var_types); /* Direct call hash_collection#HashMap#[]= on <var54:HashMap[MModule, Set[MClassType]]>*/
}
RET_LABEL:;
}
var1 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on <self:MClassType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1056);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1073);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on <self:Object(MClassType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1056);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1073);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on <self:MClassType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1057);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1074);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on <self:Object(MClassType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1057);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1074);
show_backtrace(1);
}
var1 = var3;
var1 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on <self:MClassType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1058);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1075);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on <self:Object(MClassType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1058);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1075);
show_backtrace(1);
}
var1 = var3;
long var3 /* : Int */;
long var5 /* : Int */;
long var6 /* : Int */;
-short int var7 /* : Bool */;
-short int var8 /* : Bool */;
+long var8 /* : Int */;
+short int var9 /* : Bool */;
short int var10 /* : Bool */;
short int var12 /* : Bool */;
-val* var14 /* : ArrayIterator[nullable Object] */;
-short int var15 /* : Bool */;
-val* var16 /* : nullable Object */;
-val* var_t /* var t: MType */;
-short int var17 /* : Bool */;
+short int var14 /* : Bool */;
+val* var_ /* var : Array[MType] */;
+val* var16 /* : ArrayIterator[nullable Object] */;
+val* var_17 /* var : ArrayIterator[MType] */;
short int var18 /* : Bool */;
+val* var19 /* : nullable Object */;
+val* var_t /* var t: MType */;
+short int var20 /* : Bool */;
+short int var21 /* : Bool */;
static val* varonce;
-val* var20 /* : String */;
-char* var21 /* : NativeString */;
-long var22 /* : Int */;
-val* var23 /* : FlatString */;
-static val* varonce24;
-val* var25 /* : String */;
-char* var26 /* : NativeString */;
-long var27 /* : Int */;
-val* var28 /* : FlatString */;
+val* var24 /* : String */;
+char* var25 /* : NativeString */;
+long var26 /* : Int */;
+val* var27 /* : FlatString */;
+static val* varonce28;
val* var29 /* : String */;
-static val* varonce30;
-val* var31 /* : String */;
-char* var32 /* : NativeString */;
-long var33 /* : Int */;
-val* var34 /* : FlatString */;
-val* var35 /* : Array[Object] */;
-long var36 /* : Int */;
-val* var37 /* : NativeArray[Object] */;
-val* var38 /* : String */;
+char* var30 /* : NativeString */;
+long var31 /* : Int */;
+val* var32 /* : FlatString */;
+val* var33 /* : String */;
+static val* varonce34;
+val* var35 /* : String */;
+char* var36 /* : NativeString */;
+long var37 /* : Int */;
+val* var38 /* : FlatString */;
+val* var39 /* : Array[Object] */;
+long var40 /* : Int */;
+val* var41 /* : NativeArray[Object] */;
+val* var42 /* : String */;
var_mclass = p0;
var_arguments = p1;
{
var2 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
if (unlikely(var2 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var = var2;
}
}
{
-var6 = array__AbstractArrayRead__length(var_arguments);
+{ /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[MType]> */
+var8 = var_arguments->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[MType]> */
+var6 = var8;
+RET_LABEL7:(void)0;
+}
}
{
{ /* Inline kernel#Int#== (var3,var6) on <var3:Int> */
-var10 = var3 == var6;
-var8 = var10;
-goto RET_LABEL9;
-RET_LABEL9:(void)0;
+var12 = var3 == var6;
+var10 = var12;
+goto RET_LABEL11;
+RET_LABEL11:(void)0;
}
-var7 = var8;
+var9 = var10;
}
-if (unlikely(!var7)) {
+if (unlikely(!var9)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1070);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1087);
show_backtrace(1);
}
{
{ /* Inline model#MClassType#arguments= (self,var_arguments) on <self:MGenericType> */
self->attrs[COLOR_model__MClassType___arguments].val = var_arguments; /* _arguments on <self:MGenericType> */
-RET_LABEL11:(void)0;
+RET_LABEL13:(void)0;
}
}
-var12 = 0;
+var14 = 0;
{
-{ /* Inline model#MGenericType#need_anchor= (self,var12) on <self:MGenericType> */
-self->attrs[COLOR_model__MGenericType___need_anchor].s = var12; /* _need_anchor on <self:MGenericType> */
-RET_LABEL13:(void)0;
+{ /* Inline model#MGenericType#need_anchor= (self,var14) on <self:MGenericType> */
+self->attrs[COLOR_model__MGenericType___need_anchor].s = var14; /* _need_anchor on <self:MGenericType> */
+RET_LABEL15:(void)0;
}
}
+var_ = var_arguments;
{
-var14 = array__AbstractArrayRead__iterator(var_arguments);
+var16 = array__AbstractArrayRead__iterator(var_);
}
+var_17 = var16;
for(;;) {
{
-var15 = array__ArrayIterator__is_ok(var14);
+var18 = array__ArrayIterator__is_ok(var_17);
}
-if(!var15) break;
+if (var18){
{
-var16 = array__ArrayIterator__item(var14);
+var19 = array__ArrayIterator__item(var_17);
}
-var_t = var16;
+var_t = var19;
{
-var17 = ((short int (*)(val*))(var_t->class->vft[COLOR_model__MType__need_anchor]))(var_t) /* need_anchor on <var_t:MType>*/;
+var20 = ((short int (*)(val*))(var_t->class->vft[COLOR_model__MType__need_anchor]))(var_t) /* need_anchor on <var_t:MType>*/;
}
-if (var17){
-var18 = 1;
+if (var20){
+var21 = 1;
{
-{ /* Inline model#MGenericType#need_anchor= (self,var18) on <self:MGenericType> */
-self->attrs[COLOR_model__MGenericType___need_anchor].s = var18; /* _need_anchor on <self:MGenericType> */
-RET_LABEL19:(void)0;
+{ /* Inline model#MGenericType#need_anchor= (self,var21) on <self:MGenericType> */
+self->attrs[COLOR_model__MGenericType___need_anchor].s = var21; /* _need_anchor on <self:MGenericType> */
+RET_LABEL22:(void)0;
}
}
goto BREAK_label;
} else {
}
-CONTINUE_label: (void)0;
{
-array__ArrayIterator__next(var14); /* Direct call array#ArrayIterator#next on <var14:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_17); /* Direct call array#ArrayIterator#next on <var_17:ArrayIterator[MType]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_17) on <var_17:ArrayIterator[MType]> */
+RET_LABEL23:(void)0;
+}
+}
if (varonce) {
-var20 = varonce;
+var24 = varonce;
} else {
-var21 = "[";
-var22 = 1;
-var23 = string__NativeString__to_s_with_length(var21, var22);
-var20 = var23;
-varonce = var20;
+var25 = "[";
+var26 = 1;
+var27 = string__NativeString__to_s_with_length(var25, var26);
+var24 = var27;
+varonce = var24;
}
-if (varonce24) {
-var25 = varonce24;
+if (varonce28) {
+var29 = varonce28;
} else {
-var26 = ", ";
-var27 = 2;
-var28 = string__NativeString__to_s_with_length(var26, var27);
-var25 = var28;
-varonce24 = var25;
+var30 = ", ";
+var31 = 2;
+var32 = string__NativeString__to_s_with_length(var30, var31);
+var29 = var32;
+varonce28 = var29;
}
{
-var29 = string__Collection__join(var_arguments, var25);
+var33 = string__Collection__join(var_arguments, var29);
}
-if (varonce30) {
-var31 = varonce30;
+if (varonce34) {
+var35 = varonce34;
} else {
-var32 = "]";
-var33 = 1;
-var34 = string__NativeString__to_s_with_length(var32, var33);
-var31 = var34;
-varonce30 = var31;
+var36 = "]";
+var37 = 1;
+var38 = string__NativeString__to_s_with_length(var36, var37);
+var35 = var38;
+varonce34 = var35;
}
-var35 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var35 = array_instance Array[Object] */
-var36 = 4;
-var37 = NEW_array__NativeArray(var36, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var37)->values[0] = (val*) var_mclass;
-((struct instance_array__NativeArray*)var37)->values[1] = (val*) var20;
-((struct instance_array__NativeArray*)var37)->values[2] = (val*) var29;
-((struct instance_array__NativeArray*)var37)->values[3] = (val*) var31;
+var39 = NEW_array__Array(&type_array__Arraykernel__Object);
+{ /* var39 = array_instance Array[Object] */
+var40 = 4;
+var41 = NEW_array__NativeArray(var40, &type_array__NativeArraykernel__Object);
+((struct instance_array__NativeArray*)var41)->values[0] = (val*) var_mclass;
+((struct instance_array__NativeArray*)var41)->values[1] = (val*) var24;
+((struct instance_array__NativeArray*)var41)->values[2] = (val*) var33;
+((struct instance_array__NativeArray*)var41)->values[3] = (val*) var35;
{
-((void (*)(val*, val*, long))(var35->class->vft[COLOR_array__Array__with_native]))(var35, var37, var36) /* with_native on <var35:Array[Object]>*/;
+((void (*)(val*, val*, long))(var39->class->vft[COLOR_array__Array__with_native]))(var39, var41, var40) /* with_native on <var39:Array[Object]>*/;
}
}
{
-var38 = ((val* (*)(val*))(var35->class->vft[COLOR_string__Object__to_s]))(var35) /* to_s on <var35:Array[Object]>*/;
+var42 = ((val* (*)(val*))(var39->class->vft[COLOR_string__Object__to_s]))(var39) /* to_s on <var39:Array[Object]>*/;
}
{
-{ /* Inline model#MGenericType#to_s= (self,var38) on <self:MGenericType> */
-self->attrs[COLOR_model__MGenericType___to_s].val = var38; /* _to_s on <self:MGenericType> */
-RET_LABEL39:(void)0;
+{ /* Inline model#MGenericType#to_s= (self,var42) on <self:MGenericType> */
+self->attrs[COLOR_model__MGenericType___to_s].val = var42; /* _to_s on <self:MGenericType> */
+RET_LABEL43:(void)0;
}
}
RET_LABEL:;
var1 = self->attrs[COLOR_model__MGenericType___to_s].val; /* _to_s on <self:MGenericType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1084);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1101);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MGenericType___to_s].val; /* _to_s on <self:Object(MGenericType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1084);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1101);
show_backtrace(1);
}
var1 = var3;
val* var_types /* var types: Array[MType] */;
val* var7 /* : Array[MType] */;
val* var9 /* : Array[MType] */;
+val* var_ /* var : Array[MType] */;
val* var10 /* : ArrayIterator[nullable Object] */;
-short int var11 /* : Bool */;
-val* var12 /* : nullable Object */;
+val* var_11 /* var : ArrayIterator[MType] */;
+short int var12 /* : Bool */;
+val* var13 /* : nullable Object */;
val* var_t /* var t: MType */;
-val* var13 /* : MType */;
-val* var14 /* : MClass */;
+val* var14 /* : MType */;
val* var16 /* : MClass */;
-val* var17 /* : MClassType */;
+val* var18 /* : MClass */;
+val* var19 /* : MClassType */;
var_mtype = p0;
var_anchor = p1;
var_mmodule = p2;
}
if (unlikely(!var5)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1093);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1110);
show_backtrace(1);
}
var6 = NEW_array__Array(&type_array__Arraymodel__MType);
{
-array__Array__init(var6); /* Direct call array#Array#init on <var6:Array[MType]>*/
+((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on <var6:Array[MType]>*/;
}
var_types = var6;
{
var9 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <self:MGenericType> */
if (unlikely(var9 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
show_backtrace(1);
}
var7 = var9;
RET_LABEL8:(void)0;
}
}
+var_ = var7;
{
-var10 = array__AbstractArrayRead__iterator(var7);
+var10 = array__AbstractArrayRead__iterator(var_);
}
+var_11 = var10;
for(;;) {
{
-var11 = array__ArrayIterator__is_ok(var10);
+var12 = array__ArrayIterator__is_ok(var_11);
}
-if(!var11) break;
+if (var12){
{
-var12 = array__ArrayIterator__item(var10);
+var13 = array__ArrayIterator__item(var_11);
}
-var_t = var12;
+var_t = var13;
{
-var13 = ((val* (*)(val*, val*, val*, val*, short int))(var_t->class->vft[COLOR_model__MType__resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_t:MType>*/;
+var14 = ((val* (*)(val*, val*, val*, val*, short int))(var_t->class->vft[COLOR_model__MType__resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_t:MType>*/;
}
{
-array__Array__add(var_types, var13); /* Direct call array#Array#add on <var_types:Array[MType]>*/
+array__Array__add(var_types, var14); /* Direct call array#Array#add on <var_types:Array[MType]>*/
}
-CONTINUE_label: (void)0;
{
-array__ArrayIterator__next(var10); /* Direct call array#ArrayIterator#next on <var10:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_11); /* Direct call array#ArrayIterator#next on <var_11:ArrayIterator[MType]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
{
+{ /* Inline abstract_collection#Iterator#finish (var_11) on <var_11:ArrayIterator[MType]> */
+RET_LABEL15:(void)0;
+}
+}
+{
{ /* Inline model#MClassType#mclass (self) on <self:MGenericType> */
-var16 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
-if (unlikely(var16 == NULL)) {
+var18 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <self:MGenericType> */
+if (unlikely(var18 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
-var14 = var16;
-RET_LABEL15:(void)0;
+var16 = var18;
+RET_LABEL17:(void)0;
}
}
{
-var17 = model__MClass__get_mtype(var14, var_types);
+var19 = model__MClass__get_mtype(var16, var_types);
}
-var = var17;
+var = var19;
goto RET_LABEL;
RET_LABEL:;
return var;
short int var5 /* : Bool */;
val* var6 /* : Array[MType] */;
val* var8 /* : Array[MType] */;
+val* var_ /* var : Array[MType] */;
val* var9 /* : ArrayIterator[nullable Object] */;
-short int var10 /* : Bool */;
-val* var11 /* : nullable Object */;
+val* var_10 /* var : ArrayIterator[MType] */;
+short int var11 /* : Bool */;
+val* var12 /* : nullable Object */;
val* var_t /* var t: MType */;
-short int var12 /* : Bool */;
short int var13 /* : Bool */;
short int var14 /* : Bool */;
short int var15 /* : Bool */;
+short int var17 /* : Bool */;
var_mtype = p0;
var_anchor = p1;
var_mmodule = p2;
var8 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <self:MGenericType> */
if (unlikely(var8 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
show_backtrace(1);
}
var6 = var8;
RET_LABEL7:(void)0;
}
}
+var_ = var6;
{
-var9 = array__AbstractArrayRead__iterator(var6);
+var9 = array__AbstractArrayRead__iterator(var_);
}
+var_10 = var9;
for(;;) {
{
-var10 = array__ArrayIterator__is_ok(var9);
+var11 = array__ArrayIterator__is_ok(var_10);
}
-if(!var10) break;
+if (var11){
{
-var11 = array__ArrayIterator__item(var9);
+var12 = array__ArrayIterator__item(var_10);
}
-var_t = var11;
+var_t = var12;
{
-var12 = ((short int (*)(val*, val*, val*, val*))(var_t->class->vft[COLOR_model__MType__can_resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on <var_t:MType>*/;
+var13 = ((short int (*)(val*, val*, val*, val*))(var_t->class->vft[COLOR_model__MType__can_resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on <var_t:MType>*/;
}
-var13 = !var12;
-if (var13){
-var14 = 0;
-var = var14;
+var14 = !var13;
+if (var14){
+var15 = 0;
+var = var15;
goto RET_LABEL;
} else {
}
-CONTINUE_label: (void)0;
{
-array__ArrayIterator__next(var9); /* Direct call array#ArrayIterator#next on <var9:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_10); /* Direct call array#ArrayIterator#next on <var_10:ArrayIterator[MType]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
-var15 = 1;
-var = var15;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:ArrayIterator[MType]> */
+RET_LABEL16:(void)0;
+}
+}
+var17 = 1;
+var = var17;
goto RET_LABEL;
RET_LABEL:;
return var;
long var_res /* var res: Int */;
val* var2 /* : Array[MType] */;
val* var4 /* : Array[MType] */;
+val* var_ /* var : Array[MType] */;
val* var5 /* : ArrayIterator[nullable Object] */;
-short int var6 /* : Bool */;
-val* var7 /* : nullable Object */;
+val* var_6 /* var : ArrayIterator[MType] */;
+short int var7 /* : Bool */;
+val* var8 /* : nullable Object */;
val* var_a /* var a: MType */;
-long var8 /* : Int */;
long var9 /* : Int */;
-short int var11 /* : Bool */;
+long var10 /* : Int */;
+short int var12 /* : Bool */;
int cltype;
int idtype;
const char* var_class_name;
-long var12 /* : Int */;
+long var13 /* : Int */;
var1 = 1;
var_res = var1;
{
var4 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <self:MGenericType> */
if (unlikely(var4 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
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_a = var7;
+var_a = var8;
{
-var8 = ((long (*)(val*))(var_a->class->vft[COLOR_model__MType__length]))(var_a) /* length on <var_a:MType>*/;
+var9 = ((long (*)(val*))(var_a->class->vft[COLOR_model__MType__length]))(var_a) /* length on <var_a:MType>*/;
}
{
-{ /* Inline kernel#Int#+ (var_res,var8) on <var_res:Int> */
-/* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
-/* <var8:Int> isa OTHER */
-var11 = 1; /* easy <var8:Int> isa OTHER*/
-if (unlikely(!var11)) {
+{ /* Inline kernel#Int#+ (var_res,var9) on <var_res:Int> */
+/* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
+/* <var9:Int> isa OTHER */
+var12 = 1; /* easy <var9:Int> isa OTHER*/
+if (unlikely(!var12)) {
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);
}
-var12 = var_res + var8;
-var9 = var12;
-goto RET_LABEL10;
-RET_LABEL10:(void)0;
+var13 = var_res + var9;
+var10 = var13;
+goto RET_LABEL11;
+RET_LABEL11:(void)0;
}
}
-var_res = var9;
-CONTINUE_label: (void)0;
+var_res = var10;
{
-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[MType]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_6) on <var_6:ArrayIterator[MType]> */
+RET_LABEL14:(void)0;
+}
+}
var = var_res;
goto RET_LABEL;
RET_LABEL:;
var1 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <self:Object(MVirtualType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
show_backtrace(1);
}
var1 = var3;
var3 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
show_backtrace(1);
}
var1 = var3;
var6 = var1->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on <var1:MProperty> */
if (unlikely(var6 == 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);
}
var4 = var6;
var9 = var4->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var4:MClassDef> */
if (unlikely(var9 == 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;
var12 = var7->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var7:MModule> */
if (unlikely(var12 == 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;
val* var_props /* var props: Array[MPropDef] */;
short int var7 /* : Bool */;
long var8 /* : Int */;
-long var9 /* : Int */;
-short int var10 /* : Bool */;
-short int var11 /* : Bool */;
+long var10 /* : Int */;
+long var11 /* : Int */;
+short int var12 /* : Bool */;
short int var13 /* : Bool */;
-val* var14 /* : nullable Object */;
short int var15 /* : Bool */;
+val* var16 /* : nullable Object */;
+short int var17 /* : Bool */;
int cltype;
int idtype;
const char* var_class_name;
-val* var16 /* : nullable MType */;
val* var18 /* : nullable MType */;
-val* var19 /* : ArraySet[MType] */;
+val* var20 /* : nullable MType */;
+val* var21 /* : ArraySet[MType] */;
val* var_types /* var types: ArraySet[MType] */;
-val* var20 /* : ArrayIterator[nullable Object] */;
-short int var21 /* : Bool */;
-val* var22 /* : nullable Object */;
+val* var_ /* var : Array[MPropDef] */;
+val* var22 /* : ArrayIterator[nullable Object] */;
+val* var_23 /* var : ArrayIterator[MPropDef] */;
+short int var24 /* : Bool */;
+val* var25 /* : nullable Object */;
val* var_p /* var p: MPropDef */;
-short int var23 /* : Bool */;
-int cltype24;
-int idtype25;
-const char* var_class_name26;
-val* var27 /* : nullable MType */;
-val* var29 /* : nullable MType */;
-long var30 /* : Int */;
-long var31 /* : Int */;
-short int var32 /* : Bool */;
-short int var33 /* : Bool */;
-short int var35 /* : Bool */;
-val* var36 /* : Object */;
+short int var26 /* : Bool */;
+int cltype27;
+int idtype28;
+const char* var_class_name29;
+val* var30 /* : nullable MType */;
+val* var32 /* : nullable MType */;
+long var34 /* : Int */;
+long var35 /* : Int */;
+short int var36 /* : Bool */;
+short int var37 /* : Bool */;
+short int var39 /* : Bool */;
+val* var40 /* : Object */;
var_mmodule = p0;
var_resolved_receiver = p1;
{
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1149);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1166);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
show_backtrace(1);
}
var3 = var5;
}
if (var7){
PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1152);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1169);
show_backtrace(1);
} else {
{
-var8 = array__AbstractArrayRead__length(var_props);
+{ /* Inline array#AbstractArrayRead#length (var_props) on <var_props:Array[MPropDef]> */
+var10 = var_props->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_props:Array[MPropDef]> */
+var8 = var10;
+RET_LABEL9:(void)0;
+}
}
-var9 = 1;
+var11 = 1;
{
-{ /* Inline kernel#Int#== (var8,var9) on <var8:Int> */
-var13 = var8 == var9;
-var11 = var13;
-goto RET_LABEL12;
-RET_LABEL12:(void)0;
+{ /* Inline kernel#Int#== (var8,var11) on <var8:Int> */
+var15 = var8 == var11;
+var13 = var15;
+goto RET_LABEL14;
+RET_LABEL14:(void)0;
}
-var10 = var11;
+var12 = var13;
}
-if (var10){
+if (var12){
{
-var14 = abstract_collection__SequenceRead__first(var_props);
+var16 = abstract_collection__SequenceRead__first(var_props);
}
-/* <var14:nullable Object(MPropDef)> isa MVirtualTypeDef */
+/* <var16:nullable Object(MPropDef)> isa MVirtualTypeDef */
cltype = type_model__MVirtualTypeDef.color;
idtype = type_model__MVirtualTypeDef.id;
-if(cltype >= var14->type->table_size) {
-var15 = 0;
+if(cltype >= var16->type->table_size) {
+var17 = 0;
} else {
-var15 = var14->type->type_table[cltype] == idtype;
+var17 = var16->type->type_table[cltype] == idtype;
}
-if (unlikely(!var15)) {
-var_class_name = var14 == NULL ? "null" : var14->type->name;
+if (unlikely(!var17)) {
+var_class_name = var16 == NULL ? "null" : var16->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1154);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1171);
show_backtrace(1);
}
{
-{ /* Inline model#MVirtualTypeDef#bound (var14) on <var14:MPropDef(MVirtualTypeDef)> */
-var18 = var14->attrs[COLOR_model__MVirtualTypeDef___bound].val; /* _bound on <var14:MPropDef(MVirtualTypeDef)> */
-var16 = var18;
-RET_LABEL17:(void)0;
+{ /* Inline model#MVirtualTypeDef#bound (var16) on <var16:MPropDef(MVirtualTypeDef)> */
+var20 = var16->attrs[COLOR_model__MVirtualTypeDef___bound].val; /* _bound on <var16:MPropDef(MVirtualTypeDef)> */
+var18 = var20;
+RET_LABEL19:(void)0;
}
}
-if (unlikely(var16 == NULL)) {
+if (unlikely(var18 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1154);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1171);
show_backtrace(1);
}
-var = var16;
+var = var18;
goto RET_LABEL;
} else {
}
}
-var19 = NEW_array__ArraySet(&type_array__ArraySetmodel__MType);
+var21 = NEW_array__ArraySet(&type_array__ArraySetmodel__MType);
{
-array__ArraySet__init(var19); /* Direct call array#ArraySet#init on <var19:ArraySet[MType]>*/
+((void (*)(val*))(var21->class->vft[COLOR_kernel__Object__init]))(var21) /* init on <var21:ArraySet[MType]>*/;
}
-var_types = var19;
+var_types = var21;
+var_ = var_props;
{
-var20 = array__AbstractArrayRead__iterator(var_props);
+var22 = array__AbstractArrayRead__iterator(var_);
}
+var_23 = var22;
for(;;) {
{
-var21 = array__ArrayIterator__is_ok(var20);
+var24 = array__ArrayIterator__is_ok(var_23);
}
-if(!var21) break;
+if (var24){
{
-var22 = array__ArrayIterator__item(var20);
+var25 = array__ArrayIterator__item(var_23);
}
-var_p = var22;
+var_p = var25;
/* <var_p:MPropDef> isa MVirtualTypeDef */
-cltype24 = type_model__MVirtualTypeDef.color;
-idtype25 = type_model__MVirtualTypeDef.id;
-if(cltype24 >= var_p->type->table_size) {
-var23 = 0;
+cltype27 = type_model__MVirtualTypeDef.color;
+idtype28 = type_model__MVirtualTypeDef.id;
+if(cltype27 >= var_p->type->table_size) {
+var26 = 0;
} else {
-var23 = var_p->type->type_table[cltype24] == idtype25;
+var26 = var_p->type->type_table[cltype27] == idtype28;
}
-if (unlikely(!var23)) {
-var_class_name26 = var_p == NULL ? "null" : var_p->type->name;
-PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name26);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1158);
+if (unlikely(!var26)) {
+var_class_name29 = var_p == NULL ? "null" : var_p->type->name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name29);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1175);
show_backtrace(1);
}
{
{ /* Inline model#MVirtualTypeDef#bound (var_p) on <var_p:MPropDef(MVirtualTypeDef)> */
-var29 = var_p->attrs[COLOR_model__MVirtualTypeDef___bound].val; /* _bound on <var_p:MPropDef(MVirtualTypeDef)> */
-var27 = var29;
-RET_LABEL28:(void)0;
+var32 = var_p->attrs[COLOR_model__MVirtualTypeDef___bound].val; /* _bound on <var_p:MPropDef(MVirtualTypeDef)> */
+var30 = var32;
+RET_LABEL31:(void)0;
}
}
-if (unlikely(var27 == NULL)) {
+if (unlikely(var30 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Cast failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1158);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1175);
show_backtrace(1);
}
{
-array__ArraySet__add(var_types, var27); /* Direct call array#ArraySet#add on <var_types:ArraySet[MType]>*/
+array__ArraySet__add(var_types, var30); /* Direct call array#ArraySet#add on <var_types:ArraySet[MType]>*/
}
-CONTINUE_label: (void)0;
{
-array__ArrayIterator__next(var20); /* Direct call array#ArrayIterator#next on <var20:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_23); /* Direct call array#ArrayIterator#next on <var_23:ArrayIterator[MPropDef]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
{
-var30 = array__ArraySet__length(var_types);
+{ /* Inline abstract_collection#Iterator#finish (var_23) on <var_23:ArrayIterator[MPropDef]> */
+RET_LABEL33:(void)0;
+}
}
-var31 = 1;
{
-{ /* Inline kernel#Int#== (var30,var31) on <var30:Int> */
-var35 = var30 == var31;
-var33 = var35;
-goto RET_LABEL34;
-RET_LABEL34:(void)0;
+var34 = array__ArraySet__length(var_types);
}
-var32 = var33;
+var35 = 1;
+{
+{ /* Inline kernel#Int#== (var34,var35) on <var34:Int> */
+var39 = var34 == var35;
+var37 = var39;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
}
-if (var32){
+var36 = var37;
+}
+if (var36){
{
-var36 = array__ArraySet__first(var_types);
+var40 = array__ArraySet__first(var_types);
}
-var = var36;
+var = var40;
goto RET_LABEL;
} else {
}
PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1163);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1180);
show_backtrace(1);
RET_LABEL:;
return var;
val* var6 /* : Array[MPropDef] */;
val* var_props /* var props: Array[MPropDef] */;
short int var7 /* : Bool */;
+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_p /* var p: MPropDef */;
-short int var11 /* : Bool */;
+short int var12 /* : Bool */;
int cltype;
int idtype;
const char* var_class_name;
-short int var12 /* : Bool */;
-short int var14 /* : Bool */;
+short int var13 /* : Bool */;
short int var15 /* : Bool */;
short int var16 /* : Bool */;
+short int var18 /* : Bool */;
var_mmodule = p0;
var_resolved_receiver = p1;
{
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1169);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1186);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
show_backtrace(1);
}
var3 = var5;
}
if (var7){
PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1172);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1189);
show_backtrace(1);
} else {
}
+var_ = var_props;
{
-var8 = array__AbstractArrayRead__iterator(var_props);
+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_p = var10;
+var_p = var11;
/* <var_p:MPropDef> isa MVirtualTypeDef */
cltype = type_model__MVirtualTypeDef.color;
idtype = type_model__MVirtualTypeDef.id;
if(cltype >= var_p->type->table_size) {
-var11 = 0;
+var12 = 0;
} else {
-var11 = var_p->type->type_table[cltype] == idtype;
+var12 = var_p->type->type_table[cltype] == idtype;
}
-if (unlikely(!var11)) {
+if (unlikely(!var12)) {
var_class_name = var_p == NULL ? "null" : var_p->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1175);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1192);
show_backtrace(1);
}
{
{ /* Inline model#MVirtualTypeDef#is_fixed (var_p) on <var_p:MPropDef(MVirtualTypeDef)> */
-var14 = var_p->attrs[COLOR_model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_p:MPropDef(MVirtualTypeDef)> */
-var12 = var14;
-RET_LABEL13:(void)0;
+var15 = var_p->attrs[COLOR_model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on <var_p:MPropDef(MVirtualTypeDef)> */
+var13 = var15;
+RET_LABEL14:(void)0;
}
}
-if (var12){
-var15 = 1;
-var = var15;
-goto RET_LABEL;
+if (var13){
+var16 = 1;
+var = var16;
+goto RET_LABEL;
} else {
}
-CONTINUE_label: (void)0;
{
-array__ArrayIterator__next(var8); /* Direct call array#ArrayIterator#next on <var8:ArrayIterator[nullable Object]>*/
+array__ArrayIterator__next(var_9); /* Direct call array#ArrayIterator#next on <var_9:ArrayIterator[MPropDef]>*/
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
-var16 = 0;
-var = var16;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_9) on <var_9:ArrayIterator[MPropDef]> */
+RET_LABEL17:(void)0;
+}
+}
+var18 = 0;
+var = var18;
goto RET_LABEL;
RET_LABEL:;
return var;
}
if (unlikely(!var1)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1182);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1199);
show_backtrace(1);
}
{
}
if (unlikely(!var4)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1189);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1206);
show_backtrace(1);
}
var10 = NULL;
var18 = var_resolved_reciever->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <var_resolved_reciever:nullable Object(MNullableType)> */
if (unlikely(var18 == 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);
}
var16 = var18;
if (unlikely(!var19)) {
var_class_name = var_resolved_reciever == NULL ? "null" : var_resolved_reciever->type->name;
PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1205);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1222);
show_backtrace(1);
}
{
var24 = var_resolved_reciever->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_resolved_reciever:MType(MClassType)> */
if (unlikely(var24 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var22 = var24;
var27 = var22->attrs[COLOR_model__MClass___kind].val; /* _kind on <var22:MClass> */
if (unlikely(var27 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
show_backtrace(1);
}
var25 = var27;
var46 = var_res->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_res:MType(MClassType)> */
if (unlikely(var46 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
var44 = var46;
var49 = var44->attrs[COLOR_model__MClass___kind].val; /* _kind on <var44:MClass> */
if (unlikely(var49 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 371);
show_backtrace(1);
}
var47 = var49;
}
if (unlikely(!var3)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1223);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1239);
show_backtrace(1);
}
{
var12 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
if (unlikely(var12 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
show_backtrace(1);
}
var10 = var12;
var3 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on <self:MVirtualType> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1135);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1152);
show_backtrace(1);
}
var1 = var3;
void model__MVirtualType__init(val* self, val* p0) {
val* var_mproperty /* var mproperty: MProperty */;
{
-{ /* Inline model_base#MEntity#init (self) on <self:MVirtualType> */
-RET_LABEL1:(void)0;
-}
+((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on <self:MVirtualType>*/;
}
var_mproperty = p0;
{
{ /* Inline model#MVirtualType#mproperty= (self,var_mproperty) on <self:MVirtualType> */
self->attrs[COLOR_model__MVirtualType___mproperty].val = var_mproperty; /* _mproperty on <self:MVirtualType> */
-RET_LABEL2:(void)0;
+RET_LABEL1:(void)0;
}
}
RET_LABEL:;
var1 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
if (unlikely(var1 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1280);
show_backtrace(1);
}
var = var1;
var3 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:Object(MParameterType)> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1280);
show_backtrace(1);
}
var1 = var3;
var3 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
if (unlikely(var3 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1280);
show_backtrace(1);
}
var1 = var3;
var6 = var1->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on <var1:MClass> */
if (unlikely(var6 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 335);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 347);
show_backtrace(1);
}
var4 = var6;
var9 = var4->attrs[COLOR_mmodule__MModule___model].val; /* _model on <var4:MModule> */
if (unlikely(var9 == 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);
}
var7 = var9;
}
RET_LABEL:;
}
-/* method model#MParameterType#to_s for (self: MParameterType): String */
-val* model__MParameterType__to_s(val* self) {
+/* method model#MParameterType#name for (self: MParameterType): String */
+val* model__MParameterType__name(val* self) {
val* var /* : String */;
-val* var1 /* : MClass */;
-val* var3 /* : MClass */;
-static val* varonce;
-val* var4 /* : String */;
-char* var5 /* : NativeString */;
-long var6 /* : Int */;
-val* var7 /* : FlatString */;
-long var8 /* : Int */;
-long var10 /* : Int */;
-val* var11 /* : Array[Object] */;
-long var12 /* : Int */;
-val* var13 /* : NativeArray[Object] */;
-val* var14 /* : Object */;
-val* var15 /* : String */;
-{
-{ /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
-var3 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
+val* var1 /* : String */;
+var1 = self->attrs[COLOR_model__MParameterType___name].val; /* _name on <self:MParameterType> */
+if (unlikely(var1 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1289);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method model#MParameterType#name for (self: Object): String */
+val* VIRTUAL_model__MParameterType__name(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+val* var3 /* : String */;
+{ /* Inline model#MParameterType#name (self) on <self:Object(MParameterType)> */
+var3 = self->attrs[COLOR_model__MParameterType___name].val; /* _name on <self:Object(MParameterType)> */
if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1289);
show_backtrace(1);
}
var1 = var3;
RET_LABEL2:(void)0;
}
+var = var1;
+RET_LABEL:;
+return var;
}
-if (varonce) {
-var4 = varonce;
-} else {
-var5 = "#";
-var6 = 1;
-var7 = string__NativeString__to_s_with_length(var5, var6);
-var4 = var7;
-varonce = var4;
+/* method model#MParameterType#name= for (self: MParameterType, String) */
+void model__MParameterType__name_61d(val* self, val* p0) {
+self->attrs[COLOR_model__MParameterType___name].val = p0; /* _name on <self:MParameterType> */
+RET_LABEL:;
}
-{
-{ /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
-var10 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
-var8 = var10;
-RET_LABEL9:(void)0;
+/* method model#MParameterType#name= for (self: Object, String) */
+void VIRTUAL_model__MParameterType__name_61d(val* self, val* p0) {
+{ /* Inline model#MParameterType#name= (self,p0) on <self:Object(MParameterType)> */
+self->attrs[COLOR_model__MParameterType___name].val = p0; /* _name on <self:Object(MParameterType)> */
+RET_LABEL1:(void)0;
}
+RET_LABEL:;
}
-var11 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var11 = array_instance Array[Object] */
-var12 = 3;
-var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var13)->values[0] = (val*) var1;
-((struct instance_array__NativeArray*)var13)->values[1] = (val*) var4;
-var14 = BOX_kernel__Int(var8); /* autobox from Int to Object */
-((struct instance_array__NativeArray*)var13)->values[2] = (val*) var14;
+/* method model#MParameterType#to_s for (self: MParameterType): String */
+val* model__MParameterType__to_s(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+val* var3 /* : String */;
{
-((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
+{ /* Inline model#MParameterType#name (self) on <self:MParameterType> */
+var3 = self->attrs[COLOR_model__MParameterType___name].val; /* _name on <self:MParameterType> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1289);
+show_backtrace(1);
}
+var1 = var3;
+RET_LABEL2:(void)0;
}
-{
-var15 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
}
-var = var15;
+var = var1;
goto RET_LABEL;
RET_LABEL:;
return var;
val* var_goalclass /* var goalclass: MClass */;
val* var6 /* : Set[MClassType] */;
val* var_supertypes /* var supertypes: Set[MClassType] */;
+val* var_ /* var : Set[MClassType] */;
val* var7 /* : Iterator[nullable Object] */;
-short int var8 /* : Bool */;
-val* var9 /* : nullable Object */;
+val* var_8 /* var : Iterator[MClassType] */;
+short int var9 /* : Bool */;
+val* var10 /* : nullable Object */;
val* var_t /* var t: MClassType */;
-val* var10 /* : MClass */;
-val* var12 /* : MClass */;
-short int var13 /* : Bool */;
+val* var11 /* : MClass */;
+val* var13 /* : MClass */;
short int var14 /* : Bool */;
+short int var15 /* : Bool */;
val* var_other /* var other: nullable Object */;
-short int var16 /* : Bool */;
-short int var18 /* : Bool */;
-val* var19 /* : Array[MType] */;
-val* var21 /* : Array[MType] */;
-long var22 /* : Int */;
-long var24 /* : Int */;
-val* var25 /* : nullable Object */;
+short int var17 /* : Bool */;
+short int var19 /* : Bool */;
+val* var20 /* : Array[MType] */;
+val* var22 /* : Array[MType] */;
+long var23 /* : Int */;
+long var25 /* : Int */;
+val* var26 /* : nullable Object */;
val* var_res /* var res: MType */;
var_mmodule = p0;
var_resolved_receiver = p1;
var2 = !var1;
if (unlikely(!var2)) {
PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1285);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1297);
show_backtrace(1);
}
{
var5 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
if (unlikely(var5 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1280);
show_backtrace(1);
}
var3 = var5;
var6 = ((val* (*)(val*, val*))(var_resolved_receiver->class->vft[COLOR_model__MType__collect_mtypes]))(var_resolved_receiver, var_mmodule) /* collect_mtypes on <var_resolved_receiver:MType>*/;
}
var_supertypes = var6;
+var_ = var_supertypes;
{
-var7 = ((val* (*)(val*))(var_supertypes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_supertypes) /* iterator on <var_supertypes:Set[MClassType]>*/;
+var7 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Set[MClassType]>*/;
}
+var_8 = var7;
for(;;) {
{
-var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on <var7:Iterator[nullable Object]>*/;
+var9 = ((short int (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_8) /* is_ok on <var_8:Iterator[MClassType]>*/;
}
-if(!var8) break;
+if (var9){
{
-var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on <var7:Iterator[nullable Object]>*/;
+var10 = ((val* (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__item]))(var_8) /* item on <var_8:Iterator[MClassType]>*/;
}
-var_t = var9;
+var_t = var10;
{
{ /* Inline model#MClassType#mclass (var_t) on <var_t:MClassType> */
-var12 = var_t->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_t:MClassType> */
-if (unlikely(var12 == NULL)) {
+var13 = var_t->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_t:MClassType> */
+if (unlikely(var13 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 986);
show_backtrace(1);
}
-var10 = var12;
-RET_LABEL11:(void)0;
+var11 = var13;
+RET_LABEL12:(void)0;
}
}
{
-{ /* Inline kernel#Object#== (var10,var_goalclass) on <var10:MClass> */
+{ /* Inline kernel#Object#== (var11,var_goalclass) on <var11:MClass> */
var_other = var_goalclass;
{
-{ /* Inline kernel#Object#is_same_instance (var10,var_other) on <var10:MClass> */
-var18 = var10 == var_other;
-var16 = var18;
-goto RET_LABEL17;
-RET_LABEL17:(void)0;
+{ /* Inline kernel#Object#is_same_instance (var11,var_other) on <var11:MClass> */
+var19 = var11 == var_other;
+var17 = var19;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
}
}
-var14 = var16;
-goto RET_LABEL15;
-RET_LABEL15:(void)0;
+var15 = var17;
+goto RET_LABEL16;
+RET_LABEL16:(void)0;
}
-var13 = var14;
+var14 = var15;
}
-if (var13){
+if (var14){
{
{ /* Inline model#MClassType#arguments (var_t) on <var_t:MClassType> */
-var21 = var_t->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_t:MClassType> */
-if (unlikely(var21 == NULL)) {
+var22 = var_t->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_t:MClassType> */
+if (unlikely(var22 == NULL)) {
PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 996);
show_backtrace(1);
}
-var19 = var21;
-RET_LABEL20:(void)0;
+var20 = var22;
+RET_LABEL21:(void)0;
}
}
{
{ /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
-var24 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
-var22 = var24;
-RET_LABEL23:(void)0;
+var25 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
+var23 = var25;
+RET_LABEL24:(void)0;
}
}
{
-var25 = array__Array___91d_93d(var19, var22);
+var26 = array__Array___91d_93d(var20, var23);
}
-var_res = var25;
+var_res = var26;
var = var_res;
goto RET_LABEL;
} else {
}
-CONTINUE_label: (void)0;
{
-((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on <var7:Iterator[nullable Object]>*/;
+((void (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__next]))(var_8) /* next on <var_8:Iterator[MClassType]>*/;
+}
+} else {
+goto BREAK_label;
}
}
BREAK_label: (void)0;
+{
+{ /* Inline abstract_collection#Iterator#finish (var_8) on <var_8:Iterator[MClassType]> */
+RET_LABEL27:(void)0;
+}
+}
PRINT_ERROR("Runtime error: %s", "Aborted");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1296);
+PRINT_ERROR(" (%s:%d)\n", "model/model.nit", 1308);
show_backtrace(1);
RET_LABEL:;
return var;
RET_LABEL:;
return var;
}
-/* method model#MParameterType#resolve_for for (self: MParameterType, MType, nullable MClassType, MModule, Bool): MType */
-val* model__MParameterType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-short int var1 /* : Bool */;
-short int var2 /* : Bool */;
-short int var3 /* : Bool */;
-int cltype;
-int idtype;
-short int var_ /* var : Bool */;
-val* var4 /* : MClass */;
-val* var6 /* : MClass */;
-val* var7 /* : MClass */;
-val* var9 /* : MClass */;
-short int var10 /* : Bool */;
-short int var11 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var13 /* : Bool */;
-short int var15 /* : Bool */;
-val* var16 /* : Array[MType] */;
-val* var18 /* : Array[MType] */;
-long var19 /* : Int */;
-long var21 /* : Int */;
-val* var22 /* : nullable Object */;
-val* var_res /* var res: MType */;
-short int var23 /* : Bool */;
-val* var24 /* : null */;
-short int var25 /* : Bool */;
-short int var26 /* : Bool */;
-val* var_other28 /* var other: nullable Object */;
-short int var29 /* : Bool */;
-short int var30 /* : Bool */;
-short int var31 /* : Bool */;
-short int var_32 /* var : Bool */;
-short int var33 /* : Bool */;
-val* var34 /* : MType */;
-val* var_r2 /* var r2: MType */;
-short int var35 /* : Bool */;
-short int var36 /* : Bool */;
-int cltype37;
-int idtype38;
-short int var_39 /* var : Bool */;
-val* var40 /* : MClass */;
-val* var42 /* : MClass */;
-val* var43 /* : MClassKind */;
-val* var45 /* : MClassKind */;
-val* var46 /* : MClassKind */;
-short int var47 /* : Bool */;
-short int var48 /* : Bool */;
-short int var50 /* : Bool */;
-short int var52 /* : Bool */;
-short int var53 /* : Bool */;
-val* var54 /* : null */;
-short int var55 /* : Bool */;
-short int var56 /* : Bool */;
-short int var58 /* : Bool */;
-short int var59 /* : Bool */;
-short int var60 /* : Bool */;
-val* var61 /* : MClass */;
-val* var63 /* : MClass */;
-val* var64 /* : MClassType */;
-val* var66 /* : MClassType */;
-short int var67 /* : Bool */;
-val* var68 /* : MType */;
-val* var_resolved_receiver /* var resolved_receiver: nullable Object */;
-short int var69 /* : Bool */;
-int cltype70;
-int idtype71;
-val* var72 /* : MType */;
-val* var74 /* : MType */;
-short int var75 /* : Bool */;
-int cltype76;
-int idtype77;
-val* var78 /* : MClass */;
-val* var80 /* : MClass */;
-val* var81 /* : MClass */;
-val* var83 /* : MClass */;
-short int var84 /* : Bool */;
-short int var85 /* : Bool */;
-short int var87 /* : Bool */;
-short int var89 /* : Bool */;
-val* var90 /* : Array[MType] */;
-val* var92 /* : Array[MType] */;
-long var93 /* : Int */;
-long var95 /* : Int */;
-val* var96 /* : nullable Object */;
-short int var97 /* : Bool */;
-int cltype98;
-int idtype99;
-val* var100 /* : MType */;
-val* var102 /* : MType */;
-short int var103 /* : Bool */;
-int cltype104;
-int idtype105;
-val* var106 /* : MClass */;
-val* var108 /* : MClass */;
-val* var109 /* : MClass */;
-val* var111 /* : MClass */;
-short int var112 /* : Bool */;
-short int var113 /* : Bool */;
-short int var115 /* : Bool */;
-short int var117 /* : Bool */;
-val* var118 /* : Array[MType] */;
-val* var120 /* : Array[MType] */;
-long var121 /* : Int */;
-long var123 /* : Int */;
-val* var124 /* : nullable Object */;
-val* var_res125 /* var res: MType */;
-short int var126 /* : Bool */;
-val* var127 /* : null */;
-short int var128 /* : Bool */;
-short int var129 /* : Bool */;
-short int var131 /* : Bool */;
-short int var132 /* : Bool */;
-short int var133 /* : Bool */;
-val* var134 /* : null */;
-short int var135 /* : Bool */;
-val* var136 /* : MType */;
-val* var137 /* : MType */;
-val* var_verbatim_bound /* var verbatim_bound: MType */;
-val* var138 /* : MType */;
-val* var_res139 /* var res: MType */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-{
-var1 = model__MParameterType__can_resolve_for(self, var_mtype, var_anchor, var_mmodule);
-}
-if (unlikely(!var1)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1301);
-show_backtrace(1);
-}
-/* <var_mtype:MType> isa MGenericType */
-cltype = type_model__MGenericType.color;
-idtype = type_model__MGenericType.id;
-if(cltype >= var_mtype->type->table_size) {
-var3 = 0;
-} else {
-var3 = var_mtype->type->type_table[cltype] == idtype;
-}
-var_ = var3;
-if (var3){
-{
-{ /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MType(MGenericType)> */
-var6 = var_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_mtype:MType(MGenericType)> */
-if (unlikely(var6 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var4 = var6;
-RET_LABEL5:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
-var9 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
-if (unlikely(var9 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
-show_backtrace(1);
-}
-var7 = var9;
-RET_LABEL8:(void)0;
-}
-}
-{
-{ /* Inline kernel#Object#== (var4,var7) on <var4:MClass> */
-var_other = var7;
-{
-{ /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MClass> */
-var15 = var4 == var_other;
-var13 = var15;
-goto RET_LABEL14;
-RET_LABEL14:(void)0;
-}
-}
-var11 = var13;
-goto RET_LABEL12;
-RET_LABEL12:(void)0;
-}
-var10 = var11;
-}
-var2 = var10;
-} else {
-var2 = var_;
-}
-if (var2){
-{
-{ /* Inline model#MClassType#arguments (var_mtype) on <var_mtype:MType(MGenericType)> */
-var18 = var_mtype->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_mtype:MType(MGenericType)> */
-if (unlikely(var18 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
-show_backtrace(1);
-}
-var16 = var18;
-RET_LABEL17:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
-var21 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
-var19 = var21;
-RET_LABEL20:(void)0;
-}
-}
-{
-var22 = array__Array___91d_93d(var16, var19);
-}
-var_res = var22;
-var24 = NULL;
-if (var_anchor == NULL) {
-var25 = 0; /* is null */
-} else {
-var25 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,var24) on <var_anchor:nullable MClassType> */
-var_other28 = var24;
-{
-var30 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
-var29 = var30;
-}
-var31 = !var29;
-var26 = var31;
-goto RET_LABEL27;
-RET_LABEL27:(void)0;
-}
-var25 = var26;
-}
-var_32 = var25;
-if (var25){
-{
-var33 = ((short int (*)(val*))(var_res->class->vft[COLOR_model__MType__need_anchor]))(var_res) /* need_anchor on <var_res:MType>*/;
-}
-var23 = var33;
-} else {
-var23 = var_32;
-}
-if (var23){
-{
-var34 = ((val* (*)(val*, val*, val*))(var_res->class->vft[COLOR_model__MType__anchor_to]))(var_res, var_mmodule, var_anchor) /* anchor_to on <var_res:MType>*/;
-}
-var_r2 = var34;
-/* <var_r2:MType> isa MClassType */
-cltype37 = type_model__MClassType.color;
-idtype38 = type_model__MClassType.id;
-if(cltype37 >= var_r2->type->table_size) {
-var36 = 0;
-} else {
-var36 = var_r2->type->type_table[cltype37] == idtype38;
-}
-var_39 = var36;
-if (var36){
-{
-{ /* Inline model#MClassType#mclass (var_r2) on <var_r2:MType(MClassType)> */
-var42 = var_r2->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_r2:MType(MClassType)> */
-if (unlikely(var42 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var40 = var42;
-RET_LABEL41:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#kind (var40) on <var40:MClass> */
-var45 = var40->attrs[COLOR_model__MClass___kind].val; /* _kind on <var40:MClass> */
-if (unlikely(var45 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
-show_backtrace(1);
-}
-var43 = var45;
-RET_LABEL44:(void)0;
-}
-}
-{
-var46 = model__Object__enum_kind(self);
-}
-{
-{ /* Inline kernel#Object#== (var43,var46) on <var43:MClassKind> */
-var_other = var46;
-{
-{ /* Inline kernel#Object#is_same_instance (var43,var_other) on <var43:MClassKind> */
-var52 = var43 == var_other;
-var50 = var52;
-goto RET_LABEL51;
-RET_LABEL51:(void)0;
-}
-}
-var48 = var50;
-goto RET_LABEL49;
-RET_LABEL49:(void)0;
-}
-var47 = var48;
-}
-var35 = var47;
-} else {
-var35 = var_39;
-}
-if (var35){
-var = var_r2;
-goto RET_LABEL;
-} else {
-}
-} else {
-}
-var = var_res;
-goto RET_LABEL;
-} else {
-}
-{
-var53 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
-}
-if (var53){
-var54 = NULL;
-if (var_anchor == NULL) {
-var55 = 0; /* is null */
-} else {
-var55 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,var54) on <var_anchor:nullable MClassType> */
-var_other28 = var54;
-{
-var59 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
-var58 = var59;
-}
-var60 = !var58;
-var56 = var60;
-goto RET_LABEL57;
-RET_LABEL57:(void)0;
-}
-var55 = var56;
-}
-if (unlikely(!var55)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1320);
-show_backtrace(1);
-}
-{
-{ /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType(MClassType)> */
-var63 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType(MClassType)> */
-if (unlikely(var63 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var61 = var63;
-RET_LABEL62:(void)0;
-}
-}
-{
-{ /* Inline model#MClass#mclass_type (var61) on <var61:MClass> */
-var66 = var61->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var61:MClass> */
-if (unlikely(var66 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
-show_backtrace(1);
-}
-var64 = var66;
-RET_LABEL65:(void)0;
-}
-}
-var67 = 1;
-{
-var68 = ((val* (*)(val*, val*, val*, val*, short int))(var_mtype->class->vft[COLOR_model__MType__resolve_for]))(var_mtype, var64, var_anchor, var_mmodule, var67) /* resolve_for on <var_mtype:MType>*/;
-}
-var_resolved_receiver = var68;
-} else {
-var_resolved_receiver = var_mtype;
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
-cltype70 = type_model__MNullableType.color;
-idtype71 = type_model__MNullableType.id;
-if(cltype70 >= var_resolved_receiver->type->table_size) {
-var69 = 0;
-} else {
-var69 = var_resolved_receiver->type->type_table[cltype70] == idtype71;
-}
-if (var69){
-{
-{ /* Inline model#MNullableType#mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
-var74 = var_resolved_receiver->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
-if (unlikely(var74 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var72 = var74;
-RET_LABEL73:(void)0;
-}
-}
-var_resolved_receiver = var72;
-} else {
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MParameterType */
-cltype76 = type_model__MParameterType.color;
-idtype77 = type_model__MParameterType.id;
-if(cltype76 >= var_resolved_receiver->type->table_size) {
-var75 = 0;
-} else {
-var75 = var_resolved_receiver->type->type_table[cltype76] == idtype77;
-}
-if (var75){
-{
-{ /* Inline model#MParameterType#mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
-var80 = var_resolved_receiver->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <var_resolved_receiver:nullable Object(MParameterType)> */
-if (unlikely(var80 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
-show_backtrace(1);
-}
-var78 = var80;
-RET_LABEL79:(void)0;
-}
-}
-if (var_anchor == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1327);
-show_backtrace(1);
-} else {
-{ /* Inline model#MClassType#mclass (var_anchor) on <var_anchor:nullable MClassType> */
-if (unlikely(var_anchor == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var83 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_anchor:nullable MClassType> */
-if (unlikely(var83 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var81 = var83;
-RET_LABEL82:(void)0;
-}
-}
-{
-{ /* Inline kernel#Object#== (var78,var81) on <var78:MClass> */
-var_other = var81;
-{
-{ /* Inline kernel#Object#is_same_instance (var78,var_other) on <var78:MClass> */
-var89 = var78 == var_other;
-var87 = var89;
-goto RET_LABEL88;
-RET_LABEL88:(void)0;
-}
-}
-var85 = var87;
-goto RET_LABEL86;
-RET_LABEL86:(void)0;
-}
-var84 = var85;
-}
-if (unlikely(!var84)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1327);
-show_backtrace(1);
-}
-if (var_anchor == NULL) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1328);
-show_backtrace(1);
-} else {
-{ /* Inline model#MClassType#arguments (var_anchor) on <var_anchor:nullable MClassType> */
-if (unlikely(var_anchor == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Receiver is null");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
-show_backtrace(1);
-}
-var92 = var_anchor->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_anchor:nullable MClassType> */
-if (unlikely(var92 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
-show_backtrace(1);
-}
-var90 = var92;
-RET_LABEL91:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#rank (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MParameterType)> */
-var95 = var_resolved_receiver->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <var_resolved_receiver:nullable Object(MParameterType)> */
-var93 = var95;
-RET_LABEL94:(void)0;
-}
-}
-{
-var96 = array__Array___91d_93d(var90, var93);
-}
-var_resolved_receiver = var96;
-/* <var_resolved_receiver:nullable Object(MType)> isa MNullableType */
-cltype98 = type_model__MNullableType.color;
-idtype99 = type_model__MNullableType.id;
-if(cltype98 >= var_resolved_receiver->type->table_size) {
-var97 = 0;
-} else {
-var97 = var_resolved_receiver->type->type_table[cltype98] == idtype99;
-}
-if (var97){
-{
-{ /* Inline model#MNullableType#mtype (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MNullableType)> */
-var102 = var_resolved_receiver->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <var_resolved_receiver:nullable Object(MNullableType)> */
-if (unlikely(var102 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var100 = var102;
-RET_LABEL101:(void)0;
-}
-}
-var_resolved_receiver = var100;
-} else {
-}
-} else {
-}
-/* <var_resolved_receiver:nullable Object(MType)> isa MClassType */
-cltype104 = type_model__MClassType.color;
-idtype105 = type_model__MClassType.id;
-if(cltype104 >= var_resolved_receiver->type->table_size) {
-var103 = 0;
-} else {
-var103 = var_resolved_receiver->type->type_table[cltype104] == idtype105;
-}
-if (unlikely(!var103)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1331);
-show_backtrace(1);
-}
-{
-{ /* Inline model#MClassType#mclass (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MClassType)> */
-var108 = var_resolved_receiver->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on <var_resolved_receiver:nullable Object(MClassType)> */
-if (unlikely(var108 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
-show_backtrace(1);
-}
-var106 = var108;
-RET_LABEL107:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
-var111 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
-if (unlikely(var111 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
-show_backtrace(1);
-}
-var109 = var111;
-RET_LABEL110:(void)0;
-}
-}
-{
-{ /* Inline kernel#Object#== (var106,var109) on <var106:MClass> */
-var_other = var109;
-{
-{ /* Inline kernel#Object#is_same_instance (var106,var_other) on <var106:MClass> */
-var117 = var106 == var_other;
-var115 = var117;
-goto RET_LABEL116;
-RET_LABEL116:(void)0;
-}
-}
-var113 = var115;
-goto RET_LABEL114;
-RET_LABEL114:(void)0;
-}
-var112 = var113;
-}
-if (var112){
-{
-{ /* Inline model#MClassType#arguments (var_resolved_receiver) on <var_resolved_receiver:nullable Object(MClassType)> */
-var120 = var_resolved_receiver->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on <var_resolved_receiver:nullable Object(MClassType)> */
-if (unlikely(var120 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
-show_backtrace(1);
-}
-var118 = var120;
-RET_LABEL119:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#rank (self) on <self:MParameterType> */
-var123 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on <self:MParameterType> */
-var121 = var123;
-RET_LABEL122:(void)0;
-}
-}
-{
-var124 = array__Array___91d_93d(var118, var121);
-}
-var_res125 = var124;
-var = var_res125;
-goto RET_LABEL;
-} else {
-}
-{
-var126 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on <var_resolved_receiver:nullable Object(MClassType)>*/;
-}
-if (var126){
-var127 = NULL;
-if (var_anchor == NULL) {
-var128 = 0; /* is null */
-} else {
-var128 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,var127) on <var_anchor:nullable MClassType> */
-var_other28 = var127;
-{
-var132 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
-var131 = var132;
-}
-var133 = !var131;
-var129 = var133;
-goto RET_LABEL130;
-RET_LABEL130:(void)0;
-}
-var128 = var129;
-}
-if (unlikely(!var128)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1342);
-show_backtrace(1);
-}
-var134 = NULL;
-var135 = 0;
-{
-var136 = ((val* (*)(val*, val*, val*, val*, short int))(var_resolved_receiver->class->vft[COLOR_model__MType__resolve_for]))(var_resolved_receiver, var_anchor, var134, var_mmodule, var135) /* resolve_for on <var_resolved_receiver:nullable Object(MClassType)>*/;
-}
-var_resolved_receiver = var136;
-} else {
-}
-{
-var137 = model__MParameterType__lookup_bound(self, var_mmodule, var_resolved_receiver);
-}
-var_verbatim_bound = var137;
-{
-var138 = ((val* (*)(val*, val*, val*, val*, short int))(var_verbatim_bound->class->vft[COLOR_model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var_verbatim_bound:MType>*/;
-}
-var_res139 = var138;
-var = var_res139;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
-val* VIRTUAL_model__MParameterType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MParameterType__resolve_for(self, p0, p1, p2, p3);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#can_resolve_for for (self: MParameterType, MType, nullable MClassType, MModule): Bool */
-short int model__MParameterType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var1 /* : Bool */;
-val* var2 /* : null */;
-short int var3 /* : Bool */;
-short int var4 /* : Bool */;
-val* var_other /* var other: nullable Object */;
-short int var6 /* : Bool */;
-short int var7 /* : Bool */;
-short int var8 /* : Bool */;
-val* var9 /* : MType */;
-val* var10 /* : Set[MClassDef] */;
-val* var11 /* : MClass */;
-val* var13 /* : MClass */;
-val* var14 /* : MClassDef */;
-short int var15 /* : Bool */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-{
-var1 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
-}
-if (var1){
-var2 = NULL;
-if (var_anchor == NULL) {
-var3 = 0; /* is null */
-} else {
-var3 = 1; /* arg is null and recv is not */
-}
-if (0) {
-{ /* Inline kernel#Object#!= (var_anchor,var2) on <var_anchor:nullable MClassType> */
-var_other = var2;
-{
-var7 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other) /* == on <var_anchor:nullable MClassType(MClassType)>*/;
-var6 = var7;
-}
-var8 = !var6;
-var4 = var8;
-goto RET_LABEL5;
-RET_LABEL5:(void)0;
-}
-var3 = var4;
-}
-if (unlikely(!var3)) {
-PRINT_ERROR("Runtime error: %s", "Assert failed");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1358);
-show_backtrace(1);
-}
-{
-var9 = ((val* (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor) /* anchor_to on <var_mtype:MType>*/;
-}
-var_mtype = var9;
-} else {
-}
-{
-var10 = ((val* (*)(val*, val*))(var_mtype->class->vft[COLOR_model__MType__collect_mclassdefs]))(var_mtype, var_mmodule) /* collect_mclassdefs on <var_mtype:MType>*/;
-}
-{
-{ /* Inline model#MParameterType#mclass (self) on <self:MParameterType> */
-var13 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on <self:MParameterType> */
-if (unlikely(var13 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1265);
-show_backtrace(1);
-}
-var11 = var13;
-RET_LABEL12:(void)0;
-}
-}
-{
-var14 = model__MClass__intro(var11);
-}
-{
-var15 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_abstract_collection__Collection__has]))(var10, var14) /* has on <var10:Set[MClassDef]>*/;
-}
-var = var15;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#can_resolve_for for (self: Object, MType, nullable MClassType, MModule): Bool */
-short int VIRTUAL_model__MParameterType__can_resolve_for(val* self, val* p0, val* p1, val* p2) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MParameterType__can_resolve_for(self, p0, p1, p2);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MParameterType#init for (self: MParameterType, MClass, Int) */
-void model__MParameterType__init(val* self, val* p0, long p1) {
-val* var_mclass /* var mclass: MClass */;
-long var_rank /* var rank: Int */;
-{
-{ /* Inline model_base#MEntity#init (self) on <self:MParameterType> */
-RET_LABEL1:(void)0;
-}
-}
-var_mclass = p0;
-var_rank = p1;
-{
-{ /* Inline model#MParameterType#mclass= (self,var_mclass) on <self:MParameterType> */
-self->attrs[COLOR_model__MParameterType___mclass].val = var_mclass; /* _mclass on <self:MParameterType> */
-RET_LABEL2:(void)0;
-}
-}
-{
-{ /* Inline model#MParameterType#rank= (self,var_rank) on <self:MParameterType> */
-self->attrs[COLOR_model__MParameterType___rank].l = var_rank; /* _rank on <self:MParameterType> */
-RET_LABEL3:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method model#MParameterType#init for (self: Object, MClass, Int) */
-void VIRTUAL_model__MParameterType__init(val* self, val* p0, long p1) {
-model__MParameterType__init(self, p0, p1); /* Direct call model#MParameterType#init on <self:Object(MParameterType)>*/
-RET_LABEL:;
-}
-/* method model#MNullableType#mtype for (self: MNullableType): MType */
-val* model__MNullableType__mtype(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#mtype for (self: Object): MType */
-val* VIRTUAL_model__MNullableType__mtype(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-val* var3 /* : MType */;
-{ /* Inline model#MNullableType#mtype (self) on <self:Object(MNullableType)> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:Object(MNullableType)> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#mtype= for (self: MNullableType, MType) */
-void model__MNullableType__mtype_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MNullableType___mtype].val = p0; /* _mtype on <self:MNullableType> */
-RET_LABEL:;
-}
-/* method model#MNullableType#mtype= for (self: Object, MType) */
-void VIRTUAL_model__MNullableType__mtype_61d(val* self, val* p0) {
-{ /* Inline model#MNullableType#mtype= (self,p0) on <self:Object(MNullableType)> */
-self->attrs[COLOR_model__MNullableType___mtype].val = p0; /* _mtype on <self:Object(MNullableType)> */
-RET_LABEL1:(void)0;
-}
-RET_LABEL:;
-}
-/* method model#MNullableType#model for (self: MNullableType): Model */
-val* model__MNullableType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : MType */;
-val* var3 /* : MType */;
-val* var4 /* : Model */;
-{
-{ /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = ((val* (*)(val*))(var1->class->vft[COLOR_model_base__MEntity__model]))(var1) /* model on <var1:MType>*/;
-}
-var = var4;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#model for (self: Object): Model */
-val* VIRTUAL_model__MNullableType__model(val* self) {
-val* var /* : Model */;
-val* var1 /* : Model */;
-var1 = model__MNullableType__model(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#init for (self: MNullableType, MType) */
-void model__MNullableType__init(val* self, val* p0) {
-val* var_mtype /* var mtype: MType */;
-static val* varonce;
-val* var /* : String */;
-char* var3 /* : NativeString */;
-long var4 /* : Int */;
-val* var5 /* : FlatString */;
-val* var6 /* : Array[Object] */;
-long var7 /* : Int */;
-val* var8 /* : NativeArray[Object] */;
-val* var9 /* : String */;
-{
-{ /* Inline model_base#MEntity#init (self) on <self:MNullableType> */
-RET_LABEL1:(void)0;
-}
-}
-var_mtype = p0;
-{
-{ /* Inline model#MNullableType#mtype= (self,var_mtype) on <self:MNullableType> */
-self->attrs[COLOR_model__MNullableType___mtype].val = var_mtype; /* _mtype on <self:MNullableType> */
-RET_LABEL2:(void)0;
-}
-}
-if (varonce) {
-var = varonce;
-} else {
-var3 = "nullable ";
-var4 = 9;
-var5 = string__NativeString__to_s_with_length(var3, var4);
-var = var5;
-varonce = var;
-}
-var6 = NEW_array__Array(&type_array__Arraykernel__Object);
-{ /* var6 = array_instance Array[Object] */
-var7 = 2;
-var8 = NEW_array__NativeArray(var7, &type_array__NativeArraykernel__Object);
-((struct instance_array__NativeArray*)var8)->values[0] = (val*) var;
-((struct instance_array__NativeArray*)var8)->values[1] = (val*) var_mtype;
-{
-((void (*)(val*, val*, long))(var6->class->vft[COLOR_array__Array__with_native]))(var6, var8, var7) /* with_native on <var6:Array[Object]>*/;
-}
-}
-{
-var9 = ((val* (*)(val*))(var6->class->vft[COLOR_string__Object__to_s]))(var6) /* to_s on <var6:Array[Object]>*/;
-}
-{
-{ /* Inline model#MNullableType#to_s= (self,var9) on <self:MNullableType> */
-self->attrs[COLOR_model__MNullableType___to_s].val = var9; /* _to_s on <self:MNullableType> */
-RET_LABEL10:(void)0;
-}
-}
-RET_LABEL:;
-}
-/* method model#MNullableType#init for (self: Object, MType) */
-void VIRTUAL_model__MNullableType__init(val* self, val* p0) {
-model__MNullableType__init(self, p0); /* Direct call model#MNullableType#init on <self:Object(MNullableType)>*/
-RET_LABEL:;
-}
-/* method model#MNullableType#to_s for (self: MNullableType): String */
-val* model__MNullableType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-var1 = self->attrs[COLOR_model__MNullableType___to_s].val; /* _to_s on <self:MNullableType> */
-if (unlikely(var1 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1386);
-show_backtrace(1);
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#to_s for (self: Object): String */
-val* VIRTUAL_model__MNullableType__to_s(val* self) {
-val* var /* : String */;
-val* var1 /* : String */;
-val* var3 /* : String */;
-{ /* Inline model#MNullableType#to_s (self) on <self:Object(MNullableType)> */
-var3 = self->attrs[COLOR_model__MNullableType___to_s].val; /* _to_s on <self:Object(MNullableType)> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1386);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#to_s= for (self: MNullableType, String) */
-void model__MNullableType__to_s_61d(val* self, val* p0) {
-self->attrs[COLOR_model__MNullableType___to_s].val = p0; /* _to_s on <self:MNullableType> */
-RET_LABEL:;
-}
-/* method model#MNullableType#to_s= for (self: Object, String) */
-void VIRTUAL_model__MNullableType__to_s_61d(val* self, val* p0) {
-{ /* Inline model#MNullableType#to_s= (self,p0) on <self:Object(MNullableType)> */
-self->attrs[COLOR_model__MNullableType___to_s].val = p0; /* _to_s on <self:Object(MNullableType)> */
-RET_LABEL1:(void)0;
-}
-RET_LABEL:;
-}
-/* method model#MNullableType#need_anchor for (self: MNullableType): Bool */
-short int model__MNullableType__need_anchor(val* self) {
-short int var /* : Bool */;
-val* var1 /* : MType */;
-val* var3 /* : MType */;
-short int var4 /* : Bool */;
-{
-{ /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = ((short int (*)(val*))(var1->class->vft[COLOR_model__MType__need_anchor]))(var1) /* need_anchor on <var1:MType>*/;
-}
-var = var4;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#need_anchor for (self: Object): Bool */
-short int VIRTUAL_model__MNullableType__need_anchor(val* self) {
-short int var /* : Bool */;
-short int var1 /* : Bool */;
-var1 = model__MNullableType__need_anchor(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#as_nullable for (self: MNullableType): MType */
-val* model__MNullableType__as_nullable(val* self) {
-val* var /* : MType */;
-var = self;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#as_nullable for (self: Object): MType */
-val* VIRTUAL_model__MNullableType__as_nullable(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullableType__as_nullable(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#as_notnullable for (self: MNullableType): MType */
-val* model__MNullableType__as_notnullable(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-val* var3 /* : MType */;
-{
-{ /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-var = var1;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#as_notnullable for (self: Object): MType */
-val* VIRTUAL_model__MNullableType__as_notnullable(val* self) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullableType__as_notnullable(self);
-var = var1;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#resolve_for for (self: MNullableType, MType, nullable MClassType, MModule, Bool): MType */
-val* model__MNullableType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var_mtype /* var mtype: MType */;
-val* var_anchor /* var anchor: nullable MClassType */;
-val* var_mmodule /* var mmodule: MModule */;
-short int var_cleanup_virtual /* var cleanup_virtual: Bool */;
-val* var1 /* : MType */;
-val* var3 /* : MType */;
-val* var4 /* : MType */;
-val* var_res /* var res: MType */;
-val* var5 /* : MType */;
-var_mtype = p0;
-var_anchor = p1;
-var_mmodule = p2;
-var_cleanup_virtual = p3;
-{
-{ /* Inline model#MNullableType#mtype (self) on <self:MNullableType> */
-var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on <self:MNullableType> */
-if (unlikely(var3 == NULL)) {
-PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
-PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
-show_backtrace(1);
-}
-var1 = var3;
-RET_LABEL2:(void)0;
-}
-}
-{
-var4 = ((val* (*)(val*, val*, val*, val*, short int))(var1->class->vft[COLOR_model__MType__resolve_for]))(var1, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on <var1:MType>*/;
-}
-var_res = var4;
-{
-var5 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MType__as_nullable]))(var_res) /* as_nullable on <var_res:MType>*/;
-}
-var = var5;
-goto RET_LABEL;
-RET_LABEL:;
-return var;
-}
-/* method model#MNullableType#resolve_for for (self: Object, MType, nullable MClassType, MModule, Bool): MType */
-val* VIRTUAL_model__MNullableType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) {
-val* var /* : MType */;
-val* var1 /* : MType */;
-var1 = model__MNullableType__resolve_for(self, p0, p1, p2, p3);
-var = var1;
-RET_LABEL:;
-return var;
-}