X-Git-Url: http://nitlanguage.org diff --git a/c_src/model.sep.1.c b/c_src/model.sep.1.c index 8c9b1da..ba7a41d 100644 --- a/c_src/model.sep.1.c +++ b/c_src/model.sep.1.c @@ -6,7 +6,7 @@ val* var1 /* : Array[MClass] */; var1 = self->attrs[COLOR_model__Model___mclasses].val; /* _mclasses on */ 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; @@ -22,7 +22,7 @@ val* var3 /* : Array[MClass] */; var3 = self->attrs[COLOR_model__Model___mclasses].val; /* _mclasses on */ 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; @@ -39,7 +39,7 @@ val* var1 /* : Array[MProperty] */; var1 = self->attrs[COLOR_model__Model___mproperties].val; /* _mproperties on */ 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; @@ -55,7 +55,7 @@ val* var3 /* : Array[MProperty] */; var3 = self->attrs[COLOR_model__Model___mproperties].val; /* _mproperties on */ 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; @@ -72,7 +72,7 @@ val* var1 /* : POSet[MClassDef] */; var1 = self->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ 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; @@ -88,7 +88,7 @@ val* var3 /* : POSet[MClassDef] */; var3 = self->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ 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; @@ -105,7 +105,7 @@ val* var1 /* : POSet[MClassType] */; var1 = self->attrs[COLOR_model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on */ 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; @@ -121,7 +121,7 @@ val* var3 /* : POSet[MClassType] */; var3 = self->attrs[COLOR_model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on */ 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; @@ -138,7 +138,7 @@ val* var1 /* : POSet[MClassType] */; var1 = self->attrs[COLOR_model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on */ 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; @@ -154,7 +154,7 @@ val* var3 /* : POSet[MClassType] */; var3 = self->attrs[COLOR_model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on */ 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; @@ -171,7 +171,7 @@ val* var1 /* : MultiHashMap[String, MClass] */; var1 = self->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on */ 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; @@ -187,7 +187,7 @@ val* var3 /* : MultiHashMap[String, MClass] */; var3 = self->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on */ 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; @@ -214,7 +214,7 @@ var_name = p0; var3 = self->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on */ 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; @@ -230,7 +230,7 @@ if (var4){ var7 = self->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on */ 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; @@ -266,7 +266,7 @@ val* var1 /* : MultiHashMap[String, MProperty] */; var1 = self->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on */ 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; @@ -282,7 +282,7 @@ val* var3 /* : MultiHashMap[String, MProperty] */; var3 = self->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on */ 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; @@ -310,7 +310,7 @@ var_name = p0; var3 = self->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on */ 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; @@ -331,7 +331,7 @@ goto RET_LABEL; var9 = self->attrs[COLOR_model__Model___mproperties_by_name].val; /* _mproperties_by_name on */ 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; @@ -363,7 +363,7 @@ val* var1 /* : MNullType */; var1 = self->attrs[COLOR_model__Model___null_type].val; /* _null_type on */ 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; @@ -379,7 +379,7 @@ val* var3 /* : MNullType */; var3 = self->attrs[COLOR_model__Model___null_type].val; /* _null_type on */ 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; @@ -396,7 +396,7 @@ val* var1 /* : Array[MClass] */; var1 = self->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on */ 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; @@ -412,7 +412,7 @@ val* var3 /* : Array[MClass] */; var3 = self->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on */ 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; @@ -429,7 +429,7 @@ val* var1 /* : Array[MClassDef] */; var1 = self->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on */ 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; @@ -445,7 +445,7 @@ val* var3 /* : Array[MClassDef] */; var3 = self->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on */ 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; @@ -469,31 +469,37 @@ short int var8 /* : Bool */; 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 */ var3 = self->attrs[COLOR_model__MModule___flatten_mclass_hierarchy_cache].val; /* _flatten_mclass_hierarchy_cache on */ @@ -529,36 +535,36 @@ goto RET_LABEL; } var11 = NEW_poset__POSet(&type_poset__POSetmodel__MClass); { -{ /* Inline poset#POSet#init (var11) on */ -RET_LABEL12:(void)0; -} +((void (*)(val*))(var11->class->vft[COLOR_kernel__Object__init]))(var11) /* init on */; } var_res = var11; { { /* Inline mmodule#MModule#in_importation (self) on */ -var15 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var15 == NULL)) { +var14 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ +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 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_17 = var16; for(;;) { { -var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on */; +var18 = ((short int (*)(val*))(var_17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_17) /* is_ok on */; } -if(!var18) break; +if (var18){ { -var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on */; +var19 = ((val* (*)(val*))(var_17->class->vft[COLOR_abstract_collection__Iterator__item]))(var_17) /* item on */; } var_m = var19; { @@ -566,103 +572,127 @@ var_m = var19; var22 = var_m->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on */ 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 */ -var28 = var_cd->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var28 == NULL)) { +var30 = var_cd->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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 */ -var32 = var_cd->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ -if (unlikely(var32 == NULL)) { +var34 = var_cd->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ +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 */ -var38 = var_s->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var38 == NULL)) { +var42 = var_s->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +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 */ +poset__POSet__add_edge(var_res, var_c, var40); /* Direct call poset#POSet#add_edge on */ } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var33); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_37); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -CONTINUE_label39: (void)0; { -array__ArrayIterator__next(var23); /* Direct call array#ArrayIterator#next on */ +{ /* Inline abstract_collection#Iterator#finish (var_37) on */ +RET_LABEL43:(void)0; +} +} +{ +array__ArrayIterator__next(var_25); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label44; +} +} +BREAK_label44: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_25) on */ +RET_LABEL45:(void)0; +} +} +{ +((void (*)(val*))(var_17->class->vft[COLOR_abstract_collection__Iterator__next]))(var_17) /* next on */; +} +} 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 */; +{ /* Inline abstract_collection#Iterator#finish (var_17) on */ +RET_LABEL47:(void)0; } } -BREAK_label40: (void)0; { { /* Inline model#MModule#flatten_mclass_hierarchy_cache= (self,var_res) on */ self->attrs[COLOR_model__MModule___flatten_mclass_hierarchy_cache].val = var_res; /* _flatten_mclass_hierarchy_cache on */ -RET_LABEL41:(void)0; +RET_LABEL48:(void)0; } } var = var_res; @@ -705,10 +735,10 @@ val* var_sorter /* var sorter: MClassDefSorter */; var_mclassdefs = p0; var = NEW_model__MClassDefSorter(&type_model__MClassDefSorter); { -{ /* Inline model#MClassDefSorter#init (var,self) on */ -var->attrs[COLOR_model__MClassDefSorter___mmodule].val = self; /* _mmodule on */ -RET_LABEL1:(void)0; +((void (*)(val*, val*))(var->class->vft[COLOR_model__MClassDefSorter__mmodule_61d]))(var, self) /* mmodule= on */; } +{ +((void (*)(val*))(var->class->vft[COLOR_kernel__Object__init]))(var) /* init on */; } var_sorter = var; { @@ -729,10 +759,10 @@ val* var_sorter /* var sorter: MPropDefSorter */; var_mpropdefs = p0; var = NEW_model__MPropDefSorter(&type_model__MPropDefSorter); { -{ /* Inline model#MPropDefSorter#init (var,self) on */ -var->attrs[COLOR_model__MPropDefSorter___mmodule].val = self; /* _mmodule on */ -RET_LABEL1:(void)0; +((void (*)(val*, val*))(var->class->vft[COLOR_model__MPropDefSorter__mmodule_61d]))(var, self) /* mmodule= on */; } +{ +((void (*)(val*))(var->class->vft[COLOR_kernel__Object__init]))(var) /* init on */; } var_sorter = var; { @@ -852,7 +882,7 @@ var15 = model__MModule__get_primitive_class(self, var11); var18 = var15->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -916,6 +946,117 @@ RET_LABEL1:(void)0; } 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 */ +if(likely(var1)) { +var2 = self->attrs[COLOR_model__MModule___pointer_type].val; /* _pointer_type on */ +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 */ +var10 = var7->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ +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 */ +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 */ +var3 = self->attrs[COLOR_model__MModule___pointer_type].val != NULL; /* _pointer_type on */ +if(likely(var3)) { +var4 = self->attrs[COLOR_model__MModule___pointer_type].val; /* _pointer_type on */ +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 */ +var12 = var9->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ +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 */ +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 */; @@ -987,7 +1128,7 @@ var15 = model__MModule__get_primitive_class(self, var11); var18 = var15->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -1080,7 +1221,7 @@ val* var21 /* : MClassType */; var3 = self->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -1107,7 +1248,7 @@ var10 = 1; /* is null */ 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){ @@ -1133,7 +1274,7 @@ var18 = model__MModule__get_primitive_class(self, var14); var21 = var18->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -1154,6 +1295,109 @@ var = var1; 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 */ +var3 = self->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ +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 */ +var21 = var18->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ +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 */; @@ -1173,7 +1417,7 @@ val* var11 /* : FlatString */; 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 */; @@ -1186,63 +1430,65 @@ long var24 /* : Int */; 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 */ var3 = self->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -1260,7 +1506,7 @@ var6 = 1; /* is null */ 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){ @@ -1279,7 +1525,7 @@ var12 = var13; } if (var12){ var14 = NEW_model__MClass(&type_model__MClass); -var15 = 0; +var15 = NULL; { var16 = model__Object__enum_kind(self); } @@ -1296,7 +1542,7 @@ var18 = NEW_model__MClassDef(&type_model__MClassDef); var21 = var_c->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -1312,175 +1558,189 @@ var27 = 0; { location__Location__init(var22, var23, var24, var25, var26, var27); /* Direct call location#Location#init on */ } -var28 = NEW_array__Array(&type_array__Arraystring__String); -{ -array__Array__init(var28); /* Direct call array#Array#init on */ -} { -model__MClassDef__init(var18, self, var19, var22, var28); /* Direct call model#MClassDef#init on */ +model__MClassDef__init(var18, self, var19, var22); /* Direct call model#MClassDef#init on */ } 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 */; +((void (*)(val*, val*, long))(var33->class->vft[COLOR_array__Array__with_native]))(var33, var35, var34) /* with_native on */; } } { -var37 = ((val* (*)(val*))(var34->class->vft[COLOR_string__Object__to_s]))(var34) /* to_s on */; +var36 = ((val* (*)(val*))(var33->class->vft[COLOR_string__Object__to_s]))(var33) /* to_s on */; } { -file__Object__print(self, var37); /* Direct call file#Object#print on */ +file__Object__print(self, var36); /* Direct call file#Object#print on */ } -var38 = 1; +var37 = 1; { -{ /* Inline kernel#Object#exit (self,var38) on */ -exit(var38); -RET_LABEL39:(void)0; +{ /* Inline kernel#Object#exit (self,var37) on */ +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 */ +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 */ +var39 = var41; +RET_LABEL40:(void)0; +} +} +var42 = 1; { -{ /* Inline kernel#Int#!= (var40,var41) on */ -var45 = var40 == var41; -var46 = !var45; -var43 = var46; -goto RET_LABEL44; -RET_LABEL44:(void)0; +{ /* Inline kernel#Int#!= (var39,var42) on */ +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 */; +((void (*)(val*, val*, long))(var58->class->vft[COLOR_array__Array__with_native]))(var58, var60, var59) /* with_native on */; } } { -var60 = ((val* (*)(val*))(var57->class->vft[COLOR_string__Object__to_s]))(var57) /* to_s on */; +var61 = ((val* (*)(val*))(var58->class->vft[COLOR_string__Object__to_s]))(var58) /* to_s on */; } -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 */; +((void (*)(val*, val*, long))(var73->class->vft[COLOR_array__Array__with_native]))(var73, var75, var74) /* with_native on */; } } { -var74 = ((val* (*)(val*))(var71->class->vft[COLOR_string__Object__to_s]))(var71) /* to_s on */; +var76 = ((val* (*)(val*))(var73->class->vft[COLOR_string__Object__to_s]))(var73) /* to_s on */; } { -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 */ +array__ArrayIterator__next(var_63); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; { +{ /* Inline abstract_collection#Iterator#finish (var_63) on */ +RET_LABEL78:(void)0; +} +} +{ file__Object__print(self, var_msg); /* Direct call file#Object#print on */ } -var76 = 1; +var79 = 1; { -{ /* Inline kernel#Object#exit (self,var76) on */ -exit(var76); -RET_LABEL77:(void)0; +{ /* Inline kernel#Object#exit (self,var79) on */ +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; @@ -1509,67 +1769,71 @@ short int var7 /* : Bool */; 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; { @@ -1577,7 +1841,7 @@ var_recv = p1; var3 = self->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -1595,7 +1859,7 @@ var6 = 1; /* is null */ 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){ @@ -1606,237 +1870,256 @@ goto RET_LABEL; } 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; /* 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 */ -var16 = var_mprop->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ -if (unlikely(var16 == NULL)) { +var17 = var_mprop->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +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 */ -var19 = var_recv->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ -if (unlikely(var19 == NULL)) { +var20 = var_recv->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ +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 */ -var25 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var25 == NULL)) { +var28 = self->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ +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 */ -var29 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var29 == NULL)) { +var32 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ +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 */; +var33 = ((short int (*)(val*, val*))(var29->class->vft[COLOR_abstract_collection__Collection__has]))(var29, var30) /* has on */; } -var31 = !var30; -if (var31){ -goto CONTINUE_label; +var34 = !var33; +if (var34){ +goto BREAK_label; } else { } { { /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on */ -var34 = var_mclassdef->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on */ -var32 = var34; -RET_LABEL33:(void)0; +var37 = var_mclassdef->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on */ +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 */; +var39 = ((short int (*)(val*, val*))(var38->class->vft[COLOR_abstract_collection__Collection__has]))(var38, var_intro) /* has on */; } -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_other = var38; +{ /* Inline kernel#Object#== (var_res,var41) on */ +var_other = var41; { { /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ -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_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 */; -var49 = var50; +var53 = ((short int (*)(val*, val*))(var_res->class->vft[COLOR_kernel__Object___61d_61d]))(var_res, var_other51) /* == on */; +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 */; +((void (*)(val*, val*, long))(var71->class->vft[COLOR_array__Array__with_native]))(var71, var73, var72) /* with_native on */; } } { -var71 = ((val* (*)(val*))(var68->class->vft[COLOR_string__Object__to_s]))(var68) /* to_s on */; +var74 = ((val* (*)(val*))(var71->class->vft[COLOR_string__Object__to_s]))(var71) /* to_s on */; } { -file__Object__print(self, var71); /* Direct call file#Object#print on */ +file__Object__print(self, var74); /* Direct call file#Object#print on */ } 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 */ +array__ArrayIterator__next(var_23); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label75; +} +} +BREAK_label75: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_23) on */ +RET_LABEL76:(void)0; } } -BREAK_label: (void)0; -CONTINUE_label72: (void)0; { -array__ArrayIterator__next(var10); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_11); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label77; +} +} +BREAK_label77: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_11) on */ +RET_LABEL78:(void)0; } } -BREAK_label72: (void)0; var = var_res; goto RET_LABEL; RET_LABEL:; @@ -1858,7 +2141,7 @@ val* var1 /* : MModule */; var1 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on */ 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; @@ -1874,7 +2157,7 @@ val* var3 /* : MModule */; var3 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on */ 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; @@ -1884,165 +2167,194 @@ var = var1; 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 */ +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->attrs[COLOR_model__MClassDefSorter___mmodule].val = p0; /* _mmodule on */ +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) isa Comparator#0 */ -/* isa Comparator#0 */ -var1 = 1; /* easy 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) isa COMPARED */ +/* 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) isa Comparator#0 */ -/* isa Comparator#0 */ -var2 = 1; /* easy isa Comparator#0*/ +/* Covariant cast for argument 1 (b) isa COMPARED */ +/* 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 */ -var8 = var_a->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var8 == NULL)) { +var9 = var_a->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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 */ -var11 = var_b->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var11 == NULL)) { +var12 = var_b->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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_other = var_cb; { -var16 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___61d_61d]))(var_ca, var_other) /* == on */; -var15 = var16; +var17 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___61d_61d]))(var_ca, var_other) /* == on */; +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 */ -var20 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on */ -if (unlikely(var20 == NULL)) { +var21 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on */ +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 */ -var25 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on */ -if (unlikely(var25 == NULL)) { +var26 = self->attrs[COLOR_model__MClassDefSorter___mmodule].val; /* _mmodule on */ +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 */ -var28 = var23->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ -if (unlikely(var28 == NULL)) { +{ /* Inline mmodule#MModule#model (var24) on */ +var29 = var24->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ +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 */ -var31 = var26->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ -if (unlikely(var31 == NULL)) { +{ /* Inline model#Model#mclassdef_hierarchy (var27) on */ +var32 = var27->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ +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; @@ -2056,15 +2368,19 @@ var = var1; 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 */ +/* 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 */; +} 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->attrs[COLOR_model__MClassDefSorter___mmodule].val = p0; /* _mmodule on */ +/* method model#MClassDefSorter#init for (self: Object) */ +void VIRTUAL_model__MClassDefSorter__init(val* self) { +{ /* Inline model#MClassDefSorter#init (self) on */ +{ +((void (*)(val*))(self->class->vft[COLOR_model__MClassDefSorter__init]))(self) /* init on */; +} RET_LABEL1:(void)0; } RET_LABEL:; @@ -2076,7 +2392,7 @@ val* var1 /* : MModule */; var1 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on */ 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; @@ -2092,7 +2408,7 @@ val* var3 /* : MModule */; var3 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on */ 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; @@ -2102,197 +2418,226 @@ var = var1; 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 */ +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->attrs[COLOR_model__MPropDefSorter___mmodule].val = p0; /* _mmodule on */ +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) isa Comparator#0 */ -/* isa Comparator#0 */ -var1 = 1; /* easy 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) isa COMPARED */ +/* 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) isa Comparator#0 */ -/* isa Comparator#0 */ -var2 = 1; /* easy isa Comparator#0*/ +/* Covariant cast for argument 1 (pb) isa COMPARED */ +/* 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 */ -var8 = var_pa->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var8 == NULL)) { +var9 = var_pa->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +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 */ -var11 = var_pb->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ -if (unlikely(var11 == NULL)) { +var12 = var_pb->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on */ +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 */ -var14 = var_a->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var14 == NULL)) { +var15 = var_a->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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 */ -var17 = var_b->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var17 == NULL)) { +var18 = var_b->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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_other = var_cb; { -var22 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___61d_61d]))(var_ca, var_other) /* == on */; -var21 = var22; +var23 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___61d_61d]))(var_ca, var_other) /* == on */; +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 */ -var26 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on */ -if (unlikely(var26 == NULL)) { +var27 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on */ +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 */ -var31 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on */ -if (unlikely(var31 == NULL)) { +var32 = self->attrs[COLOR_model__MPropDefSorter___mmodule].val; /* _mmodule on */ +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 */ -var34 = var29->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ -if (unlikely(var34 == NULL)) { +{ /* Inline mmodule#MModule#model (var30) on */ +var35 = var30->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ +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 */ -var37 = var32->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ -if (unlikely(var37 == NULL)) { +{ /* Inline model#Model#mclassdef_hierarchy (var33) on */ +var38 = var33->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ +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; @@ -2306,15 +2651,19 @@ var = var1; 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 */ +/* 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 */; +} 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->attrs[COLOR_model__MPropDefSorter___mmodule].val = p0; /* _mmodule on */ +/* method model#MPropDefSorter#init for (self: Object) */ +void VIRTUAL_model__MPropDefSorter__init(val* self) { +{ /* Inline model#MPropDefSorter#init (self) on */ +{ +((void (*)(val*))(self->class->vft[COLOR_model__MPropDefSorter__init]))(self) /* init on */; +} RET_LABEL1:(void)0; } RET_LABEL:; @@ -2326,7 +2675,7 @@ val* var1 /* : MModule */; var1 = self->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ 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; @@ -2342,7 +2691,7 @@ val* var3 /* : MModule */; var3 = self->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ 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; @@ -2372,7 +2721,7 @@ val* var1 /* : String */; var1 = self->attrs[COLOR_model__MClass___name].val; /* _name on */ 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; @@ -2388,7 +2737,7 @@ val* var3 /* : String */; var3 = self->attrs[COLOR_model__MClass___name].val; /* _name on */ 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; @@ -2433,7 +2782,7 @@ val* var15 /* : String */; var3 = self->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ 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; @@ -2457,7 +2806,7 @@ varonce = var5; var11 = self->attrs[COLOR_model__MClass___name].val; /* _name on */ 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; @@ -2528,6 +2877,52 @@ RET_LABEL1:(void)0; } 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 */ +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 */ +var3 = self->attrs[COLOR_model__MClass___mparameters].val; /* _mparameters on */ +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 */ +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->attrs[COLOR_model__MClass___mparameters].val = p0; /* _mparameters on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} /* method model#MClass#kind for (self: MClass): MClassKind */ val* model__MClass__kind(val* self) { val* var /* : MClassKind */; @@ -2535,7 +2930,7 @@ val* var1 /* : MClassKind */; var1 = self->attrs[COLOR_model__MClass___kind].val; /* _kind on */ 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; @@ -2551,7 +2946,7 @@ val* var3 /* : MClassKind */; var3 = self->attrs[COLOR_model__MClass___kind].val; /* _kind on */ 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; @@ -2581,7 +2976,7 @@ val* var1 /* : MVisibility */; var1 = self->attrs[COLOR_model__MClass___visibility].val; /* _visibility on */ 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; @@ -2597,7 +2992,7 @@ val* var3 /* : MVisibility */; var3 = self->attrs[COLOR_model__MClass___visibility].val; /* _visibility on */ 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; @@ -2620,245 +3015,344 @@ RET_LABEL1:(void)0; } 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 */ -RET_LABEL1:(void)0; -} +((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on */; } 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->attrs[COLOR_model__MClass___intro_mmodule].val = var_intro_mmodule; /* _intro_mmodule on */ -RET_LABEL2:(void)0; +RET_LABEL1:(void)0; } } { { /* Inline model#MClass#name= (self,var_name) on */ self->attrs[COLOR_model__MClass___name].val = var_name; /* _name on */ -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->attrs[COLOR_model__MClass___arity].l = var_arity; /* _arity on */ -RET_LABEL4:(void)0; +{ /* Inline model#MClass#arity= (self,var5) on */ +self->attrs[COLOR_model__MClass___arity].l = var5; /* _arity on */ +RET_LABEL6:(void)0; +} +} +} else { +{ +{ /* Inline array#AbstractArrayRead#length (var_parameter_names) on */ +var9 = var_parameter_names->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +{ +{ /* Inline model#MClass#arity= (self,var7) on */ +self->attrs[COLOR_model__MClass___arity].l = var7; /* _arity on */ +RET_LABEL10:(void)0; +} } } { { /* Inline model#MClass#kind= (self,var_kind) on */ self->attrs[COLOR_model__MClass___kind].val = var_kind; /* _kind on */ -RET_LABEL5:(void)0; +RET_LABEL11:(void)0; } } { { /* Inline model#MClass#visibility= (self,var_visibility) on */ self->attrs[COLOR_model__MClass___visibility].val = var_visibility; /* _visibility on */ -RET_LABEL6:(void)0; +RET_LABEL12:(void)0; } } { { /* Inline model#MModule#intro_mclasses (var_intro_mmodule) on */ -var8 = var_intro_mmodule->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on */ -if (unlikely(var8 == NULL)) { +var15 = var_intro_mmodule->attrs[COLOR_model__MModule___intro_mclasses].val; /* _intro_mclasses on */ +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 */ +array__Array__add(var13, self); /* Direct call array#Array#add on */ } { { /* Inline mmodule#MModule#model (var_intro_mmodule) on */ -var11 = var_intro_mmodule->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ -if (unlikely(var11 == NULL)) { +var18 = var_intro_mmodule->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ +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 */ -var14 = var_model->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on */ -if (unlikely(var14 == NULL)) { +var21 = var_model->attrs[COLOR_model__Model___mclasses_by_name].val; /* _mclasses_by_name on */ +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 */ +more_collections__MultiHashMap__add_one(var19, var_name, self); /* Direct call more_collections#MultiHashMap#add_one on */ } { { /* Inline model#Model#mclasses (var_model) on */ -var17 = var_model->attrs[COLOR_model__Model___mclasses].val; /* _mclasses on */ -if (unlikely(var17 == NULL)) { +var24 = var_model->attrs[COLOR_model__Model___mclasses].val; /* _mclasses on */ +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 */ +array__Array__add(var22, self); /* Direct call array#Array#add on */ } -var18 = 0; { -{ /* Inline kernel#Int#> (var_arity,var18) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var21 = 1; /* easy isa OTHER*/ -if (unlikely(!var21)) { +{ /* Inline model#MClass#arity (self) on */ +var27 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on */ +var25 = var27; +RET_LABEL26:(void)0; +} +} +var28 = 0; +{ +{ /* Inline kernel#Int#> (var25,var28) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var31 = 1; /* easy 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_other = var33; { -array__Array__init(var23); /* Direct call array#Array#init on */ +var38 = ((short int (*)(val*, val*))(var_parameter_names->class->vft[COLOR_kernel__Object___61d_61d]))(var_parameter_names, var_other) /* == on */; +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 */ +((void (*)(val*))(var40->class->vft[COLOR_kernel__Object__init]))(var40) /* init on */; } +var_mparametertypes = var40; +var41 = 0; +var_i = var41; { -var28 = range__Range__iterator(var24); +{ /* Inline model#MClass#arity (self) on */ +var44 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on */ +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 */; +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var47 = 1; /* easy 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 */; +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 */ +model__MParameterType__init(var52, self, var_i, var53); /* Direct call model#MParameterType#init on */ } -var_mparametertype = var32; +var_mparametertype = var52; { array__Array__add(var_mparametertypes, var_mparametertype); /* Direct call array#Array#add on */ } -CONTINUE_label: (void)0; +var54 = 1; { -((void (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__next]))(var28) /* next on */; +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 */ +{ /* Inline model#MClass#mparameters= (self,var_mparametertypes) on */ +self->attrs[COLOR_model__MClass___mparameters].val = var_mparametertypes; /* _mparameters on */ +RET_LABEL56:(void)0; +} +} +var57 = NEW_model__MGenericType(&type_model__MGenericType); +{ +model__MGenericType__init(var57, self, var_mparametertypes); /* Direct call model#MGenericType#init on */ } -var_mclass_type = var33; +var_mclass_type = var57; { { /* Inline model#MClass#mclass_type= (self,var_mclass_type) on */ self->attrs[COLOR_model__MClass___mclass_type].val = var_mclass_type; /* _mclass_type on */ -RET_LABEL34:(void)0; +RET_LABEL58:(void)0; } } { { /* Inline model#MClass#get_mtype_cache (self) on */ -var37 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ -if (unlikely(var37 == NULL)) { +var61 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ +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 */ +array__Array__add(var59, var_mclass_type); /* Direct call array#Array#add on */ } } 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 */ +model__MClassType__init(var62, self); /* Direct call model#MClassType#init on */ } { -{ /* Inline model#MClass#mclass_type= (self,var38) on */ -self->attrs[COLOR_model__MClass___mclass_type].val = var38; /* _mclass_type on */ -RET_LABEL39:(void)0; +{ /* Inline model#MClass#mclass_type= (self,var62) on */ +self->attrs[COLOR_model__MClass___mclass_type].val = var62; /* _mclass_type on */ +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 */ RET_LABEL:; } @@ -2874,7 +3368,7 @@ val* var6 /* : Model */; var3 = self->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ 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; @@ -2886,7 +3380,7 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -2914,7 +3408,7 @@ val* var1 /* : Array[MClassDef] */; var1 = self->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ 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; @@ -2930,7 +3424,7 @@ val* var3 /* : Array[MClassDef] */; var3 = self->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ 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; @@ -2950,7 +3444,7 @@ val* var3 /* : String */; var3 = self->attrs[COLOR_model__MClass___name].val; /* _name on */ 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; @@ -2974,51 +3468,14 @@ return var; /* 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 */ -var3 = self->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ -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 */ -var8 = self->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ -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 */ +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; } @@ -3026,15 +3483,38 @@ 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 */ +var3 = self->attrs[COLOR_model__MClass___intro].val; /* _intro on */ +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 */ +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->attrs[COLOR_model__MClass___intro].val = p0; /* _intro on */ +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; @@ -3065,7 +3545,7 @@ val* var1 /* : MClassType */; var1 = self->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -3081,7 +3561,7 @@ val* var3 /* : MClassType */; var3 = self->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -3109,162 +3589,178 @@ val* model__MClass__get_mtype(val* self, val* p0) { 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 */ +var3 = var_mtype_arguments->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var1 = var3; +RET_LABEL2:(void)0; +} } { { /* Inline model#MClass#arity (self) on */ -var4 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on */ -var2 = var4; -RET_LABEL3:(void)0; +var6 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on */ +var4 = var6; +RET_LABEL5:(void)0; } } { -{ /* Inline kernel#Int#== (var1,var2) on */ -var8 = var1 == var2; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +{ /* Inline kernel#Int#== (var1,var4) on */ +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 */ -var11 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on */ -var9 = var11; -RET_LABEL10:(void)0; +var13 = self->attrs[COLOR_model__MClass___arity].l; /* _arity on */ +var11 = var13; +RET_LABEL12:(void)0; } } -var12 = 0; +var14 = 0; { -{ /* Inline kernel#Int#== (var9,var12) on */ -var16 = var9 == var12; -var14 = var16; -goto RET_LABEL15; -RET_LABEL15:(void)0; +{ /* Inline kernel#Int#== (var11,var14) on */ +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 */ -var19 = self->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var19 == NULL)) { +var21 = self->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ +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 */ -var22 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ -if (unlikely(var22 == NULL)) { +var24 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ +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 */ -var28 = var_t->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ -if (unlikely(var28 == NULL)) { +var31 = var_t->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ +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 */ +array__ArrayIterator__next(var_26); /* Direct call array#ArrayIterator#next on */ +} +} 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 */ +{ /* Inline abstract_collection#Iterator#finish (var_26) on */ +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 */ } -var_res = var31; +var_res = var35; { { /* Inline model#MClass#get_mtype_cache (self) on */ -var34 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ -if (unlikely(var34 == NULL)) { +var38 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ +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 */ +array__Array__add(var36, var_res); /* Direct call array#Array#add on */ } var = var_res; goto RET_LABEL; @@ -3287,7 +3783,7 @@ val* var1 /* : Array[MGenericType] */; var1 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ 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; @@ -3303,7 +3799,7 @@ val* var3 /* : Array[MGenericType] */; var3 = self->attrs[COLOR_model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ 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; @@ -3320,7 +3816,7 @@ val* var1 /* : MModule */; var1 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ 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; @@ -3336,7 +3832,7 @@ val* var3 /* : MModule */; var3 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ 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; @@ -3366,7 +3862,7 @@ val* var1 /* : MClass */; var1 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ 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; @@ -3382,7 +3878,7 @@ val* var3 /* : MClass */; var3 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ 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; @@ -3412,7 +3908,7 @@ val* var1 /* : MClassType */; var1 = self->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ 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; @@ -3428,7 +3924,7 @@ val* var3 /* : MClassType */; var3 = self->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ 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; @@ -3451,52 +3947,6 @@ RET_LABEL1:(void)0; } 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 */ -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 */ -var3 = self->attrs[COLOR_model__MClassDef___parameter_names].val; /* _parameter_names on */ -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 */ -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->attrs[COLOR_model__MClassDef___parameter_names].val = p0; /* _parameter_names on */ -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 */ @@ -3517,7 +3967,7 @@ val* var1 /* : String */; var1 = self->attrs[COLOR_model__MClassDef___to_s].val; /* _to_s on */ 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; @@ -3533,7 +3983,7 @@ val* var3 /* : String */; var3 = self->attrs[COLOR_model__MClassDef___to_s].val; /* _to_s on */ 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; @@ -3556,229 +4006,271 @@ RET_LABEL1:(void)0; } 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 */ -RET_LABEL1:(void)0; -} +((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on */; } var_mmodule = p0; var_bound_mtype = p1; var_location = p2; -var_parameter_names = p3; -{ -{ /* Inline model#MClassType#mclass (var_bound_mtype) on */ -var3 = var_bound_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -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 */ -var6 = var->attrs[COLOR_model__MClass___arity].l; /* _arity on */ -var4 = var6; -RET_LABEL5:(void)0; -} -} -{ -var7 = array__AbstractArrayRead__length(var_parameter_names); -} -{ -{ /* Inline kernel#Int#== (var4,var7) on */ -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->attrs[COLOR_model__MClassDef___bound_mtype].val = var_bound_mtype; /* _bound_mtype on */ -RET_LABEL12:(void)0; +RET_LABEL1:(void)0; } } { { /* Inline model#MClassDef#mmodule= (self,var_mmodule) on */ self->attrs[COLOR_model__MClassDef___mmodule].val = var_mmodule; /* _mmodule on */ -RET_LABEL13:(void)0; +RET_LABEL2:(void)0; } } { { /* Inline model#MClassType#mclass (var_bound_mtype) on */ -var16 = var_bound_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var16 == NULL)) { +var4 = var_bound_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +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->attrs[COLOR_model__MClassDef___mclass].val = var14; /* _mclass on */ -RET_LABEL17:(void)0; +{ /* Inline model#MClassDef#mclass= (self,var) on */ +self->attrs[COLOR_model__MClassDef___mclass].val = var; /* _mclass on */ +RET_LABEL5:(void)0; } } { { /* Inline model#MClassDef#location= (self,var_location) on */ self->attrs[COLOR_model__MClassDef___location].val = var_location; /* _location on */ -RET_LABEL18:(void)0; +RET_LABEL6:(void)0; } } { { /* Inline model#MModule#mclassdefs (var_mmodule) on */ -var21 = var_mmodule->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on */ -if (unlikely(var21 == NULL)) { +var9 = var_mmodule->attrs[COLOR_model__MModule___mclassdefs].val; /* _mclassdefs on */ +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 */ +array__Array__add(var7, self); /* Direct call array#Array#add on */ } { { /* Inline model#MClassDef#mclass (self) on */ -var24 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var24 == NULL)) { +var12 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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 */ -var27 = var22->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ -if (unlikely(var27 == NULL)) { +{ /* Inline model#MClass#mclassdefs (var10) on */ +var15 = var10->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ +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 */ } { -{ /* Inline model#MClassDef#parameter_names= (self,var_parameter_names) on */ -self->attrs[COLOR_model__MClassDef___parameter_names].val = var_parameter_names; /* _parameter_names on */ -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 */ } { { /* Inline model#MClassDef#mclass (self) on */ -var35 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var35 == NULL)) { +var18 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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 */; +{ /* Inline model#MClass#intro_mmodule (var16) on */ +var21 = var16->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +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 */; } { -{ /* Inline model#MClassDef#to_s= (self,var39) on */ -self->attrs[COLOR_model__MClassDef___to_s].val = var39; /* _to_s on */ -RET_LABEL40:(void)0; +{ /* Inline kernel#Object#== (var19,var_mmodule) on */ +var_other = var_mmodule; +{ +{ /* Inline kernel#Object#is_same_instance (var19,var_other) on */ +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 */ -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 */ -var3 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var3 == NULL)) { +var30 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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 */ +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 */ +var35 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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->attrs[COLOR_model__MClass___intro].val = self; /* _intro on */ +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 */ +var43 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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 */; +} +} +{ +var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on */; +} +{ +{ /* Inline model#MClassDef#to_s= (self,var47) on */ +self->attrs[COLOR_model__MClassDef___to_s].val = var47; /* _to_s on */ +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 */ +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 */ +var3 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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; @@ -3790,7 +4282,7 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_model__MClass___name].val; /* _name on */ 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; @@ -3823,7 +4315,7 @@ val* var6 /* : Model */; var3 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ 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; @@ -3835,7 +4327,7 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -3863,7 +4355,7 @@ val* var1 /* : Array[MClassType] */; var1 = self->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ 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; @@ -3879,7 +4371,7 @@ val* var3 /* : Array[MClassType] */; var3 = self->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ 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; @@ -3909,34 +4401,36 @@ val* var_model /* var model: Model */; 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 */ @@ -3970,7 +4464,7 @@ var4 = var5; } 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); } { @@ -3978,7 +4472,7 @@ show_backtrace(1); var12 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ 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; @@ -3991,7 +4485,7 @@ var_mmodule = var10; var15 = var_mmodule->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -4004,7 +4498,7 @@ var_model = var13; var18 = self->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ 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; @@ -4012,160 +4506,169 @@ RET_LABEL17:(void)0; } } 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 */ -var24 = self->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ -if (unlikely(var24 == NULL)) { +var25 = self->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ +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 */ +array__Array__add(var23, var_supertype); /* Direct call array#Array#add on */ } { { /* Inline model#Model#full_mtype_specialization_hierarchy (var_model) on */ -var27 = var_model->attrs[COLOR_model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on */ -if (unlikely(var27 == NULL)) { +var28 = var_model->attrs[COLOR_model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on */ +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 */ +poset__POSet__add_edge(var26, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on */ } { { /* Inline model#MClassDef#mclass (self) on */ -var31 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var31 == NULL)) { +var32 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ +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 */ -var34 = var29->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var34 == NULL)) { +{ /* Inline model#MClass#intro_mmodule (var30) on */ +var35 = var30->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +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 */ +{ /* Inline kernel#Object#== (var33,var_mmodule) on */ var_other = var_mmodule; { -{ /* Inline kernel#Object#is_same_instance (var32,var_other) on */ -var40 = var32 == var_other; -var38 = var40; -goto RET_LABEL39; -RET_LABEL39:(void)0; +{ /* Inline kernel#Object#is_same_instance (var33,var_other) on */ +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 */ -var43 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var43 == NULL)) { +var45 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +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 */ -var46 = var41->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var46 == NULL)) { +{ /* Inline model#MClass#intro_mmodule (var43) on */ +var48 = var43->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +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 */ +{ /* Inline kernel#Object#== (var46,var_mmodule) on */ var_other = var_mmodule; { -{ /* Inline kernel#Object#is_same_instance (var44,var_other) on */ -var52 = var44 == var_other; +{ /* Inline kernel#Object#is_same_instance (var46,var_other) on */ +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 */ -var55 = var_model->attrs[COLOR_model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on */ -if (unlikely(var55 == NULL)) { +var57 = var_model->attrs[COLOR_model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on */ +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 */ +poset__POSet__add_edge(var55, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on */ } } else { } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var19); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_20); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_20) on */ +RET_LABEL58:(void)0; +} +} RET_LABEL:; } /* method model#MClassDef#set_supertypes for (self: Object, Array[MClassType]) */ @@ -4198,12 +4701,14 @@ val* var_mtype /* var mtype: 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 */ var2 = self->attrs[COLOR_model__MClassDef___in_hierarchy].val; /* _in_hierarchy on */ @@ -4236,7 +4741,7 @@ var4 = var5; } 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); } { @@ -4244,7 +4749,7 @@ show_backtrace(1); var12 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ 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; @@ -4256,7 +4761,7 @@ RET_LABEL11:(void)0; var15 = var10->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -4269,7 +4774,7 @@ var_model = var13; var18 = var_model->attrs[COLOR_model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ 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; @@ -4291,7 +4796,7 @@ RET_LABEL20:(void)0; var23 = self->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on */ 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; @@ -4304,7 +4809,7 @@ var_mtype = var21; var26 = self->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ 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; @@ -4314,39 +4819,48 @@ RET_LABEL25:(void)0; { var27 = model__MClassType__collect_mclassdefs(var_mtype, var24); } +var_ = var27; { -var28 = ((val* (*)(val*))(var27->class->vft[COLOR_abstract_collection__Collection__iterator]))(var27) /* iterator on */; +var28 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_29 = var28; for(;;) { { -var29 = ((short int (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var28) /* is_ok on */; +var30 = ((short int (*)(val*))(var_29->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_29) /* is_ok on */; } -if(!var29) break; +if (var30){ { -var30 = ((val* (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__item]))(var28) /* item on */; +var31 = ((val* (*)(val*))(var_29->class->vft[COLOR_abstract_collection__Iterator__item]))(var_29) /* item on */; } -var_mclassdef = var30; +var_mclassdef = var31; { { /* Inline poset#POSetElement#poset (var_res) on */ -var33 = var_res->attrs[COLOR_poset__POSetElement___poset].val; /* _poset on */ -if (unlikely(var33 == NULL)) { +var34 = var_res->attrs[COLOR_poset__POSetElement___poset].val; /* _poset on */ +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 */ +poset__POSet__add_edge(var32, self, var_mclassdef); /* Direct call poset#POSet#add_edge on */ } -CONTINUE_label: (void)0; { -((void (*)(val*))(var28->class->vft[COLOR_abstract_collection__Iterator__next]))(var28) /* next on */; +((void (*)(val*))(var_29->class->vft[COLOR_abstract_collection__Iterator__next]))(var_29) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_29) on */ +RET_LABEL35:(void)0; +} +} RET_LABEL:; } /* method model#MClassDef#add_in_hierarchy for (self: Object) */ @@ -4396,17 +4910,18 @@ short int var /* : Bool */; 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 */ var3 = self->attrs[COLOR_model__MClassDef___mclass].val; /* _mclass on */ 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; @@ -4414,26 +4929,35 @@ RET_LABEL2:(void)0; } } { -var4 = model__MClass__intro(var1); +{ /* Inline model#MClass#intro (var1) on */ +var6 = var1->attrs[COLOR_model__MClass___intro].val; /* _intro on */ +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 */ var_other = self; { { /* Inline kernel#Object#is_same_instance (var4,var_other) on */ -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; @@ -4454,7 +4978,7 @@ val* var1 /* : Array[MProperty] */; var1 = self->attrs[COLOR_model__MClassDef___intro_mproperties].val; /* _intro_mproperties on */ 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; @@ -4470,7 +4994,7 @@ val* var3 /* : Array[MProperty] */; var3 = self->attrs[COLOR_model__MClassDef___intro_mproperties].val; /* _intro_mproperties on */ 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; @@ -4487,7 +5011,7 @@ val* var1 /* : Array[MPropDef] */; var1 = self->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on */ 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; @@ -4503,7 +5027,7 @@ val* var3 /* : Array[MPropDef] */; var3 = self->attrs[COLOR_model__MClassDef___mpropdefs].val; /* _mpropdefs on */ 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; @@ -4709,19 +5233,19 @@ short int var182 /* : Bool */; 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 */; @@ -4736,7 +5260,9 @@ short int var212 /* : Bool */; 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; @@ -4794,7 +5320,7 @@ var15 = ((short int (*)(val*))(var_sub->class->vft[COLOR_model__MType__need_anch 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); } { @@ -4803,7 +5329,7 @@ var17 = ((short int (*)(val*))(var_sup->class->vft[COLOR_model__MType__need_anch 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 { @@ -4813,7 +5339,7 @@ var20 = ((short int (*)(val*, val*, val*, val*))(var_sub->class->vft[COLOR_model } 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; @@ -4822,7 +5348,7 @@ var22 = ((short int (*)(val*, val*, val*, val*))(var_sup->class->vft[COLOR_model } 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); } } @@ -4871,7 +5397,7 @@ var29 = var30; } 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); } { @@ -4879,7 +5405,7 @@ show_backtrace(1); var38 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -4891,7 +5417,7 @@ RET_LABEL37:(void)0; var41 = var36->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -4950,7 +5476,7 @@ var53 = var54; } 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); } { @@ -4958,7 +5484,7 @@ show_backtrace(1); var61 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -4970,7 +5496,7 @@ RET_LABEL60:(void)0; var64 = var59->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -5002,7 +5528,7 @@ var_sup_accept_null = var71; var74 = var_sup->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ 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; @@ -5046,7 +5572,7 @@ goto RET_LABEL; var86 = var_sub->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ 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; @@ -5158,7 +5684,7 @@ var113 = var114; } 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); } { @@ -5186,7 +5712,7 @@ goto RET_LABEL; var127 = var_sub->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ 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; @@ -5221,7 +5747,7 @@ var131 = var_sub->type->type_table[cltype132] == idtype133; } 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); } /* isa MNullType */ @@ -5248,7 +5774,7 @@ var138 = var_sup->type->type_table[cltype139] == idtype140; } 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); } { @@ -5313,7 +5839,7 @@ var156 = model__MClassType__collect_mclasses(var_resolved_sub, var_mmodule); var159 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -5360,7 +5886,7 @@ goto RET_LABEL; var174 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -5376,7 +5902,7 @@ var_sub2 = var175; var178 = var_sub2->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -5388,7 +5914,7 @@ RET_LABEL177:(void)0; var181 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -5414,54 +5940,56 @@ var182 = var183; } 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 */ -var192 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var192 == NULL)) { +var191 = var_sup->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +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 */ -var195 = var190->attrs[COLOR_model__MClass___arity].l; /* _arity on */ -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 */ +{ /* Inline model#MClass#arity (var189) on */ +var194 = var189->attrs[COLOR_model__MClass___arity].l; /* _arity on */ +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 */; +{ /* Inline kernel#Int#< (var_i,var_195) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var198 = 1; /* easy 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 */; +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 */ var204 = var_sub2->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ 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; @@ -5477,7 +6005,7 @@ var_sub_arg = var205; var208 = var_sup->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ 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; @@ -5508,14 +6036,18 @@ var = var216; goto RET_LABEL; } else { } -CONTINUE_label: (void)0; +var217 = 1; { -((void (*)(val*))(var198->class->vft[COLOR_abstract_collection__Iterator__next]))(var198) /* next on */; +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; @@ -5561,7 +6093,7 @@ var3 = ((short int (*)(val*))(var_anchor->class->vft[COLOR_model__MType__need_an 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; @@ -5576,7 +6108,7 @@ var8 = ((short int (*)(val*))(var_res->class->vft[COLOR_model__MType__need_ancho 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; @@ -5650,18 +6182,20 @@ val* var32 /* : MType */; 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; @@ -5688,7 +6222,7 @@ if (var5){ var11 = var_super_mclass->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ 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; @@ -5714,7 +6248,7 @@ if (var13){ var16 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -5773,7 +6307,7 @@ var25 = var26; } 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); } { @@ -5787,64 +6321,73 @@ var_resolved_self = self; var33 = ((val* (*)(val*, val*))(var_resolved_self->class->vft[COLOR_model__MType__collect_mtypes]))(var_resolved_self, var_mmodule) /* collect_mtypes on */; } var_supertypes = var33; +var_34 = var_supertypes; { -var34 = ((val* (*)(val*))(var_supertypes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_supertypes) /* iterator on */; +var35 = ((val* (*)(val*))(var_34->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_34) /* iterator on */; } +var_36 = var35; for(;;) { { -var35 = ((short int (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var34) /* is_ok on */; +var37 = ((short int (*)(val*))(var_36->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_36) /* is_ok on */; } -if(!var35) break; +if (var37){ { -var36 = ((val* (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__item]))(var34) /* item on */; +var38 = ((val* (*)(val*))(var_36->class->vft[COLOR_abstract_collection__Iterator__item]))(var_36) /* item on */; } -var_supertype = var36; +var_supertype = var38; { { /* Inline model#MClassType#mclass (var_supertype) on */ -var39 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var39 == NULL)) { +var41 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +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 */ +{ /* Inline kernel#Object#== (var39,var_super_mclass) on */ var_other = var_super_mclass; { -{ /* Inline kernel#Object#is_same_instance (var37,var_other) on */ -var45 = var37 == var_other; +{ /* Inline kernel#Object#is_same_instance (var39,var_other) on */ +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 */; +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 = var47; +var = var49; goto RET_LABEL; } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__next]))(var34) /* next on */; +((void (*)(val*))(var_36->class->vft[COLOR_abstract_collection__Iterator__next]))(var_36) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_36) on */ +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; @@ -5864,7 +6407,7 @@ short int var /* : Bool */; 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; @@ -5877,7 +6420,7 @@ const char* var_class_name; { /* Inline model#MType#can_resolve_for (self,p0,p1,p2) on */ 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; } @@ -6035,7 +6578,7 @@ val* var /* : Set[MClassDef] */; 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; @@ -6048,7 +6591,7 @@ const char* var_class_name; { /* Inline model#MType#collect_mclassdefs (self,p0) on */ 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; } @@ -6062,7 +6605,7 @@ val* var /* : Set[MClass] */; 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; @@ -6075,7 +6618,7 @@ const char* var_class_name; { /* Inline model#MType#collect_mclasses (self,p0) on */ 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; } @@ -6089,7 +6632,7 @@ val* var /* : Set[MClassType] */; 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; @@ -6102,7 +6645,7 @@ const char* var_class_name; { /* Inline model#MType#collect_mtypes (self,p0) on */ 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; } @@ -6129,7 +6672,7 @@ var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]) 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); } { @@ -6140,7 +6683,7 @@ var3 = ((val* (*)(val*, val*))(self->class->vft[COLOR_model__MType__collect_mcla var6 = var_mproperty->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ 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; @@ -6171,7 +6714,7 @@ val* var1 /* : MClass */; var1 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -6187,7 +6730,7 @@ val* var3 /* : MClass */; var3 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -6224,7 +6767,7 @@ val* var9 /* : Model */; var3 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -6236,7 +6779,7 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ 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; @@ -6248,7 +6791,7 @@ RET_LABEL5:(void)0; var9 = var4->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -6273,15 +6816,13 @@ return var; void model__MClassType__init(val* self, val* p0) { val* var_mclass /* var mclass: MClass */; { -{ /* Inline model_base#MEntity#init (self) on */ -RET_LABEL1:(void)0; -} +((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on */; } var_mclass = p0; { { /* Inline model#MClassType#mclass= (self,var_mclass) on */ self->attrs[COLOR_model__MClassType___mclass].val = var_mclass; /* _mclass on */ -RET_LABEL2:(void)0; +RET_LABEL1:(void)0; } } RET_LABEL:; @@ -6298,7 +6839,7 @@ val* var1 /* : Array[MType] */; var1 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ 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; @@ -6314,7 +6855,7 @@ val* var3 /* : Array[MType] */; var3 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ 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; @@ -6348,7 +6889,7 @@ val* var4 /* : String */; var3 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -6417,7 +6958,7 @@ var2 = var1->type->type_table[cltype] == idtype; 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; @@ -6503,7 +7044,7 @@ var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]) 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); } { @@ -6511,7 +7052,7 @@ show_backtrace(1); var5 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on */ 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; @@ -6565,7 +7106,7 @@ var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]) 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); } { @@ -6573,7 +7114,7 @@ show_backtrace(1); var5 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on */ 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; @@ -6627,7 +7168,7 @@ var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]) 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); } { @@ -6635,7 +7176,7 @@ show_backtrace(1); var5 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on */ 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; @@ -6693,46 +7234,50 @@ val* var13 /* : nullable Object */; 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 */ +((void (*)(val*))(var->class->vft[COLOR_kernel__Object__init]))(var) /* init on */; } 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 */ +((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on */; } 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 */ +((void (*)(val*))(var2->class->vft[COLOR_kernel__Object__init]))(var2) /* init on */; } var_types = var2; { @@ -6740,7 +7285,7 @@ var_types = var2; var5 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -6761,7 +7306,7 @@ var_ = var6; var10 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -6777,7 +7322,7 @@ for(;;) { var11 = array__AbstractArrayRead__is_empty(var_todo); } var12 = !var11; -if (!var12) break; +if (var12){ { var13 = array__AbstractArray__pop(var_todo); } @@ -6787,55 +7332,57 @@ var_mclass = var13; var16 = var_mclass->attrs[COLOR_model__MClass___mclassdefs].val; /* _mclassdefs on */ 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 */ -var22 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var22 == NULL)) { +var24 = var_mmodule->attrs[COLOR_mmodule__MModule___in_importation].val; /* _in_importation on */ +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 */ -var25 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var25 == NULL)) { +var27 = var_mclassdef->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ +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 { } { @@ -6843,49 +7390,51 @@ hash_collection__HashSet__add(var_res, var_mclassdef); /* Direct call hash_colle } { { /* Inline model#MClassDef#supertypes (var_mclassdef) on */ -var30 = var_mclassdef->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ -if (unlikely(var30 == NULL)) { +var32 = var_mclassdef->attrs[COLOR_model__MClassDef___supertypes].val; /* _supertypes on */ +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 */ } { { /* Inline model#MClassType#mclass (var_supertype) on */ -var36 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var36 == NULL)) { +var40 = var_supertype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +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 { } { @@ -6894,65 +7443,83 @@ hash_collection__HashSet__add(var_seen, var_superclass); /* Direct call hash_col { array__Array__add(var_todo, var_superclass); /* Direct call array#Array#add on */ } -CONTINUE_label38: (void)0; +BREAK_label42: (void)0; { -array__ArrayIterator__next(var31); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_35); /* Direct call array#ArrayIterator#next on */ +} +} 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 */ +{ /* Inline abstract_collection#Iterator#finish (var_35) on */ +RET_LABEL44:(void)0; } } BREAK_label: (void)0; -CONTINUE_label39: (void)0; +{ +array__ArrayIterator__next(var_19); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label45; +} +} +BREAK_label45: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_19) on */ +RET_LABEL46:(void)0; } -BREAK_label39: (void)0; +} +} else { +goto BREAK_label47; +} +} +BREAK_label47: (void)0; { { /* Inline model#MClassType#collect_mclassdefs_cache (self) on */ -var42 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on */ -if (unlikely(var42 == NULL)) { +var50 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on */ +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 */ +hash_collection__HashMap___91d_93d_61d(var48, var_mmodule, var_res); /* Direct call hash_collection#HashMap#[]= on */ } { { /* Inline model#MClassType#collect_mclasses_cache (self) on */ -var45 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on */ -if (unlikely(var45 == NULL)) { +var53 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on */ +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 */ +hash_collection__HashMap___91d_93d_61d(var51, var_mmodule, var_seen); /* Direct call hash_collection#HashMap#[]= on */ } { { /* Inline model#MClassType#collect_mtypes_cache (self) on */ -var48 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on */ -if (unlikely(var48 == NULL)) { +var56 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on */ +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 */ +hash_collection__HashMap___91d_93d_61d(var54, var_mmodule, var_types); /* Direct call hash_collection#HashMap#[]= on */ } RET_LABEL:; } @@ -6968,7 +7535,7 @@ val* var1 /* : HashMap[MModule, Set[MClassDef]] */; var1 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on */ 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; @@ -6984,7 +7551,7 @@ val* var3 /* : HashMap[MModule, Set[MClassDef]] */; var3 = self->attrs[COLOR_model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on */ 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; @@ -7001,7 +7568,7 @@ val* var1 /* : HashMap[MModule, Set[MClass]] */; var1 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on */ 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; @@ -7017,7 +7584,7 @@ val* var3 /* : HashMap[MModule, Set[MClass]] */; var3 = self->attrs[COLOR_model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on */ 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; @@ -7034,7 +7601,7 @@ val* var1 /* : HashMap[MModule, Set[MClassType]] */; var1 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on */ 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; @@ -7050,7 +7617,7 @@ val* var3 /* : HashMap[MModule, Set[MClassType]] */; var3 = self->attrs[COLOR_model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on */ 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; @@ -7069,36 +7636,39 @@ val* var2 /* : MClass */; 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; { @@ -7109,7 +7679,7 @@ model__MClassType__init(self, var_mclass); /* Direct call model#MClassType#init var2 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -7124,116 +7694,129 @@ RET_LABEL4:(void)0; } } { -var6 = array__AbstractArrayRead__length(var_arguments); +{ /* Inline array#AbstractArrayRead#length (var_arguments) on */ +var8 = var_arguments->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var6 = var8; +RET_LABEL7:(void)0; +} } { { /* Inline kernel#Int#== (var3,var6) on */ -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->attrs[COLOR_model__MClassType___arguments].val = var_arguments; /* _arguments on */ -RET_LABEL11:(void)0; +RET_LABEL13:(void)0; } } -var12 = 0; +var14 = 0; { -{ /* Inline model#MGenericType#need_anchor= (self,var12) on */ -self->attrs[COLOR_model__MGenericType___need_anchor].s = var12; /* _need_anchor on */ -RET_LABEL13:(void)0; +{ /* Inline model#MGenericType#need_anchor= (self,var14) on */ +self->attrs[COLOR_model__MGenericType___need_anchor].s = var14; /* _need_anchor on */ +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 */; +var20 = ((short int (*)(val*))(var_t->class->vft[COLOR_model__MType__need_anchor]))(var_t) /* need_anchor on */; } -if (var17){ -var18 = 1; +if (var20){ +var21 = 1; { -{ /* Inline model#MGenericType#need_anchor= (self,var18) on */ -self->attrs[COLOR_model__MGenericType___need_anchor].s = var18; /* _need_anchor on */ -RET_LABEL19:(void)0; +{ /* Inline model#MGenericType#need_anchor= (self,var21) on */ +self->attrs[COLOR_model__MGenericType___need_anchor].s = var21; /* _need_anchor on */ +RET_LABEL22:(void)0; } } goto BREAK_label; } else { } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var14); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_17); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_17) on */ +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 */; +((void (*)(val*, val*, long))(var39->class->vft[COLOR_array__Array__with_native]))(var39, var41, var40) /* with_native on */; } } { -var38 = ((val* (*)(val*))(var35->class->vft[COLOR_string__Object__to_s]))(var35) /* to_s on */; +var42 = ((val* (*)(val*))(var39->class->vft[COLOR_string__Object__to_s]))(var39) /* to_s on */; } { -{ /* Inline model#MGenericType#to_s= (self,var38) on */ -self->attrs[COLOR_model__MGenericType___to_s].val = var38; /* _to_s on */ -RET_LABEL39:(void)0; +{ /* Inline model#MGenericType#to_s= (self,var42) on */ +self->attrs[COLOR_model__MGenericType___to_s].val = var42; /* _to_s on */ +RET_LABEL43:(void)0; } } RET_LABEL:; @@ -7250,7 +7833,7 @@ val* var1 /* : String */; var1 = self->attrs[COLOR_model__MGenericType___to_s].val; /* _to_s on */ 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; @@ -7266,7 +7849,7 @@ val* var3 /* : String */; var3 = self->attrs[COLOR_model__MGenericType___to_s].val; /* _to_s on */ 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; @@ -7340,14 +7923,16 @@ val* var6 /* : Array[MType] */; 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; @@ -7370,12 +7955,12 @@ var5 = model__MGenericType__can_resolve_for(self, var_mtype, var_anchor, var_mmo } 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 */ +((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on */; } var_types = var6; { @@ -7383,53 +7968,62 @@ var_types = var6; var9 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ 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 */; +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 */; } { -array__Array__add(var_types, var13); /* Direct call array#Array#add on */ +array__Array__add(var_types, var14); /* Direct call array#Array#add on */ } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var10); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_11); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; { +{ /* Inline abstract_collection#Iterator#finish (var_11) on */ +RET_LABEL15:(void)0; +} +} +{ { /* Inline model#MClassType#mclass (self) on */ -var16 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var16 == NULL)) { +var18 = self->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +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; @@ -7455,14 +8049,16 @@ short int var4 /* : Bool */; 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; @@ -7485,43 +8081,52 @@ goto RET_LABEL; var8 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ 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 */; +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 */; } -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 */ +array__ArrayIterator__next(var_10); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -var15 = 1; -var = var15; +{ +{ /* Inline abstract_collection#Iterator#finish (var_10) on */ +RET_LABEL16:(void)0; +} +} +var17 = 1; +var = var17; goto RET_LABEL; RET_LABEL:; return var; @@ -7542,17 +8147,19 @@ long var1 /* : Int */; 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; { @@ -7560,52 +8167,61 @@ var_res = var1; var4 = self->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ 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 */; +var9 = ((long (*)(val*))(var_a->class->vft[COLOR_model__MType__length]))(var_a) /* length on */; } { -{ /* Inline kernel#Int#+ (var_res,var8) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var11 = 1; /* easy isa OTHER*/ -if (unlikely(!var11)) { +{ /* Inline kernel#Int#+ (var_res,var9) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var12 = 1; /* easy 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 */ +array__ArrayIterator__next(var_6); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_6) on */ +RET_LABEL14:(void)0; +} +} var = var_res; goto RET_LABEL; RET_LABEL:; @@ -7627,7 +8243,7 @@ val* var1 /* : MProperty */; var1 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on */ 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; @@ -7643,7 +8259,7 @@ val* var3 /* : MProperty */; var3 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on */ 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; @@ -7682,7 +8298,7 @@ val* var12 /* : Model */; var3 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on */ 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; @@ -7694,7 +8310,7 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ 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; @@ -7706,7 +8322,7 @@ RET_LABEL5:(void)0; var9 = var4->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on */ 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; @@ -7718,7 +8334,7 @@ RET_LABEL8:(void)0; var12 = var7->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -7752,35 +8368,38 @@ val* var6 /* : Array[MPropDef] */; 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; { @@ -7789,7 +8408,7 @@ var1 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MTy 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); } { @@ -7797,7 +8416,7 @@ show_backtrace(1); var5 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on */ 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; @@ -7813,132 +8432,145 @@ var7 = array__AbstractArrayRead__is_empty(var_props); } 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 */ +var10 = var_props->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on */ +var8 = var10; +RET_LABEL9:(void)0; +} } -var9 = 1; +var11 = 1; { -{ /* Inline kernel#Int#== (var8,var9) on */ -var13 = var8 == var9; -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; +{ /* Inline kernel#Int#== (var8,var11) on */ +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); } -/* isa MVirtualTypeDef */ +/* 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 */ -var18 = var14->attrs[COLOR_model__MVirtualTypeDef___bound].val; /* _bound on */ -var16 = var18; -RET_LABEL17:(void)0; +{ /* Inline model#MVirtualTypeDef#bound (var16) on */ +var20 = var16->attrs[COLOR_model__MVirtualTypeDef___bound].val; /* _bound on */ +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 */ +((void (*)(val*))(var21->class->vft[COLOR_kernel__Object__init]))(var21) /* init on */; } -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; /* 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 */ -var29 = var_p->attrs[COLOR_model__MVirtualTypeDef___bound].val; /* _bound on */ -var27 = var29; -RET_LABEL28:(void)0; +var32 = var_p->attrs[COLOR_model__MVirtualTypeDef___bound].val; /* _bound on */ +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 */ +array__ArraySet__add(var_types, var30); /* Direct call array#ArraySet#add on */ } -CONTINUE_label: (void)0; { -array__ArrayIterator__next(var20); /* Direct call array#ArrayIterator#next on */ +array__ArrayIterator__next(var_23); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; { -var30 = array__ArraySet__length(var_types); +{ /* Inline abstract_collection#Iterator#finish (var_23) on */ +RET_LABEL33:(void)0; +} } -var31 = 1; { -{ /* Inline kernel#Int#== (var30,var31) on */ -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 */ +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; @@ -7964,18 +8596,20 @@ val* var5 /* : MProperty */; 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; { @@ -7984,7 +8618,7 @@ var1 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MTy 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); } { @@ -7992,7 +8626,7 @@ show_backtrace(1); var5 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on */ 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; @@ -8008,57 +8642,66 @@ var7 = array__AbstractArrayRead__is_empty(var_props); } 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; /* 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 */ -var14 = var_p->attrs[COLOR_model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on */ -var12 = var14; -RET_LABEL13:(void)0; +var15 = var_p->attrs[COLOR_model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on */ +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 */ +array__ArrayIterator__next(var_9); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -var16 = 0; -var = var16; +{ +{ /* Inline abstract_collection#Iterator#finish (var_9) on */ +RET_LABEL17:(void)0; +} +} +var18 = 0; +var = var18; goto RET_LABEL; RET_LABEL:; return var; @@ -8142,7 +8785,7 @@ var1 = model__MVirtualType__can_resolve_for(self, var_mtype, var_anchor, var_mmo } 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); } { @@ -8171,7 +8814,7 @@ var4 = var5; } 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; @@ -8210,7 +8853,7 @@ if (var15){ var18 = var_resolved_reciever->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ 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; @@ -8231,7 +8874,7 @@ var19 = var_resolved_reciever->type->type_table[cltype20] == idtype21; 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); } { @@ -8239,7 +8882,7 @@ show_backtrace(1); var24 = var_resolved_reciever->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -8251,7 +8894,7 @@ RET_LABEL23:(void)0; var27 = var22->attrs[COLOR_model__MClass___kind].val; /* _kind on */ 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; @@ -8319,7 +8962,7 @@ if (var41){ var46 = var_res->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ 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; @@ -8331,7 +8974,7 @@ RET_LABEL45:(void)0; var49 = var44->attrs[COLOR_model__MClass___kind].val; /* _kind on */ 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; @@ -8428,7 +9071,7 @@ var3 = var4; } 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); } { @@ -8442,7 +9085,7 @@ var_mtype = var9; var12 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on */ 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; @@ -8477,7 +9120,7 @@ val* var4 /* : String */; var3 = self->attrs[COLOR_model__MVirtualType___mproperty].val; /* _mproperty on */ 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; @@ -8505,15 +9148,13 @@ return var; void model__MVirtualType__init(val* self, val* p0) { val* var_mproperty /* var mproperty: MProperty */; { -{ /* Inline model_base#MEntity#init (self) on */ -RET_LABEL1:(void)0; -} +((void (*)(val*))(self->class->vft[COLOR_kernel__Object__init]))(self) /* init on */; } var_mproperty = p0; { { /* Inline model#MVirtualType#mproperty= (self,var_mproperty) on */ self->attrs[COLOR_model__MVirtualType___mproperty].val = var_mproperty; /* _mproperty on */ -RET_LABEL2:(void)0; +RET_LABEL1:(void)0; } } RET_LABEL:; @@ -8530,7 +9171,7 @@ val* var1 /* : MClass */; var1 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ 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; @@ -8546,7 +9187,7 @@ val* var3 /* : MClass */; var3 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ 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; @@ -8583,7 +9224,7 @@ val* var9 /* : Model */; var3 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ 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; @@ -8595,7 +9236,7 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_model__MClass___intro_mmodule].val; /* _intro_mmodule on */ 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; @@ -8607,7 +9248,7 @@ RET_LABEL5:(void)0; var9 = var4->attrs[COLOR_mmodule__MModule___model].val; /* _model on */ 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; @@ -8664,67 +9305,70 @@ RET_LABEL1:(void)0; } 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 */ -var3 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ +val* var1 /* : String */; +var1 = self->attrs[COLOR_model__MParameterType___name].val; /* _name on */ +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 */ +var3 = self->attrs[COLOR_model__MParameterType___name].val; /* _name on */ 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 */ +RET_LABEL:; } -{ -{ /* Inline model#MParameterType#rank (self) on */ -var10 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on */ -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->attrs[COLOR_model__MParameterType___name].val = p0; /* _name on */ +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 */; +{ /* Inline model#MParameterType#name (self) on */ +var3 = self->attrs[COLOR_model__MParameterType___name].val; /* _name on */ +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 */; } -var = var15; +var = var1; goto RET_LABEL; RET_LABEL:; return var; @@ -8750,22 +9394,24 @@ val* var5 /* : MClass */; 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; @@ -8775,7 +9421,7 @@ var1 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MTy 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); } { @@ -8783,7 +9429,7 @@ show_backtrace(1); var5 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ 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; @@ -8795,83 +9441,92 @@ var_goalclass = var3; var6 = ((val* (*)(val*, val*))(var_resolved_receiver->class->vft[COLOR_model__MType__collect_mtypes]))(var_resolved_receiver, var_mmodule) /* collect_mtypes on */; } var_supertypes = var6; +var_ = var_supertypes; { -var7 = ((val* (*)(val*))(var_supertypes->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_supertypes) /* iterator on */; +var7 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_8 = var7; for(;;) { { -var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on */; +var9 = ((short int (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_8) /* is_ok on */; } -if(!var8) break; +if (var9){ { -var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; +var10 = ((val* (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__item]))(var_8) /* item on */; } -var_t = var9; +var_t = var10; { { /* Inline model#MClassType#mclass (var_t) on */ -var12 = var_t->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var12 == NULL)) { +var13 = var_t->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ +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 */ +{ /* Inline kernel#Object#== (var11,var_goalclass) on */ var_other = var_goalclass; { -{ /* Inline kernel#Object#is_same_instance (var10,var_other) on */ -var18 = var10 == var_other; -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; +{ /* Inline kernel#Object#is_same_instance (var11,var_other) on */ +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 */ -var21 = var_t->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ -if (unlikely(var21 == NULL)) { +var22 = var_t->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ +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 */ -var24 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on */ -var22 = var24; -RET_LABEL23:(void)0; +var25 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on */ +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 */; +((void (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__next]))(var_8) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_8) on */ +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; @@ -8885,1111 +9540,3 @@ var = var1; RET_LABEL:; return var; } -/* method model#MParameterType#resolve_for for (self: MParameterType, MType, nullable MClassType, MModule, Bool): MType */ -val* model__MParameterType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) { -val* var /* : MType */; -val* var_mtype /* var mtype: MType */; -val* var_anchor /* var anchor: nullable MClassType */; -val* var_mmodule /* var mmodule: MModule */; -short int var_cleanup_virtual /* var cleanup_virtual: Bool */; -short int var1 /* : Bool */; -short int var2 /* : Bool */; -short int var3 /* : Bool */; -int cltype; -int idtype; -short int var_ /* var : Bool */; -val* var4 /* : MClass */; -val* 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); -} -/* 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 */ -var6 = var_mtype->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -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 */ -var9 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ -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 */ -var_other = var7; -{ -{ /* Inline kernel#Object#is_same_instance (var4,var_other) on */ -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 */ -var18 = var_mtype->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ -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 */ -var21 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on */ -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_other28 = var24; -{ -var30 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on */; -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 */; -} -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_r2 = var34; -/* 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 */ -var42 = var_r2->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -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 */ -var45 = var40->attrs[COLOR_model__MClass___kind].val; /* _kind on */ -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 */ -var_other = var46; -{ -{ /* Inline kernel#Object#is_same_instance (var43,var_other) on */ -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 */; -} -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_other28 = var54; -{ -var59 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on */; -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 */ -var63 = var_anchor->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -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 */ -var66 = var61->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on */ -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_resolved_receiver = var68; -} else { -var_resolved_receiver = var_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 */ -var74 = var_resolved_receiver->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ -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 { -} -/* 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 */ -var80 = var_resolved_receiver->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ -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 */ -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 */ -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 */ -var_other = var81; -{ -{ /* Inline kernel#Object#is_same_instance (var78,var_other) on */ -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 */ -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 */ -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 */ -var95 = var_resolved_receiver->attrs[COLOR_model__MParameterType___rank].l; /* _rank on */ -var93 = var95; -RET_LABEL94:(void)0; -} -} -{ -var96 = array__Array___91d_93d(var90, var93); -} -var_resolved_receiver = var96; -/* 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 */ -var102 = var_resolved_receiver->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ -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 { -} -/* 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 */ -var108 = var_resolved_receiver->attrs[COLOR_model__MClassType___mclass].val; /* _mclass on */ -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 */ -var111 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ -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 */ -var_other = var109; -{ -{ /* Inline kernel#Object#is_same_instance (var106,var_other) on */ -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 */ -var120 = var_resolved_receiver->attrs[COLOR_model__MClassType___arguments].val; /* _arguments on */ -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 */ -var123 = self->attrs[COLOR_model__MParameterType___rank].l; /* _rank on */ -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 */; -} -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_other28 = var127; -{ -var132 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other28) /* == on */; -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 = 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_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 */; -} -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_other = var2; -{ -var7 = ((short int (*)(val*, val*))(var_anchor->class->vft[COLOR_kernel__Object___61d_61d]))(var_anchor, var_other) /* == on */; -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 = var9; -} else { -} -{ -var10 = ((val* (*)(val*, val*))(var_mtype->class->vft[COLOR_model__MType__collect_mclassdefs]))(var_mtype, var_mmodule) /* collect_mclassdefs on */; -} -{ -{ /* Inline model#MParameterType#mclass (self) on */ -var13 = self->attrs[COLOR_model__MParameterType___mclass].val; /* _mclass on */ -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 */; -} -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 */ -RET_LABEL1:(void)0; -} -} -var_mclass = p0; -var_rank = p1; -{ -{ /* Inline model#MParameterType#mclass= (self,var_mclass) on */ -self->attrs[COLOR_model__MParameterType___mclass].val = var_mclass; /* _mclass on */ -RET_LABEL2:(void)0; -} -} -{ -{ /* Inline model#MParameterType#rank= (self,var_rank) on */ -self->attrs[COLOR_model__MParameterType___rank].l = var_rank; /* _rank on */ -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 */ -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 */ -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 */ -var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ -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 */ -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->attrs[COLOR_model__MNullableType___mtype].val = p0; /* _mtype on */ -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 */ -var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ -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 */; -} -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 */ -RET_LABEL1:(void)0; -} -} -var_mtype = p0; -{ -{ /* Inline model#MNullableType#mtype= (self,var_mtype) on */ -self->attrs[COLOR_model__MNullableType___mtype].val = var_mtype; /* _mtype on */ -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 */; -} -} -{ -var9 = ((val* (*)(val*))(var6->class->vft[COLOR_string__Object__to_s]))(var6) /* to_s on */; -} -{ -{ /* Inline model#MNullableType#to_s= (self,var9) on */ -self->attrs[COLOR_model__MNullableType___to_s].val = var9; /* _to_s on */ -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 */ -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 */ -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 */ -var3 = self->attrs[COLOR_model__MNullableType___to_s].val; /* _to_s on */ -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 */ -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->attrs[COLOR_model__MNullableType___to_s].val = p0; /* _to_s on */ -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 */ -var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ -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 */; -} -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 */ -var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ -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 */ -var3 = self->attrs[COLOR_model__MNullableType___mtype].val; /* _mtype on */ -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 */; -} -var_res = var4; -{ -var5 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MType__as_nullable]))(var_res) /* as_nullable on */; -} -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; -}