X-Git-Url: http://nitlanguage.org diff --git a/c_src/nit__model.sep.1.c b/c_src/nit__model.sep.1.c index ef8111f..83c98f0 100644 --- a/c_src/nit__model.sep.1.c +++ b/c_src/nit__model.sep.1.c @@ -7,7 +7,7 @@ var1 = self->attrs[COLOR_nit__model__Model___mclasses].val; /* _mclasses on attrs[COLOR_nit__model__Model___mproperties].val; /* _mproperties o if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 37); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -35,7 +35,7 @@ var1 = self->attrs[COLOR_nit__model__Model___mclassdef_hierarchy].val; /* _mclas if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 40); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -49,7 +49,7 @@ var1 = self->attrs[COLOR_nit__model__Model___intro_mtype_specialization_hierarch if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 46); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -63,7 +63,7 @@ var1 = self->attrs[COLOR_nit__model__Model___full_mtype_specialization_hierarchy if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 57); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -77,7 +77,7 @@ var1 = self->attrs[COLOR_nit__model__Model___mclasses_by_name].val; /* _mclasses if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 66); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -97,7 +97,7 @@ var3 = self->attrs[COLOR_nit__model__Model___mclasses_by_name].val; /* _mclasses if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 66); -show_backtrace(1); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -119,7 +119,7 @@ var1 = self->attrs[COLOR_nit__model__Model___mproperties_by_name].val; /* _mprop if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 80); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -139,7 +139,7 @@ var3 = self->attrs[COLOR_nit__model__Model___mproperties_by_name].val; /* _mprop if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperties_by_name"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 80); -show_backtrace(1); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -161,7 +161,7 @@ var1 = self->attrs[COLOR_nit__model__Model___null_type].val; /* _null_type on attrs[COLOR_nit__model__MModule___intro_mclasses].val; /* _intro_mc if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 128); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -189,7 +189,7 @@ var1 = self->attrs[COLOR_nit__model__MModule___mclassdefs].val; /* _mclassdefs o if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 131); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -201,44 +201,43 @@ val* var /* : POSet[MClass] */; val* var1 /* : nullable POSet[MClass] */; val* var3 /* : nullable POSet[MClass] */; val* var_res /* var res: nullable POSet[MClass] */; -val* var4 /* : null */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -short int var6 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : POSet[MClass] */; -val* var12 /* : POSetElement[MModule] */; -val* var14 /* : POSetElement[MModule] */; -val* var15 /* : Collection[nullable Object] */; +val* var9 /* : POSet[MClass] */; +val* var11 /* : POSetElement[MModule] */; +val* var13 /* : POSetElement[MModule] */; +val* var14 /* : Collection[nullable 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* var15 /* : Iterator[nullable Object] */; +val* var_16 /* var : Iterator[MModule] */; +short int var17 /* : Bool */; +val* var18 /* : nullable Object */; val* var_m /* var m: MModule */; -val* var20 /* : Array[MClassDef] */; -val* var22 /* : Array[MClassDef] */; -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* var19 /* : Array[MClassDef] */; +val* var21 /* : Array[MClassDef] */; +val* var_22 /* var : Array[MClassDef] */; +val* var23 /* : ArrayIterator[nullable Object] */; +val* var_24 /* var : ArrayIterator[MClassDef] */; +short int var25 /* : Bool */; +val* var26 /* : nullable Object */; val* var_cd /* var cd: MClassDef */; -val* var28 /* : MClass */; -val* var30 /* : MClass */; +val* var27 /* : MClass */; +val* var29 /* : MClass */; val* var_c /* var c: MClass */; -val* var31 /* : POSetElement[nullable Object] */; -val* var32 /* : Array[MClassType] */; -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* var30 /* : POSetElement[nullable Object] */; +val* var31 /* : Array[MClassType] */; +val* var33 /* : Array[MClassType] */; +val* var_34 /* var : Array[MClassType] */; +val* var35 /* : ArrayIterator[nullable Object] */; +val* var_36 /* var : ArrayIterator[MClassType] */; +short int var37 /* : Bool */; +val* var38 /* : nullable Object */; val* var_s /* var s: MClassType */; -val* var40 /* : MClass */; -val* var42 /* : MClass */; +val* var39 /* : MClass */; +val* var41 /* : MClass */; { { /* Inline model#MModule#flatten_mclass_hierarchy_cache (self) on */ var3 = self->attrs[COLOR_nit__model__MModule___flatten_mclass_hierarchy_cache].val; /* _flatten_mclass_hierarchy_cache on */ @@ -247,151 +246,150 @@ RET_LABEL2:(void)0; } } var_res = var1; -var4 = NULL; if (var_res == NULL) { -var5 = 0; /* is null */ +var4 = 0; /* is null */ } else { -var5 = 1; /* arg is null and recv is not */ +var4 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_res,var4) on */ -var_other = var4; +{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var8 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var7 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other); /* == on */ } -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var8 = !var7; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -var5 = var6; +var4 = var5; } -if (var5){ +if (var4){ var = var_res; goto RET_LABEL; } else { } -var10 = NEW_poset__POSet(&type_poset__POSet__nit__MClass); +var9 = NEW_poset__POSet(&type_poset__POSet__nit__MClass); { -{ /* Inline kernel#Object#init (var10) on */ -RET_LABEL11:(void)0; +{ /* Inline kernel#Object#init (var9) on */ +RET_LABEL10:(void)0; } } -var_res = var10; +var_res = var9; { { /* Inline mmodule#MModule#in_importation (self) on */ -var14 = self->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var14 == NULL)) { +var13 = self->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96); -show_backtrace(1); +fatal_exit(1); } -var12 = var14; -RET_LABEL13:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { -var15 = poset___poset__POSetElement___greaters(var12); +var14 = poset___poset__POSetElement___greaters(var11); } -var_ = var15; +var_ = var14; { -var16 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on */; +var15 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on */ } -var_17 = var16; +var_16 = var15; for(;;) { { -var18 = ((short int (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_17) /* is_ok on */; +var17 = ((short int(*)(val* self))((((long)var_16&3)?class_info[((long)var_16&3)]:var_16->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_16); /* is_ok on */ } -if (var18){ +if (var17){ { -var19 = ((val* (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_17) /* item on */; +var18 = ((val*(*)(val* self))((((long)var_16&3)?class_info[((long)var_16&3)]:var_16->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_16); /* item on */ } -var_m = var19; +var_m = var18; { { /* Inline model#MModule#mclassdefs (var_m) on */ -var22 = var_m->attrs[COLOR_nit__model__MModule___mclassdefs].val; /* _mclassdefs on */ -if (unlikely(var22 == NULL)) { +var21 = var_m->attrs[COLOR_nit__model__MModule___mclassdefs].val; /* _mclassdefs on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 131); -show_backtrace(1); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } -var_23 = var20; +var_22 = var19; { -var24 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_23); +var23 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_22); } -var_25 = var24; +var_24 = var23; for(;;) { { -var26 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_25); +var25 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_24); } -if (var26){ +if (var25){ { -var27 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_25); +var26 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_24); } -var_cd = var27; +var_cd = var26; { { /* Inline model#MClassDef#mclass (var_cd) on */ -var30 = var_cd->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var30 == NULL)) { +var29 = var_cd->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var28 = var30; -RET_LABEL29:(void)0; +var27 = var29; +RET_LABEL28:(void)0; } } -var_c = var28; +var_c = var27; { -var31 = poset___poset__POSet___add_node(var_res, var_c); +var30 = poset___poset__POSet___add_node(var_res, var_c); } { { /* Inline model#MClassDef#supertypes (var_cd) on */ -var34 = var_cd->attrs[COLOR_nit__model__MClassDef___supertypes].val; /* _supertypes on */ -if (unlikely(var34 == NULL)) { +var33 = var_cd->attrs[COLOR_nit__model__MClassDef___supertypes].val; /* _supertypes on */ +if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 566); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 627); +fatal_exit(1); } -var32 = var34; -RET_LABEL33:(void)0; +var31 = var33; +RET_LABEL32:(void)0; } } -var_35 = var32; +var_34 = var31; { -var36 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_35); +var35 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_34); } -var_37 = var36; +var_36 = var35; for(;;) { { -var38 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_37); +var37 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_36); } -if (var38){ +if (var37){ { -var39 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_37); +var38 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_36); } -var_s = var39; +var_s = var38; { { /* Inline model#MClassType#mclass (var_s) on */ -var42 = var_s->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var42 == NULL)) { +var41 = var_s->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var41 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var40 = var42; -RET_LABEL41:(void)0; +var39 = var41; +RET_LABEL40:(void)0; } } { -poset___poset__POSet___add_edge(var_res, var_c, var40); /* Direct call poset#POSet#add_edge on */ +poset___poset__POSet___add_edge(var_res, var_c, var39); /* Direct call poset#POSet#add_edge on */ } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_37); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_36); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -399,40 +397,34 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_37) on */ -RET_LABEL43:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_36); /* Direct call array#ArrayIterator#finish on */ } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_25); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_24); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label44; +goto BREAK_label42; } } -BREAK_label44: (void)0; +BREAK_label42: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_25) on */ -RET_LABEL45:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_24); /* Direct call array#ArrayIterator#finish on */ } { -((void (*)(val* self))(var_17->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_17) /* next on */; +((void(*)(val* self))((((long)var_16&3)?class_info[((long)var_16&3)]:var_16->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_16); /* next on */ } } else { -goto BREAK_label46; +goto BREAK_label43; } } -BREAK_label46: (void)0; +BREAK_label43: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_17) on */ -RET_LABEL47:(void)0; -} +((void(*)(val* self))((((long)var_16&3)?class_info[((long)var_16&3)]:var_16->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_16); /* finish on */ } { { /* Inline model#MModule#flatten_mclass_hierarchy_cache= (self,var_res) on */ self->attrs[COLOR_nit__model__MModule___flatten_mclass_hierarchy_cache].val = var_res; /* _flatten_mclass_hierarchy_cache on */ -RET_LABEL48:(void)0; +RET_LABEL44:(void)0; } } var = var_res; @@ -461,10 +453,10 @@ val* var_sorter /* var sorter: MClassDefSorter */; var_mclassdefs = p0; var = NEW_nit__model__MClassDefSorter(&type_nit__model__MClassDefSorter); { -((void (*)(val* self, val* p0))(var->class->vft[COLOR_nit__model__MClassDefSorter__mmodule_61d]))(var, self) /* mmodule= on */; +((void(*)(val* self, val* p0))(var->class->vft[COLOR_nit__model__MClassDefSorter__mmodule_61d]))(var, self); /* mmodule= on */ } { -((void (*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var) /* init on */; +((void(*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var); /* init on */ } var_sorter = var; { @@ -480,10 +472,10 @@ val* var_sorter /* var sorter: MPropDefSorter */; var_mpropdefs = p0; var = NEW_nit__model__MPropDefSorter(&type_nit__model__MPropDefSorter); { -((void (*)(val* self, val* p0))(var->class->vft[COLOR_nit__model__MPropDefSorter__mmodule_61d]))(var, self) /* mmodule= on */; +((void(*)(val* self, val* p0))(var->class->vft[COLOR_nit__model__MPropDefSorter__mmodule_61d]))(var, self); /* mmodule= on */ } { -((void (*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var) /* init on */; +((void(*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var); /* init on */ } var_sorter = var; { @@ -508,105 +500,54 @@ RET_LABEL:; /* method model#MModule#object_type for (self: MModule): MClassType */ val* nit__model___MModule___object_type(val* self) { val* var /* : MClassType */; -val* var1 /* : nullable MClassType */; -val* var3 /* : nullable MClassType */; -val* var_res /* var res: nullable MClassType */; -val* var4 /* : null */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; +short int var1 /* : Bool */; +val* var2 /* : MClassType */; static val* varonce; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : FlatString */; -val* var14 /* : MClass */; -val* var15 /* : MClassType */; -val* var17 /* : MClassType */; -{ -{ /* Inline model#MModule#object_type_cache (self) on */ -var3 = self->attrs[COLOR_nit__model__MModule___object_type_cache].val; /* _object_type_cache on */ -var1 = var3; -RET_LABEL2:(void)0; -} -} -var_res = var1; -var4 = NULL; -if (var_res == NULL) { -var5 = 0; /* is null */ -} else { -var5 = 1; /* arg is null and recv is not */ -} -if (0) { -{ /* Inline kernel#Object#!= (var_res,var4) on */ -var_other = var4; -{ -var8 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; -} -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; -} -var5 = var6; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +var1 = self->attrs[COLOR_nit__model__MModule___object_type].val != NULL; /* _object_type on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___object_type].val; /* _object_type on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _object_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 197); +fatal_exit(1); } -if (var5){ -var = var_res; -goto RET_LABEL; } else { -} -if (varonce) { -var10 = varonce; +if (likely(varonce!=NULL)) { +var3 = varonce; } else { -var11 = "Object"; -var12 = 6; -var13 = standard___standard__NativeString___to_s_with_length(var11, var12); -var10 = var13; -varonce = var10; +var4 = "Object"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 6l); +var3 = var5; +varonce = var3; } { -var14 = nit__model___MModule___get_primitive_class(self, var10); +var6 = nit__model___MModule___get_primitive_class(self, var3); } { -{ /* Inline model#MClass#mclass_type (var14) on */ -var17 = var14->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var17 == NULL)) { +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); -} -var15 = var17; -RET_LABEL16:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -} -var_res = var15; -{ -{ /* Inline model#MModule#object_type_cache= (self,var_res) on */ -self->attrs[COLOR_nit__model__MModule___object_type_cache].val = var_res; /* _object_type_cache on */ -RET_LABEL18:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } -var = var_res; -goto RET_LABEL; -RET_LABEL:; -return var; +self->attrs[COLOR_nit__model__MModule___object_type].val = var7; /* _object_type on */ +var2 = var7; } -/* method model#MModule#object_type_cache for (self: MModule): nullable MClassType */ -val* nit__model___MModule___object_type_cache(val* self) { -val* var /* : nullable MClassType */; -val* var1 /* : nullable MClassType */; -var1 = self->attrs[COLOR_nit__model__MModule___object_type_cache].val; /* _object_type_cache on */ -var = var1; +var = var2; RET_LABEL:; return var; } -/* method model#MModule#object_type_cache= for (self: MModule, nullable MClassType) */ -void nit__model___MModule___object_type_cache_61d(val* self, val* p0) { -self->attrs[COLOR_nit__model__MModule___object_type_cache].val = p0; /* _object_type_cache on */ -RET_LABEL:; -} /* method model#MModule#pointer_type for (self: MModule): MClassType */ val* nit__model___MModule___pointer_type(val* self) { val* var /* : MClassType */; @@ -615,46 +556,44 @@ 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 */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; var1 = self->attrs[COLOR_nit__model__MModule___pointer_type].val != NULL; /* _pointer_type on */ if(likely(var1)) { var2 = self->attrs[COLOR_nit__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", FILE_nit__model, 209); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 200); +fatal_exit(1); } } else { -if (varonce) { +if (likely(varonce!=NULL)) { var3 = varonce; } else { var4 = "Pointer"; -var5 = 7; -var6 = standard___standard__NativeString___to_s_with_length(var4, var5); -var3 = var6; +var5 = standard___standard__NativeString___to_s_with_length(var4, 7l); +var3 = var5; varonce = var3; } { -var7 = nit__model___MModule___get_primitive_class(self, var3); +var6 = nit__model___MModule___get_primitive_class(self, var3); } { -{ /* Inline model#MClass#mclass_type (var7) on */ -var10 = var7->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var10 == NULL)) { +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } -self->attrs[COLOR_nit__model__MModule___pointer_type].val = var8; /* _pointer_type on */ -var2 = var8; +self->attrs[COLOR_nit__model__MModule___pointer_type].val = var7; /* _pointer_type on */ +var2 = var7; } var = var2; RET_LABEL:; @@ -663,726 +602,868 @@ return var; /* method model#MModule#bool_type for (self: MModule): MClassType */ val* nit__model___MModule___bool_type(val* self) { val* var /* : MClassType */; -val* var1 /* : nullable MClassType */; -val* var3 /* : nullable MClassType */; -val* var_res /* var res: nullable MClassType */; -val* var4 /* : null */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; +short int var1 /* : Bool */; +val* var2 /* : MClassType */; static val* varonce; -val* var10 /* : String */; -char* var11 /* : NativeString */; -long var12 /* : Int */; -val* var13 /* : FlatString */; -val* var14 /* : MClass */; -val* var15 /* : MClassType */; -val* var17 /* : MClassType */; -{ -{ /* Inline model#MModule#bool_type_cache (self) on */ -var3 = self->attrs[COLOR_nit__model__MModule___bool_type_cache].val; /* _bool_type_cache on */ -var1 = var3; -RET_LABEL2:(void)0; -} +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +var1 = self->attrs[COLOR_nit__model__MModule___bool_type].val != NULL; /* _bool_type on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___bool_type].val; /* _bool_type on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bool_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 203); +fatal_exit(1); } -var_res = var1; -var4 = NULL; -if (var_res == NULL) { -var5 = 0; /* is null */ } else { -var5 = 1; /* arg is null and recv is not */ +if (likely(varonce!=NULL)) { +var3 = varonce; +} else { +var4 = "Bool"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 4l); +var3 = var5; +varonce = var3; } -if (0) { -{ /* Inline kernel#Object#!= (var_res,var4) on */ -var_other = var4; { -var8 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var6 = nit__model___MModule___get_primitive_class(self, var3); } -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +{ +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var5 = var6; +var7 = var9; +RET_LABEL8:(void)0; } -if (var5){ -var = var_res; -goto RET_LABEL; -} else { } -if (varonce) { -var10 = varonce; +self->attrs[COLOR_nit__model__MModule___bool_type].val = var7; /* _bool_type on */ +var2 = var7; +} +var = var2; +RET_LABEL:; +return var; +} +/* method model#MModule#int_type for (self: MModule): MClassType */ +val* nit__model___MModule___int_type(val* self) { +val* var /* : MClassType */; +short int var1 /* : Bool */; +val* var2 /* : MClassType */; +static val* varonce; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +var1 = self->attrs[COLOR_nit__model__MModule___int_type].val != NULL; /* _int_type on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___int_type].val; /* _int_type on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _int_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 206); +fatal_exit(1); +} } else { -var11 = "Bool"; -var12 = 4; -var13 = standard___standard__NativeString___to_s_with_length(var11, var12); -var10 = var13; -varonce = var10; +if (likely(varonce!=NULL)) { +var3 = varonce; +} else { +var4 = "Int"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 3l); +var3 = var5; +varonce = var3; } { -var14 = nit__model___MModule___get_primitive_class(self, var10); +var6 = nit__model___MModule___get_primitive_class(self, var3); } { -{ /* Inline model#MClass#mclass_type (var14) on */ -var17 = var14->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var17 == NULL)) { +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); -} -var15 = var17; -RET_LABEL16:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } +var7 = var9; +RET_LABEL8:(void)0; } -var_res = var15; -{ -{ /* Inline model#MModule#bool_type_cache= (self,var_res) on */ -self->attrs[COLOR_nit__model__MModule___bool_type_cache].val = var_res; /* _bool_type_cache on */ -RET_LABEL18:(void)0; } +self->attrs[COLOR_nit__model__MModule___int_type].val = var7; /* _int_type on */ +var2 = var7; } -var = var_res; -goto RET_LABEL; +var = var2; RET_LABEL:; return var; } -/* method model#MModule#bool_type_cache for (self: MModule): nullable MClassType */ -val* nit__model___MModule___bool_type_cache(val* self) { -val* var /* : nullable MClassType */; -val* var1 /* : nullable MClassType */; -var1 = self->attrs[COLOR_nit__model__MModule___bool_type_cache].val; /* _bool_type_cache on */ -var = var1; -RET_LABEL:; -return var; +/* method model#MModule#byte_type for (self: MModule): MClassType */ +val* nit__model___MModule___byte_type(val* self) { +val* var /* : MClassType */; +short int var1 /* : Bool */; +val* var2 /* : MClassType */; +static val* varonce; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +var1 = self->attrs[COLOR_nit__model__MModule___byte_type].val != NULL; /* _byte_type on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___byte_type].val; /* _byte_type on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _byte_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 209); +fatal_exit(1); } -/* method model#MModule#bool_type_cache= for (self: MModule, nullable MClassType) */ -void nit__model___MModule___bool_type_cache_61d(val* self, val* p0) { -self->attrs[COLOR_nit__model__MModule___bool_type_cache].val = p0; /* _bool_type_cache on */ -RET_LABEL:; +} else { +if (likely(varonce!=NULL)) { +var3 = varonce; +} else { +var4 = "Byte"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 4l); +var3 = var5; +varonce = var3; } -/* method model#MModule#sys_type for (self: MModule): nullable MClassType */ -val* nit__model___MModule___sys_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_nit__mmodule__MModule___model].val; /* _model on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); -show_backtrace(1); +var6 = nit__model___MModule___get_primitive_class(self, var3); } -var1 = var3; -RET_LABEL2:(void)0; +{ +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } +var7 = var9; +RET_LABEL8:(void)0; } -if (varonce) { -var4 = varonce; -} else { -var5 = "Sys"; -var6 = 3; -var7 = standard___standard__NativeString___to_s_with_length(var5, var6); -var4 = var7; -varonce = var4; } -{ -var8 = nit__model___Model___get_mclasses_by_name(var1, var4); +self->attrs[COLOR_nit__model__MModule___byte_type].val = var7; /* _byte_type on */ +var2 = var7; } -var_clas = var8; -var9 = NULL; -if (var_clas == NULL) { -var10 = 1; /* is null */ -} else { -var10 = 0; /* arg is null but recv is not */ +var = var2; +RET_LABEL:; +return var; } -if (0) { -var11 = standard___standard__Array___standard__kernel__Object___61d_61d(var_clas, var9); -var10 = var11; +/* method model#MModule#char_type for (self: MModule): MClassType */ +val* nit__model___MModule___char_type(val* self) { +val* var /* : MClassType */; +short int var1 /* : Bool */; +val* var2 /* : MClassType */; +static val* varonce; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +var1 = self->attrs[COLOR_nit__model__MModule___char_type].val != NULL; /* _char_type on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___char_type].val; /* _char_type on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _char_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 212); +fatal_exit(1); } -if (var10){ -var12 = NULL; -var = var12; -goto RET_LABEL; } else { -} -if (varonce13) { -var14 = varonce13; +if (likely(varonce!=NULL)) { +var3 = varonce; } else { -var15 = "Sys"; -var16 = 3; -var17 = standard___standard__NativeString___to_s_with_length(var15, var16); -var14 = var17; -varonce13 = var14; +var4 = "Char"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 4l); +var3 = var5; +varonce = var3; } { -var18 = nit__model___MModule___get_primitive_class(self, var14); +var6 = nit__model___MModule___get_primitive_class(self, var3); } { -{ /* Inline model#MClass#mclass_type (var18) on */ -var21 = var18->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var21 == NULL)) { +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var19 = var21; -RET_LABEL20:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } -var = var19; -goto RET_LABEL; +self->attrs[COLOR_nit__model__MModule___char_type].val = var7; /* _char_type on */ +var2 = var7; +} +var = var2; RET_LABEL:; return var; } -/* method model#MModule#finalizable_type for (self: MModule): nullable MClassType */ -val* nit__model___MModule___finalizable_type(val* self) { -val* var /* : nullable MClassType */; -val* var1 /* : Model */; -val* var3 /* : Model */; +/* method model#MModule#float_type for (self: MModule): MClassType */ +val* nit__model___MModule___float_type(val* self) { +val* var /* : MClassType */; +short int var1 /* : Bool */; +val* var2 /* : MClassType */; 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 */; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +var1 = self->attrs[COLOR_nit__model__MModule___float_type].val != NULL; /* _float_type on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___float_type].val; /* _float_type on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _float_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 215); +fatal_exit(1); +} +} else { +if (likely(varonce!=NULL)) { +var3 = varonce; +} else { +var4 = "Float"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 5l); +var3 = var5; +varonce = var3; +} { -{ /* Inline mmodule#MModule#model (self) on */ -var3 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); -show_backtrace(1); +var6 = nit__model___MModule___get_primitive_class(self, var3); } -var1 = var3; -RET_LABEL2:(void)0; +{ +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } +var7 = var9; +RET_LABEL8:(void)0; } -if (varonce) { -var4 = varonce; -} else { -var5 = "Finalizable"; -var6 = 11; -var7 = standard___standard__NativeString___to_s_with_length(var5, var6); -var4 = var7; -varonce = var4; } -{ -var8 = nit__model___Model___get_mclasses_by_name(var1, var4); +self->attrs[COLOR_nit__model__MModule___float_type].val = var7; /* _float_type on */ +var2 = var7; } -var_clas = var8; -var9 = NULL; -if (var_clas == NULL) { -var10 = 1; /* is null */ -} else { -var10 = 0; /* arg is null but recv is not */ +var = var2; +RET_LABEL:; +return var; } -if (0) { -var11 = standard___standard__Array___standard__kernel__Object___61d_61d(var_clas, var9); -var10 = var11; +/* method model#MModule#string_type for (self: MModule): MClassType */ +val* nit__model___MModule___string_type(val* self) { +val* var /* : MClassType */; +short int var1 /* : Bool */; +val* var2 /* : MClassType */; +static val* varonce; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +var1 = self->attrs[COLOR_nit__model__MModule___string_type].val != NULL; /* _string_type on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___string_type].val; /* _string_type on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 218); +fatal_exit(1); } -if (var10){ -var12 = NULL; -var = var12; -goto RET_LABEL; } else { -} -if (varonce13) { -var14 = varonce13; +if (likely(varonce!=NULL)) { +var3 = varonce; } else { -var15 = "Finalizable"; -var16 = 11; -var17 = standard___standard__NativeString___to_s_with_length(var15, var16); -var14 = var17; -varonce13 = var14; +var4 = "String"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 6l); +var3 = var5; +varonce = var3; } { -var18 = nit__model___MModule___get_primitive_class(self, var14); +var6 = nit__model___MModule___get_primitive_class(self, var3); } { -{ /* Inline model#MClass#mclass_type (var18) on */ -var21 = var18->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var21 == NULL)) { +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var19 = var21; -RET_LABEL20:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } -var = var19; -goto RET_LABEL; +self->attrs[COLOR_nit__model__MModule___string_type].val = var7; /* _string_type on */ +var2 = var7; +} +var = var2; RET_LABEL:; return var; } -/* method model#MModule#get_primitive_class for (self: MModule, String): MClass */ -val* nit__model___MModule___get_primitive_class(val* self, val* p0) { -val* var /* : MClass */; -val* var_name /* var name: String */; -val* var1 /* : Model */; -val* var3 /* : Model */; -val* var4 /* : nullable Array[MClass] */; -val* var_cla /* var cla: nullable Array[MClass] */; -val* var5 /* : null */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -short int var8 /* : Bool */; +/* method model#MModule#native_string_type for (self: MModule): MClassType */ +val* nit__model___MModule___native_string_type(val* self) { +val* var /* : MClassType */; +short int var1 /* : Bool */; +val* var2 /* : MClassType */; static val* varonce; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : FlatString */; -short int var13 /* : Bool */; -short int var_ /* var : Bool */; -val* var14 /* : Model */; -val* var16 /* : Model */; -static val* varonce17; -val* var18 /* : String */; -char* var19 /* : NativeString */; -long var20 /* : Int */; -val* var21 /* : FlatString */; -val* var22 /* : nullable Array[MClass] */; -val* var23 /* : null */; -short int var24 /* : Bool */; -short int var25 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var27 /* : Bool */; -short int var28 /* : Bool */; -val* var29 /* : MClass */; -val* var30 /* : null */; -val* var31 /* : MClassKind */; -val* var32 /* : MVisibility */; -val* var_c /* var c: MClass */; -val* var33 /* : MClassDef */; -val* var34 /* : MClassType */; -val* var36 /* : MClassType */; -val* var37 /* : Location */; -val* var38 /* : null */; -long var39 /* : Int */; -long var40 /* : Int */; -long var41 /* : Int */; -long var42 /* : Int */; -val* var_cladef /* var cladef: MClassDef */; -val* var43 /* : Array[MClassType] */; -long var44 /* : Int */; -val* var_45 /* var : Array[MClassType] */; -val* var46 /* : MClassType */; -static val* varonce47; -val* var48 /* : String */; -char* var49 /* : NativeString */; -long var50 /* : Int */; -val* var51 /* : FlatString */; -val* var52 /* : Array[Object] */; -long var53 /* : Int */; -val* var54 /* : NativeArray[Object] */; -val* var55 /* : String */; -long var56 /* : Int */; -long var58 /* : Int */; -long var60 /* : Int */; -long var61 /* : Int */; -short int var62 /* : Bool */; -short int var64 /* : Bool */; -short int var65 /* : Bool */; -static val* varonce66; -val* var67 /* : String */; -char* var68 /* : NativeString */; -long var69 /* : Int */; -val* var70 /* : FlatString */; -static val* varonce71; -val* var72 /* : String */; -char* var73 /* : NativeString */; -long var74 /* : Int */; -val* var75 /* : FlatString */; -val* var76 /* : Array[Object] */; -long var77 /* : Int */; -val* var78 /* : NativeArray[Object] */; -val* var79 /* : String */; -val* var_msg /* var msg: String */; -val* var_80 /* var : nullable Array[MClass] */; -val* var81 /* : ArrayIterator[nullable Object] */; -val* var_82 /* var : ArrayIterator[MClass] */; -short int var83 /* : Bool */; -val* var84 /* : nullable Object */; -val* var_c85 /* var c: MClass */; -static val* varonce86; -val* var87 /* : String */; -char* var88 /* : NativeString */; -long var89 /* : Int */; -val* var90 /* : FlatString */; -val* var91 /* : String */; -val* var92 /* : Array[Object] */; -long var93 /* : Int */; -val* var94 /* : NativeArray[Object] */; -val* var95 /* : String */; -val* var96 /* : String */; -val* var98 /* : nullable Object */; -var_name = p0; -{ -{ /* Inline mmodule#MModule#model (self) on */ -var3 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); -show_backtrace(1); -} -var1 = var3; -RET_LABEL2:(void)0; -} -} -{ -var4 = nit__model___Model___get_mclasses_by_name(var1, var_name); +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +var1 = self->attrs[COLOR_nit__model__MModule___native_string_type].val != NULL; /* _native_string_type on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___native_string_type].val; /* _native_string_type on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _native_string_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 221); +fatal_exit(1); } -var_cla = var4; -var5 = NULL; -if (var_cla == NULL) { -var6 = 1; /* is null */ } else { -var6 = 0; /* arg is null but recv is not */ -} -if (0) { -var7 = standard___standard__Array___standard__kernel__Object___61d_61d(var_cla, var5); -var6 = var7; -} -if (var6){ -if (varonce) { -var9 = varonce; +if (likely(varonce!=NULL)) { +var3 = varonce; } else { -var10 = "Bool"; -var11 = 4; -var12 = standard___standard__NativeString___to_s_with_length(var10, var11); -var9 = var12; -varonce = var9; +var4 = "NativeString"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 12l); +var3 = var5; +varonce = var3; } { -var13 = ((short int (*)(val* self, val* p0))(var_name->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_name, var9) /* == on */; +var6 = nit__model___MModule___get_primitive_class(self, var3); } -var_ = var13; -if (var13){ { -{ /* Inline mmodule#MModule#model (self) on */ -var16 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ -if (unlikely(var16 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); -show_backtrace(1); +{ /* Inline model#MClass#mclass_type (var6) on */ +var9 = var6->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var14 = var16; -RET_LABEL15:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } -if (varonce17) { -var18 = varonce17; -} else { -var19 = "Object"; -var20 = 6; -var21 = standard___standard__NativeString___to_s_with_length(var19, var20); -var18 = var21; -varonce17 = var18; +self->attrs[COLOR_nit__model__MModule___native_string_type].val = var7; /* _native_string_type on */ +var2 = var7; +} +var = var2; +RET_LABEL:; +return var; } +/* method model#MModule#array_type for (self: MModule, MType): MClassType */ +val* nit__model___MModule___array_type(val* self, val* p0) { +val* var /* : MClassType */; +val* var_elt_type /* var elt_type: MType */; +val* var1 /* : MClass */; +val* var2 /* : Array[MType] */; +val* var_ /* var : Array[MType] */; +val* var3 /* : MClassType */; +var_elt_type = p0; { -var22 = nit__model___Model___get_mclasses_by_name(var14, var18); +var1 = nit__model___MModule___array_class(self); } -var23 = NULL; -if (var22 == NULL) { -var24 = 0; /* is null */ -} else { -var24 = 1; /* arg is null and recv is not */ +var2 = NEW_standard__Array(&type_standard__Array__nit__MType); +{ +standard___standard__Array___with_capacity(var2, 1l); /* Direct call array#Array#with_capacity on */ } -if (0) { -{ /* Inline kernel#Object#!= (var22,var23) on */ -var_other = var23; +var_ = var2; { -var27 = ((short int (*)(val* self, val* p0))(var22->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var22, var_other) /* == on */; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_elt_type); /* Direct call array#AbstractArray#push on */ } -var28 = !var27; -var25 = var28; -goto RET_LABEL26; -RET_LABEL26:(void)0; +{ +var3 = nit___nit__MClass___get_mtype(var1, var_); } -var24 = var25; +var = var3; +goto RET_LABEL; +RET_LABEL:; +return var; } -var8 = var24; -} else { -var8 = var_; +/* method model#MModule#array_class for (self: MModule): MClass */ +val* nit__model___MModule___array_class(val* self) { +val* var /* : MClass */; +short int var1 /* : Bool */; +val* var2 /* : MClass */; +static val* varonce; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +var1 = self->attrs[COLOR_nit__model__MModule___array_class].val != NULL; /* _array_class on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___array_class].val; /* _array_class on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array_class"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 227); +fatal_exit(1); } -if (var8){ -var29 = NEW_nit__MClass(&type_nit__MClass); -var30 = NULL; -{ -var31 = nit__model___standard__Object___enum_kind(self); +} else { +if (likely(varonce!=NULL)) { +var3 = varonce; +} else { +var4 = "Array"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 5l); +var3 = var5; +varonce = var3; } { -var32 = nit__model_base___standard__Object___public_visibility(self); +var6 = nit__model___MModule___get_primitive_class(self, var3); } -{ -((void (*)(val* self, val* p0))(var29->class->vft[COLOR_nit__model__MClass__intro_mmodule_61d]))(var29, self) /* intro_mmodule= on */; +self->attrs[COLOR_nit__model__MModule___array_class].val = var6; /* _array_class on */ +var2 = var6; } -{ -((void (*)(val* self, val* p0))(var29->class->vft[COLOR_nit__model__MClass__name_61d]))(var29, var_name) /* name= on */; +var = var2; +RET_LABEL:; +return var; } +/* method model#MModule#native_array_type for (self: MModule, MType): MClassType */ +val* nit__model___MModule___native_array_type(val* self, val* p0) { +val* var /* : MClassType */; +val* var_elt_type /* var elt_type: MType */; +val* var1 /* : MClass */; +val* var2 /* : Array[MType] */; +val* var_ /* var : Array[MType] */; +val* var3 /* : MClassType */; +var_elt_type = p0; { -((void (*)(val* self, val* p0))(var29->class->vft[COLOR_nit__model__MClass__setup_parameter_names]))(var29, var30) /* setup_parameter_names on */; +var1 = nit__model___MModule___native_array_class(self); } +var2 = NEW_standard__Array(&type_standard__Array__nit__MType); { -((void (*)(val* self, val* p0))(var29->class->vft[COLOR_nit__model__MClass__kind_61d]))(var29, var31) /* kind= on */; +standard___standard__Array___with_capacity(var2, 1l); /* Direct call array#Array#with_capacity on */ } +var_ = var2; { -((void (*)(val* self, val* p0))(var29->class->vft[COLOR_nit__model__MClass__visibility_61d]))(var29, var32) /* visibility= on */; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_elt_type); /* Direct call array#AbstractArray#push on */ } { -((void (*)(val* self))(var29->class->vft[COLOR_standard__kernel__Object__init]))(var29) /* init on */; +var3 = nit___nit__MClass___get_mtype(var1, var_); } -var_c = var29; -var33 = NEW_nit__MClassDef(&type_nit__MClassDef); -{ -{ /* Inline model#MClass#mclass_type (var_c) on */ -var36 = var_c->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var36 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +var = var3; +goto RET_LABEL; +RET_LABEL:; +return var; } -var34 = var36; -RET_LABEL35:(void)0; +/* method model#MModule#native_array_class for (self: MModule): MClass */ +val* nit__model___MModule___native_array_class(val* self) { +val* var /* : MClass */; +short int var1 /* : Bool */; +val* var2 /* : MClass */; +static val* varonce; +val* var3 /* : String */; +char* var4 /* : NativeString */; +val* var5 /* : FlatString */; +val* var6 /* : MClass */; +var1 = self->attrs[COLOR_nit__model__MModule___native_array_class].val != NULL; /* _native_array_class on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MModule___native_array_class].val; /* _native_array_class on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _native_array_class"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 233); +fatal_exit(1); } +} else { +if (likely(varonce!=NULL)) { +var3 = varonce; +} else { +var4 = "NativeArray"; +var5 = standard___standard__NativeString___to_s_with_length(var4, 11l); +var3 = var5; +varonce = var3; } -var37 = NEW_nit__Location(&type_nit__Location); -var38 = NULL; -var39 = 0; -var40 = 0; -var41 = 0; -var42 = 0; { -((void (*)(val* self, val* p0))(var37->class->vft[COLOR_nit__location__Location__file_61d]))(var37, var38) /* file= on */; +var6 = nit__model___MModule___get_primitive_class(self, var3); } -{ -((void (*)(val* self, long p0))(var37->class->vft[COLOR_nit__location__Location__line_start_61d]))(var37, var39) /* line_start= on */; +self->attrs[COLOR_nit__model__MModule___native_array_class].val = var6; /* _native_array_class on */ +var2 = var6; } -{ -((void (*)(val* self, long p0))(var37->class->vft[COLOR_nit__location__Location__line_end_61d]))(var37, var40) /* line_end= on */; +var = var2; +RET_LABEL:; +return var; } +/* method model#MModule#sys_type for (self: MModule): nullable MClassType */ +val* nit__model___MModule___sys_type(val* self) { +val* var /* : nullable MClassType */; +val* var1 /* : Model */; +val* var3 /* : Model */; +static val* varonce; +val* var4 /* : String */; +char* var5 /* : NativeString */; +val* var6 /* : FlatString */; +val* var7 /* : nullable Array[MClass] */; +val* var_clas /* var clas: nullable Array[MClass] */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : NativeString */; +val* var13 /* : FlatString */; +val* var14 /* : MClass */; +val* var15 /* : MClassType */; +val* var17 /* : MClassType */; { -((void (*)(val* self, long p0))(var37->class->vft[COLOR_nit__location__Location__column_start_61d]))(var37, var41) /* column_start= on */; +{ /* Inline mmodule#MModule#model (self) on */ +var3 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); +fatal_exit(1); } -{ -((void (*)(val* self, long p0))(var37->class->vft[COLOR_nit__location__Location__column_end_61d]))(var37, var42) /* column_end= on */; +var1 = var3; +RET_LABEL2:(void)0; } -{ -((void (*)(val* self))(var37->class->vft[COLOR_standard__kernel__Object__init]))(var37) /* init on */; } -{ -((void (*)(val* self, val* p0))(var33->class->vft[COLOR_nit__model__MClassDef__mmodule_61d]))(var33, self) /* mmodule= on */; +if (likely(varonce!=NULL)) { +var4 = varonce; +} else { +var5 = "Sys"; +var6 = standard___standard__NativeString___to_s_with_length(var5, 3l); +var4 = var6; +varonce = var4; } { -((void (*)(val* self, val* p0))(var33->class->vft[COLOR_nit__model__MClassDef__bound_mtype_61d]))(var33, var34) /* bound_mtype= on */; +var7 = nit__model___Model___get_mclasses_by_name(var1, var4); } -{ -((void (*)(val* self, val* p0))(var33->class->vft[COLOR_nit__model__MClassDef__location_61d]))(var33, var37) /* location= on */; +var_clas = var7; +if (var_clas == NULL) { +var8 = 1; /* is null */ +} else { +var8 = 0; /* arg is null but recv is not */ } -{ -((void (*)(val* self))(var33->class->vft[COLOR_standard__kernel__Object__init]))(var33) /* init on */; +if (0) { +var9 = standard___standard__Array___standard__kernel__Object___61d_61d(var_clas, ((val*)NULL)); +var8 = var9; } -var_cladef = var33; -var43 = NEW_standard__Array(&type_standard__Array__nit__MClassType); -var44 = 1; -{ -standard___standard__Array___with_capacity(var43, var44); /* Direct call array#Array#with_capacity on */ +if (var8){ +var = ((val*)NULL); +goto RET_LABEL; +} else { } -var_45 = var43; -{ -var46 = nit__model___MModule___object_type(self); +if (likely(varonce10!=NULL)) { +var11 = varonce10; +} else { +var12 = "Sys"; +var13 = standard___standard__NativeString___to_s_with_length(var12, 3l); +var11 = var13; +varonce10 = var11; } { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_45, var46); /* Direct call array#AbstractArray#push on */ +var14 = nit__model___MModule___get_primitive_class(self, var11); } { -nit___nit__MClassDef___set_supertypes(var_cladef, var_45); /* Direct call model#MClassDef#set_supertypes on */ +{ /* Inline model#MClass#mclass_type (var14) on */ +var17 = var14->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -{ -nit___nit__MClassDef___add_in_hierarchy(var_cladef); /* Direct call model#MClassDef#add_in_hierarchy on */ +var15 = var17; +RET_LABEL16:(void)0; } -var = var_c; -goto RET_LABEL; -} else { } -if (varonce47) { -var48 = varonce47; -} else { -var49 = "Fatal Error: no primitive class "; -var50 = 32; -var51 = standard___standard__NativeString___to_s_with_length(var49, var50); -var48 = var51; -varonce47 = var48; +var = var15; +goto RET_LABEL; +RET_LABEL:; +return var; } -var52 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var52 = array_instance Array[Object] */ -var53 = 2; -var54 = NEW_standard__NativeArray(var53, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var54)->values[0] = (val*) var48; -((struct instance_standard__NativeArray*)var54)->values[1] = (val*) var_name; +/* method model#MModule#finalizable_type for (self: MModule): nullable MClassType */ +val* nit__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 */; +val* var6 /* : FlatString */; +val* var7 /* : nullable Array[MClass] */; +val* var_clas /* var clas: nullable Array[MClass] */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +static val* varonce10; +val* var11 /* : String */; +char* var12 /* : NativeString */; +val* var13 /* : FlatString */; +val* var14 /* : MClass */; +val* var15 /* : MClassType */; +val* var17 /* : MClassType */; { -((void (*)(val* self, val* p0, long p1))(var52->class->vft[COLOR_standard__array__Array__with_native]))(var52, var54, var53) /* with_native on */; +{ /* Inline mmodule#MModule#model (self) on */ +var3 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); +fatal_exit(1); +} +var1 = var3; +RET_LABEL2:(void)0; } } -{ -var55 = ((val* (*)(val* self))(var52->class->vft[COLOR_standard__string__Object__to_s]))(var52) /* to_s on */; +if (likely(varonce!=NULL)) { +var4 = varonce; +} else { +var5 = "Finalizable"; +var6 = standard___standard__NativeString___to_s_with_length(var5, 11l); +var4 = var6; +varonce = var4; } { -standard__file___Object___print(self, var55); /* Direct call file#Object#print on */ +var7 = nit__model___Model___get_mclasses_by_name(var1, var4); } -var56 = 1; -{ -{ /* Inline kernel#Object#exit (self,var56) on */ -exit(var56); -RET_LABEL57:(void)0; +var_clas = var7; +if (var_clas == NULL) { +var8 = 1; /* is null */ +} else { +var8 = 0; /* arg is null but recv is not */ } +if (0) { +var9 = standard___standard__Array___standard__kernel__Object___61d_61d(var_clas, ((val*)NULL)); +var8 = var9; } +if (var8){ +var = ((val*)NULL); +goto RET_LABEL; } else { } -if (var_cla == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 258); -show_backtrace(1); +if (likely(varonce10!=NULL)) { +var11 = varonce10; } else { -{ /* 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", FILE_standard__array, 24); -show_backtrace(1); +var12 = "Finalizable"; +var13 = standard___standard__NativeString___to_s_with_length(var12, 11l); +var11 = var13; +varonce10 = var11; } -var60 = var_cla->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var58 = var60; -RET_LABEL59:(void)0; +{ +var14 = nit__model___MModule___get_primitive_class(self, var11); +} +{ +{ /* Inline model#MClass#mclass_type (var14) on */ +var17 = var14->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } +var15 = var17; +RET_LABEL16:(void)0; +} +} +var = var15; +goto RET_LABEL; +RET_LABEL:; +return var; } -var61 = 1; +/* method model#MModule#get_primitive_class for (self: MModule, String): MClass */ +val* nit__model___MModule___get_primitive_class(val* self, val* p0) { +val* var /* : MClass */; +val* var_name /* var name: String */; +val* var1 /* : Model */; +val* var3 /* : Model */; +val* var4 /* : nullable Array[MClass] */; +val* var_cla /* var cla: nullable Array[MClass] */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +val* var10 /* : Array[MClass] */; +val* var_ /* var : Array[MClass] */; +val* var_11 /* var : Array[MClass] */; +val* var12 /* : ArrayIterator[nullable Object] */; +val* var_13 /* var : ArrayIterator[MClass] */; +short int var14 /* : Bool */; +val* var15 /* : nullable Object */; +val* var_c /* var c: MClass */; +val* var16 /* : POSetElement[MModule] */; +val* var18 /* : POSetElement[MModule] */; +val* var19 /* : MModule */; +val* var21 /* : MModule */; +short int var22 /* : Bool */; +short int var23 /* : Bool */; +short int var24 /* : Bool */; +short int var25 /* : Bool */; +short int var_26 /* var : Bool */; +short int var27 /* : Bool */; +short int var28 /* : Bool */; +static val* varonce; +val* var29 /* : String */; +char* var30 /* : NativeString */; +val* var31 /* : FlatString */; +short int var32 /* : Bool */; +short int var_33 /* var : Bool */; +val* var34 /* : Model */; +val* var36 /* : Model */; +static val* varonce37; +val* var38 /* : String */; +char* var39 /* : NativeString */; +val* var40 /* : FlatString */; +val* var41 /* : nullable Array[MClass] */; +short int var42 /* : Bool */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +short int var46 /* : Bool */; +val* var47 /* : MClass */; +val* var48 /* : Sys */; +val* var49 /* : MClassKind */; +val* var50 /* : Sys */; +val* var51 /* : MVisibility */; +val* var_c52 /* var c: MClass */; +val* var53 /* : MClassDef */; +val* var54 /* : MClassType */; +val* var56 /* : MClassType */; +val* var57 /* : Location */; +val* var_cladef /* var cladef: MClassDef */; +val* var58 /* : Array[MClassType] */; +val* var_59 /* var : Array[MClassType] */; +val* var60 /* : MClassType */; +val* var61 /* : Sys */; +val* var63 /* : NativeArray[String] */; +static val* varonce62; +static val* varonce64; +val* var65 /* : String */; +char* var66 /* : NativeString */; +val* var67 /* : FlatString */; +static val* varonce68; +val* var69 /* : String */; +char* var70 /* : NativeString */; +val* var71 /* : FlatString */; +val* var72 /* : String */; +val* var73 /* : String */; +val* var74 /* : Sys */; +long var76 /* : Int */; +long var78 /* : Int */; +short int var79 /* : Bool */; +short int var81 /* : Bool */; +short int var82 /* : Bool */; +val* var84 /* : NativeArray[String] */; +static val* varonce83; +static val* varonce85; +val* var86 /* : String */; +char* var87 /* : NativeString */; +val* var88 /* : FlatString */; +static val* varonce89; +val* var90 /* : String */; +char* var91 /* : NativeString */; +val* var92 /* : FlatString */; +static val* varonce93; +val* var94 /* : String */; +char* var95 /* : NativeString */; +val* var96 /* : FlatString */; +val* var97 /* : String */; +val* var98 /* : String */; +val* var_msg /* var msg: String */; +val* var_99 /* var : nullable Array[MClass] */; +val* var100 /* : ArrayIterator[nullable Object] */; +val* var_101 /* var : ArrayIterator[MClass] */; +short int var102 /* : Bool */; +val* var103 /* : nullable Object */; +val* var_c104 /* var c: MClass */; +val* var106 /* : NativeArray[String] */; +static val* varonce105; +static val* varonce107; +val* var108 /* : String */; +char* var109 /* : NativeString */; +val* var110 /* : FlatString */; +val* var111 /* : String */; +val* var112 /* : String */; +val* var113 /* : String */; +val* var115 /* : Sys */; +val* var116 /* : nullable Object */; +var_name = p0; { -{ /* Inline kernel#Int#!= (var58,var61) on */ -var64 = var58 == var61; -var65 = !var64; -var62 = var65; -goto RET_LABEL63; -RET_LABEL63:(void)0; +{ /* Inline mmodule#MModule#model (self) on */ +var3 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); +fatal_exit(1); } +var1 = var3; +RET_LABEL2:(void)0; } -if (var62){ -if (varonce66) { -var67 = varonce66; -} else { -var68 = "Fatal Error: more than one primitive class "; -var69 = 43; -var70 = standard___standard__NativeString___to_s_with_length(var68, var69); -var67 = var70; -varonce66 = var67; } -if (varonce71) { -var72 = varonce71; +{ +var4 = nit__model___Model___get_mclasses_by_name(var1, var_name); +} +var_cla = var4; +if (var_cla == NULL) { +var5 = 0; /* is null */ } else { -var73 = ":"; -var74 = 1; -var75 = standard___standard__NativeString___to_s_with_length(var73, var74); -var72 = var75; -varonce71 = var72; +var5 = 1; /* arg is null and recv is not */ } -var76 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var76 = array_instance Array[Object] */ -var77 = 3; -var78 = NEW_standard__NativeArray(var77, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var78)->values[0] = (val*) var67; -((struct instance_standard__NativeArray*)var78)->values[1] = (val*) var_name; -((struct instance_standard__NativeArray*)var78)->values[2] = (val*) var72; +if (0) { +{ /* Inline kernel#Object#!= (var_cla,((val*)NULL)) on */ +var_other = ((val*)NULL); { -((void (*)(val* self, val* p0, long p1))(var76->class->vft[COLOR_standard__array__Array__with_native]))(var76, var78, var77) /* with_native on */; +var8 = ((short int(*)(val* self, val* p0))(var_cla->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cla, var_other); /* == on */ +} +var9 = !var8; +var6 = var9; +goto RET_LABEL7; +RET_LABEL7:(void)0; } +var5 = var6; } +if (var5){ +var10 = NEW_standard__Array(&type_standard__Array__nit__MClass); { -var79 = ((val* (*)(val* self))(var76->class->vft[COLOR_standard__string__Object__to_s]))(var76) /* to_s on */; +standard___standard__Array___with_capacity(var10, 1l); /* Direct call array#Array#with_capacity on */ } -var_msg = var79; -var_80 = var_cla; -if (var_80 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 260); -show_backtrace(1); -} else { -var81 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_80); +var_ = var10; +var_11 = var_cla; +{ +var12 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_11); } -var_82 = var81; +var_13 = var12; for(;;) { { -var83 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_82); +var14 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_13); } -if (var83){ +if (var14){ { -var84 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_82); -} -var_c85 = var84; -if (varonce86) { -var87 = varonce86; -} else { -var88 = " "; -var89 = 1; -var90 = standard___standard__NativeString___to_s_with_length(var88, var89); -var87 = var90; -varonce86 = var87; +var15 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_13); } +var_c = var15; { -var91 = nit___nit__MClass___nit__model_base__MEntity__full_name(var_c85); +{ /* Inline mmodule#MModule#in_importation (self) on */ +var18 = self->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var18 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96); +fatal_exit(1); +} +var16 = var18; +RET_LABEL17:(void)0; +} } -var92 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var92 = array_instance Array[Object] */ -var93 = 2; -var94 = NEW_standard__NativeArray(var93, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var94)->values[0] = (val*) var87; -((struct instance_standard__NativeArray*)var94)->values[1] = (val*) var91; { -((void (*)(val* self, val* p0, long p1))(var92->class->vft[COLOR_standard__array__Array__with_native]))(var92, var94, var93) /* with_native on */; +{ /* Inline model#MClass#intro_mmodule (var_c) on */ +var21 = var_c->attrs[COLOR_nit__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", FILE_nit__model, 357); +fatal_exit(1); +} +var19 = var21; +RET_LABEL20:(void)0; } } { -var95 = ((val* (*)(val* self))(var92->class->vft[COLOR_standard__string__Object__to_s]))(var92) /* to_s on */; +var22 = poset___poset__POSetElement____60d_61d(var16, var19); } +if (var22){ { -var96 = ((val* (*)(val* self, val* p0))(var_msg->class->vft[COLOR_standard__string__String___43d]))(var_msg, var95) /* + on */; +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_c); /* Direct call array#AbstractArray#push on */ +} +} else { } -var_msg = var96; { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_82); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_13); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -1390,432 +1471,759 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_82) on */ -RET_LABEL97:(void)0; -} -} -{ -standard__file___Object___print(self, var_msg); /* Direct call file#Object#print on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_13); /* Direct call array#ArrayIterator#finish on */ } +var_cla = var_; } else { } if (var_cla == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 264); -show_backtrace(1); +var24 = 1; /* is null */ } else { -var98 = standard___standard__SequenceRead___Collection__first(var_cla); +var24 = 0; /* arg is null but recv is not */ } -var = var98; -goto RET_LABEL; -RET_LABEL:; -return var; +if (0) { +var25 = standard___standard__Array___standard__kernel__Object___61d_61d(var_cla, ((val*)NULL)); +var24 = var25; } -/* method model#MModule#try_get_primitive_method for (self: MModule, String, MClass): nullable MMethod */ -val* nit__model___MModule___try_get_primitive_method(val* self, val* p0, val* p1) { -val* var /* : nullable MMethod */; -val* var_name /* var name: String */; -val* var_recv /* var recv: MClass */; -val* var1 /* : Model */; -val* var3 /* : Model */; -val* var4 /* : nullable Array[MProperty] */; -val* var_props /* var props: nullable Array[MProperty] */; -val* var5 /* : null */; -short int var6 /* : Bool */; -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] */; -val* var_11 /* var : ArrayIterator[MProperty] */; -short int var12 /* : Bool */; -val* var13 /* : nullable Object */; -val* var_mprop /* var mprop: MProperty */; -short int var14 /* : Bool */; -int cltype; -int idtype; -val* var15 /* : MClassDef */; -val* var17 /* : MClassDef */; -val* var_intro /* var intro: MClassDef */; -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* var26 /* : POSetElement[MModule] */; -val* var28 /* : POSetElement[MModule] */; -val* var29 /* : Collection[nullable 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[nullable Object] */; -short int var39 /* : Bool */; -short int var40 /* : Bool */; -val* var41 /* : null */; -short int var42 /* : Bool */; -short int var43 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var45 /* : Bool */; -short int var47 /* : Bool */; -short int var48 /* : Bool */; -val* var_other50 /* var other: nullable Object */; -short int var51 /* : Bool */; -short int var52 /* : Bool */; -static val* varonce; -val* var53 /* : String */; -char* var54 /* : NativeString */; -long var55 /* : Int */; -val* var56 /* : FlatString */; -static val* varonce57; -val* var58 /* : String */; -char* var59 /* : NativeString */; -long var60 /* : Int */; -val* var61 /* : FlatString */; -val* var62 /* : String */; -static val* varonce63; -val* var64 /* : String */; -char* var65 /* : NativeString */; -long var66 /* : Int */; -val* var67 /* : FlatString */; -val* var68 /* : String */; -val* var69 /* : Array[Object] */; -long var70 /* : Int */; -val* var71 /* : NativeArray[Object] */; -val* var72 /* : String */; -var_name = p0; -var_recv = p1; +var_26 = var24; +if (var24){ +var23 = var_26; +} else { +{ +var27 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_cla); +} +var23 = var27; +} +if (var23){ +if (likely(varonce!=NULL)) { +var29 = varonce; +} else { +var30 = "Bool"; +var31 = standard___standard__NativeString___to_s_with_length(var30, 4l); +var29 = var31; +varonce = var29; +} +{ +var32 = ((short int(*)(val* self, val* p0))(var_name->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_name, var29); /* == on */ +} +var_33 = var32; +if (var32){ { { /* Inline mmodule#MModule#model (self) on */ -var3 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ -if (unlikely(var3 == NULL)) { +var36 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ +if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); -show_backtrace(1); +fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } +if (likely(varonce37!=NULL)) { +var38 = varonce37; +} else { +var39 = "Object"; +var40 = standard___standard__NativeString___to_s_with_length(var39, 6l); +var38 = var40; +varonce37 = var38; +} { -var4 = nit__model___Model___get_mproperties_by_name(var1, var_name); +var41 = nit__model___Model___get_mclasses_by_name(var34, var38); } -var_props = var4; -var5 = NULL; -if (var_props == NULL) { -var6 = 1; /* is null */ +if (var41 == NULL) { +var42 = 0; /* is null */ } else { -var6 = 0; /* arg is null but recv is not */ +var42 = 1; /* arg is null and recv is not */ } if (0) { -var7 = standard___standard__Array___standard__kernel__Object___61d_61d(var_props, var5); -var6 = var7; +{ /* Inline kernel#Object#!= (var41,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var45 = ((short int(*)(val* self, val* p0))(var41->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var41, var_other); /* == on */ } -if (var6){ -var8 = NULL; -var = var8; -goto RET_LABEL; +var46 = !var45; +var43 = var46; +goto RET_LABEL44; +RET_LABEL44:(void)0; +} +var42 = var43; +} +var28 = var42; } else { +var28 = var_33; } -var9 = NULL; -var_res = var9; -var_ = var_props; +if (var28){ +var47 = NEW_nit__MClass(&type_nit__MClass); +var48 = glob_sys; { -var10 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var49 = nit__model___standard__Sys___enum_kind(var48); } -var_11 = var10; -for(;;) { +var50 = glob_sys; { -var12 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11); +var51 = nit__model_base___standard__Sys___public_visibility(var50); } -if (var12){ { -var13 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11); +((void(*)(val* self, val* p0))(var47->class->vft[COLOR_nit__model__MClass__intro_mmodule_61d]))(var47, self); /* intro_mmodule= on */ } -var_mprop = var13; -/* isa MMethod */ -cltype = type_nit__MMethod.color; -idtype = type_nit__MMethod.id; -if(cltype >= var_mprop->type->table_size) { -var14 = 0; -} else { -var14 = var_mprop->type->type_table[cltype] == idtype; +{ +((void(*)(val* self, val* p0))(var47->class->vft[COLOR_nit__model__MClass__name_61d]))(var47, var_name); /* name= on */ } -if (unlikely(!var14)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 274); -show_backtrace(1); +{ +((void(*)(val* self, val* p0))(var47->class->vft[COLOR_nit__model__MClass__setup_parameter_names]))(var47, ((val*)NULL)); /* setup_parameter_names on */ } { -{ /* Inline model#MProperty#intro_mclassdef (var_mprop) on */ -var17 = var_mprop->attrs[COLOR_nit__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", FILE_nit__model, 1736); -show_backtrace(1); +((void(*)(val* self, val* p0))(var47->class->vft[COLOR_nit__model__MClass__kind_61d]))(var47, var49); /* kind= on */ } -var15 = var17; -RET_LABEL16:(void)0; +{ +((void(*)(val* self, val* p0))(var47->class->vft[COLOR_nit__model__MClass__visibility_61d]))(var47, var51); /* visibility= on */ } +{ +((void(*)(val* self))(var47->class->vft[COLOR_standard__kernel__Object__init]))(var47); /* init on */ } -var_intro = var15; +var_c52 = var47; +var53 = NEW_nit__MClassDef(&type_nit__MClassDef); { -{ /* Inline model#MClass#mclassdefs (var_recv) on */ -var20 = var_recv->attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on */ -if (unlikely(var20 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 417); -show_backtrace(1); +{ /* Inline model#MClass#mclass_type (var_c52) on */ +var56 = var_c52->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var56 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var18 = var20; -RET_LABEL19:(void)0; +var54 = var56; +RET_LABEL55:(void)0; } } -var_21 = var18; +var57 = NEW_nit__Location(&type_nit__Location); { -var22 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_21); +((void(*)(val* self, val* p0))(var57->class->vft[COLOR_nit__location__Location__file_61d]))(var57, ((val*)NULL)); /* file= on */ } -var_23 = var22; -for(;;) { { -var24 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_23); +((void(*)(val* self, long p0))(var57->class->vft[COLOR_nit__location__Location__line_start_61d]))(var57, 0l); /* line_start= on */ } -if (var24){ { -var25 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_23); +((void(*)(val* self, long p0))(var57->class->vft[COLOR_nit__location__Location__line_end_61d]))(var57, 0l); /* line_end= on */ } -var_mclassdef = var25; { -{ /* Inline mmodule#MModule#in_importation (self) on */ -var28 = self->attrs[COLOR_nit__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", FILE_nit__mmodule, 96); -show_backtrace(1); -} -var26 = var28; -RET_LABEL27:(void)0; +((void(*)(val* self, long p0))(var57->class->vft[COLOR_nit__location__Location__column_start_61d]))(var57, 0l); /* column_start= on */ } +{ +((void(*)(val* self, long p0))(var57->class->vft[COLOR_nit__location__Location__column_end_61d]))(var57, 0l); /* column_end= on */ } { -var29 = poset___poset__POSetElement___greaters(var26); +((void(*)(val* self))(var57->class->vft[COLOR_standard__kernel__Object__init]))(var57); /* init on */ } { -{ /* Inline model#MClassDef#mmodule (var_mclassdef) on */ -var32 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var32 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +((void(*)(val* self, val* p0))(var53->class->vft[COLOR_nit__model__MClassDef__mmodule_61d]))(var53, self); /* mmodule= on */ } -var30 = var32; -RET_LABEL31:(void)0; +{ +((void(*)(val* self, val* p0))(var53->class->vft[COLOR_nit__model__MClassDef__bound_mtype_61d]))(var53, var54); /* bound_mtype= on */ } +{ +((void(*)(val* self, val* p0))(var53->class->vft[COLOR_nit__model__MClassDef__location_61d]))(var53, var57); /* location= on */ } { -var33 = ((short int (*)(val* self, val* p0))(var29->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var29, var30) /* has on */; +((void(*)(val* self))(var53->class->vft[COLOR_standard__kernel__Object__init]))(var53); /* init on */ } -var34 = !var33; -if (var34){ -goto BREAK_label; -} else { +var_cladef = var53; +var58 = NEW_standard__Array(&type_standard__Array__nit__MClassType); +{ +standard___standard__Array___with_capacity(var58, 1l); /* Direct call array#Array#with_capacity on */ } +var_59 = var58; { -{ /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on */ -var37 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___in_hierarchy].val; /* _in_hierarchy on */ -var35 = var37; -RET_LABEL36:(void)0; +var60 = nit__model___MModule___object_type(self); } +{ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_59, var60); /* Direct call array#AbstractArray#push on */ } -if (var35 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 278); -show_backtrace(1); -} else { -var38 = poset___poset__POSetElement___greaters(var35); +{ +nit___nit__MClassDef___set_supertypes(var_cladef, var_59); /* Direct call model#MClassDef#set_supertypes on */ } { -var39 = ((short int (*)(val* self, val* p0))(var38->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var38, var_intro) /* has on */; +nit___nit__MClassDef___add_in_hierarchy(var_cladef); /* Direct call model#MClassDef#add_in_hierarchy on */ } -var40 = !var39; -if (var40){ -goto BREAK_label; +var = var_c52; +goto RET_LABEL; } else { } -var41 = NULL; -if (var_res == NULL) { -var42 = 1; /* is null */ +var61 = glob_sys; +if (unlikely(varonce62==NULL)) { +var63 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce64!=NULL)) { +var65 = varonce64; } else { -var42 = 0; /* arg is null but recv is not */ -} -if (0) { -{ /* Inline kernel#Object#== (var_res,var41) on */ -var_other = var41; -{ -{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ -var47 = var_res == var_other; -var45 = var47; -goto RET_LABEL46; -RET_LABEL46:(void)0; +var66 = "Fatal Error: no primitive class "; +var67 = standard___standard__NativeString___to_s_with_length(var66, 32l); +var65 = var67; +varonce64 = var65; } +((struct instance_standard__NativeArray*)var63)->values[0]=var65; +if (likely(varonce68!=NULL)) { +var69 = varonce68; +} else { +var70 = " in "; +var71 = standard___standard__NativeString___to_s_with_length(var70, 4l); +var69 = var71; +varonce68 = var69; } -var43 = var45; -goto RET_LABEL44; -RET_LABEL44:(void)0; +((struct instance_standard__NativeArray*)var63)->values[2]=var69; +} else { +var63 = varonce62; +varonce62 = NULL; } -var42 = var43; +((struct instance_standard__NativeArray*)var63)->values[1]=var_name; +{ +var72 = ((val*(*)(val* self))(self->class->vft[COLOR_standard__string__Object__to_s]))(self); /* to_s on */ } -if (var42){ -var_res = var_mprop; -} else { +((struct instance_standard__NativeArray*)var63)->values[3]=var72; { -{ /* Inline kernel#Object#!= (var_res,var_mprop) on */ -var_other50 = var_mprop; +var73 = ((val*(*)(val* self))(var63->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var63); /* native_to_s on */ +} +varonce62 = var63; { -var51 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other50) /* == on */; +standard__file___Sys___print(var61, var73); /* Direct call file#Sys#print on */ } -var52 = !var51; -var48 = var52; -goto RET_LABEL49; -RET_LABEL49:(void)0; +var74 = glob_sys; +{ +{ /* Inline kernel#Sys#exit (var74,1l) on */ +exit(1l); +RET_LABEL75:(void)0; } } -if (var48){ -if (varonce) { -var53 = varonce; } else { -var54 = "Fatal Error: ambigous property name \'"; -var55 = 37; -var56 = standard___standard__NativeString___to_s_with_length(var54, var55); -var53 = var56; -varonce = var53; } -if (varonce57) { -var58 = varonce57; +if (var_cla == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 272); +fatal_exit(1); } else { -var59 = "\'; conflict between "; -var60 = 20; -var61 = standard___standard__NativeString___to_s_with_length(var59, var60); -var58 = var61; -varonce57 = var58; +{ /* 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", FILE_standard__array, 26); +fatal_exit(1); +} +var78 = var_cla->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var76 = var78; +RET_LABEL77:(void)0; +} } { -var62 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop); +{ /* Inline kernel#Int#!= (var76,1l) on */ +var81 = var76 == 1l; +var82 = !var81; +var79 = var82; +goto RET_LABEL80; +RET_LABEL80:(void)0; } -if (varonce63) { -var64 = varonce63; +} +if (var79){ +if (unlikely(varonce83==NULL)) { +var84 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce85!=NULL)) { +var86 = varonce85; } else { -var65 = " and "; -var66 = 5; -var67 = standard___standard__NativeString___to_s_with_length(var65, var66); -var64 = var67; -varonce63 = var64; +var87 = "Fatal Error: more than one primitive class "; +var88 = standard___standard__NativeString___to_s_with_length(var87, 43l); +var86 = var88; +varonce85 = var86; } -{ -var68 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_res); +((struct instance_standard__NativeArray*)var84)->values[0]=var86; +if (likely(varonce89!=NULL)) { +var90 = varonce89; +} else { +var91 = " in "; +var92 = standard___standard__NativeString___to_s_with_length(var91, 4l); +var90 = var92; +varonce89 = var90; } -var69 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var69 = array_instance Array[Object] */ -var70 = 6; -var71 = NEW_standard__NativeArray(var70, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var71)->values[0] = (val*) var53; -((struct instance_standard__NativeArray*)var71)->values[1] = (val*) var_name; -((struct instance_standard__NativeArray*)var71)->values[2] = (val*) var58; -((struct instance_standard__NativeArray*)var71)->values[3] = (val*) var62; -((struct instance_standard__NativeArray*)var71)->values[4] = (val*) var64; -((struct instance_standard__NativeArray*)var71)->values[5] = (val*) var68; -{ -((void (*)(val* self, val* p0, long p1))(var69->class->vft[COLOR_standard__array__Array__with_native]))(var69, var71, var70) /* with_native on */; +((struct instance_standard__NativeArray*)var84)->values[2]=var90; +if (likely(varonce93!=NULL)) { +var94 = varonce93; +} else { +var95 = ":"; +var96 = standard___standard__NativeString___to_s_with_length(var95, 1l); +var94 = var96; +varonce93 = var94; } +((struct instance_standard__NativeArray*)var84)->values[4]=var94; +} else { +var84 = varonce83; +varonce83 = NULL; } +((struct instance_standard__NativeArray*)var84)->values[1]=var_name; { -var72 = ((val* (*)(val* self))(var69->class->vft[COLOR_standard__string__Object__to_s]))(var69) /* to_s on */; +var97 = ((val*(*)(val* self))(self->class->vft[COLOR_standard__string__Object__to_s]))(self); /* to_s on */ } +((struct instance_standard__NativeArray*)var84)->values[3]=var97; { -standard__file___Object___print(self, var72); /* Direct call file#Object#print on */ +var98 = ((val*(*)(val* self))(var84->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var84); /* native_to_s on */ } -PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 283); -show_backtrace(1); +varonce83 = var84; +var_msg = var98; +var_99 = var_cla; +if (var_99 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 274); +fatal_exit(1); } else { +var100 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_99); } +var_101 = var100; +for(;;) { +{ +var102 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_101); } -BREAK_label: (void)0; +if (var102){ { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_23); /* Direct call array#ArrayIterator#next on */ +var103 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_101); +} +var_c104 = var103; +if (unlikely(varonce105==NULL)) { +var106 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String); +if (likely(varonce107!=NULL)) { +var108 = varonce107; +} else { +var109 = " "; +var110 = standard___standard__NativeString___to_s_with_length(var109, 1l); +var108 = var110; +varonce107 = var108; } +((struct instance_standard__NativeArray*)var106)->values[0]=var108; } else { -goto BREAK_label73; +var106 = varonce105; +varonce105 = NULL; } +{ +var111 = nit___nit__MClass___nit__model_base__MEntity__full_name(var_c104); } -BREAK_label73: (void)0; +((struct instance_standard__NativeArray*)var106)->values[1]=var111; { -{ /* Inline abstract_collection#Iterator#finish (var_23) on */ -RET_LABEL74:(void)0; +var112 = ((val*(*)(val* self))(var106->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var106); /* native_to_s on */ } +varonce105 = var106; +{ +var113 = ((val*(*)(val* self, val* p0))(var_msg->class->vft[COLOR_standard__string__String___43d]))(var_msg, var112); /* + on */ } +var_msg = var113; { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_11); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_101); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label75; +goto BREAK_label114; } } -BREAK_label75: (void)0; +BREAK_label114: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_11) on */ -RET_LABEL76:(void)0; +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_101); /* Direct call array#ArrayIterator#finish on */ } +var115 = glob_sys; +{ +standard__file___Sys___print(var115, var_msg); /* Direct call file#Sys#print on */ } -var = var_res; -goto RET_LABEL; -RET_LABEL:; -return var; +} else { } -/* method model#MClassDefSorter#mmodule for (self: MClassDefSorter): MModule */ -val* nit__model___nit__model__MClassDefSorter___mmodule(val* self) { -val* var /* : MModule */; -val* var1 /* : MModule */; -var1 = self->attrs[COLOR_nit__model__MClassDefSorter___mmodule].val; /* _mmodule on */ -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 294); -show_backtrace(1); +if (var_cla == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 278); +fatal_exit(1); +} else { +var116 = standard___standard__SequenceRead___Collection__first(var_cla); } -var = var1; +var = var116; +goto RET_LABEL; RET_LABEL:; return var; } -/* method model#MClassDefSorter#mmodule= for (self: MClassDefSorter, MModule) */ -void nit__model___nit__model__MClassDefSorter___mmodule_61d(val* self, val* p0) { -self->attrs[COLOR_nit__model__MClassDefSorter___mmodule].val = p0; /* _mmodule on */ -RET_LABEL:; -} -/* method model#MClassDefSorter#compare for (self: MClassDefSorter, MClassDef, MClassDef): Int */ -long nit__model___nit__model__MClassDefSorter___standard__sorter__Comparator__compare(val* self, val* p0, val* p1) { -long var /* : Int */; -short int var1 /* : Bool */; +/* method model#MModule#try_get_primitive_method for (self: MModule, String, MClass): nullable MMethod */ +val* nit__model___MModule___try_get_primitive_method(val* self, val* p0, val* p1) { +val* var /* : nullable MMethod */; +val* var_name /* var name: String */; +val* var_recv /* var recv: MClass */; +val* var1 /* : Model */; +val* var3 /* : Model */; +val* var4 /* : nullable Array[MProperty] */; +val* var_props /* var props: nullable Array[MProperty] */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +val* var_res /* var res: nullable MMethod */; +val* var_ /* var : Array[MProperty] */; +val* var7 /* : ArrayIterator[nullable Object] */; +val* var_8 /* var : ArrayIterator[MProperty] */; +short int var9 /* : Bool */; +val* var10 /* : nullable Object */; +val* var_mprop /* var mprop: MProperty */; +short int var11 /* : Bool */; int cltype; int idtype; -const struct type* type_struct; -const char* var_class_name; -short int var2 /* : Bool */; -int cltype3; -int idtype4; -const struct type* type_struct5; -const char* var_class_name6; -val* var_a /* var a: MClassDef */; -val* var_b /* var b: MClassDef */; -val* var7 /* : MClass */; -val* var9 /* : MClass */; -val* var_ca /* var ca: MClass */; -val* var10 /* : MClass */; +val* var12 /* : MClassDef */; +val* var14 /* : MClassDef */; +val* var_intro /* var intro: MClassDef */; +val* var15 /* : Array[MClassDef] */; +val* var17 /* : Array[MClassDef] */; +val* var_18 /* var : Array[MClassDef] */; +val* var19 /* : ArrayIterator[nullable Object] */; +val* var_20 /* var : ArrayIterator[MClassDef] */; +short int var21 /* : Bool */; +val* var22 /* : nullable Object */; +val* var_mclassdef /* var mclassdef: MClassDef */; +val* var23 /* : POSetElement[MModule] */; +val* var25 /* : POSetElement[MModule] */; +val* var26 /* : Collection[nullable 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[nullable Object] */; +short int var36 /* : Bool */; +short int var37 /* : Bool */; +short int var38 /* : Bool */; +short int var39 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var41 /* : Bool */; +short int var43 /* : Bool */; +short int var44 /* : Bool */; +val* var_other46 /* var other: nullable Object */; +short int var47 /* : Bool */; +short int var48 /* : Bool */; +val* var49 /* : Sys */; +val* var50 /* : NativeArray[String] */; +static val* varonce; +static val* varonce51; +val* var52 /* : String */; +char* var53 /* : NativeString */; +val* var54 /* : FlatString */; +static val* varonce55; +val* var56 /* : String */; +char* var57 /* : NativeString */; +val* var58 /* : FlatString */; +static val* varonce59; +val* var60 /* : String */; +char* var61 /* : NativeString */; +val* var62 /* : FlatString */; +val* var63 /* : String */; +val* var64 /* : String */; +val* var65 /* : String */; +var_name = p0; +var_recv = p1; +{ +{ /* Inline mmodule#MModule#model (self) on */ +var3 = self->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); +fatal_exit(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = nit__model___Model___get_mproperties_by_name(var1, var_name); +} +var_props = var4; +if (var_props == NULL) { +var5 = 1; /* is null */ +} else { +var5 = 0; /* arg is null but recv is not */ +} +if (0) { +var6 = standard___standard__Array___standard__kernel__Object___61d_61d(var_props, ((val*)NULL)); +var5 = var6; +} +if (var5){ +var = ((val*)NULL); +goto RET_LABEL; +} else { +} +var_res = ((val*)NULL); +var_ = var_props; +{ +var7 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +} +var_8 = var7; +for(;;) { +{ +var9 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_8); +} +if (var9){ +{ +var10 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_8); +} +var_mprop = var10; +/* isa MMethod */ +cltype = type_nit__MMethod.color; +idtype = type_nit__MMethod.id; +if(cltype >= var_mprop->type->table_size) { +var11 = 0; +} else { +var11 = var_mprop->type->type_table[cltype] == idtype; +} +if (unlikely(!var11)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 288); +fatal_exit(1); +} +{ +{ /* Inline model#MProperty#intro_mclassdef (var_mprop) on */ +var14 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1928); +fatal_exit(1); +} +var12 = var14; +RET_LABEL13:(void)0; +} +} +var_intro = var12; +{ +{ /* Inline model#MClass#mclassdefs (var_recv) on */ +var17 = var_recv->attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 454); +fatal_exit(1); +} +var15 = var17; +RET_LABEL16:(void)0; +} +} +var_18 = var15; +{ +var19 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_18); +} +var_20 = var19; +for(;;) { +{ +var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_20); +} +if (var21){ +{ +var22 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_20); +} +var_mclassdef = var22; +{ +{ /* Inline mmodule#MModule#in_importation (self) on */ +var25 = self->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96); +fatal_exit(1); +} +var23 = var25; +RET_LABEL24:(void)0; +} +} +{ +var26 = poset___poset__POSetElement___greaters(var23); +} +{ +{ /* Inline model#MClassDef#mmodule (var_mclassdef) on */ +var29 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var29 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); +} +var27 = var29; +RET_LABEL28:(void)0; +} +} +{ +var30 = ((short int(*)(val* self, val* p0))((((long)var26&3)?class_info[((long)var26&3)]:var26->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var26, var27); /* has on */ +} +var31 = !var30; +if (var31){ +goto BREAK_label; +} else { +} +{ +{ /* Inline model#MClassDef#in_hierarchy (var_mclassdef) on */ +var34 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___in_hierarchy].val; /* _in_hierarchy on */ +var32 = var34; +RET_LABEL33:(void)0; +} +} +if (var32 == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 292); +fatal_exit(1); +} else { +var35 = poset___poset__POSetElement___greaters(var32); +} +{ +var36 = ((short int(*)(val* self, val* p0))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var35, var_intro); /* has on */ +} +var37 = !var36; +if (var37){ +goto BREAK_label; +} else { +} +if (var_res == NULL) { +var38 = 1; /* is null */ +} else { +var38 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ +var43 = var_res == var_other; +var41 = var43; +goto RET_LABEL42; +RET_LABEL42:(void)0; +} +} +var39 = var41; +goto RET_LABEL40; +RET_LABEL40:(void)0; +} +var38 = var39; +} +if (var38){ +var_res = var_mprop; +} else { +{ +{ /* Inline kernel#Object#!= (var_res,var_mprop) on */ +var_other46 = var_mprop; +{ +var47 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other46); /* == on */ +} +var48 = !var47; +var44 = var48; +goto RET_LABEL45; +RET_LABEL45:(void)0; +} +} +if (var44){ +var49 = glob_sys; +if (unlikely(varonce==NULL)) { +var50 = NEW_standard__NativeArray(6l, &type_standard__NativeArray__standard__String); +if (likely(varonce51!=NULL)) { +var52 = varonce51; +} else { +var53 = "Fatal Error: ambigous property name \'"; +var54 = standard___standard__NativeString___to_s_with_length(var53, 37l); +var52 = var54; +varonce51 = var52; +} +((struct instance_standard__NativeArray*)var50)->values[0]=var52; +if (likely(varonce55!=NULL)) { +var56 = varonce55; +} else { +var57 = "\'; conflict between "; +var58 = standard___standard__NativeString___to_s_with_length(var57, 20l); +var56 = var58; +varonce55 = var56; +} +((struct instance_standard__NativeArray*)var50)->values[2]=var56; +if (likely(varonce59!=NULL)) { +var60 = varonce59; +} else { +var61 = " and "; +var62 = standard___standard__NativeString___to_s_with_length(var61, 5l); +var60 = var62; +varonce59 = var60; +} +((struct instance_standard__NativeArray*)var50)->values[4]=var60; +} else { +var50 = varonce; +varonce = NULL; +} +((struct instance_standard__NativeArray*)var50)->values[1]=var_name; +{ +var63 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop); +} +((struct instance_standard__NativeArray*)var50)->values[3]=var63; +{ +var64 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_res); +} +((struct instance_standard__NativeArray*)var50)->values[5]=var64; +{ +var65 = ((val*(*)(val* self))(var50->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var50); /* native_to_s on */ +} +varonce = var50; +{ +standard__file___Sys___print(var49, var65); /* Direct call file#Sys#print on */ +} +PRINT_ERROR("Runtime error: %s", "Aborted"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 297); +fatal_exit(1); +} else { +} +} +BREAK_label: (void)0; +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_20); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label66; +} +} +BREAK_label66: (void)0; +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_20); /* Direct call array#ArrayIterator#finish on */ +} +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_8); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label67; +} +} +BREAK_label67: (void)0; +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_8); /* Direct call array#ArrayIterator#finish on */ +} +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method model#MClassDefSorter#mmodule for (self: MClassDefSorter): MModule */ +val* nit__model___nit__model__MClassDefSorter___mmodule(val* self) { +val* var /* : MModule */; +val* var1 /* : MModule */; +var1 = self->attrs[COLOR_nit__model__MClassDefSorter___mmodule].val; /* _mmodule on */ +if (unlikely(var1 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 308); +fatal_exit(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method model#MClassDefSorter#mmodule= for (self: MClassDefSorter, MModule) */ +void nit__model___nit__model__MClassDefSorter___mmodule_61d(val* self, val* p0) { +self->attrs[COLOR_nit__model__MClassDefSorter___mmodule].val = p0; /* _mmodule on */ +RET_LABEL:; +} +/* method model#MClassDefSorter#compare for (self: MClassDefSorter, MClassDef, MClassDef): Int */ +long nit__model___nit__model__MClassDefSorter___standard__sorter__Comparator__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 struct type* type_struct5; +const char* var_class_name6; +val* var_a /* var a: MClassDef */; +val* var_b /* var b: MClassDef */; +val* var7 /* : MClass */; +val* var9 /* : MClass */; +val* var_ca /* var ca: MClass */; +val* var10 /* : MClass */; val* var12 /* : MClass */; val* var_cb /* var cb: MClass */; short int var13 /* : Bool */; @@ -1846,8 +2254,8 @@ 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`", "COMPARED", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 295); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 309); +fatal_exit(1); } /* Covariant cast for argument 1 (b) isa COMPARED */ /* isa COMPARED */ @@ -1862,8 +2270,8 @@ var2 = p1->type->type_table[cltype3] == idtype4; if (unlikely(!var2)) { 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", FILE_nit__model, 295); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 309); +fatal_exit(1); } var_a = p0; var_b = p1; @@ -1872,8 +2280,8 @@ var_b = p1; var9 = var_a->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -1885,8 +2293,8 @@ var_ca = var7; var12 = var_b->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var10 = var12; RET_LABEL11:(void)0; @@ -1897,7 +2305,7 @@ var_cb = var10; { /* Inline kernel#Object#!= (var_ca,var_cb) on */ var_other = var_cb; { -var15 = ((short int (*)(val* self, val* p0))(var_ca->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ca, var_other) /* == on */; +var15 = ((short int(*)(val* self, val* p0))(var_ca->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ca, var_other); /* == on */ } var16 = !var15; var13 = var16; @@ -1911,8 +2319,8 @@ if (var13){ var19 = self->attrs[COLOR_nit__model__MClassDefSorter___mmodule].val; /* _mmodule on */ if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 294); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 308); +fatal_exit(1); } var17 = var19; RET_LABEL18:(void)0; @@ -1933,8 +2341,8 @@ goto RET_LABEL; var24 = self->attrs[COLOR_nit__model__MClassDefSorter___mmodule].val; /* _mmodule on */ if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 294); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 308); +fatal_exit(1); } var22 = var24; RET_LABEL23:(void)0; @@ -1946,7 +2354,7 @@ var27 = var22->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on attrs[COLOR_nit__model__Model___mclassdef_hierarchy].val; /* _mcl if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 40); -show_backtrace(1); +fatal_exit(1); } var28 = var30; RET_LABEL29:(void)0; @@ -1975,7 +2383,7 @@ return var; /* method model#MClassDefSorter#init for (self: MClassDefSorter) */ void nit__model___nit__model__MClassDefSorter___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_nit__model___nit__model__MClassDefSorter___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit__model___nit__model__MClassDefSorter___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } @@ -1986,8 +2394,8 @@ val* var1 /* : MModule */; var1 = self->attrs[COLOR_nit__model__MPropDefSorter___mmodule].val; /* _mmodule on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 307); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 321); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -2053,8 +2461,8 @@ 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`", "COMPARED", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 308); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 322); +fatal_exit(1); } /* Covariant cast for argument 1 (pb) isa COMPARED */ /* isa COMPARED */ @@ -2069,8 +2477,8 @@ var2 = p1->type->type_table[cltype3] == idtype4; if (unlikely(!var2)) { 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", FILE_nit__model, 308); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 322); +fatal_exit(1); } var_pa = p0; var_pb = p1; @@ -2079,8 +2487,8 @@ var_pb = p1; var9 = var_pa->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -2092,8 +2500,8 @@ var_a = var7; var12 = var_pb->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on */ if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209); +fatal_exit(1); } var10 = var12; RET_LABEL11:(void)0; @@ -2105,8 +2513,8 @@ var_b = var10; var15 = var_a->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var13 = var15; RET_LABEL14:(void)0; @@ -2118,8 +2526,8 @@ var_ca = var13; var18 = var_b->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var16 = var18; RET_LABEL17:(void)0; @@ -2130,7 +2538,7 @@ var_cb = var16; { /* Inline kernel#Object#!= (var_ca,var_cb) on */ var_other = var_cb; { -var21 = ((short int (*)(val* self, val* p0))(var_ca->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ca, var_other) /* == on */; +var21 = ((short int(*)(val* self, val* p0))(var_ca->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ca, var_other); /* == on */ } var22 = !var21; var19 = var22; @@ -2144,8 +2552,8 @@ if (var19){ var25 = self->attrs[COLOR_nit__model__MPropDefSorter___mmodule].val; /* _mmodule on */ if (unlikely(var25 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 307); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 321); +fatal_exit(1); } var23 = var25; RET_LABEL24:(void)0; @@ -2166,8 +2574,8 @@ goto RET_LABEL; var30 = self->attrs[COLOR_nit__model__MPropDefSorter___mmodule].val; /* _mmodule on */ if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 307); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 321); +fatal_exit(1); } var28 = var30; RET_LABEL29:(void)0; @@ -2179,7 +2587,7 @@ var33 = var28->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on attrs[COLOR_nit__model__Model___mclassdef_hierarchy].val; /* _mcl if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 40); -show_backtrace(1); +fatal_exit(1); } var34 = var36; RET_LABEL35:(void)0; @@ -2208,7 +2616,7 @@ return var; /* method model#MPropDefSorter#init for (self: MPropDefSorter) */ void nit__model___nit__model__MPropDefSorter___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_nit__model___nit__model__MPropDefSorter___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit__model___nit__model__MPropDefSorter___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } @@ -2219,8 +2627,8 @@ val* var1 /* : MModule */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -2238,8 +2646,8 @@ val* var1 /* : String */; var1 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -2256,95 +2664,91 @@ val* var /* : String */; short int var1 /* : Bool */; val* var2 /* : String */; val* var3 /* : String */; -val* var5 /* : MModule */; -val* var7 /* : MModule */; -val* var8 /* : MVisibility */; -val* var10 /* : MVisibility */; -val* var11 /* : String */; +val* var5 /* : NativeArray[String] */; static val* varonce; -val* var12 /* : String */; -char* var13 /* : NativeString */; -long var14 /* : Int */; -val* var15 /* : FlatString */; +static val* varonce6; +val* var7 /* : String */; +char* var8 /* : NativeString */; +val* var9 /* : FlatString */; +val* var10 /* : MModule */; +val* var12 /* : MModule */; +val* var13 /* : MVisibility */; +val* var15 /* : MVisibility */; val* var16 /* : String */; -val* var18 /* : String */; -val* var19 /* : Array[Object] */; -long var20 /* : Int */; -val* var21 /* : NativeArray[Object] */; -val* var22 /* : String */; -var1 = self->attrs[COLOR_nit__model__MClass___full_name].val != NULL; /* _full_name on */ -if(likely(var1)) { +val* var17 /* : String */; +val* var19 /* : String */; +val* var20 /* : String */; +var1 = self->attrs[COLOR_nit__model__MClass___full_name].val != NULL; /* _full_name on */ +if(likely(var1)) { var2 = self->attrs[COLOR_nit__model__MClass___full_name].val; /* _full_name on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 352); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 366); +fatal_exit(1); } } else { { +if (unlikely(varonce==NULL)) { +var5 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce6!=NULL)) { +var7 = varonce6; +} else { +var8 = "::"; +var9 = standard___standard__NativeString___to_s_with_length(var8, 2l); +var7 = var9; +varonce6 = var7; +} +((struct instance_standard__NativeArray*)var5)->values[1]=var7; +} else { +var5 = varonce; +varonce = NULL; +} { { /* Inline model#MClass#intro_mmodule (self) on */ -var7 = self->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var7 == NULL)) { +var12 = self->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } -var5 = var7; -RET_LABEL6:(void)0; +var10 = var12; +RET_LABEL11:(void)0; } } { { /* Inline model#MClass#visibility (self) on */ -var10 = self->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ -if (unlikely(var10 == NULL)) { +var15 = self->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 440); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } { -var11 = nit___nit__MModule___namespace_for(var5, var8); -} -if (varonce) { -var12 = varonce; -} else { -var13 = "::"; -var14 = 2; -var15 = standard___standard__NativeString___to_s_with_length(var13, var14); -var12 = var15; -varonce = var12; +var16 = nit___nit__MModule___namespace_for(var10, var13); } +((struct instance_standard__NativeArray*)var5)->values[0]=var16; { { /* Inline model#MClass#name (self) on */ -var18 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var18 == NULL)) { +var19 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); -} -var16 = var18; -RET_LABEL17:(void)0; -} +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } -var19 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var19 = array_instance Array[Object] */ -var20 = 3; -var21 = NEW_standard__NativeArray(var20, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var21)->values[0] = (val*) var11; -((struct instance_standard__NativeArray*)var21)->values[1] = (val*) var12; -((struct instance_standard__NativeArray*)var21)->values[2] = (val*) var16; -{ -((void (*)(val* self, val* p0, long p1))(var19->class->vft[COLOR_standard__array__Array__with_native]))(var19, var21, var20) /* with_native on */; +var17 = var19; +RET_LABEL18:(void)0; } } +((struct instance_standard__NativeArray*)var5)->values[2]=var17; { -var22 = ((val* (*)(val* self))(var19->class->vft[COLOR_standard__string__Object__to_s]))(var19) /* to_s on */; +var20 = ((val*(*)(val* self))(var5->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var5); /* native_to_s on */ } -var3 = var22; +varonce = var5; +var3 = var20; goto RET_LABEL4; RET_LABEL4:(void)0; } @@ -2361,99 +2765,95 @@ val* var /* : String */; short int var1 /* : Bool */; val* var2 /* : String */; val* var3 /* : String */; -val* var5 /* : MModule */; -val* var7 /* : MModule */; -val* var8 /* : MVisibility */; -val* var10 /* : MVisibility */; -val* var11 /* : String */; +val* var5 /* : NativeArray[String] */; static val* varonce; -val* var12 /* : String */; -char* var13 /* : NativeString */; -long var14 /* : Int */; -val* var15 /* : FlatString */; +static val* varonce6; +val* var7 /* : String */; +char* var8 /* : NativeString */; +val* var9 /* : FlatString */; +val* var10 /* : MModule */; +val* var12 /* : MModule */; +val* var13 /* : MVisibility */; +val* var15 /* : MVisibility */; val* var16 /* : String */; -val* var18 /* : String */; +val* var17 /* : String */; val* var19 /* : String */; -val* var20 /* : Array[Object] */; -long var21 /* : Int */; -val* var22 /* : NativeArray[Object] */; -val* var23 /* : String */; +val* var20 /* : String */; +val* var21 /* : String */; var1 = self->attrs[COLOR_nit__model__MClass___c_name].val != NULL; /* _c_name on */ if(likely(var1)) { var2 = self->attrs[COLOR_nit__model__MClass___c_name].val; /* _c_name on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 360); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 374); +fatal_exit(1); } } else { { +if (unlikely(varonce==NULL)) { +var5 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce6!=NULL)) { +var7 = varonce6; +} else { +var8 = "__"; +var9 = standard___standard__NativeString___to_s_with_length(var8, 2l); +var7 = var9; +varonce6 = var7; +} +((struct instance_standard__NativeArray*)var5)->values[1]=var7; +} else { +var5 = varonce; +varonce = NULL; +} { { /* Inline model#MClass#intro_mmodule (self) on */ -var7 = self->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var7 == NULL)) { +var12 = self->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } -var5 = var7; -RET_LABEL6:(void)0; +var10 = var12; +RET_LABEL11:(void)0; } } { { /* Inline model#MClass#visibility (self) on */ -var10 = self->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ -if (unlikely(var10 == NULL)) { +var15 = self->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 440); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } { -var11 = nit___nit__MModule___c_namespace_for(var5, var8); -} -if (varonce) { -var12 = varonce; -} else { -var13 = "__"; -var14 = 2; -var15 = standard___standard__NativeString___to_s_with_length(var13, var14); -var12 = var15; -varonce = var12; +var16 = nit___nit__MModule___c_namespace_for(var10, var13); } +((struct instance_standard__NativeArray*)var5)->values[0]=var16; { { /* Inline model#MClass#name (self) on */ -var18 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var18 == NULL)) { +var19 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); -} -var16 = var18; -RET_LABEL17:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } +var17 = var19; +RET_LABEL18:(void)0; } -{ -var19 = standard___standard__Text___to_cmangle(var16); } -var20 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var20 = array_instance Array[Object] */ -var21 = 3; -var22 = NEW_standard__NativeArray(var21, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var22)->values[0] = (val*) var11; -((struct instance_standard__NativeArray*)var22)->values[1] = (val*) var12; -((struct instance_standard__NativeArray*)var22)->values[2] = (val*) var19; { -((void (*)(val* self, val* p0, long p1))(var20->class->vft[COLOR_standard__array__Array__with_native]))(var20, var22, var21) /* with_native on */; -} +var20 = standard___standard__Text___to_cmangle(var17); } +((struct instance_standard__NativeArray*)var5)->values[2]=var20; { -var23 = ((val* (*)(val* self))(var20->class->vft[COLOR_standard__string__Object__to_s]))(var20) /* to_s on */; +var21 = ((val*(*)(val* self))(var5->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var5); /* native_to_s on */ } -var3 = var23; +varonce = var5; +var3 = var21; goto RET_LABEL4; RET_LABEL4:(void)0; } @@ -2485,8 +2885,8 @@ val* var1 /* : Array[MParameterType] */; var1 = self->attrs[COLOR_nit__model__MClass___mparameters].val; /* _mparameters on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 368); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 382); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -2497,265 +2897,544 @@ void nit___nit__MClass___mparameters_61d(val* self, val* p0) { self->attrs[COLOR_nit__model__MClass___mparameters].val = p0; /* _mparameters on */ RET_LABEL:; } -/* method model#MClass#setup_parameter_names for (self: MClass, nullable Array[String]) */ -void nit___nit__MClass___setup_parameter_names(val* self, val* p0) { -val* var_parameter_names /* var parameter_names: nullable Array[String] */; -val* var /* : null */; -short int var1 /* : Bool */; -short int var2 /* : Bool */; +/* method model#MClass#signature_to_s for (self: MClass): String */ +val* nit___nit__MClass___signature_to_s(val* self) { +val* var /* : String */; +long var1 /* : Int */; long var3 /* : Int */; -long var5 /* : Int */; -long var7 /* : Int */; -long var9 /* : Int */; -long var11 /* : Int */; -long var12 /* : Int */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; +short int var4 /* : Bool */; +short int var6 /* : Bool */; +val* var7 /* : String */; +val* var9 /* : String */; +val* var10 /* : FlatBuffer */; +val* var_res /* var res: FlatBuffer */; +val* var12 /* : String */; +val* var14 /* : String */; +static val* varonce; +val* var15 /* : String */; +char* var16 /* : NativeString */; +val* var17 /* : FlatString */; +long var_i /* var i: Int */; +long var18 /* : Int */; +long var20 /* : Int */; +long var_ /* var : Int */; +short int var21 /* : Bool */; +short int var23 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var16 /* : Bool */; -val* var17 /* : null */; -short int var18 /* : Bool */; -short int var19 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var21 /* : Bool */; -short int var22 /* : Bool */; -val* var23 /* : Array[MParameterType] */; -val* var_mparametertypes /* var mparametertypes: Array[MParameterType] */; -long var24 /* : Int */; -long var_i /* var i: Int */; -long var25 /* : Int */; -long var27 /* : Int */; -long var_ /* var : Int */; -short int var28 /* : Bool */; -short int var30 /* : Bool */; -int cltype31; -int idtype32; -const char* var_class_name33; -short int var34 /* : Bool */; -val* var35 /* : MParameterType */; -val* var36 /* : nullable Object */; -val* var_mparametertype /* var mparametertype: MParameterType */; -long var37 /* : Int */; -long var38 /* : Int */; -val* var40 /* : MGenericType */; -val* var_mclass_type /* var mclass_type: MGenericType */; -val* var42 /* : HashMap[Array[MType], MGenericType] */; -val* var44 /* : HashMap[Array[MType], MGenericType] */; -val* var45 /* : MClassType */; -var_parameter_names = p0; -var = NULL; -if (var_parameter_names == NULL) { -var1 = 1; /* is null */ -} else { -var1 = 0; /* arg is null but recv is not */ -} -if (0) { -var2 = standard___standard__Array___standard__kernel__Object___61d_61d(var_parameter_names, var); -var1 = var2; -} -if (var1){ -var3 = 0; +short int var24 /* : Bool */; +short int var25 /* : Bool */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +const char* var_class_name30; +short int var31 /* : Bool */; +static val* varonce32; +val* var33 /* : String */; +char* var34 /* : NativeString */; +val* var35 /* : FlatString */; +val* var36 /* : Array[MParameterType] */; +val* var38 /* : Array[MParameterType] */; +val* var39 /* : nullable Object */; +val* var40 /* : String */; +val* var42 /* : String */; +static val* varonce43; +val* var44 /* : String */; +char* var45 /* : NativeString */; +val* var46 /* : FlatString */; +val* var47 /* : MClassDef */; +val* var49 /* : MClassDef */; +val* var50 /* : MClassType */; +val* var52 /* : MClassType */; +val* var53 /* : Array[MType] */; +val* var54 /* : nullable Object */; +val* var55 /* : String */; +long var56 /* : Int */; +static val* varonce57; +val* var58 /* : String */; +char* var59 /* : NativeString */; +val* var60 /* : FlatString */; +val* var61 /* : String */; { -{ /* Inline model#MClass#arity= (self,var3) on */ -self->attrs[COLOR_nit__model__MClass___arity].l = var3; /* _arity on */ -RET_LABEL4:(void)0; +{ /* Inline model#MClass#arity (self) on */ +var3 = self->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var1 = var3; +RET_LABEL2:(void)0; } } -} else { { -{ /* Inline array#AbstractArrayRead#length (var_parameter_names) on */ -var7 = var_parameter_names->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var5 = var7; -RET_LABEL6:(void)0; +{ /* Inline kernel#Int#== (var1,0l) on */ +var6 = var1 == 0l; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } } +if (var4){ { -{ /* Inline model#MClass#arity= (self,var5) on */ -self->attrs[COLOR_nit__model__MClass___arity].l = var5; /* _arity on */ +{ /* Inline model#MClass#name (self) on */ +var9 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var9 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); +} +var7 = var9; RET_LABEL8:(void)0; } } +var = var7; +goto RET_LABEL; +} else { } +var10 = NEW_standard__FlatBuffer(&type_standard__FlatBuffer); { -{ /* Inline model#MClass#arity (self) on */ -var11 = self->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ -var9 = var11; -RET_LABEL10:(void)0; -} -} -var12 = 0; +{ /* Inline string#FlatBuffer#init (var10) on */ { -{ /* Inline kernel#Int#> (var9,var12) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var15 = 1; /* easy isa OTHER*/ -if (unlikely(!var15)) { -var_class_name = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412); -show_backtrace(1); -} -var16 = var9 > var12; -var13 = var16; -goto RET_LABEL14; -RET_LABEL14:(void)0; +((void(*)(val* self))(var10->class->vft[COLOR_standard___standard__FlatBuffer___standard__kernel__Object__init]))(var10); /* init on */ } +RET_LABEL11:(void)0; } -if (var13){ -var17 = NULL; -if (var_parameter_names == NULL) { -var18 = 0; /* is null */ -} else { -var18 = 1; /* arg is null and recv is not */ } -if (0) { -{ /* Inline kernel#Object#!= (var_parameter_names,var17) on */ -var_other = var17; +var_res = var10; { -var21 = ((short int (*)(val* self, val* p0))(var_parameter_names->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_parameter_names, var_other) /* == on */; +{ /* Inline model#MClass#name (self) on */ +var14 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var14 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } -var22 = !var21; -var19 = var22; -goto RET_LABEL20; -RET_LABEL20:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } -var18 = var19; } -if (unlikely(!var18)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 384); -show_backtrace(1); +{ +standard___standard__FlatBuffer___Buffer__append(var_res, var12); /* Direct call string#FlatBuffer#append on */ +} +if (likely(varonce!=NULL)) { +var15 = varonce; +} else { +var16 = "["; +var17 = standard___standard__NativeString___to_s_with_length(var16, 1l); +var15 = var17; +varonce = var15; } -var23 = NEW_standard__Array(&type_standard__Array__nit__MParameterType); { -standard___standard__Array___standard__kernel__Object__init(var23); /* Direct call array#Array#init on */ +standard___standard__FlatBuffer___Buffer__append(var_res, var15); /* Direct call string#FlatBuffer#append on */ } -var_mparametertypes = var23; -var24 = 0; -var_i = var24; +var_i = 0l; { { /* Inline model#MClass#arity (self) on */ -var27 = self->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ -var25 = var27; -RET_LABEL26:(void)0; +var20 = self->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var18 = var20; +RET_LABEL19:(void)0; } } -var_ = var25; +var_ = var18; for(;;) { { { /* Inline kernel#Int#< (var_i,var_) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var30 = 1; /* easy isa OTHER*/ -if (unlikely(!var30)) { -var_class_name33 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); -} -var34 = var_i < var_; -var28 = var34; -goto RET_LABEL29; -RET_LABEL29:(void)0; +var23 = 1; /* easy isa OTHER*/ +if (unlikely(!var23)) { +var_class_name = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } +var24 = var_i < var_; +var21 = var24; +goto RET_LABEL22; +RET_LABEL22:(void)0; } -if (var28){ -var35 = NEW_nit__MParameterType(&type_nit__MParameterType); -{ -var36 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_parameter_names, var_i); } +if (var21){ { -((void (*)(val* self, val* p0))(var35->class->vft[COLOR_nit__model__MParameterType__mclass_61d]))(var35, self) /* mclass= on */; +{ /* Inline kernel#Int#> (var_i,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var27 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var27)) { +var_class_name30 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); +} +var31 = var_i > 0l; +var25 = var31; +goto RET_LABEL26; +RET_LABEL26:(void)0; } -{ -((void (*)(val* self, long p0))(var35->class->vft[COLOR_nit__model__MParameterType__rank_61d]))(var35, var_i) /* rank= on */; } -{ -((void (*)(val* self, val* p0))(var35->class->vft[COLOR_nit__model__MParameterType__name_61d]))(var35, var36) /* name= on */; +if (var25){ +if (likely(varonce32!=NULL)) { +var33 = varonce32; +} else { +var34 = ", "; +var35 = standard___standard__NativeString___to_s_with_length(var34, 2l); +var33 = var35; +varonce32 = var33; } { -((void (*)(val* self))(var35->class->vft[COLOR_standard__kernel__Object__init]))(var35) /* init on */; +standard___standard__FlatBuffer___Buffer__append(var_res, var33); /* Direct call string#FlatBuffer#append on */ } -var_mparametertype = var35; -{ -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_mparametertypes, var_mparametertype); /* Direct call array#Array#add on */ +} else { } -var37 = 1; { -var38 = standard___standard__Int___Discrete__successor(var_i, var37); +{ /* Inline model#MClass#mparameters (self) on */ +var38 = self->attrs[COLOR_nit__model__MClass___mparameters].val; /* _mparameters on */ +if (unlikely(var38 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 382); +fatal_exit(1); } -var_i = var38; -} else { -goto BREAK_label; +var36 = var38; +RET_LABEL37:(void)0; } } -BREAK_label: (void)0; { -{ /* Inline model#MClass#mparameters= (self,var_mparametertypes) on */ -self->attrs[COLOR_nit__model__MClass___mparameters].val = var_mparametertypes; /* _mparameters on */ -RET_LABEL39:(void)0; +var39 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var36, var_i); } -} -var40 = NEW_nit__MGenericType(&type_nit__MGenericType); { -((void (*)(val* self, val* p0))(var40->class->vft[COLOR_nit__model__MClassType__mclass_61d]))(var40, self) /* mclass= on */; +{ /* Inline model#MParameterType#name (var39) on */ +var42 = var39->attrs[COLOR_nit__model__MParameterType___name].val; /* _name on */ +if (unlikely(var42 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1481); +fatal_exit(1); +} +var40 = var42; +RET_LABEL41:(void)0; +} } { -((void (*)(val* self, val* p0))(var40->class->vft[COLOR_nit__model__MClassType__arguments_61d]))(var40, var_mparametertypes) /* arguments= on */; +standard___standard__FlatBuffer___Buffer__append(var_res, var40); /* Direct call string#FlatBuffer#append on */ +} +if (likely(varonce43!=NULL)) { +var44 = varonce43; +} else { +var45 = ": "; +var46 = standard___standard__NativeString___to_s_with_length(var45, 2l); +var44 = var46; +varonce43 = var44; } { -((void (*)(val* self))(var40->class->vft[COLOR_standard__kernel__Object__init]))(var40) /* init on */; +standard___standard__FlatBuffer___Buffer__append(var_res, var44); /* Direct call string#FlatBuffer#append on */ } -var_mclass_type = var40; { -{ /* Inline model#MClass#mclass_type= (self,var_mclass_type) on */ -self->attrs[COLOR_nit__model__MClass___mclass_type].val = var_mclass_type; /* _mclass_type on */ -RET_LABEL41:(void)0; +{ /* Inline model#MClass#intro (self) on */ +var49 = self->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var49 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 460); +fatal_exit(1); +} +var47 = var49; +RET_LABEL48:(void)0; } } { -{ /* Inline model#MClass#get_mtype_cache (self) on */ -var44 = self->attrs[COLOR_nit__model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ -if (unlikely(var44 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 470); -show_backtrace(1); +{ /* Inline model#MClassDef#bound_mtype (var47) on */ +var52 = var47->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var52 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var42 = var44; -RET_LABEL43:(void)0; +var50 = var52; +RET_LABEL51:(void)0; } } { -standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var42, var_mparametertypes, var_mclass_type); /* Direct call hash_collection#HashMap#[]= on */ +var53 = ((val*(*)(val* self))(var50->class->vft[COLOR_nit__model__MClassType__arguments]))(var50); /* arguments on */ } -} else { -var45 = NEW_nit__MClassType(&type_nit__MClassType); { -((void (*)(val* self, val* p0))(var45->class->vft[COLOR_nit__model__MClassType__mclass_61d]))(var45, self) /* mclass= on */; +var54 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var53, var_i); } { -((void (*)(val* self))(var45->class->vft[COLOR_standard__kernel__Object__init]))(var45) /* init on */; +var55 = ((val*(*)(val* self))(var54->class->vft[COLOR_standard__string__Object__to_s]))(var54); /* to_s on */ } { -{ /* Inline model#MClass#mclass_type= (self,var45) on */ -self->attrs[COLOR_nit__model__MClass___mclass_type].val = var45; /* _mclass_type on */ -RET_LABEL46:(void)0; +standard___standard__FlatBuffer___Buffer__append(var_res, var55); /* Direct call string#FlatBuffer#append on */ } +{ +var56 = standard___standard__Int___Discrete__successor(var_i, 1l); } +var_i = var56; +} else { +goto BREAK_label; } -RET_LABEL:; } -/* method model#MClass#kind for (self: MClass): MClassKind */ -val* nit___nit__MClass___kind(val* self) { -val* var /* : MClassKind */; -val* var1 /* : MClassKind */; -var1 = self->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ +BREAK_label: (void)0; +if (likely(varonce57!=NULL)) { +var58 = varonce57; +} else { +var59 = "]"; +var60 = standard___standard__NativeString___to_s_with_length(var59, 1l); +var58 = var60; +varonce57 = var58; +} +{ +standard___standard__FlatBuffer___Buffer__append(var_res, var58); /* Direct call string#FlatBuffer#append on */ +} +{ +var61 = standard___standard__FlatBuffer___Object__to_s(var_res); +} +var = var61; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method model#MClass#setup_parameter_names for (self: MClass, nullable Array[String]) */ +void nit___nit__MClass___setup_parameter_names(val* self, val* p0) { +val* var_parameter_names /* var parameter_names: nullable Array[String] */; +short int var /* : Bool */; +short int var1 /* : Bool */; +long var3 /* : Int */; +long var5 /* : Int */; +long var7 /* : Int */; +long var9 /* : Int */; +short int var10 /* : Bool */; +short int var12 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var13 /* : Bool */; +short int var14 /* : Bool */; +short int var15 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; +val* var19 /* : Array[MParameterType] */; +val* var_mparametertypes /* var mparametertypes: Array[MParameterType] */; +long var_i /* var i: Int */; +long var20 /* : Int */; +long var22 /* : Int */; +long var_ /* var : Int */; +short int var23 /* : Bool */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +const char* var_class_name28; +short int var29 /* : Bool */; +val* var30 /* : MParameterType */; +val* var31 /* : nullable Object */; +val* var_mparametertype /* var mparametertype: MParameterType */; +long var32 /* : Int */; +val* var34 /* : MGenericType */; +val* var_mclass_type /* var mclass_type: MGenericType */; +val* var36 /* : HashMap[Array[MType], MGenericType] */; +val* var38 /* : HashMap[Array[MType], MGenericType] */; +val* var39 /* : MClassType */; +var_parameter_names = p0; +if (var_parameter_names == NULL) { +var = 1; /* is null */ +} else { +var = 0; /* arg is null but recv is not */ +} +if (0) { +var1 = standard___standard__Array___standard__kernel__Object___61d_61d(var_parameter_names, ((val*)NULL)); +var = var1; +} +if (var){ +{ +{ /* Inline model#MClass#arity= (self,0l) on */ +self->attrs[COLOR_nit__model__MClass___arity].l = 0l; /* _arity on */ +RET_LABEL2:(void)0; +} +} +} else { +{ +{ /* Inline array#AbstractArrayRead#length (var_parameter_names) on */ +var5 = var_parameter_names->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var3 = var5; +RET_LABEL4:(void)0; +} +} +{ +{ /* Inline model#MClass#arity= (self,var3) on */ +self->attrs[COLOR_nit__model__MClass___arity].l = var3; /* _arity on */ +RET_LABEL6:(void)0; +} +} +} +{ +{ /* Inline model#MClass#arity (self) on */ +var9 = self->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +{ +{ /* Inline kernel#Int#> (var7,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var12 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var12)) { +var_class_name = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); +} +var13 = var7 > 0l; +var10 = var13; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} +} +if (var10){ +if (var_parameter_names == NULL) { +var14 = 0; /* is null */ +} else { +var14 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_parameter_names,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var17 = ((short int(*)(val* self, val* p0))(var_parameter_names->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_parameter_names, var_other); /* == on */ +} +var18 = !var17; +var15 = var18; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +var14 = var15; +} +if (unlikely(!var14)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 421); +fatal_exit(1); +} +var19 = NEW_standard__Array(&type_standard__Array__nit__MParameterType); +{ +standard___standard__Array___standard__kernel__Object__init(var19); /* Direct call array#Array#init on */ +} +var_mparametertypes = var19; +var_i = 0l; +{ +{ /* Inline model#MClass#arity (self) on */ +var22 = self->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var20 = var22; +RET_LABEL21:(void)0; +} +} +var_ = var20; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var25 = 1; /* easy isa OTHER*/ +if (unlikely(!var25)) { +var_class_name28 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); +} +var29 = var_i < var_; +var23 = var29; +goto RET_LABEL24; +RET_LABEL24:(void)0; +} +} +if (var23){ +var30 = NEW_nit__MParameterType(&type_nit__MParameterType); +{ +var31 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_parameter_names, var_i); +} +{ +((void(*)(val* self, val* p0))(var30->class->vft[COLOR_nit__model__MParameterType__mclass_61d]))(var30, self); /* mclass= on */ +} +{ +((void(*)(val* self, long p0))(var30->class->vft[COLOR_nit__model__MParameterType__rank_61d]))(var30, var_i); /* rank= on */ +} +{ +((void(*)(val* self, val* p0))(var30->class->vft[COLOR_nit__model__MParameterType__name_61d]))(var30, var31); /* name= on */ +} +{ +((void(*)(val* self))(var30->class->vft[COLOR_standard__kernel__Object__init]))(var30); /* init on */ +} +var_mparametertype = var30; +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_mparametertypes, var_mparametertype); /* Direct call array#Array#add on */ +} +{ +var32 = standard___standard__Int___Discrete__successor(var_i, 1l); +} +var_i = var32; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +{ /* Inline model#MClass#mparameters= (self,var_mparametertypes) on */ +self->attrs[COLOR_nit__model__MClass___mparameters].val = var_mparametertypes; /* _mparameters on */ +RET_LABEL33:(void)0; +} +} +var34 = NEW_nit__MGenericType(&type_nit__MGenericType); +{ +((void(*)(val* self, val* p0))(var34->class->vft[COLOR_nit__model__MClassType__mclass_61d]))(var34, self); /* mclass= on */ +} +{ +((void(*)(val* self, val* p0))(var34->class->vft[COLOR_nit__model__MClassType__arguments_61d]))(var34, var_mparametertypes); /* arguments= on */ +} +{ +((void(*)(val* self))(var34->class->vft[COLOR_standard__kernel__Object__init]))(var34); /* init on */ +} +var_mclass_type = var34; +{ +{ /* Inline model#MClass#mclass_type= (self,var_mclass_type) on */ +self->attrs[COLOR_nit__model__MClass___mclass_type].val = var_mclass_type; /* _mclass_type on */ +RET_LABEL35:(void)0; +} +} +{ +{ /* Inline model#MClass#get_mtype_cache (self) on */ +var38 = self->attrs[COLOR_nit__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", FILE_nit__model, 516); +fatal_exit(1); +} +var36 = var38; +RET_LABEL37:(void)0; +} +} +{ +standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var36, var_mparametertypes, var_mclass_type); /* Direct call hash_collection#HashMap#[]= on */ +} +} else { +var39 = NEW_nit__MClassType(&type_nit__MClassType); +{ +((void(*)(val* self, val* p0))(var39->class->vft[COLOR_nit__model__MClassType__mclass_61d]))(var39, self); /* mclass= on */ +} +{ +((void(*)(val* self))(var39->class->vft[COLOR_standard__kernel__Object__init]))(var39); /* init on */ +} +{ +{ /* Inline model#MClass#mclass_type= (self,var39) on */ +self->attrs[COLOR_nit__model__MClass___mclass_type].val = var39; /* _mclass_type on */ +RET_LABEL40:(void)0; +} +} +} +RET_LABEL:; +} +/* method model#MClass#kind for (self: MClass): MClassKind */ +val* nit___nit__MClass___kind(val* self) { +val* var /* : MClassKind */; +val* var1 /* : MClassKind */; +var1 = self->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 436); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -2773,8 +3452,8 @@ val* var1 /* : MVisibility */; var1 = self->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 440); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -2803,15 +3482,15 @@ val* var17 /* : String */; val* var18 /* : Array[MClass] */; val* var20 /* : Array[MClass] */; { -((void (*)(val* self))(self->class->vft[COLOR_nit___nit__MClass___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit___nit__MClass___standard__kernel__Object__init]))(self); /* init on */ } { { /* Inline model#MClass#intro_mmodule (self) on */ var2 = self->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -2823,7 +3502,7 @@ var5 = var->attrs[COLOR_nit__model__MModule___intro_mclasses].val; /* _intro_mcl if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclasses"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 128); -show_backtrace(1); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -2837,8 +3516,8 @@ standard___standard__Array___standard__abstract_collection__SimpleCollection__ad var8 = self->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } var6 = var8; RET_LABEL7:(void)0; @@ -2850,7 +3529,7 @@ var11 = var6->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on attrs[COLOR_nit__model__Model___mclasses_by_name].val; /* _mc if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses_by_name"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 66); -show_backtrace(1); +fatal_exit(1); } var12 = var14; RET_LABEL13:(void)0; @@ -2874,8 +3553,8 @@ RET_LABEL13:(void)0; var17 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } var15 = var17; RET_LABEL16:(void)0; @@ -2890,7 +3569,7 @@ var20 = var_model->attrs[COLOR_nit__model__Model___mclasses].val; /* _mclasses o if (unlikely(var20 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclasses"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 34); -show_backtrace(1); +fatal_exit(1); } var18 = var20; RET_LABEL19:(void)0; @@ -2913,8 +3592,8 @@ val* var6 /* : Model */; var3 = self->attrs[COLOR_nit__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", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -2926,7 +3605,7 @@ var6 = var1->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 417); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 454); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -2961,8 +3640,8 @@ val* var3 /* : String */; var3 = self->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -2980,8 +3659,8 @@ val* var1 /* : MClassDef */; var1 = self->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 423); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 460); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -2992,6 +3671,28 @@ void nit___nit__MClass___intro_61d(val* self, val* p0) { self->attrs[COLOR_nit__model__MClass___intro].val = p0; /* _intro on */ RET_LABEL:; } +/* method model#MClass#try_intro for (self: MClass): nullable MClassDef */ +val* nit___nit__MClass___try_intro(val* self) { +val* var /* : nullable MClassDef */; +short int var1 /* : Bool */; +val* var2 /* : MClassDef */; +var1 = self->attrs[COLOR_nit__model__MClass___intro].val != NULL; /* _intro on */ +if (var1){ +var2 = self->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 472); +fatal_exit(1); +} +var = var2; +goto RET_LABEL; +} else { +var = ((val*)NULL); +goto RET_LABEL; +} +RET_LABEL:; +return var; +} /* method model#MClass#in_hierarchy for (self: MClass, MModule): POSetElement[MClass] */ val* nit___nit__MClass___in_hierarchy(val* self, val* p0) { val* var /* : POSetElement[MClass] */; @@ -3017,8 +3718,8 @@ val* var1 /* : MClassType */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -3041,25 +3742,23 @@ short int var7 /* : Bool */; short int var9 /* : Bool */; long var10 /* : Int */; long var12 /* : Int */; -long var13 /* : Int */; -short int var14 /* : Bool */; -short int var16 /* : Bool */; -val* var17 /* : MClassType */; -val* var19 /* : MClassType */; -val* var20 /* : HashMap[Array[MType], MGenericType] */; -val* var22 /* : HashMap[Array[MType], MGenericType] */; -val* var23 /* : nullable Object */; +short int var13 /* : Bool */; +short int var15 /* : Bool */; +val* var16 /* : MClassType */; +val* var18 /* : MClassType */; +val* var19 /* : HashMap[Array[MType], MGenericType] */; +val* var21 /* : HashMap[Array[MType], MGenericType] */; +val* var22 /* : nullable Object */; val* var_res /* var res: nullable MGenericType */; -val* var24 /* : null */; -short int var25 /* : Bool */; -short int var26 /* : Bool */; +short int var23 /* : Bool */; +short int var24 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var28 /* : Bool */; -short int var29 /* : Bool */; -val* var30 /* : MGenericType */; +short int var26 /* : Bool */; +short int var27 /* : Bool */; +val* var28 /* : MGenericType */; +val* var29 /* : HashMap[Array[MType], MGenericType] */; val* var31 /* : HashMap[Array[MType], MGenericType] */; -val* var33 /* : HashMap[Array[MType], MGenericType] */; -val* var34 /* : Array[nullable Object] */; +val* var32 /* : Array[nullable Object] */; var_mtype_arguments = p0; { { /* Inline array#AbstractArrayRead#length (var_mtype_arguments) on */ @@ -3085,8 +3784,8 @@ RET_LABEL8:(void)0; } if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 461); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 507); +fatal_exit(1); } { { /* Inline model#MClass#arity (self) on */ @@ -3095,100 +3794,98 @@ var10 = var12; RET_LABEL11:(void)0; } } -var13 = 0; { -{ /* Inline kernel#Int#== (var10,var13) on */ -var16 = var10 == var13; -var14 = var16; -goto RET_LABEL15; -RET_LABEL15:(void)0; +{ /* Inline kernel#Int#== (var10,0l) on */ +var15 = var10 == 0l; +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; } } -if (var14){ +if (var13){ { { /* Inline model#MClass#mclass_type (self) on */ -var19 = self->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var19 == NULL)) { +var18 = self->attrs[COLOR_nit__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", FILE_nit__model, 438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var17 = var19; -RET_LABEL18:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } -var = var17; +var = var16; goto RET_LABEL; } else { } { { /* Inline model#MClass#get_mtype_cache (self) on */ -var22 = self->attrs[COLOR_nit__model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ -if (unlikely(var22 == NULL)) { +var21 = self->attrs[COLOR_nit__model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 470); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 516); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { -var23 = standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var20, var_mtype_arguments); +var22 = standard___standard__HashMap___standard__abstract_collection__MapRead__get_or_null(var19, var_mtype_arguments); } -var_res = var23; -var24 = NULL; +var_res = var22; if (var_res == NULL) { -var25 = 0; /* is null */ +var23 = 0; /* is null */ } else { -var25 = 1; /* arg is null and recv is not */ +var23 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_res,var24) on */ -var_other = var24; +{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var28 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var26 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other); /* == on */ } -var29 = !var28; -var26 = var29; -goto RET_LABEL27; -RET_LABEL27:(void)0; +var27 = !var26; +var24 = var27; +goto RET_LABEL25; +RET_LABEL25:(void)0; } -var25 = var26; +var23 = var24; } -if (var25){ +if (var23){ var = var_res; goto RET_LABEL; } else { } -var30 = NEW_nit__MGenericType(&type_nit__MGenericType); +var28 = NEW_nit__MGenericType(&type_nit__MGenericType); { -((void (*)(val* self, val* p0))(var30->class->vft[COLOR_nit__model__MClassType__mclass_61d]))(var30, self) /* mclass= on */; +((void(*)(val* self, val* p0))(var28->class->vft[COLOR_nit__model__MClassType__mclass_61d]))(var28, self); /* mclass= on */ } { -((void (*)(val* self, val* p0))(var30->class->vft[COLOR_nit__model__MClassType__arguments_61d]))(var30, var_mtype_arguments) /* arguments= on */; +((void(*)(val* self, val* p0))(var28->class->vft[COLOR_nit__model__MClassType__arguments_61d]))(var28, var_mtype_arguments); /* arguments= on */ } { -((void (*)(val* self))(var30->class->vft[COLOR_standard__kernel__Object__init]))(var30) /* init on */; +((void(*)(val* self))(var28->class->vft[COLOR_standard__kernel__Object__init]))(var28); /* init on */ } -var_res = var30; +var_res = var28; { { /* Inline model#MClass#get_mtype_cache (self) on */ -var33 = self->attrs[COLOR_nit__model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ -if (unlikely(var33 == NULL)) { +var31 = self->attrs[COLOR_nit__model__MClass___get_mtype_cache].val; /* _get_mtype_cache on */ +if (unlikely(var31 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _get_mtype_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 470); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 516); +fatal_exit(1); } -var31 = var33; -RET_LABEL32:(void)0; +var29 = var31; +RET_LABEL30:(void)0; } } { -var34 = standard__array___Collection___to_a(var_mtype_arguments); +var32 = standard__array___Collection___to_a(var_mtype_arguments); } { -standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var31, var34, var_res); /* Direct call hash_collection#HashMap#[]= on */ +standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var29, var32, var_res); /* Direct call hash_collection#HashMap#[]= on */ } var = var_res; goto RET_LABEL; @@ -3202,13 +3899,27 @@ val* var1 /* : HashMap[Array[MType], MGenericType] */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 470); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 516); +fatal_exit(1); +} +var = var1; +RET_LABEL:; +return var; } +/* method model#MClass#has_new_factory for (self: MClass): Bool */ +short int nit___nit__MClass___has_new_factory(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = self->attrs[COLOR_nit__model__MClass___has_new_factory].s; /* _has_new_factory on */ var = var1; RET_LABEL:; return var; } +/* method model#MClass#has_new_factory= for (self: MClass, Bool) */ +void nit___nit__MClass___has_new_factory_61d(val* self, short int p0) { +self->attrs[COLOR_nit__model__MClass___has_new_factory].s = p0; /* _has_new_factory on */ +RET_LABEL:; +} /* method model#MClassDef#mmodule for (self: MClassDef): MModule */ val* nit___nit__MClassDef___mmodule(val* self) { val* var /* : MModule */; @@ -3216,8 +3927,8 @@ val* var1 /* : MModule */; var1 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -3235,8 +3946,8 @@ val* var1 /* : MClass */; var1 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -3254,8 +3965,8 @@ val* var1 /* : MClassType */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 495); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -3273,8 +3984,8 @@ val* var1 /* : Location */; var1 = self->attrs[COLOR_nit__model__MClassDef___location].val; /* _location on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 507); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 568); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -3292,8 +4003,8 @@ val* var1 /* : String */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 510); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 571); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -3334,29 +4045,29 @@ short int var36 /* : Bool */; short int var37 /* : Bool */; val* var38 /* : MClass */; val* var40 /* : MClass */; -val* var42 /* : MModule */; -val* var44 /* : MModule */; +val* var42 /* : NativeArray[String] */; static val* varonce; -val* var45 /* : String */; -char* var46 /* : NativeString */; -long var47 /* : Int */; -val* var48 /* : FlatString */; -val* var49 /* : MClass */; +static val* varonce43; +val* var44 /* : String */; +char* var45 /* : NativeString */; +val* var46 /* : FlatString */; +val* var47 /* : MModule */; +val* var49 /* : MModule */; +val* var50 /* : String */; val* var51 /* : MClass */; -val* var52 /* : Array[Object] */; -long var53 /* : Int */; -val* var54 /* : NativeArray[Object] */; +val* var53 /* : MClass */; +val* var54 /* : String */; val* var55 /* : String */; { -((void (*)(val* self))(self->class->vft[COLOR_nit___nit__MClassDef___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit___nit__MClassDef___standard__kernel__Object__init]))(self); /* init on */ } { { /* Inline model#MClassDef#bound_mtype (self) on */ var2 = self->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -3367,8 +4078,8 @@ RET_LABEL1:(void)0; var5 = var->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -3385,8 +4096,8 @@ RET_LABEL6:(void)0; var9 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -3398,7 +4109,7 @@ var12 = var7->attrs[COLOR_nit__model__MModule___mclassdefs].val; /* _mclassdefs if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 131); -show_backtrace(1); +fatal_exit(1); } var10 = var12; RET_LABEL11:(void)0; @@ -3412,8 +4123,8 @@ standard___standard__Array___standard__abstract_collection__SimpleCollection__ad var15 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var13 = var15; RET_LABEL14:(void)0; @@ -3424,8 +4135,8 @@ RET_LABEL14:(void)0; var18 = var13->attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on */ if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 417); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 454); +fatal_exit(1); } var16 = var18; RET_LABEL17:(void)0; @@ -3439,8 +4150,8 @@ standard___standard__Array___standard__abstract_collection__SimpleCollection__ad var21 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var19 = var21; RET_LABEL20:(void)0; @@ -3451,8 +4162,8 @@ RET_LABEL20:(void)0; var24 = var19->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } var22 = var24; RET_LABEL23:(void)0; @@ -3463,8 +4174,8 @@ RET_LABEL23:(void)0; var27 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ if (unlikely(var27 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } var25 = var27; RET_LABEL26:(void)0; @@ -3492,8 +4203,8 @@ if (var28){ var35 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var35 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var33 = var35; RET_LABEL34:(void)0; @@ -3503,16 +4214,16 @@ var36 = var33->attrs[COLOR_nit__model__MClass___intro].val != NULL; /* _intro on var37 = !var36; if (unlikely(!var37)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 520); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 581); +fatal_exit(1); } { { /* Inline model#MClassDef#mclass (self) on */ var40 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var40 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var38 = var40; RET_LABEL39:(void)0; @@ -3526,53 +4237,57 @@ RET_LABEL41:(void)0; } } else { } +if (unlikely(varonce==NULL)) { +var42 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce43!=NULL)) { +var44 = varonce43; +} else { +var45 = "#"; +var46 = standard___standard__NativeString___to_s_with_length(var45, 1l); +var44 = var46; +varonce43 = var44; +} +((struct instance_standard__NativeArray*)var42)->values[1]=var44; +} else { +var42 = varonce; +varonce = NULL; +} { { /* Inline model#MClassDef#mmodule (self) on */ -var44 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var44 == NULL)) { +var49 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var49 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var42 = var44; -RET_LABEL43:(void)0; +var47 = var49; +RET_LABEL48:(void)0; } } -if (varonce) { -var45 = varonce; -} else { -var46 = "#"; -var47 = 1; -var48 = standard___standard__NativeString___to_s_with_length(var46, var47); -var45 = var48; -varonce = var45; +{ +var50 = ((val*(*)(val* self))(var47->class->vft[COLOR_standard__string__Object__to_s]))(var47); /* to_s on */ } +((struct instance_standard__NativeArray*)var42)->values[0]=var50; { { /* Inline model#MClassDef#mclass (self) on */ -var51 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var51 == NULL)) { +var53 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var53 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var49 = var51; -RET_LABEL50:(void)0; +var51 = var53; +RET_LABEL52:(void)0; } } -var52 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var52 = array_instance Array[Object] */ -var53 = 3; -var54 = NEW_standard__NativeArray(var53, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var54)->values[0] = (val*) var42; -((struct instance_standard__NativeArray*)var54)->values[1] = (val*) var45; -((struct instance_standard__NativeArray*)var54)->values[2] = (val*) var49; { -((void (*)(val* self, val* p0, long p1))(var52->class->vft[COLOR_standard__array__Array__with_native]))(var52, var54, var53) /* with_native on */; -} +var54 = ((val*(*)(val* self))(var51->class->vft[COLOR_standard__string__Object__to_s]))(var51); /* to_s on */ } +((struct instance_standard__NativeArray*)var42)->values[2]=var54; { -var55 = ((val* (*)(val* self))(var52->class->vft[COLOR_standard__string__Object__to_s]))(var52) /* to_s on */; +var55 = ((val*(*)(val* self))(var42->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var42); /* native_to_s on */ } +varonce = var42; { { /* Inline model#MClassDef#to_s= (self,var55) on */ self->attrs[COLOR_nit__model__MClassDef___to_s].val = var55; /* _to_s on */ @@ -3593,8 +4308,8 @@ val* var6 /* : String */; var3 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -3605,8 +4320,8 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -3624,110 +4339,102 @@ short int var1 /* : Bool */; val* var2 /* : String */; val* var3 /* : String */; short int var5 /* : Bool */; -val* var6 /* : MModule */; -val* var8 /* : MModule */; -val* var9 /* : MClass */; -val* var11 /* : MClass */; -val* var12 /* : MVisibility */; -val* var14 /* : MVisibility */; -val* var15 /* : String */; +val* var6 /* : NativeArray[String] */; static val* varonce; -val* var16 /* : String */; -char* var17 /* : NativeString */; -long var18 /* : Int */; -val* var19 /* : FlatString */; -val* var20 /* : MClass */; -val* var22 /* : MClass */; -val* var23 /* : String */; -val* var25 /* : String */; -val* var26 /* : Array[Object] */; -long var27 /* : Int */; -val* var28 /* : NativeArray[Object] */; -val* var29 /* : String */; +static val* varonce7; +val* var8 /* : String */; +char* var9 /* : NativeString */; +val* var10 /* : FlatString */; +val* var11 /* : MModule */; +val* var13 /* : MModule */; +val* var14 /* : MClass */; +val* var16 /* : MClass */; +val* var17 /* : MVisibility */; +val* var19 /* : MVisibility */; +val* var20 /* : String */; +val* var21 /* : MClass */; +val* var23 /* : MClass */; +val* var24 /* : String */; +val* var26 /* : String */; +val* var27 /* : String */; +val* var28 /* : MClass */; val* var30 /* : MClass */; -val* var32 /* : MClass */; +val* var31 /* : MModule */; val* var33 /* : MModule */; +val* var34 /* : nullable MProject */; val* var35 /* : MModule */; -val* var36 /* : nullable MProject */; val* var37 /* : MModule */; -val* var39 /* : MModule */; -val* var40 /* : nullable MProject */; -short int var41 /* : Bool */; -short int var42 /* : Bool */; +val* var38 /* : nullable MProject */; +short int var39 /* : Bool */; +short int var40 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var44 /* : Bool */; -short int var45 /* : Bool */; -val* var46 /* : MModule */; -val* var48 /* : MModule */; -val* var49 /* : String */; -static val* varonce50; -val* var51 /* : String */; -char* var52 /* : NativeString */; -long var53 /* : Int */; -val* var54 /* : FlatString */; -val* var55 /* : MClass */; -val* var57 /* : MClass */; +short int var42 /* : Bool */; +short int var43 /* : Bool */; +val* var45 /* : NativeArray[String] */; +static val* varonce44; +static val* varonce46; +val* var47 /* : String */; +char* var48 /* : NativeString */; +val* var49 /* : FlatString */; +val* var50 /* : MModule */; +val* var52 /* : MModule */; +val* var53 /* : String */; +val* var54 /* : MClass */; +val* var56 /* : MClass */; +val* var57 /* : String */; val* var58 /* : String */; -val* var59 /* : Array[Object] */; -long var60 /* : Int */; -val* var61 /* : NativeArray[Object] */; -val* var62 /* : String */; -val* var63 /* : MClass */; -val* var65 /* : MClass */; +val* var59 /* : MClass */; +val* var61 /* : MClass */; +val* var62 /* : MVisibility */; +val* var64 /* : MVisibility */; +val* var65 /* : Sys */; val* var66 /* : MVisibility */; -val* var68 /* : MVisibility */; -val* var69 /* : MVisibility */; -short int var70 /* : Bool */; -val* var71 /* : MModule */; -val* var73 /* : MModule */; -val* var74 /* : String */; -static val* varonce75; -val* var76 /* : String */; -char* var77 /* : NativeString */; -long var78 /* : Int */; -val* var79 /* : FlatString */; +short int var67 /* : Bool */; +val* var69 /* : NativeArray[String] */; +static val* varonce68; +static val* varonce70; +val* var71 /* : String */; +char* var72 /* : NativeString */; +val* var73 /* : FlatString */; +val* var74 /* : MModule */; +val* var76 /* : MModule */; +val* var77 /* : String */; +val* var78 /* : MClass */; val* var80 /* : MClass */; -val* var82 /* : MClass */; +val* var81 /* : String */; val* var83 /* : String */; -val* var85 /* : String */; -val* var86 /* : Array[Object] */; -long var87 /* : Int */; -val* var88 /* : NativeArray[Object] */; -val* var89 /* : String */; -val* var90 /* : MModule */; -val* var92 /* : MModule */; -val* var93 /* : String */; -static val* varonce94; -val* var95 /* : String */; -char* var96 /* : NativeString */; -long var97 /* : Int */; -val* var98 /* : FlatString */; +val* var84 /* : String */; +val* var86 /* : NativeArray[String] */; +static val* varonce85; +static val* varonce87; +val* var88 /* : String */; +char* var89 /* : NativeString */; +val* var90 /* : FlatString */; +static val* varonce91; +val* var92 /* : String */; +char* var93 /* : NativeString */; +val* var94 /* : FlatString */; +val* var95 /* : MModule */; +val* var97 /* : MModule */; +val* var98 /* : String */; val* var99 /* : MClass */; val* var101 /* : MClass */; val* var102 /* : MModule */; val* var104 /* : MModule */; val* var105 /* : String */; val* var107 /* : String */; -static val* varonce108; -val* var109 /* : String */; -char* var110 /* : NativeString */; -long var111 /* : Int */; -val* var112 /* : FlatString */; -val* var113 /* : MClass */; -val* var115 /* : MClass */; -val* var116 /* : String */; -val* var118 /* : String */; -val* var119 /* : Array[Object] */; -long var120 /* : Int */; -val* var121 /* : NativeArray[Object] */; -val* var122 /* : String */; +val* var108 /* : MClass */; +val* var110 /* : MClass */; +val* var111 /* : String */; +val* var113 /* : String */; +val* var114 /* : String */; var1 = self->attrs[COLOR_nit__model__MClassDef___full_name].val != NULL; /* _full_name on */ if(likely(var1)) { var2 = self->attrs[COLOR_nit__model__MClassDef___full_name].val; /* _full_name on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 529); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 590); +fatal_exit(1); } } else { { @@ -3735,336 +4442,347 @@ show_backtrace(1); var5 = nit___nit__MClassDef___is_intro(self); } if (var5){ +if (unlikely(varonce==NULL)) { +var6 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce7!=NULL)) { +var8 = varonce7; +} else { +var9 = "#"; +var10 = standard___standard__NativeString___to_s_with_length(var9, 1l); +var8 = var10; +varonce7 = var8; +} +((struct instance_standard__NativeArray*)var6)->values[1]=var8; +} else { +var6 = varonce; +varonce = NULL; +} { { /* Inline model#MClassDef#mmodule (self) on */ -var8 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var8 == NULL)) { +var13 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { { /* Inline model#MClassDef#mclass (self) on */ -var11 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var11 == NULL)) { +var16 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -{ /* Inline model#MClass#visibility (var9) on */ -var14 = var9->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ -if (unlikely(var14 == NULL)) { +{ /* Inline model#MClass#visibility (var14) on */ +var19 = var14->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ +if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 440); +fatal_exit(1); } -var12 = var14; -RET_LABEL13:(void)0; +var17 = var19; +RET_LABEL18:(void)0; } } { -var15 = nit___nit__MModule___namespace_for(var6, var12); -} -if (varonce) { -var16 = varonce; -} else { -var17 = "#"; -var18 = 1; -var19 = standard___standard__NativeString___to_s_with_length(var17, var18); -var16 = var19; -varonce = var16; +var20 = nit___nit__MModule___namespace_for(var11, var17); } +((struct instance_standard__NativeArray*)var6)->values[0]=var20; { { /* Inline model#MClassDef#mclass (self) on */ -var22 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var22 == NULL)) { +var23 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var21 = var23; +RET_LABEL22:(void)0; } } { -{ /* Inline model#MClass#name (var20) on */ -var25 = var20->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var25 == NULL)) { +{ /* Inline model#MClass#name (var21) on */ +var26 = var21->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); -} -var23 = var25; -RET_LABEL24:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } -} -var26 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var26 = array_instance Array[Object] */ -var27 = 3; -var28 = NEW_standard__NativeArray(var27, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var28)->values[0] = (val*) var15; -((struct instance_standard__NativeArray*)var28)->values[1] = (val*) var16; -((struct instance_standard__NativeArray*)var28)->values[2] = (val*) var23; -{ -((void (*)(val* self, val* p0, long p1))(var26->class->vft[COLOR_standard__array__Array__with_native]))(var26, var28, var27) /* with_native on */; +var24 = var26; +RET_LABEL25:(void)0; } } +((struct instance_standard__NativeArray*)var6)->values[2]=var24; { -var29 = ((val* (*)(val* self))(var26->class->vft[COLOR_standard__string__Object__to_s]))(var26) /* to_s on */; +var27 = ((val*(*)(val* self))(var6->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var6); /* native_to_s on */ } -var3 = var29; +varonce = var6; +var3 = var27; goto RET_LABEL4; } else { { { /* Inline model#MClassDef#mclass (self) on */ -var32 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var32 == NULL)) { +var30 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var30 = var32; -RET_LABEL31:(void)0; +var28 = var30; +RET_LABEL29:(void)0; } } { -{ /* Inline model#MClass#intro_mmodule (var30) on */ -var35 = var30->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var35 == NULL)) { +{ /* Inline model#MClass#intro_mmodule (var28) on */ +var33 = var28->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } -var33 = var35; -RET_LABEL34:(void)0; +var31 = var33; +RET_LABEL32:(void)0; } } { -var36 = nit___nit__MModule___mproject(var33); +var34 = nit___nit__MModule___mproject(var31); } { { /* Inline model#MClassDef#mmodule (self) on */ -var39 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var39 == NULL)) { +var37 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var37 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var37 = var39; -RET_LABEL38:(void)0; +var35 = var37; +RET_LABEL36:(void)0; } } { -var40 = nit___nit__MModule___mproject(var37); +var38 = nit___nit__MModule___mproject(var35); } -if (var36 == NULL) { -var41 = (var40 != NULL); +if (var34 == NULL) { +var39 = (var38 != NULL); } else { -{ /* Inline kernel#Object#!= (var36,var40) on */ -var_other = var40; +{ /* Inline kernel#Object#!= (var34,var38) on */ +var_other = var38; { -var44 = ((short int (*)(val* self, val* p0))(var36->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var36, var_other) /* == on */; +var42 = ((short int(*)(val* self, val* p0))(var34->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var34, var_other); /* == on */ +} +var43 = !var42; +var40 = var43; +goto RET_LABEL41; +RET_LABEL41:(void)0; +} +var39 = var40; } -var45 = !var44; -var42 = var45; -goto RET_LABEL43; -RET_LABEL43:(void)0; +if (var39){ +if (unlikely(varonce44==NULL)) { +var45 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce46!=NULL)) { +var47 = varonce46; +} else { +var48 = "#"; +var49 = standard___standard__NativeString___to_s_with_length(var48, 1l); +var47 = var49; +varonce46 = var47; } -var41 = var42; +((struct instance_standard__NativeArray*)var45)->values[1]=var47; +} else { +var45 = varonce44; +varonce44 = NULL; } -if (var41){ { { /* Inline model#MClassDef#mmodule (self) on */ -var48 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var48 == NULL)) { +var52 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var52 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var46 = var48; -RET_LABEL47:(void)0; +var50 = var52; +RET_LABEL51:(void)0; } } { -var49 = nit___nit__MModule___nit__model_base__MEntity__full_name(var46); -} -if (varonce50) { -var51 = varonce50; -} else { -var52 = "#"; -var53 = 1; -var54 = standard___standard__NativeString___to_s_with_length(var52, var53); -var51 = var54; -varonce50 = var51; +var53 = nit___nit__MModule___nit__model_base__MEntity__full_name(var50); } +((struct instance_standard__NativeArray*)var45)->values[0]=var53; { { /* Inline model#MClassDef#mclass (self) on */ -var57 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var57 == NULL)) { +var56 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var56 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); -} -var55 = var57; -RET_LABEL56:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } +var54 = var56; +RET_LABEL55:(void)0; } -{ -var58 = nit___nit__MClass___nit__model_base__MEntity__full_name(var55); } -var59 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var59 = array_instance Array[Object] */ -var60 = 3; -var61 = NEW_standard__NativeArray(var60, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var61)->values[0] = (val*) var49; -((struct instance_standard__NativeArray*)var61)->values[1] = (val*) var51; -((struct instance_standard__NativeArray*)var61)->values[2] = (val*) var58; { -((void (*)(val* self, val* p0, long p1))(var59->class->vft[COLOR_standard__array__Array__with_native]))(var59, var61, var60) /* with_native on */; -} +var57 = nit___nit__MClass___nit__model_base__MEntity__full_name(var54); } +((struct instance_standard__NativeArray*)var45)->values[2]=var57; { -var62 = ((val* (*)(val* self))(var59->class->vft[COLOR_standard__string__Object__to_s]))(var59) /* to_s on */; +var58 = ((val*(*)(val* self))(var45->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var45); /* native_to_s on */ } -var3 = var62; +varonce44 = var45; +var3 = var58; goto RET_LABEL4; } else { { { /* Inline model#MClassDef#mclass (self) on */ -var65 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var65 == NULL)) { +var61 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var61 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var63 = var65; -RET_LABEL64:(void)0; +var59 = var61; +RET_LABEL60:(void)0; } } { -{ /* Inline model#MClass#visibility (var63) on */ -var68 = var63->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ -if (unlikely(var68 == NULL)) { +{ /* Inline model#MClass#visibility (var59) on */ +var64 = var59->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ +if (unlikely(var64 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 440); +fatal_exit(1); } -var66 = var68; -RET_LABEL67:(void)0; +var62 = var64; +RET_LABEL63:(void)0; } } +var65 = glob_sys; { -var69 = nit__model_base___standard__Object___private_visibility(self); +var66 = nit__model_base___standard__Sys___private_visibility(var65); } { -var70 = standard___standard__Comparable____62d(var66, var69); +var67 = standard___standard__Comparable____62d(var62, var66); +} +if (var67){ +if (unlikely(varonce68==NULL)) { +var69 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce70!=NULL)) { +var71 = varonce70; +} else { +var72 = "#"; +var73 = standard___standard__NativeString___to_s_with_length(var72, 1l); +var71 = var73; +varonce70 = var71; +} +((struct instance_standard__NativeArray*)var69)->values[1]=var71; +} else { +var69 = varonce68; +varonce68 = NULL; } -if (var70){ { { /* Inline model#MClassDef#mmodule (self) on */ -var73 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var73 == NULL)) { +var76 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var76 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var71 = var73; -RET_LABEL72:(void)0; +var74 = var76; +RET_LABEL75:(void)0; } } { -var74 = nit___nit__MModule___nit__model_base__MEntity__full_name(var71); -} -if (varonce75) { -var76 = varonce75; -} else { -var77 = "#"; -var78 = 1; -var79 = standard___standard__NativeString___to_s_with_length(var77, var78); -var76 = var79; -varonce75 = var76; +var77 = nit___nit__MModule___nit__model_base__MEntity__full_name(var74); } +((struct instance_standard__NativeArray*)var69)->values[0]=var77; { { /* Inline model#MClassDef#mclass (self) on */ -var82 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var82 == NULL)) { +var80 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var80 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var80 = var82; -RET_LABEL81:(void)0; +var78 = var80; +RET_LABEL79:(void)0; } } { -{ /* Inline model#MClass#name (var80) on */ -var85 = var80->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var85 == NULL)) { +{ /* Inline model#MClass#name (var78) on */ +var83 = var78->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var83 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } -var83 = var85; -RET_LABEL84:(void)0; +var81 = var83; +RET_LABEL82:(void)0; } } -var86 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var86 = array_instance Array[Object] */ -var87 = 3; -var88 = NEW_standard__NativeArray(var87, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var88)->values[0] = (val*) var74; -((struct instance_standard__NativeArray*)var88)->values[1] = (val*) var76; -((struct instance_standard__NativeArray*)var88)->values[2] = (val*) var83; +((struct instance_standard__NativeArray*)var69)->values[2]=var81; { -((void (*)(val* self, val* p0, long p1))(var86->class->vft[COLOR_standard__array__Array__with_native]))(var86, var88, var87) /* with_native on */; +var84 = ((val*(*)(val* self))(var69->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var69); /* native_to_s on */ } +varonce68 = var69; +var3 = var84; +goto RET_LABEL4; +} else { +if (unlikely(varonce85==NULL)) { +var86 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce87!=NULL)) { +var88 = varonce87; +} else { +var89 = "#::"; +var90 = standard___standard__NativeString___to_s_with_length(var89, 3l); +var88 = var90; +varonce87 = var88; } -{ -var89 = ((val* (*)(val* self))(var86->class->vft[COLOR_standard__string__Object__to_s]))(var86) /* to_s on */; +((struct instance_standard__NativeArray*)var86)->values[1]=var88; +if (likely(varonce91!=NULL)) { +var92 = varonce91; +} else { +var93 = "::"; +var94 = standard___standard__NativeString___to_s_with_length(var93, 2l); +var92 = var94; +varonce91 = var92; } -var3 = var89; -goto RET_LABEL4; +((struct instance_standard__NativeArray*)var86)->values[3]=var92; } else { +var86 = varonce85; +varonce85 = NULL; +} { { /* Inline model#MClassDef#mmodule (self) on */ -var92 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var92 == NULL)) { +var97 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var97 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var90 = var92; -RET_LABEL91:(void)0; +var95 = var97; +RET_LABEL96:(void)0; } } { -var93 = nit___nit__MModule___nit__model_base__MEntity__full_name(var90); -} -if (varonce94) { -var95 = varonce94; -} else { -var96 = "#::"; -var97 = 3; -var98 = standard___standard__NativeString___to_s_with_length(var96, var97); -var95 = var98; -varonce94 = var95; +var98 = nit___nit__MModule___nit__model_base__MEntity__full_name(var95); } +((struct instance_standard__NativeArray*)var86)->values[0]=var98; { { /* Inline model#MClassDef#mclass (self) on */ var101 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var101 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var99 = var101; RET_LABEL100:(void)0; @@ -4075,8 +4793,8 @@ RET_LABEL100:(void)0; var104 = var99->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ if (unlikely(var104 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } var102 = var104; RET_LABEL103:(void)0; @@ -4088,62 +4806,43 @@ var107 = var102->attrs[COLOR_nit__mmodule__MModule___name].val; /* _name on values[2]=var105; { { /* Inline model#MClassDef#mclass (self) on */ -var115 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var115 == NULL)) { +var110 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var110 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var113 = var115; -RET_LABEL114:(void)0; +var108 = var110; +RET_LABEL109:(void)0; } } { -{ /* Inline model#MClass#name (var113) on */ -var118 = var113->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ -if (unlikely(var118 == NULL)) { +{ /* Inline model#MClass#name (var108) on */ +var113 = var108->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ +if (unlikely(var113 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); -} -var116 = var118; -RET_LABEL117:(void)0; -} +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } -var119 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var119 = array_instance Array[Object] */ -var120 = 5; -var121 = NEW_standard__NativeArray(var120, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var121)->values[0] = (val*) var93; -((struct instance_standard__NativeArray*)var121)->values[1] = (val*) var95; -((struct instance_standard__NativeArray*)var121)->values[2] = (val*) var105; -((struct instance_standard__NativeArray*)var121)->values[3] = (val*) var109; -((struct instance_standard__NativeArray*)var121)->values[4] = (val*) var116; -{ -((void (*)(val* self, val* p0, long p1))(var119->class->vft[COLOR_standard__array__Array__with_native]))(var119, var121, var120) /* with_native on */; +var111 = var113; +RET_LABEL112:(void)0; } } +((struct instance_standard__NativeArray*)var86)->values[4]=var111; { -var122 = ((val* (*)(val* self))(var119->class->vft[COLOR_standard__string__Object__to_s]))(var119) /* to_s on */; +var114 = ((val*(*)(val* self))(var86->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var86); /* native_to_s on */ } -var3 = var122; +varonce85 = var86; +var3 = var114; goto RET_LABEL4; } } @@ -4164,85 +4863,80 @@ short int var1 /* : Bool */; val* var2 /* : String */; val* var3 /* : String */; short int var5 /* : Bool */; -val* var6 /* : MModule */; -val* var8 /* : MModule */; -val* var9 /* : MClass */; -val* var11 /* : MClass */; -val* var12 /* : MVisibility */; -val* var14 /* : MVisibility */; -val* var15 /* : String */; +val* var6 /* : NativeArray[String] */; static val* varonce; -val* var16 /* : String */; -char* var17 /* : NativeString */; -long var18 /* : Int */; -val* var19 /* : FlatString */; -val* var20 /* : MClass */; -val* var22 /* : MClass */; -val* var23 /* : String */; -val* var24 /* : Array[Object] */; -long var25 /* : Int */; -val* var26 /* : NativeArray[Object] */; -val* var27 /* : String */; -short int var28 /* : Bool */; +static val* varonce7; +val* var8 /* : String */; +char* var9 /* : NativeString */; +val* var10 /* : FlatString */; +val* var11 /* : MModule */; +val* var13 /* : MModule */; +val* var14 /* : MClass */; +val* var16 /* : MClass */; +val* var17 /* : MVisibility */; +val* var19 /* : MVisibility */; +val* var20 /* : String */; +val* var21 /* : MClass */; +val* var23 /* : MClass */; +val* var24 /* : String */; +val* var25 /* : String */; +short int var26 /* : Bool */; +val* var27 /* : MClass */; val* var29 /* : MClass */; -val* var31 /* : MClass */; +val* var30 /* : MModule */; val* var32 /* : MModule */; +val* var33 /* : nullable MProject */; val* var34 /* : MModule */; -val* var35 /* : nullable MProject */; val* var36 /* : MModule */; -val* var38 /* : MModule */; -val* var39 /* : nullable MProject */; -short int var40 /* : Bool */; -short int var41 /* : Bool */; +val* var37 /* : nullable MProject */; +short int var38 /* : Bool */; +short int var39 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var41 /* : Bool */; short int var43 /* : Bool */; -short int var45 /* : Bool */; short int var_ /* var : Bool */; +val* var44 /* : MClass */; val* var46 /* : MClass */; -val* var48 /* : MClass */; +val* var47 /* : MVisibility */; val* var49 /* : MVisibility */; +val* var50 /* : Sys */; val* var51 /* : MVisibility */; -val* var52 /* : MVisibility */; -short int var53 /* : Bool */; -val* var54 /* : MModule */; -val* var56 /* : MModule */; -val* var57 /* : String */; -static val* varonce58; -val* var59 /* : String */; -char* var60 /* : NativeString */; -long var61 /* : Int */; -val* var62 /* : FlatString */; +short int var52 /* : Bool */; +val* var54 /* : NativeArray[String] */; +static val* varonce53; +static val* varonce55; +val* var56 /* : String */; +char* var57 /* : NativeString */; +val* var58 /* : FlatString */; +val* var59 /* : MModule */; +val* var61 /* : MModule */; +val* var62 /* : String */; val* var63 /* : MClass */; val* var65 /* : MClass */; val* var66 /* : String */; val* var68 /* : String */; val* var69 /* : String */; -val* var70 /* : Array[Object] */; -long var71 /* : Int */; -val* var72 /* : NativeArray[Object] */; -val* var73 /* : String */; -val* var74 /* : MModule */; -val* var76 /* : MModule */; -val* var77 /* : String */; -static val* varonce78; -val* var79 /* : String */; -char* var80 /* : NativeString */; -long var81 /* : Int */; -val* var82 /* : FlatString */; +val* var70 /* : String */; +val* var72 /* : NativeArray[String] */; +static val* varonce71; +static val* varonce73; +val* var74 /* : String */; +char* var75 /* : NativeString */; +val* var76 /* : FlatString */; +val* var77 /* : MModule */; +val* var79 /* : MModule */; +val* var80 /* : String */; +val* var81 /* : MClass */; val* var83 /* : MClass */; -val* var85 /* : MClass */; -val* var86 /* : String */; -val* var87 /* : Array[Object] */; -long var88 /* : Int */; -val* var89 /* : NativeArray[Object] */; -val* var90 /* : String */; +val* var84 /* : String */; +val* var85 /* : String */; var1 = self->attrs[COLOR_nit__model__MClassDef___c_name].val != NULL; /* _c_name on */ if(likely(var1)) { var2 = self->attrs[COLOR_nit__model__MClassDef___c_name].val; /* _c_name on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 554); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 615); +fatal_exit(1); } } else { { @@ -4250,215 +4944,221 @@ show_backtrace(1); var5 = nit___nit__MClassDef___is_intro(self); } if (var5){ +if (unlikely(varonce==NULL)) { +var6 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce7!=NULL)) { +var8 = varonce7; +} else { +var9 = "___"; +var10 = standard___standard__NativeString___to_s_with_length(var9, 3l); +var8 = var10; +varonce7 = var8; +} +((struct instance_standard__NativeArray*)var6)->values[1]=var8; +} else { +var6 = varonce; +varonce = NULL; +} { { /* Inline model#MClassDef#mmodule (self) on */ -var8 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var8 == NULL)) { +var13 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var13 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { { /* Inline model#MClassDef#mclass (self) on */ -var11 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var11 == NULL)) { +var16 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -{ /* Inline model#MClass#visibility (var9) on */ -var14 = var9->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ -if (unlikely(var14 == NULL)) { +{ /* Inline model#MClass#visibility (var14) on */ +var19 = var14->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ +if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 440); +fatal_exit(1); } -var12 = var14; -RET_LABEL13:(void)0; +var17 = var19; +RET_LABEL18:(void)0; } } { -var15 = nit___nit__MModule___c_namespace_for(var6, var12); -} -if (varonce) { -var16 = varonce; -} else { -var17 = "___"; -var18 = 3; -var19 = standard___standard__NativeString___to_s_with_length(var17, var18); -var16 = var19; -varonce = var16; +var20 = nit___nit__MModule___c_namespace_for(var11, var17); } +((struct instance_standard__NativeArray*)var6)->values[0]=var20; { { /* Inline model#MClassDef#mclass (self) on */ -var22 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var22 == NULL)) { +var23 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var20 = var22; -RET_LABEL21:(void)0; +var21 = var23; +RET_LABEL22:(void)0; } } { -var23 = nit___nit__MClass___nit__model_base__MEntity__c_name(var20); +var24 = nit___nit__MClass___nit__model_base__MEntity__c_name(var21); } -var24 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var24 = array_instance Array[Object] */ -var25 = 3; -var26 = NEW_standard__NativeArray(var25, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var26)->values[0] = (val*) var15; -((struct instance_standard__NativeArray*)var26)->values[1] = (val*) var16; -((struct instance_standard__NativeArray*)var26)->values[2] = (val*) var23; +((struct instance_standard__NativeArray*)var6)->values[2]=var24; { -((void (*)(val* self, val* p0, long p1))(var24->class->vft[COLOR_standard__array__Array__with_native]))(var24, var26, var25) /* with_native on */; +var25 = ((val*(*)(val* self))(var6->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var6); /* native_to_s on */ } -} -{ -var27 = ((val* (*)(val* self))(var24->class->vft[COLOR_standard__string__Object__to_s]))(var24) /* to_s on */; -} -var3 = var27; +varonce = var6; +var3 = var25; goto RET_LABEL4; } else { { { /* Inline model#MClassDef#mclass (self) on */ -var31 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var31 == NULL)) { +var29 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var29 = var31; -RET_LABEL30:(void)0; +var27 = var29; +RET_LABEL28:(void)0; } } { -{ /* Inline model#MClass#intro_mmodule (var29) on */ -var34 = var29->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var34 == NULL)) { +{ /* Inline model#MClass#intro_mmodule (var27) on */ +var32 = var27->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var32 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } -var32 = var34; -RET_LABEL33:(void)0; +var30 = var32; +RET_LABEL31:(void)0; } } { -var35 = nit___nit__MModule___mproject(var32); +var33 = nit___nit__MModule___mproject(var30); } { { /* Inline model#MClassDef#mmodule (self) on */ -var38 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var38 == NULL)) { +var36 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var36 = var38; -RET_LABEL37:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } { -var39 = nit___nit__MModule___mproject(var36); +var37 = nit___nit__MModule___mproject(var34); } -if (var35 == NULL) { -var40 = (var39 == NULL); +if (var33 == NULL) { +var38 = (var37 == NULL); } else { -{ /* Inline kernel#Object#== (var35,var39) on */ -var_other = var39; +{ /* Inline kernel#Object#== (var33,var37) on */ +var_other = var37; { -{ /* Inline kernel#Object#is_same_instance (var35,var_other) on */ -var45 = var35 == var_other; -var43 = var45; -goto RET_LABEL44; -RET_LABEL44:(void)0; -} -} +{ /* Inline kernel#Object#is_same_instance (var33,var_other) on */ +var43 = var33 == var_other; var41 = var43; goto RET_LABEL42; RET_LABEL42:(void)0; } -var40 = var41; } -var_ = var40; -if (var40){ +var39 = var41; +goto RET_LABEL40; +RET_LABEL40:(void)0; +} +var38 = var39; +} +var_ = var38; +if (var38){ { { /* Inline model#MClassDef#mclass (self) on */ -var48 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var48 == NULL)) { +var46 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var46 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var46 = var48; -RET_LABEL47:(void)0; +var44 = var46; +RET_LABEL45:(void)0; } } { -{ /* Inline model#MClass#visibility (var46) on */ -var51 = var46->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ -if (unlikely(var51 == NULL)) { +{ /* Inline model#MClass#visibility (var44) on */ +var49 = var44->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ +if (unlikely(var49 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 403); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 440); +fatal_exit(1); } -var49 = var51; -RET_LABEL50:(void)0; +var47 = var49; +RET_LABEL48:(void)0; } } +var50 = glob_sys; { -var52 = nit__model_base___standard__Object___private_visibility(self); +var51 = nit__model_base___standard__Sys___private_visibility(var50); } { -var53 = standard___standard__Comparable____62d(var49, var52); +var52 = standard___standard__Comparable____62d(var47, var51); } -var28 = var53; +var26 = var52; } else { -var28 = var_; +var26 = var_; +} +if (var26){ +if (unlikely(varonce53==NULL)) { +var54 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce55!=NULL)) { +var56 = varonce55; +} else { +var57 = "___"; +var58 = standard___standard__NativeString___to_s_with_length(var57, 3l); +var56 = var58; +varonce55 = var56; +} +((struct instance_standard__NativeArray*)var54)->values[1]=var56; +} else { +var54 = varonce53; +varonce53 = NULL; } -if (var28){ { { /* Inline model#MClassDef#mmodule (self) on */ -var56 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var56 == NULL)) { +var61 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var61 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var54 = var56; -RET_LABEL55:(void)0; +var59 = var61; +RET_LABEL60:(void)0; } } { -var57 = nit___nit__MModule___nit__model_base__MEntity__c_name(var54); -} -if (varonce58) { -var59 = varonce58; -} else { -var60 = "___"; -var61 = 3; -var62 = standard___standard__NativeString___to_s_with_length(var60, var61); -var59 = var62; -varonce58 = var59; +var62 = nit___nit__MModule___nit__model_base__MEntity__c_name(var59); } +((struct instance_standard__NativeArray*)var54)->values[0]=var62; { { /* Inline model#MClassDef#mclass (self) on */ var65 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ if (unlikely(var65 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } var63 = var65; RET_LABEL64:(void)0; @@ -4469,8 +5169,8 @@ RET_LABEL64:(void)0; var68 = var63->attrs[COLOR_nit__model__MClass___name].val; /* _name on */ if (unlikely(var68 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 362); +fatal_exit(1); } var66 = var68; RET_LABEL67:(void)0; @@ -4479,77 +5179,66 @@ RET_LABEL67:(void)0; { var69 = standard___standard__Text___to_cmangle(var66); } -var70 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var70 = array_instance Array[Object] */ -var71 = 3; -var72 = NEW_standard__NativeArray(var71, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var72)->values[0] = (val*) var57; -((struct instance_standard__NativeArray*)var72)->values[1] = (val*) var59; -((struct instance_standard__NativeArray*)var72)->values[2] = (val*) var69; -{ -((void (*)(val* self, val* p0, long p1))(var70->class->vft[COLOR_standard__array__Array__with_native]))(var70, var72, var71) /* with_native on */; -} -} +((struct instance_standard__NativeArray*)var54)->values[2]=var69; { -var73 = ((val* (*)(val* self))(var70->class->vft[COLOR_standard__string__Object__to_s]))(var70) /* to_s on */; +var70 = ((val*(*)(val* self))(var54->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var54); /* native_to_s on */ } -var3 = var73; +varonce53 = var54; +var3 = var70; goto RET_LABEL4; } else { +if (unlikely(varonce71==NULL)) { +var72 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce73!=NULL)) { +var74 = varonce73; +} else { +var75 = "___"; +var76 = standard___standard__NativeString___to_s_with_length(var75, 3l); +var74 = var76; +varonce73 = var74; +} +((struct instance_standard__NativeArray*)var72)->values[1]=var74; +} else { +var72 = varonce71; +varonce71 = NULL; +} { { /* Inline model#MClassDef#mmodule (self) on */ -var76 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var76 == NULL)) { +var79 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var79 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var74 = var76; -RET_LABEL75:(void)0; +var77 = var79; +RET_LABEL78:(void)0; } } { -var77 = nit___nit__MModule___nit__model_base__MEntity__c_name(var74); -} -if (varonce78) { -var79 = varonce78; -} else { -var80 = "___"; -var81 = 3; -var82 = standard___standard__NativeString___to_s_with_length(var80, var81); -var79 = var82; -varonce78 = var79; +var80 = nit___nit__MModule___nit__model_base__MEntity__c_name(var77); } +((struct instance_standard__NativeArray*)var72)->values[0]=var80; { { /* Inline model#MClassDef#mclass (self) on */ -var85 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var85 == NULL)) { +var83 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var83 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); -} -var83 = var85; -RET_LABEL84:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } +var81 = var83; +RET_LABEL82:(void)0; } -{ -var86 = nit___nit__MClass___nit__model_base__MEntity__c_name(var83); } -var87 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var87 = array_instance Array[Object] */ -var88 = 3; -var89 = NEW_standard__NativeArray(var88, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var89)->values[0] = (val*) var77; -((struct instance_standard__NativeArray*)var89)->values[1] = (val*) var79; -((struct instance_standard__NativeArray*)var89)->values[2] = (val*) var86; { -((void (*)(val* self, val* p0, long p1))(var87->class->vft[COLOR_standard__array__Array__with_native]))(var87, var89, var88) /* with_native on */; -} +var84 = nit___nit__MClass___nit__model_base__MEntity__c_name(var81); } +((struct instance_standard__NativeArray*)var72)->values[2]=var84; { -var90 = ((val* (*)(val* self))(var87->class->vft[COLOR_standard__string__Object__to_s]))(var87) /* to_s on */; +var85 = ((val*(*)(val* self))(var72->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var72); /* native_to_s on */ } -var3 = var90; +varonce71 = var72; +var3 = var85; goto RET_LABEL4; } } @@ -4574,8 +5263,8 @@ val* var6 /* : Model */; var3 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -4587,7 +5276,7 @@ var6 = var1->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on attrs[COLOR_nit__model__MClassDef___supertypes].val; /* _supertypes on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 566); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 627); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -4617,49 +5306,48 @@ void nit___nit__MClassDef___set_supertypes(val* self, val* p0) { val* var_supertypes /* var supertypes: Array[MClassType] */; val* var /* : nullable POSetElement[MClassDef] */; val* var2 /* : nullable POSetElement[MClassDef] */; -val* var3 /* : null */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : MModule */; -val* var12 /* : MModule */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : MModule */; +val* var11 /* : MModule */; val* var_mmodule /* var mmodule: MModule */; -val* var13 /* : Model */; -val* var15 /* : Model */; +val* var12 /* : Model */; +val* var14 /* : Model */; val* var_model /* var model: Model */; -val* var16 /* : MClassType */; -val* var18 /* : MClassType */; +val* var15 /* : MClassType */; +val* var17 /* : MClassType */; val* var_mtype /* var mtype: MClassType */; val* var_ /* var : Array[MClassType] */; -val* var19 /* : ArrayIterator[nullable Object] */; -val* var_20 /* var : ArrayIterator[MClassType] */; -short int var21 /* : Bool */; -val* var22 /* : nullable Object */; +val* var18 /* : ArrayIterator[nullable Object] */; +val* var_19 /* var : ArrayIterator[MClassType] */; +short int var20 /* : Bool */; +val* var21 /* : nullable Object */; val* var_supertype /* var supertype: MClassType */; -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_41 /* var : Bool */; -val* var42 /* : MClass */; -val* var44 /* : MClass */; -val* var45 /* : MModule */; -val* var47 /* : MModule */; -short int var48 /* : Bool */; -short int var50 /* : Bool */; -short int var52 /* : Bool */; -val* var53 /* : POSet[MClassType] */; -val* var55 /* : POSet[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 */; +short int var37 /* : Bool */; +short int var39 /* : Bool */; +short int var_40 /* var : Bool */; +val* var41 /* : MClass */; +val* var43 /* : MClass */; +val* var44 /* : MModule */; +val* var46 /* : MModule */; +short int var47 /* : Bool */; +short int var49 /* : Bool */; +short int var51 /* : Bool */; +val* var52 /* : POSet[MClassType] */; +val* var54 /* : POSet[MClassType] */; var_supertypes = p0; { { /* Inline model#MClassDef#in_hierarchy (self) on */ @@ -4668,223 +5356,222 @@ var = var2; RET_LABEL1:(void)0; } } -var3 = NULL; if (var == NULL) { -var4 = 1; /* is null */ +var3 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#== (var,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var,var_other) on */ -var9 = var == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var8 = var == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var4 = var5; +var3 = var4; } -if (unlikely(!var4)) { +if (unlikely(!var3)) { PRINT_ERROR("Runtime error: %s", "Assert \'unique_invocation\' failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 576); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 637); +fatal_exit(1); } { { /* Inline model#MClassDef#mmodule (self) on */ -var12 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var12 == NULL)) { +var11 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var10 = var12; -RET_LABEL11:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } -var_mmodule = var10; +var_mmodule = var9; { { /* Inline mmodule#MModule#model (var_mmodule) on */ -var15 = var_mmodule->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ -if (unlikely(var15 == NULL)) { +var14 = var_mmodule->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); -show_backtrace(1); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } -var_model = var13; +var_model = var12; { { /* Inline model#MClassDef#bound_mtype (self) on */ -var18 = self->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var18 == NULL)) { +var17 = self->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var16 = var18; -RET_LABEL17:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } -var_mtype = var16; +var_mtype = var15; var_ = var_supertypes; { -var19 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var18 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_20 = var19; +var_19 = var18; for(;;) { { -var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_20); +var20 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_19); } -if (var21){ +if (var20){ { -var22 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_20); +var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_19); } -var_supertype = var22; +var_supertype = var21; { { /* Inline model#MClassDef#supertypes (self) on */ -var25 = self->attrs[COLOR_nit__model__MClassDef___supertypes].val; /* _supertypes on */ -if (unlikely(var25 == NULL)) { +var24 = self->attrs[COLOR_nit__model__MClassDef___supertypes].val; /* _supertypes on */ +if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 566); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 627); +fatal_exit(1); } -var23 = var25; -RET_LABEL24:(void)0; +var22 = var24; +RET_LABEL23:(void)0; } } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var23, var_supertype); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var22, var_supertype); /* Direct call array#Array#add on */ } { { /* Inline model#Model#full_mtype_specialization_hierarchy (var_model) on */ -var28 = var_model->attrs[COLOR_nit__model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on */ -if (unlikely(var28 == NULL)) { +var27 = var_model->attrs[COLOR_nit__model__Model___full_mtype_specialization_hierarchy].val; /* _full_mtype_specialization_hierarchy on */ +if (unlikely(var27 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_mtype_specialization_hierarchy"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 57); -show_backtrace(1); +fatal_exit(1); } -var26 = var28; -RET_LABEL27:(void)0; +var25 = var27; +RET_LABEL26:(void)0; } } { -poset___poset__POSet___add_edge(var26, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on */ +poset___poset__POSet___add_edge(var25, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on */ } { { /* Inline model#MClassDef#mclass (self) on */ -var32 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var32 == NULL)) { +var31 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var31 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var30 = var32; -RET_LABEL31:(void)0; +var29 = var31; +RET_LABEL30:(void)0; } } { -{ /* Inline model#MClass#intro_mmodule (var30) on */ -var35 = var30->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var35 == NULL)) { +{ /* Inline model#MClass#intro_mmodule (var29) on */ +var34 = var29->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var34 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } -var33 = var35; -RET_LABEL34:(void)0; +var32 = var34; +RET_LABEL33:(void)0; } } { -{ /* Inline kernel#Object#== (var33,var_mmodule) on */ +{ /* Inline kernel#Object#== (var32,var_mmodule) on */ var_other = var_mmodule; { -{ /* Inline kernel#Object#is_same_instance (var33,var_other) on */ -var40 = var33 == var_other; -var38 = var40; -goto RET_LABEL39; -RET_LABEL39:(void)0; +{ /* Inline kernel#Object#is_same_instance (var32,var_other) on */ +var39 = var32 == var_other; +var37 = var39; +goto RET_LABEL38; +RET_LABEL38:(void)0; } } -var36 = var38; -goto RET_LABEL37; -RET_LABEL37:(void)0; +var35 = var37; +goto RET_LABEL36; +RET_LABEL36:(void)0; } } -var_41 = var36; -if (var36){ +var_40 = var35; +if (var35){ { { /* Inline model#MClassType#mclass (var_supertype) on */ -var44 = var_supertype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var44 == NULL)) { +var43 = var_supertype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var43 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var42 = var44; -RET_LABEL43:(void)0; +var41 = var43; +RET_LABEL42:(void)0; } } { -{ /* Inline model#MClass#intro_mmodule (var42) on */ -var47 = var42->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var47 == NULL)) { +{ /* Inline model#MClass#intro_mmodule (var41) on */ +var46 = var41->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var46 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } -var45 = var47; -RET_LABEL46:(void)0; +var44 = var46; +RET_LABEL45:(void)0; } } { -{ /* Inline kernel#Object#== (var45,var_mmodule) on */ +{ /* Inline kernel#Object#== (var44,var_mmodule) on */ var_other = var_mmodule; { -{ /* Inline kernel#Object#is_same_instance (var45,var_other) on */ -var52 = var45 == var_other; -var50 = var52; -goto RET_LABEL51; -RET_LABEL51:(void)0; +{ /* Inline kernel#Object#is_same_instance (var44,var_other) on */ +var51 = var44 == var_other; +var49 = var51; +goto RET_LABEL50; +RET_LABEL50:(void)0; } } -var48 = var50; -goto RET_LABEL49; -RET_LABEL49:(void)0; +var47 = var49; +goto RET_LABEL48; +RET_LABEL48:(void)0; } } -var29 = var48; +var28 = var47; } else { -var29 = var_41; +var28 = var_40; } -if (var29){ +if (var28){ { { /* Inline model#Model#intro_mtype_specialization_hierarchy (var_model) on */ -var55 = var_model->attrs[COLOR_nit__model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on */ -if (unlikely(var55 == NULL)) { +var54 = var_model->attrs[COLOR_nit__model__Model___intro_mtype_specialization_hierarchy].val; /* _intro_mtype_specialization_hierarchy on */ +if (unlikely(var54 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mtype_specialization_hierarchy"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 46); -show_backtrace(1); +fatal_exit(1); } -var53 = var55; -RET_LABEL54:(void)0; +var52 = var54; +RET_LABEL53:(void)0; } } { -poset___poset__POSet___add_edge(var53, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on */ +poset___poset__POSet___add_edge(var52, var_mtype, var_supertype); /* Direct call poset#POSet#add_edge on */ } } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_20); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_19); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -4892,9 +5579,7 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_20) on */ -RET_LABEL56:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_19); /* Direct call array#ArrayIterator#finish on */ } RET_LABEL:; } @@ -4902,35 +5587,34 @@ RET_LABEL:; void nit___nit__MClassDef___add_in_hierarchy(val* self) { val* var /* : nullable POSetElement[MClassDef] */; val* var2 /* : nullable POSetElement[MClassDef] */; -val* var3 /* : null */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : MModule */; -val* var12 /* : MModule */; -val* var13 /* : Model */; -val* var15 /* : Model */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : MModule */; +val* var11 /* : MModule */; +val* var12 /* : Model */; +val* var14 /* : Model */; val* var_model /* var model: Model */; -val* var16 /* : POSet[MClassDef] */; -val* var18 /* : POSet[MClassDef] */; -val* var19 /* : POSetElement[nullable Object] */; +val* var15 /* : POSet[MClassDef] */; +val* var17 /* : POSet[MClassDef] */; +val* var18 /* : POSetElement[nullable Object] */; val* var_res /* var res: POSetElement[MClassDef] */; -val* var21 /* : MClassType */; -val* var23 /* : MClassType */; +val* var20 /* : MClassType */; +val* var22 /* : MClassType */; val* var_mtype /* var mtype: MClassType */; -val* var24 /* : MModule */; -val* var26 /* : MModule */; -val* var27 /* : Set[MClassDef] */; +val* var23 /* : MModule */; +val* var25 /* : MModule */; +val* var26 /* : Set[MClassDef] */; val* var_ /* var : Set[MClassDef] */; -val* var28 /* : Iterator[nullable Object] */; -val* var_29 /* var : Iterator[MClassDef] */; -short int var30 /* : Bool */; -val* var31 /* : nullable Object */; +val* var27 /* : Iterator[nullable Object] */; +val* var_28 /* var : Iterator[MClassDef] */; +short int var29 /* : Bool */; +val* var30 /* : nullable Object */; val* var_mclassdef /* var mclassdef: MClassDef */; -val* var32 /* : POSet[nullable Object] */; -val* var34 /* : POSet[nullable Object] */; +val* var31 /* : POSet[nullable Object] */; +val* var33 /* : POSet[nullable Object] */; { { /* Inline model#MClassDef#in_hierarchy (self) on */ var2 = self->attrs[COLOR_nit__model__MClassDef___in_hierarchy].val; /* _in_hierarchy on */ @@ -4938,140 +5622,139 @@ var = var2; RET_LABEL1:(void)0; } } -var3 = NULL; if (var == NULL) { -var4 = 1; /* is null */ +var3 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#== (var,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var,var_other) on */ -var9 = var == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var8 = var == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var4 = var5; +var3 = var4; } -if (unlikely(!var4)) { +if (unlikely(!var3)) { PRINT_ERROR("Runtime error: %s", "Assert \'unique_invocation\' failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 601); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 662); +fatal_exit(1); } { { /* Inline model#MClassDef#mmodule (self) on */ -var12 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var12 == NULL)) { +var11 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var10 = var12; -RET_LABEL11:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } { -{ /* Inline mmodule#MModule#model (var10) on */ -var15 = var10->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ -if (unlikely(var15 == NULL)) { +{ /* Inline mmodule#MModule#model (var9) on */ +var14 = var9->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 73); -show_backtrace(1); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } -var_model = var13; +var_model = var12; { { /* Inline model#Model#mclassdef_hierarchy (var_model) on */ -var18 = var_model->attrs[COLOR_nit__model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ -if (unlikely(var18 == NULL)) { +var17 = var_model->attrs[COLOR_nit__model__Model___mclassdef_hierarchy].val; /* _mclassdef_hierarchy on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef_hierarchy"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 40); -show_backtrace(1); +fatal_exit(1); } -var16 = var18; -RET_LABEL17:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -var19 = poset___poset__POSet___add_node(var16, self); +var18 = poset___poset__POSet___add_node(var15, self); } -var_res = var19; +var_res = var18; { { /* Inline model#MClassDef#in_hierarchy= (self,var_res) on */ self->attrs[COLOR_nit__model__MClassDef___in_hierarchy].val = var_res; /* _in_hierarchy on */ -RET_LABEL20:(void)0; +RET_LABEL19:(void)0; } } { { /* Inline model#MClassDef#bound_mtype (self) on */ -var23 = self->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var23 == NULL)) { +var22 = self->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var21 = var23; -RET_LABEL22:(void)0; +var20 = var22; +RET_LABEL21:(void)0; } } -var_mtype = var21; +var_mtype = var20; { { /* Inline model#MClassDef#mmodule (self) on */ -var26 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var26 == NULL)) { +var25 = self->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var25 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var24 = var26; -RET_LABEL25:(void)0; +var23 = var25; +RET_LABEL24:(void)0; } } { -var27 = nit___nit__MClassType___MType__collect_mclassdefs(var_mtype, var24); +var26 = nit___nit__MClassType___MType__collect_mclassdefs(var_mtype, var23); } -var_ = var27; +var_ = var26; { -var28 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on */; +var27 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on */ } -var_29 = var28; +var_28 = var27; for(;;) { { -var30 = ((short int (*)(val* self))(var_29->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_29) /* is_ok on */; +var29 = ((short int(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_28); /* is_ok on */ } -if (var30){ +if (var29){ { -var31 = ((val* (*)(val* self))(var_29->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_29) /* item on */; +var30 = ((val*(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_28); /* item on */ } -var_mclassdef = var31; +var_mclassdef = var30; { { /* Inline poset#POSetElement#poset (var_res) on */ -var34 = var_res->attrs[COLOR_poset__POSetElement___poset].val; /* _poset on */ -if (unlikely(var34 == NULL)) { +var33 = var_res->attrs[COLOR_poset__POSetElement___poset].val; /* _poset on */ +if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _poset"); -PRINT_ERROR(" (%s:%d)\n", FILE_poset, 383); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_poset, 400); +fatal_exit(1); } -var32 = var34; -RET_LABEL33:(void)0; +var31 = var33; +RET_LABEL32:(void)0; } } { -poset___poset__POSet___add_edge(var32, self, var_mclassdef); /* Direct call poset#POSet#add_edge on */ +poset___poset__POSet___add_edge(var31, self, var_mclassdef); /* Direct call poset#POSet#add_edge on */ } { -((void (*)(val* self))(var_29->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_29) /* next on */; +((void(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_28); /* next on */ } } else { goto BREAK_label; @@ -5079,9 +5762,7 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_29) on */ -RET_LABEL35:(void)0; -} +((void(*)(val* self))((((long)var_28&3)?class_info[((long)var_28&3)]:var_28->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_28); /* finish on */ } RET_LABEL:; } @@ -5102,55 +5783,79 @@ RET_LABEL:; /* method model#MClassDef#is_intro for (self: MClassDef): Bool */ short int nit___nit__MClassDef___is_intro(val* self) { short int var /* : Bool */; -val* var1 /* : MClass */; -val* var3 /* : MClass */; -val* var4 /* : MClassDef */; -val* var6 /* : MClassDef */; -short int var7 /* : Bool */; +short int var1 /* : Bool */; +val* var2 /* : MClass */; +val* var4 /* : MClass */; +short int var5 /* : Bool */; +short int var_ /* var : Bool */; +val* var6 /* : MClass */; +val* var8 /* : MClass */; +val* var9 /* : MClassDef */; +val* var11 /* : MClassDef */; +short int var12 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var9 /* : Bool */; -short int var11 /* : Bool */; +short int var14 /* : Bool */; +short int var16 /* : Bool */; { { /* Inline model#MClassDef#mclass (self) on */ -var3 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var3 == NULL)) { +var4 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var2 = var4; +RET_LABEL3:(void)0; } } +var5 = var2->attrs[COLOR_nit__model__MClass___intro].val != NULL; /* _intro on */ +var_ = var5; +if (var5){ { -{ /* Inline model#MClass#intro (var1) on */ -var6 = var1->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ -if (unlikely(var6 == NULL)) { +{ /* Inline model#MClassDef#mclass (self) on */ +var8 = self->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 553); +fatal_exit(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +{ /* Inline model#MClass#intro (var6) on */ +var11 = var6->attrs[COLOR_nit__model__MClass___intro].val; /* _intro on */ +if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 423); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 460); +fatal_exit(1); } -var4 = var6; -RET_LABEL5:(void)0; +var9 = var11; +RET_LABEL10:(void)0; } } { -{ /* Inline kernel#Object#== (var4,self) on */ +{ /* Inline kernel#Object#== (var9,self) on */ var_other = self; { -{ /* Inline kernel#Object#is_same_instance (var4,var_other) on */ -var11 = var4 == var_other; -var9 = var11; -goto RET_LABEL10; -RET_LABEL10:(void)0; +{ /* Inline kernel#Object#is_same_instance (var9,var_other) on */ +var16 = var9 == var_other; +var14 = var16; +goto RET_LABEL15; +RET_LABEL15:(void)0; } } -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var12 = var14; +goto RET_LABEL13; +RET_LABEL13:(void)0; } } -var = var7; +var1 = var12; +} else { +var1 = var_; +} +var = var1; goto RET_LABEL; RET_LABEL:; return var; @@ -5162,8 +5867,8 @@ val* var1 /* : Array[MProperty] */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 620); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 681); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -5176,8 +5881,8 @@ val* var1 /* : Array[MPropDef] */; var1 = self->attrs[COLOR_nit__model__MClassDef___mpropdefs].val; /* _mpropdefs on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 684); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -5188,7 +5893,7 @@ val* nit___nit__MType___nit__model_base__MEntity__name(val* self) { val* var /* : String */; val* var1 /* : String */; { -var1 = ((val* (*)(val* self))(self->class->vft[COLOR_standard__string__Object__to_s]))(self) /* to_s on */; +var1 = ((val*(*)(val* self))(self->class->vft[COLOR_standard__string__Object__to_s]))(self); /* to_s on */ } var = var1; goto RET_LABEL; @@ -5207,48 +5912,46 @@ val* var_other /* var other: nullable Object */; short int var3 /* : Bool */; short int var5 /* : Bool */; short int var6 /* : Bool */; -val* var7 /* : null */; -short int var8 /* : Bool */; +short int var7 /* : Bool */; short int var9 /* : Bool */; short int var11 /* : Bool */; +short int var12 /* : Bool */; short int var13 /* : Bool */; short int var14 /* : Bool */; short int var15 /* : Bool */; short int var16 /* : Bool */; -short int var17 /* : Bool */; -val* var18 /* : null */; -short int var19 /* : Bool */; -val* var20 /* : MType */; -val* var21 /* : null */; -short int var22 /* : Bool */; -val* var23 /* : MType */; -short int var24 /* : Bool */; +val* var17 /* : MType */; +short int var18 /* : Bool */; +val* var19 /* : MType */; short int var_sup_accept_null /* var sup_accept_null: Bool */; -short int var25 /* : Bool */; +short int var20 /* : Bool */; int cltype; int idtype; -short int var26 /* : Bool */; +val* var21 /* : MType */; +val* var23 /* : MType */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; val* var27 /* : MType */; val* var29 /* : MType */; short int var30 /* : Bool */; int cltype31; int idtype32; +short int var_sub_reject_null /* var sub_reject_null: Bool */; short int var33 /* : Bool */; -short int var34 /* : Bool */; -int cltype35; -int idtype36; -short int var37 /* : Bool */; -short int var38 /* : Bool */; +int cltype34; +int idtype35; +short int var36 /* : Bool */; +val* var37 /* : MType */; val* var39 /* : MType */; -val* var41 /* : MType */; -short int var42 /* : Bool */; -int cltype43; -int idtype44; -short int var45 /* : Bool */; +short int var40 /* : Bool */; +int cltype41; +int idtype42; +val* var43 /* : MType */; +val* var45 /* : MType */; short int var46 /* : Bool */; int cltype47; int idtype48; -short int var_ /* var : Bool */; short int var49 /* : Bool */; int cltype50; int idtype51; @@ -5256,106 +5959,105 @@ short int var52 /* : Bool */; short int var54 /* : Bool */; short int var56 /* : Bool */; short int var57 /* : Bool */; -val* var58 /* : null */; -short int var59 /* : Bool */; -short int var60 /* : Bool */; -val* var_other62 /* var other: nullable Object */; -short int var63 /* : Bool */; -short int var64 /* : Bool */; -val* var65 /* : MType */; -short int var66 /* : Bool */; -int cltype67; -int idtype68; +short int var58 /* : Bool */; +val* var_other60 /* var other: nullable Object */; +short int var61 /* : Bool */; +short int var62 /* : Bool */; +val* var63 /* : MType */; +val* var64 /* : MType */; +short int var65 /* : Bool */; +int cltype66; +int idtype67; +short int var68 /* : Bool */; short int var69 /* : Bool */; +short int var_ /* var : Bool */; short int var70 /* : Bool */; val* var71 /* : MType */; val* var73 /* : MType */; short int var74 /* : Bool */; int cltype75; int idtype76; -short int var77 /* : Bool */; -int cltype78; -int idtype79; +val* var77 /* : MType */; +val* var79 /* : MType */; short int var80 /* : Bool */; -short int var81 /* : Bool */; -int cltype82; -int idtype83; -short int var_84 /* var : Bool */; -short int var85 /* : Bool */; -int cltype86; -int idtype87; -short int var88 /* : Bool */; -short int var89 /* : Bool */; -int cltype90; -int idtype91; -short int var92 /* : Bool */; -short int var93 /* : Bool */; -int cltype94; -int idtype95; -short int var96 /* : Bool */; +int cltype81; +int idtype82; +short int var83 /* : Bool */; +int cltype84; +int idtype85; +val* var86 /* : Sys */; +val* var87 /* : NativeArray[String] */; +static val* varonce; +static val* varonce88; +val* var89 /* : String */; +char* var90 /* : NativeString */; +val* var91 /* : FlatString */; +val* var92 /* : String */; +val* var93 /* : String */; +val* var94 /* : String */; +short int var95 /* : Bool */; +int cltype96; +int idtype97; short int var98 /* : Bool */; -short int var100 /* : Bool */; +int cltype99; +int idtype100; short int var101 /* : Bool */; -val* var102 /* : null */; -short int var103 /* : Bool */; +int cltype102; +int idtype103; short int var104 /* : Bool */; short int var106 /* : Bool */; short int var108 /* : Bool */; -val* var109 /* : MClassType */; -val* var_resolved_sub /* var resolved_sub: MClassType */; -val* var110 /* : Set[MClass] */; -val* var111 /* : MClass */; -val* var113 /* : MClass */; +short int var109 /* : Bool */; +short int var110 /* : Bool */; +short int var112 /* : Bool */; short int var114 /* : Bool */; -short int var_res /* var res: Bool */; -short int var115 /* : Bool */; -short int var116 /* : Bool */; -short int var118 /* : Bool */; -short int var119 /* : Bool */; +val* var115 /* : MClassType */; +val* var_resolved_sub /* var resolved_sub: MClassType */; +val* var116 /* : Set[MClass] */; +val* var117 /* : MClass */; +val* var119 /* : MClass */; short int var120 /* : Bool */; -int cltype121; -int idtype122; +short int var_res /* var res: Bool */; +short int var121 /* : Bool */; short int var123 /* : Bool */; short int var124 /* : Bool */; -val* var125 /* : MClass */; -val* var127 /* : MClass */; -val* var128 /* : MClassType */; +int cltype125; +int idtype126; +short int var127 /* : Bool */; +val* var128 /* : MClass */; +val* var130 /* : MClass */; +val* var131 /* : MClassType */; val* var_sub2 /* var sub2: MClassType */; -val* var129 /* : MClass */; -val* var131 /* : MClass */; val* var132 /* : MClass */; val* var134 /* : MClass */; -short int var135 /* : Bool */; -short int var137 /* : Bool */; -short int var139 /* : Bool */; -long var140 /* : Int */; +val* var135 /* : MClass */; +val* var137 /* : MClass */; +short int var138 /* : Bool */; +short int var140 /* : Bool */; +short int var142 /* : Bool */; long var_i /* var i: Int */; -val* var141 /* : MClass */; val* var143 /* : MClass */; -long var144 /* : Int */; +val* var145 /* : MClass */; long var146 /* : Int */; -long var_147 /* var : Int */; -short int var148 /* : Bool */; +long var148 /* : Int */; +long var_149 /* var : Int */; short int var150 /* : Bool */; -int cltype151; -int idtype152; +short int var152 /* : Bool */; +int cltype153; +int idtype154; const char* var_class_name; -short int var153 /* : Bool */; -val* var154 /* : Array[MType] */; -val* var155 /* : nullable Object */; -val* var_sub_arg /* var sub_arg: MType */; +short int var155 /* : Bool */; val* var156 /* : Array[MType] */; +val* var157 /* : nullable Object */; +val* var_sub_arg /* var sub_arg: MType */; val* var158 /* : Array[MType] */; -val* var159 /* : nullable Object */; +val* var160 /* : Array[MType] */; +val* var161 /* : nullable Object */; val* var_sup_arg /* var sup_arg: MType */; -short int var160 /* : Bool */; -short int var161 /* : Bool */; short int var162 /* : Bool */; -short int var164 /* : Bool */; +short int var163 /* : Bool */; short int var165 /* : Bool */; long var166 /* : Int */; -long var167 /* : Int */; -short int var169 /* : Bool */; var_mmodule = p0; var_anchor = p1; var_sup = p2; @@ -5377,101 +6079,118 @@ RET_LABEL2:(void)0; } } if (var1){ -var6 = 1; -var = var6; +var = 1; goto RET_LABEL; } else { } -var7 = NULL; if (var_anchor == NULL) { -var8 = 1; /* is null */ +var6 = 1; /* is null */ } else { -var8 = 0; /* arg is null but recv is not */ +var6 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_anchor,var7) on */ -var_other = var7; +{ /* Inline kernel#Object#== (var_anchor,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on */ -var13 = var_anchor == var_other; -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; -} -} +var11 = var_anchor == var_other; var9 = var11; goto RET_LABEL10; RET_LABEL10:(void)0; } -var8 = var9; } -if (var8){ +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +var6 = var7; +} +if (var6){ { -var14 = ((short int (*)(val* self))(var_sub->class->vft[COLOR_nit__model__MType__need_anchor]))(var_sub) /* need_anchor on */; +var12 = ((short int(*)(val* self))(var_sub->class->vft[COLOR_nit__model__MType__need_anchor]))(var_sub); /* need_anchor on */ } -var15 = !var14; -if (unlikely(!var15)) { +var13 = !var12; +if (unlikely(!var13)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 672); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 733); +fatal_exit(1); } { -var16 = ((short int (*)(val* self))(var_sup->class->vft[COLOR_nit__model__MType__need_anchor]))(var_sup) /* need_anchor on */; +var14 = ((short int(*)(val* self))(var_sup->class->vft[COLOR_nit__model__MType__need_anchor]))(var_sup); /* need_anchor on */ } -var17 = !var16; -if (unlikely(!var17)) { +var15 = !var14; +if (unlikely(!var15)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 673); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 734); +fatal_exit(1); } } else { -var18 = NULL; { -var19 = ((short int (*)(val* self, val* p0, val* p1, val* p2))(var_sub->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_sub, var_anchor, var18, var_mmodule) /* can_resolve_for on */; +var16 = ((short int(*)(val* self, val* p0, val* p1, val* p2))(var_sub->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_sub, var_anchor, ((val*)NULL), var_mmodule); /* can_resolve_for on */ } -if (unlikely(!var19)) { +if (unlikely(!var16)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 676); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 737); +fatal_exit(1); } { -var20 = ((val* (*)(val* self, val* p0, val* p1))(var_sub->class->vft[COLOR_nit__model__MType__lookup_fixed]))(var_sub, var_mmodule, var_anchor) /* lookup_fixed on */; +var17 = ((val*(*)(val* self, val* p0, val* p1))(var_sub->class->vft[COLOR_nit__model__MType__lookup_fixed]))(var_sub, var_mmodule, var_anchor); /* lookup_fixed on */ } -var_sub = var20; -var21 = NULL; +var_sub = var17; { -var22 = ((short int (*)(val* self, val* p0, val* p1, val* p2))(var_sup->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_sup, var_anchor, var21, var_mmodule) /* can_resolve_for on */; +var18 = ((short int(*)(val* self, val* p0, val* p1, val* p2))(var_sup->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_sup, var_anchor, ((val*)NULL), var_mmodule); /* can_resolve_for on */ } -if (unlikely(!var22)) { +if (unlikely(!var18)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 678); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 739); +fatal_exit(1); } { -var23 = ((val* (*)(val* self, val* p0, val* p1))(var_sup->class->vft[COLOR_nit__model__MType__lookup_fixed]))(var_sup, var_mmodule, var_anchor) /* lookup_fixed on */; +var19 = ((val*(*)(val* self, val* p0, val* p1))(var_sup->class->vft[COLOR_nit__model__MType__lookup_fixed]))(var_sup, var_mmodule, var_anchor); /* lookup_fixed on */ } -var_sup = var23; +var_sup = var19; } -var24 = 0; -var_sup_accept_null = var24; +var_sup_accept_null = 0; /* isa MNullableType */ cltype = type_nit__MNullableType.color; idtype = type_nit__MNullableType.id; if(cltype >= var_sup->type->table_size) { -var25 = 0; +var20 = 0; } else { -var25 = var_sup->type->type_table[cltype] == idtype; +var20 = var_sup->type->type_table[cltype] == idtype; } -if (var25){ -var26 = 1; -var_sup_accept_null = var26; +if (var20){ +var_sup_accept_null = 1; +{ +{ /* Inline model#MProxyType#mtype (var_sup) on */ +var23 = var_sup->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); +} +var21 = var23; +RET_LABEL22:(void)0; +} +} +var_sup = var21; +} else { +/* isa MNotNullType */ +cltype25 = type_nit__MNotNullType.color; +idtype26 = type_nit__MNotNullType.id; +if(cltype25 >= var_sup->type->table_size) { +var24 = 0; +} else { +var24 = var_sup->type->type_table[cltype25] == idtype26; +} +if (var24){ { -{ /* Inline model#MNullableType#mtype (var_sup) on */ -var29 = var_sup->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on */ +{ /* Inline model#MProxyType#mtype (var_sup) on */ +var29 = var_sup->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ if (unlikely(var29 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); } var27 = var29; RET_LABEL28:(void)0; @@ -5488,84 +6207,95 @@ var30 = 0; var30 = var_sup->type->type_table[cltype31] == idtype32; } if (var30){ -var33 = 1; -var_sup_accept_null = var33; +var_sup_accept_null = 1; } else { } } +} +var_sub_reject_null = 0; /* isa MNullableType */ -cltype35 = type_nit__MNullableType.color; -idtype36 = type_nit__MNullableType.id; -if(cltype35 >= var_sub->type->table_size) { -var34 = 0; +cltype34 = type_nit__MNullableType.color; +idtype35 = type_nit__MNullableType.id; +if(cltype34 >= var_sub->type->table_size) { +var33 = 0; } else { -var34 = var_sub->type->type_table[cltype35] == idtype36; +var33 = var_sub->type->type_table[cltype34] == idtype35; } -if (var34){ -var37 = !var_sup_accept_null; -if (var37){ -var38 = 0; -var = var38; +if (var33){ +var36 = !var_sup_accept_null; +if (var36){ +var = 0; goto RET_LABEL; } else { } { -{ /* Inline model#MNullableType#mtype (var_sub) on */ -var41 = var_sub->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on */ -if (unlikely(var41 == NULL)) { +{ /* Inline model#MProxyType#mtype (var_sub) on */ +var39 = var_sub->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ +if (unlikely(var39 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); } -var39 = var41; -RET_LABEL40:(void)0; +var37 = var39; +RET_LABEL38:(void)0; } } -var_sub = var39; +var_sub = var37; } else { -/* isa MNullType */ -cltype43 = type_nit__MNullType.color; -idtype44 = type_nit__MNullType.id; -if(cltype43 >= var_sub->type->table_size) { -var42 = 0; +/* isa MNotNullType */ +cltype41 = type_nit__MNotNullType.color; +idtype42 = type_nit__MNotNullType.id; +if(cltype41 >= var_sub->type->table_size) { +var40 = 0; } else { -var42 = var_sub->type->type_table[cltype43] == idtype44; +var40 = var_sub->type->type_table[cltype41] == idtype42; } -if (var42){ -var = var_sup_accept_null; -goto RET_LABEL; -} else { +if (var40){ +var_sub_reject_null = 1; +{ +{ /* Inline model#MProxyType#mtype (var_sub) on */ +var45 = var_sub->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ +if (unlikely(var45 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); +} +var43 = var45; +RET_LABEL44:(void)0; } } -for(;;) { -/* isa MParameterType */ -cltype47 = type_nit__MParameterType.color; -idtype48 = type_nit__MParameterType.id; +var_sub = var43; +} else { +/* isa MNullType */ +cltype47 = type_nit__MNullType.color; +idtype48 = type_nit__MNullType.id; if(cltype47 >= var_sub->type->table_size) { var46 = 0; } else { var46 = var_sub->type->type_table[cltype47] == idtype48; } -var_ = var46; if (var46){ -var45 = var_; +var = var_sup_accept_null; +goto RET_LABEL; } else { -/* isa MVirtualType */ -cltype50 = type_nit__MVirtualType.color; -idtype51 = type_nit__MVirtualType.id; +} +} +} +for(;;) { +/* isa MFormalType */ +cltype50 = type_nit__MFormalType.color; +idtype51 = type_nit__MFormalType.id; if(cltype50 >= var_sub->type->table_size) { var49 = 0; } else { var49 = var_sub->type->type_table[cltype50] == idtype51; } -var45 = var49; -} -if (var45){ +if (var49){ { -{ /* Inline kernel#Object#== (var_sub,var_sup) on */ +{ /* Inline kernel#Object#== (var_sub,var_sup) on */ var_other = var_sup; { -{ /* Inline kernel#Object#is_same_instance (var_sub,var_other) on */ +{ /* Inline kernel#Object#is_same_instance (var_sub,var_other) on */ var56 = var_sub == var_other; var54 = var56; goto RET_LABEL55; @@ -5578,62 +6308,73 @@ RET_LABEL53:(void)0; } } if (var52){ -var57 = 1; -var = var57; +var = 1; goto RET_LABEL; } else { } -var58 = NULL; if (var_anchor == NULL) { -var59 = 0; /* is null */ +var57 = 0; /* is null */ } else { -var59 = 1; /* arg is null and recv is not */ +var57 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_anchor,var58) on */ -var_other62 = var58; +{ /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on */ +var_other60 = ((val*)NULL); { -var63 = ((short int (*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other62) /* == on */; +var61 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other60); /* == on */ } -var64 = !var63; -var60 = var64; -goto RET_LABEL61; -RET_LABEL61:(void)0; +var62 = !var61; +var58 = var62; +goto RET_LABEL59; +RET_LABEL59:(void)0; } -var59 = var60; +var57 = var58; } -if (unlikely(!var59)) { +if (unlikely(!var57)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 710); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 777); +fatal_exit(1); +} +{ +var63 = ((val*(*)(val* self, val* p0, val* p1))(var_sub->class->vft[COLOR_nit__model__MType__lookup_bound]))(var_sub, var_mmodule, var_anchor); /* lookup_bound on */ } +var_sub = var63; +if (var_sub_reject_null){ { -var65 = ((val* (*)(val* self, val* p0, val* p1))(var_sub->class->vft[COLOR_nit__model__MType__lookup_bound]))(var_sub, var_mmodule, var_anchor) /* lookup_bound on */; +var64 = ((val*(*)(val* self))(var_sub->class->vft[COLOR_nit__model__MType__as_notnull]))(var_sub); /* as_notnull on */ +} +var_sub = var64; +} else { } -var_sub = var65; /* isa MNullableType */ -cltype67 = type_nit__MNullableType.color; -idtype68 = type_nit__MNullableType.id; -if(cltype67 >= var_sub->type->table_size) { -var66 = 0; +cltype66 = type_nit__MNullableType.color; +idtype67 = type_nit__MNullableType.id; +if(cltype66 >= var_sub->type->table_size) { +var65 = 0; } else { -var66 = var_sub->type->type_table[cltype67] == idtype68; +var65 = var_sub->type->type_table[cltype66] == idtype67; } -if (var66){ +if (var65){ var69 = !var_sup_accept_null; +var_ = var69; if (var69){ -var70 = 0; -var = var70; +var70 = !var_sub_reject_null; +var68 = var70; +} else { +var68 = var_; +} +if (var68){ +var = 0; goto RET_LABEL; } else { } { -{ /* Inline model#MNullableType#mtype (var_sub) on */ -var73 = var_sub->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on */ +{ /* Inline model#MProxyType#mtype (var_sub) on */ +var73 = var_sub->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ if (unlikely(var73 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); } var71 = var73; RET_LABEL72:(void)0; @@ -5641,351 +6382,381 @@ RET_LABEL72:(void)0; } var_sub = var71; } else { -/* isa MNullType */ -cltype75 = type_nit__MNullType.color; -idtype76 = type_nit__MNullType.id; +/* isa MNotNullType */ +cltype75 = type_nit__MNotNullType.color; +idtype76 = type_nit__MNotNullType.id; if(cltype75 >= var_sub->type->table_size) { var74 = 0; } else { var74 = var_sub->type->type_table[cltype75] == idtype76; } if (var74){ +var_sub_reject_null = 1; +{ +{ /* Inline model#MProxyType#mtype (var_sub) on */ +var79 = var_sub->attrs[COLOR_nit__model__MProxyType___mtype].val; /* _mtype on */ +if (unlikely(var79 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1598); +fatal_exit(1); +} +var77 = var79; +RET_LABEL78:(void)0; +} +} +var_sub = var77; +} else { +/* isa MNullType */ +cltype81 = type_nit__MNullType.color; +idtype82 = type_nit__MNullType.id; +if(cltype81 >= var_sub->type->table_size) { +var80 = 0; +} else { +var80 = var_sub->type->type_table[cltype81] == idtype82; +} +if (var80){ var = var_sup_accept_null; goto RET_LABEL; } else { } } +} } else { goto BREAK_label; } } BREAK_label: (void)0; /* isa MClassType */ -cltype78 = type_nit__MClassType.color; -idtype79 = type_nit__MClassType.id; -if(cltype78 >= var_sub->type->table_size) { -var77 = 0; +cltype84 = type_nit__MClassType.color; +idtype85 = type_nit__MClassType.id; +if(cltype84 >= var_sub->type->table_size) { +var83 = 0; } else { -var77 = var_sub->type->type_table[cltype78] == idtype79; -} -if (unlikely(!var77)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 725); -show_backtrace(1); +var83 = var_sub->type->type_table[cltype84] == idtype85; } -/* isa MParameterType */ -cltype82 = type_nit__MParameterType.color; -idtype83 = type_nit__MParameterType.id; -if(cltype82 >= var_sup->type->table_size) { -var81 = 0; +if (unlikely(!var83)) { +var86 = glob_sys; +if (unlikely(varonce==NULL)) { +var87 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce88!=NULL)) { +var89 = varonce88; } else { -var81 = var_sup->type->type_table[cltype82] == idtype83; +var90 = " isa MVirtualType */ -cltype86 = type_nit__MVirtualType.color; -idtype87 = type_nit__MVirtualType.id; -if(cltype86 >= var_sup->type->table_size) { -var85 = 0; +((struct instance_standard__NativeArray*)var87)->values[1]=var89; } else { -var85 = var_sup->type->type_table[cltype86] == idtype87; +var87 = varonce; +varonce = NULL; } -var80 = var85; +{ +var92 = ((val*(*)(val* self))(var_sub->class->vft[COLOR_standard__string__Object__to_s]))(var_sub); /* to_s on */ } -if (var80){ -var88 = 0; -var = var88; +((struct instance_standard__NativeArray*)var87)->values[0]=var92; +{ +var93 = ((val*(*)(val* self))(var_sub->class->vft[COLOR_standard__string__Object__to_s]))(var_sub); /* to_s on */ +} +((struct instance_standard__NativeArray*)var87)->values[2]=var93; +{ +var94 = ((val*(*)(val* self))(var87->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var87); /* native_to_s on */ +} +varonce = var87; +{ +standard__file___Sys___print(var86, var94); /* Direct call file#Sys#print on */ +} +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 796); +fatal_exit(1); +} +/* isa MFormalType */ +cltype96 = type_nit__MFormalType.color; +idtype97 = type_nit__MFormalType.id; +if(cltype96 >= var_sup->type->table_size) { +var95 = 0; +} else { +var95 = var_sup->type->type_table[cltype96] == idtype97; +} +if (var95){ +var = 0; goto RET_LABEL; } else { } /* isa MNullType */ -cltype90 = type_nit__MNullType.color; -idtype91 = type_nit__MNullType.id; -if(cltype90 >= var_sup->type->table_size) { -var89 = 0; +cltype99 = type_nit__MNullType.color; +idtype100 = type_nit__MNullType.id; +if(cltype99 >= var_sup->type->table_size) { +var98 = 0; } else { -var89 = var_sup->type->type_table[cltype90] == idtype91; +var98 = var_sup->type->type_table[cltype99] == idtype100; } -if (var89){ -var92 = 0; -var = var92; +if (var98){ +var = 0; goto RET_LABEL; } else { } /* isa MClassType */ -cltype94 = type_nit__MClassType.color; -idtype95 = type_nit__MClassType.id; -if(cltype94 >= var_sup->type->table_size) { -var93 = 0; +cltype102 = type_nit__MClassType.color; +idtype103 = type_nit__MClassType.id; +if(cltype102 >= var_sup->type->table_size) { +var101 = 0; } else { -var93 = var_sup->type->type_table[cltype94] == idtype95; +var101 = var_sup->type->type_table[cltype102] == idtype103; } -if (unlikely(!var93)) { +if (unlikely(!var101)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 737); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 808); +fatal_exit(1); } { { /* Inline kernel#Object#== (var_sub,var_sup) on */ var_other = var_sup; { { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on */ -var100 = var_sub == var_other; -var98 = var100; -goto RET_LABEL99; -RET_LABEL99:(void)0; +var108 = var_sub == var_other; +var106 = var108; +goto RET_LABEL107; +RET_LABEL107:(void)0; } } -var96 = var98; -goto RET_LABEL97; -RET_LABEL97:(void)0; +var104 = var106; +goto RET_LABEL105; +RET_LABEL105:(void)0; } } -if (var96){ -var101 = 1; -var = var101; +if (var104){ +var = 1; goto RET_LABEL; } else { } -var102 = NULL; if (var_anchor == NULL) { -var103 = 1; /* is null */ +var109 = 1; /* is null */ } else { -var103 = 0; /* arg is null but recv is not */ +var109 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_anchor,var102) on */ -var_other = var102; +{ /* Inline kernel#Object#== (var_anchor,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on */ -var108 = var_anchor == var_other; -var106 = var108; -goto RET_LABEL107; -RET_LABEL107:(void)0; +var114 = var_anchor == var_other; +var112 = var114; +goto RET_LABEL113; +RET_LABEL113:(void)0; } } -var104 = var106; -goto RET_LABEL105; -RET_LABEL105:(void)0; +var110 = var112; +goto RET_LABEL111; +RET_LABEL111:(void)0; } -var103 = var104; +var109 = var110; } -if (var103){ +if (var109){ var_anchor = var_sub; } else { } { -var109 = nit___nit__MClassType___MType__anchor_to(var_sub, var_mmodule, var_anchor); +var115 = nit___nit__MClassType___MType__anchor_to(var_sub, var_mmodule, var_anchor); } -var_resolved_sub = var109; +var_resolved_sub = var115; { -var110 = nit___nit__MClassType___MType__collect_mclasses(var_resolved_sub, var_mmodule); +var116 = nit___nit__MClassType___MType__collect_mclasses(var_resolved_sub, var_mmodule); } { { /* Inline model#MClassType#mclass (var_sup) on */ -var113 = var_sup->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var113 == NULL)) { +var119 = var_sup->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var119 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var111 = var113; -RET_LABEL112:(void)0; +var117 = var119; +RET_LABEL118:(void)0; } } { -var114 = ((short int (*)(val* self, val* p0))(var110->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var110, var111) /* has on */; +var120 = ((short int(*)(val* self, val* p0))((((long)var116&3)?class_info[((long)var116&3)]:var116->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var116, var117); /* has on */ } -var_res = var114; -var115 = 0; +var_res = var120; { -{ /* Inline kernel#Bool#== (var_res,var115) on */ -var118 = var_res == var115; -var116 = var118; -goto RET_LABEL117; -RET_LABEL117:(void)0; +{ /* Inline kernel#Bool#== (var_res,0) on */ +var123 = var_res == 0; +var121 = var123; +goto RET_LABEL122; +RET_LABEL122:(void)0; } } -if (var116){ -var119 = 0; -var = var119; +if (var121){ +var = 0; goto RET_LABEL; } else { } /* isa MGenericType */ -cltype121 = type_nit__MGenericType.color; -idtype122 = type_nit__MGenericType.id; -if(cltype121 >= var_sup->type->table_size) { -var120 = 0; +cltype125 = type_nit__MGenericType.color; +idtype126 = type_nit__MGenericType.id; +if(cltype125 >= var_sup->type->table_size) { +var124 = 0; } else { -var120 = var_sup->type->type_table[cltype121] == idtype122; +var124 = var_sup->type->type_table[cltype125] == idtype126; } -var123 = !var120; -if (var123){ -var124 = 1; -var = var124; +var127 = !var124; +if (var127){ +var = 1; goto RET_LABEL; } else { } { { /* Inline model#MClassType#mclass (var_sup) on */ -var127 = var_sup->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var127 == NULL)) { +var130 = var_sup->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var130 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var125 = var127; -RET_LABEL126:(void)0; +var128 = var130; +RET_LABEL129:(void)0; } } { -var128 = nit___nit__MType___supertype_to(var_sub, var_mmodule, var_anchor, var125); +var131 = nit___nit__MType___supertype_to(var_sub, var_mmodule, var_anchor, var128); } -var_sub2 = var128; +var_sub2 = var131; { { /* Inline model#MClassType#mclass (var_sub2) on */ -var131 = var_sub2->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var131 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); -} -var129 = var131; -RET_LABEL130:(void)0; -} -} -{ -{ /* Inline model#MClassType#mclass (var_sup) on */ -var134 = var_sup->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +var134 = var_sub2->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var134 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var132 = var134; RET_LABEL133:(void)0; } } { -{ /* Inline kernel#Object#== (var129,var132) on */ -var_other = var132; -{ -{ /* Inline kernel#Object#is_same_instance (var129,var_other) on */ -var139 = var129 == var_other; -var137 = var139; -goto RET_LABEL138; -RET_LABEL138:(void)0; -} +{ /* Inline model#MClassType#mclass (var_sup) on */ +var137 = var_sup->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var137 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var135 = var137; -goto RET_LABEL136; RET_LABEL136:(void)0; } } -if (unlikely(!var135)) { +{ +{ /* Inline kernel#Object#== (var132,var135) on */ +var_other = var135; +{ +{ /* Inline kernel#Object#is_same_instance (var132,var_other) on */ +var142 = var132 == var_other; +var140 = var142; +goto RET_LABEL141; +RET_LABEL141:(void)0; +} +} +var138 = var140; +goto RET_LABEL139; +RET_LABEL139:(void)0; +} +} +if (unlikely(!var138)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 749); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 820); +fatal_exit(1); } -var140 = 0; -var_i = var140; +var_i = 0l; { { /* Inline model#MClassType#mclass (var_sup) on */ -var143 = var_sup->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var143 == NULL)) { +var145 = var_sup->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var145 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var141 = var143; -RET_LABEL142:(void)0; +var143 = var145; +RET_LABEL144:(void)0; } } { -{ /* Inline model#MClass#arity (var141) on */ -var146 = var141->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ -var144 = var146; -RET_LABEL145:(void)0; +{ /* Inline model#MClass#arity (var143) on */ +var148 = var143->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var146 = var148; +RET_LABEL147:(void)0; } } -var_147 = var144; +var_149 = var146; for(;;) { { -{ /* Inline kernel#Int#< (var_i,var_147) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var150 = 1; /* easy isa OTHER*/ -if (unlikely(!var150)) { +{ /* Inline kernel#Int#< (var_i,var_149) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var152 = 1; /* easy isa OTHER*/ +if (unlikely(!var152)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var153 = var_i < var_147; -var148 = var153; -goto RET_LABEL149; -RET_LABEL149:(void)0; +var155 = var_i < var_149; +var150 = var155; +goto RET_LABEL151; +RET_LABEL151:(void)0; } } -if (var148){ +if (var150){ { -var154 = ((val* (*)(val* self))(var_sub2->class->vft[COLOR_nit__model__MClassType__arguments]))(var_sub2) /* arguments on */; +var156 = ((val*(*)(val* self))(var_sub2->class->vft[COLOR_nit__model__MClassType__arguments]))(var_sub2); /* arguments on */ } { -var155 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var154, var_i); +var157 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var156, var_i); } -var_sub_arg = var155; +var_sub_arg = var157; { { /* Inline model#MGenericType#arguments (var_sup) on */ -var158 = var_sup->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ -if (unlikely(var158 == NULL)) { +var160 = var_sup->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ +if (unlikely(var160 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } -var156 = var158; -RET_LABEL157:(void)0; +var158 = var160; +RET_LABEL159:(void)0; } } { -var159 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var156, var_i); +var161 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var158, var_i); } -var_sup_arg = var159; +var_sup_arg = var161; { -var160 = nit___nit__MType___is_subtype(var_sub_arg, var_mmodule, var_anchor, var_sup_arg); +var162 = nit___nit__MType___is_subtype(var_sub_arg, var_mmodule, var_anchor, var_sup_arg); } -var_res = var160; -var161 = 0; +var_res = var162; { -{ /* Inline kernel#Bool#== (var_res,var161) on */ -var164 = var_res == var161; -var162 = var164; -goto RET_LABEL163; -RET_LABEL163:(void)0; +{ /* Inline kernel#Bool#== (var_res,0) on */ +var165 = var_res == 0; +var163 = var165; +goto RET_LABEL164; +RET_LABEL164:(void)0; } } -if (var162){ -var165 = 0; -var = var165; +if (var163){ +var = 0; goto RET_LABEL; } else { } -var166 = 1; { -var167 = standard___standard__Int___Discrete__successor(var_i, var166); +var166 = standard___standard__Int___Discrete__successor(var_i, 1l); } -var_i = var167; +var_i = var166; } else { -goto BREAK_label168; +goto BREAK_label167; } } -BREAK_label168: (void)0; -var169 = 1; -var = var169; +BREAK_label167: (void)0; +var = 1; goto RET_LABEL; RET_LABEL:; return var; @@ -5999,16 +6770,14 @@ short int var1 /* : Bool */; short int var2 /* : Bool */; short int var3 /* : Bool */; short int var4 /* : Bool */; -val* var5 /* : null */; -short int var6 /* : Bool */; -val* var7 /* : MType */; +val* var5 /* : MType */; val* var_res /* var res: MType */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; var_mmodule = p0; var_anchor = p1; { -var1 = ((short int (*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self) /* need_anchor on */; +var1 = ((short int(*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self); /* need_anchor on */ } var2 = !var1; if (var2){ @@ -6017,28 +6786,26 @@ goto RET_LABEL; } else { } { -var3 = ((short int (*)(val* self))(var_anchor->class->vft[COLOR_nit__model__MType__need_anchor]))(var_anchor) /* need_anchor on */; +var3 = ((short int(*)(val* self))(var_anchor->class->vft[COLOR_nit__model__MType__need_anchor]))(var_anchor); /* need_anchor on */ } var4 = !var3; if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 796); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 867); +fatal_exit(1); } -var5 = NULL; -var6 = 1; { -var7 = ((val* (*)(val* self, val* p0, val* p1, val* p2, short int p3))(self->class->vft[COLOR_nit__model__MType__resolve_for]))(self, var_anchor, var5, var_mmodule, var6) /* resolve_for on */; +var5 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(self->class->vft[COLOR_nit__model__MType__resolve_for]))(self, var_anchor, ((val*)NULL), var_mmodule, 1); /* resolve_for on */ } -var_res = var7; +var_res = var5; { -var8 = ((short int (*)(val* self))(var_res->class->vft[COLOR_nit__model__MType__need_anchor]))(var_res) /* need_anchor on */; +var6 = ((short int(*)(val* self))(var_res->class->vft[COLOR_nit__model__MType__need_anchor]))(var_res); /* need_anchor on */ } -var9 = !var8; -if (unlikely(!var9)) { +var7 = !var6; +if (unlikely(!var7)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 799); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 870); +fatal_exit(1); } var = var_res; goto RET_LABEL; @@ -6048,9 +6815,7 @@ return var; /* method model#MType#need_anchor for (self: MType): Bool */ short int nit___nit__MType___need_anchor(val* self) { short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = 1; -var = var1; +var = 1; goto RET_LABEL; RET_LABEL:; return var; @@ -6063,46 +6828,43 @@ val* var_anchor /* var anchor: nullable MClassType */; val* var_super_mclass /* var super_mclass: MClass */; long var1 /* : Int */; long var3 /* : Int */; -long var4 /* : Int */; -short int var5 /* : Bool */; -short int var7 /* : Bool */; -val* var8 /* : MClassType */; -val* var10 /* : MClassType */; +short int var4 /* : Bool */; +short int var6 /* : Bool */; +val* var7 /* : MClassType */; +val* var9 /* : MClassType */; +short int var10 /* : Bool */; short int var11 /* : Bool */; -short int var12 /* : Bool */; int cltype; int idtype; short int var_ /* var : Bool */; -val* var13 /* : MClass */; -val* var15 /* : MClass */; -short int var16 /* : Bool */; +val* var12 /* : MClass */; +val* var14 /* : MClass */; +short int var15 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var18 /* : Bool */; +short int var17 /* : Bool */; +short int var19 /* : Bool */; short int var20 /* : Bool */; short int var21 /* : Bool */; -val* var22 /* : null */; -short int var23 /* : Bool */; -short int var24 /* : Bool */; -val* var_other26 /* var other: nullable Object */; -short int var27 /* : Bool */; -short int var28 /* : Bool */; -val* var29 /* : MType */; +short int var22 /* : Bool */; +val* var_other24 /* var other: nullable Object */; +short int var25 /* : Bool */; +short int var26 /* : Bool */; +val* var27 /* : MType */; val* var_resolved_self /* var resolved_self: nullable Object */; -val* var30 /* : Set[MClassType] */; +val* var28 /* : Set[MClassType] */; val* var_supertypes /* var supertypes: Set[MClassType] */; -val* var_31 /* var : Set[MClassType] */; -val* var32 /* : Iterator[nullable Object] */; -val* var_33 /* var : Iterator[MClassType] */; -short int var34 /* : Bool */; -val* var35 /* : nullable Object */; +val* var_29 /* var : Set[MClassType] */; +val* var30 /* : Iterator[nullable Object] */; +val* var_31 /* var : Iterator[MClassType] */; +short int var32 /* : Bool */; +val* var33 /* : nullable Object */; val* var_supertype /* var supertype: MClassType */; +val* var34 /* : MClass */; val* var36 /* : MClass */; -val* var38 /* : MClass */; +short int var37 /* : Bool */; short int var39 /* : Bool */; short int var41 /* : Bool */; -short int var43 /* : Bool */; -short int var44 /* : Bool */; -val* var45 /* : MType */; +val* var42 /* : MType */; var_mmodule = p0; var_anchor = p1; var_super_mclass = p2; @@ -6113,29 +6875,28 @@ var1 = var3; RET_LABEL2:(void)0; } } -var4 = 0; { -{ /* Inline kernel#Int#== (var1,var4) on */ -var7 = var1 == var4; -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +{ /* Inline kernel#Int#== (var1,0l) on */ +var6 = var1 == 0l; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } } -if (var5){ +if (var4){ { { /* Inline model#MClass#mclass_type (var_super_mclass) on */ -var10 = var_super_mclass->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ -if (unlikely(var10 == NULL)) { +var9 = var_super_mclass->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } -var = var8; +var = var7; goto RET_LABEL; } else { } @@ -6143,141 +6904,139 @@ goto RET_LABEL; cltype = type_nit__MClassType.color; idtype = type_nit__MClassType.id; if(cltype >= self->type->table_size) { -var12 = 0; +var11 = 0; } else { -var12 = self->type->type_table[cltype] == idtype; +var11 = self->type->type_table[cltype] == idtype; } -var_ = var12; -if (var12){ +var_ = var11; +if (var11){ { { /* Inline model#MClassType#mclass (self) on */ -var15 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var15 == NULL)) { +var14 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } { -{ /* Inline kernel#Object#== (var13,var_super_mclass) on */ +{ /* Inline kernel#Object#== (var12,var_super_mclass) on */ var_other = var_super_mclass; { -{ /* Inline kernel#Object#is_same_instance (var13,var_other) on */ -var20 = var13 == var_other; -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; +{ /* Inline kernel#Object#is_same_instance (var12,var_other) on */ +var19 = var12 == var_other; +var17 = var19; +goto RET_LABEL18; +RET_LABEL18:(void)0; } } -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; } } -var11 = var16; +var10 = var15; } else { -var11 = var_; +var10 = var_; } -if (var11){ +if (var10){ var = self; goto RET_LABEL; } else { } { -var21 = ((short int (*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self) /* need_anchor on */; +var20 = ((short int(*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self); /* need_anchor on */ } -if (var21){ -var22 = NULL; +if (var20){ if (var_anchor == NULL) { -var23 = 0; /* is null */ +var21 = 0; /* is null */ } else { -var23 = 1; /* arg is null and recv is not */ +var21 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_anchor,var22) on */ -var_other26 = var22; +{ /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on */ +var_other24 = ((val*)NULL); { -var27 = ((short int (*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other26) /* == on */; +var25 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other24); /* == on */ } -var28 = !var27; -var24 = var28; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var26 = !var25; +var22 = var26; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -var23 = var24; +var21 = var22; } -if (unlikely(!var23)) { +if (unlikely(!var21)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 829); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 900); +fatal_exit(1); } { -var29 = ((val* (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit__model__MType__anchor_to]))(self, var_mmodule, var_anchor) /* anchor_to on */; +var27 = ((val*(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit__model__MType__anchor_to]))(self, var_mmodule, var_anchor); /* anchor_to on */ } -var_resolved_self = var29; +var_resolved_self = var27; } else { var_resolved_self = self; } { -var30 = ((val* (*)(val* self, val* p0))(var_resolved_self->class->vft[COLOR_nit__model__MType__collect_mtypes]))(var_resolved_self, var_mmodule) /* collect_mtypes on */; +var28 = ((val*(*)(val* self, val* p0))(var_resolved_self->class->vft[COLOR_nit__model__MType__collect_mtypes]))(var_resolved_self, var_mmodule); /* collect_mtypes on */ } -var_supertypes = var30; -var_31 = var_supertypes; +var_supertypes = var28; +var_29 = var_supertypes; { -var32 = ((val* (*)(val* self))(var_31->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_31) /* iterator on */; +var30 = ((val*(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_29); /* iterator on */ } -var_33 = var32; +var_31 = var30; for(;;) { { -var34 = ((short int (*)(val* self))(var_33->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_33) /* is_ok on */; +var32 = ((short int(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_31); /* is_ok on */ } -if (var34){ +if (var32){ { -var35 = ((val* (*)(val* self))(var_33->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_33) /* item on */; +var33 = ((val*(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_31); /* item on */ } -var_supertype = var35; +var_supertype = var33; { { /* Inline model#MClassType#mclass (var_supertype) on */ -var38 = var_supertype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var38 == NULL)) { +var36 = var_supertype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var36 = var38; -RET_LABEL37:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } { -{ /* Inline kernel#Object#== (var36,var_super_mclass) on */ +{ /* Inline kernel#Object#== (var34,var_super_mclass) on */ var_other = var_super_mclass; { -{ /* Inline kernel#Object#is_same_instance (var36,var_other) on */ -var43 = var36 == var_other; -var41 = var43; -goto RET_LABEL42; -RET_LABEL42:(void)0; -} -} +{ /* Inline kernel#Object#is_same_instance (var34,var_other) on */ +var41 = var34 == var_other; var39 = var41; goto RET_LABEL40; RET_LABEL40:(void)0; } } -if (var39){ -var44 = 0; +var37 = var39; +goto RET_LABEL38; +RET_LABEL38:(void)0; +} +} +if (var37){ { -var45 = ((val* (*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_supertype->class->vft[COLOR_nit__model__MType__resolve_for]))(var_supertype, self, var_anchor, var_mmodule, var44) /* resolve_for on */; +var42 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_supertype->class->vft[COLOR_nit__model__MType__resolve_for]))(var_supertype, self, var_anchor, var_mmodule, 0); /* resolve_for on */ } -var = var45; +var = var42; goto RET_LABEL; } else { } { -((void (*)(val* self))(var_33->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_33) /* next on */; +((void(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_31); /* next on */ } } else { goto BREAK_label; @@ -6285,13 +7044,11 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_33) on */ -RET_LABEL46:(void)0; -} +((void(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_31); /* finish on */ } PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 841); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 912); +fatal_exit(1); RET_LABEL:; return var; } @@ -6325,8 +7082,8 @@ 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", FILE_nit__model, 942); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1013); +fatal_exit(1); RET_LABEL:; return var; } @@ -6336,13 +7093,12 @@ val* var /* : MType */; val* var1 /* : nullable MType */; val* var3 /* : nullable MType */; val* var_res /* var res: nullable MType */; -val* var4 /* : null */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -short int var6 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : MNullableType */; +val* var9 /* : MNullableType */; { { /* Inline model#MType#as_nullable_cache (self) on */ var3 = self->attrs[COLOR_nit__model__MType___as_nullable_cache].val; /* _as_nullable_cache on */ @@ -6351,42 +7107,41 @@ RET_LABEL2:(void)0; } } var_res = var1; -var4 = NULL; if (var_res == NULL) { -var5 = 0; /* is null */ +var4 = 0; /* is null */ } else { -var5 = 1; /* arg is null and recv is not */ +var4 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_res,var4) on */ -var_other = var4; +{ /* Inline kernel#Object#!= (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var8 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on */; +var7 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other); /* == on */ } -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var8 = !var7; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -var5 = var6; +var4 = var5; } -if (var5){ +if (var4){ var = var_res; goto RET_LABEL; } else { } -var10 = NEW_nit__MNullableType(&type_nit__MNullableType); +var9 = NEW_nit__MNullableType(&type_nit__MNullableType); { -((void (*)(val* self, val* p0))(var10->class->vft[COLOR_nit__model__MNullableType__mtype_61d]))(var10, self) /* mtype= on */; +((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nit__model__MProxyType__mtype_61d]))(var9, self); /* mtype= on */ } { -((void (*)(val* self))(var10->class->vft[COLOR_standard__kernel__Object__init]))(var10) /* init on */; +((void(*)(val* self))(var9->class->vft[COLOR_standard__kernel__Object__init]))(var9); /* init on */ } -var_res = var10; +var_res = var9; { { /* Inline model#MType#as_nullable_cache= (self,var_res) on */ self->attrs[COLOR_nit__model__MType___as_nullable_cache].val = var_res; /* _as_nullable_cache on */ -RET_LABEL11:(void)0; +RET_LABEL10:(void)0; } } var = var_res; @@ -6394,8 +7149,16 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method model#MType#as_notnullable for (self: MType): MType */ -val* nit___nit__MType___as_notnullable(val* self) { +/* method model#MType#undecorate for (self: MType): MType */ +val* nit___nit__MType___undecorate(val* self) { +val* var /* : MType */; +var = self; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method model#MType#as_notnull for (self: MType): MType */ +val* nit___nit__MType___as_notnull(val* self) { val* var /* : MType */; var = self; goto RET_LABEL; @@ -6419,9 +7182,7 @@ RET_LABEL:; /* method model#MType#length for (self: MType): Int */ long nit___nit__MType___length(val* self) { long var /* : Int */; -long var1 /* : Int */; -var1 = 1; -var = var1; +var = 1l; goto RET_LABEL; RET_LABEL:; return var; @@ -6432,8 +7193,8 @@ 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", FILE_nit__model, 1018); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1098); +fatal_exit(1); RET_LABEL:; return var; } @@ -6443,8 +7204,8 @@ 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", FILE_nit__model, 1028); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1108); +fatal_exit(1); RET_LABEL:; return var; } @@ -6454,8 +7215,8 @@ 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", FILE_nit__model, 1034); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1114); +fatal_exit(1); RET_LABEL:; return var; } @@ -6473,31 +7234,31 @@ short int var7 /* : Bool */; var_mmodule = p0; var_mproperty = p1; { -var1 = ((short int (*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self) /* need_anchor on */; +var1 = ((short int(*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self); /* need_anchor on */ } var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1047); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1127); +fatal_exit(1); } { -var3 = ((val* (*)(val* self, val* p0))(self->class->vft[COLOR_nit__model__MType__collect_mclassdefs]))(self, var_mmodule) /* collect_mclassdefs on */; +var3 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nit__model__MType__collect_mclassdefs]))(self, var_mmodule); /* collect_mclassdefs on */ } { { /* Inline model#MProperty#intro_mclassdef (var_mproperty) on */ var6 = var_mproperty->attrs[COLOR_nit__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", FILE_nit__model, 1736); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1928); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; } } { -var7 = ((short int (*)(val* self, val* p0))(var3->class->vft[COLOR_standard__abstract_collection__Collection__has]))(var3, var4) /* has on */; +var7 = ((short int(*)(val* self, val* p0))((((long)var3&3)?class_info[((long)var3&3)]:var3->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(var3, var4); /* has on */ } var = var7; goto RET_LABEL; @@ -6511,8 +7272,8 @@ val* var1 /* : MClass */; var1 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -6537,8 +7298,8 @@ val* var9 /* : Model */; var3 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -6549,8 +7310,8 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_nit__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", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -6562,7 +7323,7 @@ var9 = var4->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on attrs[COLOR_nit__model__MClassType___arguments].val; /* _arguments on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1065); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1145); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -6603,8 +7364,8 @@ val* var4 /* : String */; var3 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -6629,8 +7390,8 @@ val* var4 /* : String */; var3 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -6655,8 +7416,8 @@ val* var4 /* : String */; var3 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -6673,9 +7434,7 @@ return var; /* method model#MClassType#need_anchor for (self: MClassType): Bool */ short int nit___nit__MClassType___MType__need_anchor(val* self) { short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = 0; -var = var1; +var = 0; goto RET_LABEL; RET_LABEL:; return var; @@ -6693,7 +7452,7 @@ const char* var_class_name; var_mmodule = p0; var_anchor = p1; { -var1 = ((val* (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit___nit__MClassType___MType__anchor_to]))(self, p0, p1) /* anchor_to on */; +var1 = ((val*(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit___nit__MClassType___MType__anchor_to]))(self, p0, p1); /* anchor_to on */ } /* isa MClassType */ cltype = type_nit__MClassType.color; @@ -6706,8 +7465,8 @@ 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", FILE_nit__model, 1079); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1159); +fatal_exit(1); } var = var1; goto RET_LABEL; @@ -6736,12 +7495,10 @@ short int var /* : Bool */; val* var_mtype /* var mtype: MType */; val* var_anchor /* var anchor: nullable MClassType */; val* var_mmodule /* var mmodule: MModule */; -short int var1 /* : Bool */; var_mtype = p0; var_anchor = p1; var_mmodule = p2; -var1 = 1; -var = var1; +var = 1; goto RET_LABEL; RET_LABEL:; return var; @@ -6760,21 +7517,21 @@ short int var7 /* : Bool */; val* var8 /* : nullable Object */; var_mmodule = p0; { -var1 = ((short int (*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self) /* need_anchor on */; +var1 = ((short int(*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self); /* need_anchor on */ } var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1088); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1168); +fatal_exit(1); } { { /* Inline model#MClassType#collect_mclassdefs_cache (self) on */ var5 = self->attrs[COLOR_nit__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", FILE_nit__model, 1153); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1233); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -6782,7 +7539,7 @@ RET_LABEL4:(void)0; } var_cache = var3; { -var6 = standard___standard__MapRead___has_key(var_cache, var_mmodule); +var6 = standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var_cache, var_mmodule); } var7 = !var6; if (var7){ @@ -6854,8 +7611,8 @@ if (var4){ var12 = self->attrs[COLOR_nit__model__MClassType___collect_mclasses_last_module_cache].val; /* _collect_mclasses_last_module_cache on */ if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_last_module_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1111); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1191); +fatal_exit(1); } var10 = var12; RET_LABEL11:(void)0; @@ -6866,21 +7623,21 @@ goto RET_LABEL; } else { } { -var13 = ((short int (*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self) /* need_anchor on */; +var13 = ((short int(*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self); /* need_anchor on */ } var14 = !var13; if (unlikely(!var14)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1099); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1179); +fatal_exit(1); } { { /* Inline model#MClassType#collect_mclasses_cache (self) on */ var17 = self->attrs[COLOR_nit__model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on */ if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1154); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1234); +fatal_exit(1); } var15 = var17; RET_LABEL16:(void)0; @@ -6888,7 +7645,7 @@ RET_LABEL16:(void)0; } var_cache = var15; { -var18 = standard___standard__MapRead___has_key(var_cache, var_mmodule); +var18 = standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var_cache, var_mmodule); } var19 = !var18; if (var19){ @@ -6939,8 +7696,8 @@ val* var1 /* : Set[MClass] */; var1 = self->attrs[COLOR_nit__model__MClassType___collect_mclasses_last_module_cache].val; /* _collect_mclasses_last_module_cache on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_last_module_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1111); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1191); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -6965,21 +7722,21 @@ short int var7 /* : Bool */; val* var8 /* : nullable Object */; var_mmodule = p0; { -var1 = ((short int (*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self) /* need_anchor on */; +var1 = ((short int(*)(val* self))(self->class->vft[COLOR_nit__model__MType__need_anchor]))(self); /* need_anchor on */ } var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1115); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1195); +fatal_exit(1); } { { /* Inline model#MClassType#collect_mtypes_cache (self) on */ var5 = self->attrs[COLOR_nit__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", FILE_nit__model, 1155); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1235); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -6987,7 +7744,7 @@ RET_LABEL4:(void)0; } var_cache = var3; { -var6 = standard___standard__MapRead___has_key(var_cache, var_mmodule); +var6 = standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var_cache, var_mmodule); } var7 = !var6; if (var7){ @@ -7016,47 +7773,46 @@ val* var_types /* var types: HashSet[MClassType] */; val* var3 /* : MClass */; val* var5 /* : MClass */; val* var6 /* : Array[MClass] */; -long var7 /* : Int */; val* var_ /* var : Array[MClass] */; -val* var8 /* : MClass */; -val* var10 /* : MClass */; +val* var7 /* : MClass */; +val* var9 /* : MClass */; val* var_todo /* var todo: Array[MClass] */; +short int var10 /* : Bool */; short int var11 /* : Bool */; -short int var12 /* : Bool */; -val* var13 /* : nullable Object */; +val* var12 /* : nullable Object */; val* var_mclass /* var mclass: MClass */; -val* var14 /* : Array[MClassDef] */; -val* var16 /* : Array[MClassDef] */; -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* var13 /* : Array[MClassDef] */; +val* var15 /* : Array[MClassDef] */; +val* var_16 /* var : Array[MClassDef] */; +val* var17 /* : ArrayIterator[nullable Object] */; +val* var_18 /* var : ArrayIterator[MClassDef] */; +short int var19 /* : Bool */; +val* var20 /* : nullable Object */; val* var_mclassdef /* var mclassdef: MClassDef */; -val* var22 /* : POSetElement[MModule] */; -val* var24 /* : POSetElement[MModule] */; -val* var25 /* : MModule */; -val* var27 /* : MModule */; +val* var21 /* : POSetElement[MModule] */; +val* var23 /* : POSetElement[MModule] */; +val* var24 /* : MModule */; +val* var26 /* : MModule */; +short int var27 /* : Bool */; short int var28 /* : Bool */; -short int var29 /* : Bool */; -val* var30 /* : Array[MClassType] */; -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* var29 /* : Array[MClassType] */; +val* var31 /* : Array[MClassType] */; +val* var_32 /* var : Array[MClassType] */; +val* var33 /* : ArrayIterator[nullable Object] */; +val* var_34 /* var : ArrayIterator[MClassType] */; +short int var35 /* : Bool */; +val* var36 /* : nullable Object */; val* var_supertype /* var supertype: MClassType */; -val* var38 /* : MClass */; -val* var40 /* : MClass */; +val* var37 /* : MClass */; +val* var39 /* : MClass */; val* var_superclass /* var superclass: MClass */; -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]] */; +short int var40 /* : Bool */; +val* var45 /* : HashMap[MModule, Set[MClassDef]] */; +val* var47 /* : HashMap[MModule, Set[MClassDef]] */; +val* var48 /* : HashMap[MModule, Set[MClass]] */; +val* var50 /* : HashMap[MModule, Set[MClass]] */; +val* var51 /* : HashMap[MModule, Set[MClassType]] */; +val* var53 /* : HashMap[MModule, Set[MClassType]] */; var_mmodule = p0; var = NEW_standard__HashSet(&type_standard__HashSet__nit__MClassDef); { @@ -7078,8 +7834,8 @@ var_types = var2; var5 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -7089,92 +7845,91 @@ RET_LABEL4:(void)0; standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var_seen, var3); /* Direct call hash_collection#HashSet#add on */ } var6 = NEW_standard__Array(&type_standard__Array__nit__MClass); -var7 = 1; { -standard___standard__Array___with_capacity(var6, var7); /* Direct call array#Array#with_capacity on */ +standard___standard__Array___with_capacity(var6, 1l); /* Direct call array#Array#with_capacity on */ } var_ = var6; { { /* Inline model#MClassType#mclass (self) on */ -var10 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var10 == NULL)) { +var9 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var8); /* Direct call array#AbstractArray#push on */ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var7); /* Direct call array#AbstractArray#push on */ } var_todo = var_; for(;;) { { -var11 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_todo); +var10 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_todo); } -var12 = !var11; -if (var12){ +var11 = !var10; +if (var11){ { -var13 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(var_todo); +var12 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(var_todo); } -var_mclass = var13; +var_mclass = var12; { { /* Inline model#MClass#mclassdefs (var_mclass) on */ -var16 = var_mclass->attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on */ -if (unlikely(var16 == NULL)) { +var15 = var_mclass->attrs[COLOR_nit__model__MClass___mclassdefs].val; /* _mclassdefs on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 417); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 454); +fatal_exit(1); } -var14 = var16; -RET_LABEL15:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } -var_17 = var14; +var_16 = var13; { -var18 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_17); +var17 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_16); } -var_19 = var18; +var_18 = var17; for(;;) { { -var20 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_19); +var19 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_18); } -if (var20){ +if (var19){ { -var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_19); +var20 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_18); } -var_mclassdef = var21; +var_mclassdef = var20; { { /* Inline mmodule#MModule#in_importation (var_mmodule) on */ -var24 = var_mmodule->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var24 == NULL)) { +var23 = var_mmodule->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ +if (unlikely(var23 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96); -show_backtrace(1); +fatal_exit(1); } -var22 = var24; -RET_LABEL23:(void)0; +var21 = var23; +RET_LABEL22:(void)0; } } { { /* Inline model#MClassDef#mmodule (var_mclassdef) on */ -var27 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var27 == NULL)) { +var26 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ +if (unlikely(var26 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } -var25 = var27; -RET_LABEL26:(void)0; +var24 = var26; +RET_LABEL25:(void)0; } } { -var28 = poset___poset__POSetElement____60d_61d(var22, var25); +var27 = poset___poset__POSetElement____60d_61d(var21, var24); } -var29 = !var28; -if (var29){ +var28 = !var27; +if (var28){ goto BREAK_label; } else { } @@ -7183,51 +7938,51 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ } { { /* Inline model#MClassDef#supertypes (var_mclassdef) on */ -var32 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___supertypes].val; /* _supertypes on */ -if (unlikely(var32 == NULL)) { +var31 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___supertypes].val; /* _supertypes on */ +if (unlikely(var31 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 566); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 627); +fatal_exit(1); } -var30 = var32; -RET_LABEL31:(void)0; +var29 = var31; +RET_LABEL30:(void)0; } } -var_33 = var30; +var_32 = var29; { -var34 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_33); +var33 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_32); } -var_35 = var34; +var_34 = var33; for(;;) { { -var36 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_35); +var35 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_34); } -if (var36){ +if (var35){ { -var37 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_35); +var36 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_34); } -var_supertype = var37; +var_supertype = var36; { standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var_types, var_supertype); /* Direct call hash_collection#HashSet#add on */ } { { /* Inline model#MClassType#mclass (var_supertype) on */ -var40 = var_supertype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var40 == NULL)) { +var39 = var_supertype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var39 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var38 = var40; -RET_LABEL39:(void)0; +var37 = var39; +RET_LABEL38:(void)0; } } -var_superclass = var38; +var_superclass = var37; { -var41 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var_seen, var_superclass); +var40 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var_seen, var_superclass); } -if (var41){ -goto BREAK_label42; +if (var40){ +goto BREAK_label41; } else { } { @@ -7236,83 +7991,79 @@ standard___standard__HashSet___standard__abstract_collection__SimpleCollection__ { standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_todo, var_superclass); /* Direct call array#Array#add on */ } -BREAK_label42: (void)0; +BREAK_label41: (void)0; { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_35); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_34); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label43; +goto BREAK_label42; } } -BREAK_label43: (void)0; +BREAK_label42: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_35) on */ -RET_LABEL44:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_34); /* Direct call array#ArrayIterator#finish on */ } BREAK_label: (void)0; { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_19); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_18); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label45; +goto BREAK_label43; } } -BREAK_label45: (void)0; +BREAK_label43: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_19) on */ -RET_LABEL46:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_18); /* Direct call array#ArrayIterator#finish on */ } } else { -goto BREAK_label47; +goto BREAK_label44; } } -BREAK_label47: (void)0; +BREAK_label44: (void)0; { { /* Inline model#MClassType#collect_mclassdefs_cache (self) on */ -var50 = self->attrs[COLOR_nit__model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on */ -if (unlikely(var50 == NULL)) { +var47 = self->attrs[COLOR_nit__model__MClassType___collect_mclassdefs_cache].val; /* _collect_mclassdefs_cache on */ +if (unlikely(var47 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclassdefs_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1153); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1233); +fatal_exit(1); } -var48 = var50; -RET_LABEL49:(void)0; +var45 = var47; +RET_LABEL46:(void)0; } } { -standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var48, var_mmodule, var_res); /* Direct call hash_collection#HashMap#[]= on */ +standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var45, var_mmodule, var_res); /* Direct call hash_collection#HashMap#[]= on */ } { { /* Inline model#MClassType#collect_mclasses_cache (self) on */ -var53 = self->attrs[COLOR_nit__model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on */ -if (unlikely(var53 == NULL)) { +var50 = self->attrs[COLOR_nit__model__MClassType___collect_mclasses_cache].val; /* _collect_mclasses_cache on */ +if (unlikely(var50 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mclasses_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1154); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1234); +fatal_exit(1); } -var51 = var53; -RET_LABEL52:(void)0; +var48 = var50; +RET_LABEL49:(void)0; } } { -standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var51, var_mmodule, var_seen); /* Direct call hash_collection#HashMap#[]= on */ +standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var48, var_mmodule, var_seen); /* Direct call hash_collection#HashMap#[]= on */ } { { /* Inline model#MClassType#collect_mtypes_cache (self) on */ -var56 = self->attrs[COLOR_nit__model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on */ -if (unlikely(var56 == NULL)) { +var53 = self->attrs[COLOR_nit__model__MClassType___collect_mtypes_cache].val; /* _collect_mtypes_cache on */ +if (unlikely(var53 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _collect_mtypes_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1155); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1235); +fatal_exit(1); } -var54 = var56; -RET_LABEL55:(void)0; +var51 = var53; +RET_LABEL52:(void)0; } } { -standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var54, var_mmodule, var_types); /* Direct call hash_collection#HashMap#[]= on */ +standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var51, var_mmodule, var_types); /* Direct call hash_collection#HashMap#[]= on */ } RET_LABEL:; } @@ -7323,8 +8074,8 @@ val* var1 /* : HashMap[MModule, Set[MClassDef]] */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 1153); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1233); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -7337,8 +8088,8 @@ val* var1 /* : HashMap[MModule, Set[MClass]] */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 1154); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1234); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -7351,8 +8102,8 @@ val* var1 /* : HashMap[MModule, Set[MClassType]] */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 1155); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1235); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -7361,7 +8112,7 @@ return var; /* method model#MClassType#init for (self: MClassType) */ void nit___nit__MClassType___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_nit___nit__MClassType___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit___nit__MClassType___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } @@ -7372,8 +8123,8 @@ val* var1 /* : Array[MType] */; var1 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -7396,51 +8147,46 @@ long var9 /* : Int */; long var11 /* : Int */; short int var12 /* : Bool */; short int var14 /* : Bool */; -short int var15 /* : Bool */; -val* var17 /* : Array[MType] */; -val* var19 /* : Array[MType] */; +val* var16 /* : Array[MType] */; +val* var18 /* : Array[MType] */; val* var_ /* var : Array[MType] */; -val* var20 /* : ArrayIterator[nullable Object] */; -val* var_21 /* var : ArrayIterator[MType] */; -short int var22 /* : Bool */; -val* var23 /* : nullable Object */; +val* var19 /* : ArrayIterator[nullable Object] */; +val* var_20 /* var : ArrayIterator[MType] */; +short int var21 /* : Bool */; +val* var22 /* : nullable Object */; val* var_t /* var t: MType */; -short int var24 /* : Bool */; -short int var25 /* : Bool */; -val* var28 /* : MClass */; -val* var30 /* : MClass */; +short int var23 /* : Bool */; +val* var25 /* : NativeArray[String] */; static val* varonce; +static val* varonce26; +val* var27 /* : String */; +char* var28 /* : NativeString */; +val* var29 /* : FlatString */; +static val* varonce30; val* var31 /* : String */; char* var32 /* : NativeString */; -long var33 /* : Int */; -val* var34 /* : FlatString */; -val* var35 /* : Array[MType] */; -val* var37 /* : Array[MType] */; -static val* varonce38; -val* var39 /* : String */; -char* var40 /* : NativeString */; -long var41 /* : Int */; -val* var42 /* : FlatString */; -val* var43 /* : String */; -static val* varonce44; +val* var33 /* : FlatString */; +val* var34 /* : MClass */; +val* var36 /* : MClass */; +val* var37 /* : String */; +val* var38 /* : Array[MType] */; +val* var40 /* : Array[MType] */; +static val* varonce41; +val* var42 /* : String */; +char* var43 /* : NativeString */; +val* var44 /* : FlatString */; val* var45 /* : String */; -char* var46 /* : NativeString */; -long var47 /* : Int */; -val* var48 /* : FlatString */; -val* var49 /* : Array[Object] */; -long var50 /* : Int */; -val* var51 /* : NativeArray[Object] */; -val* var52 /* : String */; +val* var46 /* : String */; { -((void (*)(val* self))(self->class->vft[COLOR_nit___nit__MGenericType___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit___nit__MGenericType___standard__kernel__Object__init]))(self); /* init on */ } { { /* Inline model#MClassType#mclass (self) on */ var2 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -7458,8 +8204,8 @@ RET_LABEL4:(void)0; var8 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } var6 = var8; RET_LABEL7:(void)0; @@ -7482,58 +8228,56 @@ RET_LABEL13:(void)0; } if (unlikely(!var12)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1170); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1250); +fatal_exit(1); } -var15 = 0; { -{ /* Inline model#MGenericType#need_anchor= (self,var15) on */ -self->attrs[COLOR_nit__model__MGenericType___need_anchor].s = var15; /* _need_anchor on */ -RET_LABEL16:(void)0; +{ /* Inline model#MGenericType#need_anchor= (self,0) on */ +self->attrs[COLOR_nit__model__MGenericType___need_anchor].s = 0; /* _need_anchor on */ +RET_LABEL15:(void)0; } } { { /* Inline model#MGenericType#arguments (self) on */ -var19 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ -if (unlikely(var19 == NULL)) { +var18 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ +if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } -var17 = var19; -RET_LABEL18:(void)0; +var16 = var18; +RET_LABEL17:(void)0; } } -var_ = var17; +var_ = var16; { -var20 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var19 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_21 = var20; +var_20 = var19; for(;;) { { -var22 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_21); +var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_20); } -if (var22){ +if (var21){ { -var23 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_21); +var22 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_20); } -var_t = var23; +var_t = var22; { -var24 = ((short int (*)(val* self))(var_t->class->vft[COLOR_nit__model__MType__need_anchor]))(var_t) /* need_anchor on */; +var23 = ((short int(*)(val* self))(var_t->class->vft[COLOR_nit__model__MType__need_anchor]))(var_t); /* need_anchor on */ } -if (var24){ -var25 = 1; +if (var23){ { -{ /* Inline model#MGenericType#need_anchor= (self,var25) on */ -self->attrs[COLOR_nit__model__MGenericType___need_anchor].s = var25; /* _need_anchor on */ -RET_LABEL26:(void)0; +{ /* Inline model#MGenericType#need_anchor= (self,1) on */ +self->attrs[COLOR_nit__model__MGenericType___need_anchor].s = 1; /* _need_anchor on */ +RET_LABEL24:(void)0; } } goto BREAK_label; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_21); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_20); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -7541,83 +8285,80 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_21) on */ -RET_LABEL27:(void)0; +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_20); /* Direct call array#ArrayIterator#finish on */ +} +if (unlikely(varonce==NULL)) { +var25 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce26!=NULL)) { +var27 = varonce26; +} else { +var28 = "["; +var29 = standard___standard__NativeString___to_s_with_length(var28, 1l); +var27 = var29; +varonce26 = var27; +} +((struct instance_standard__NativeArray*)var25)->values[1]=var27; +if (likely(varonce30!=NULL)) { +var31 = varonce30; +} else { +var32 = "]"; +var33 = standard___standard__NativeString___to_s_with_length(var32, 1l); +var31 = var33; +varonce30 = var31; } +((struct instance_standard__NativeArray*)var25)->values[3]=var31; +} else { +var25 = varonce; +varonce = NULL; } { { /* Inline model#MClassType#mclass (self) on */ -var30 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var30 == NULL)) { +var36 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var36 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var28 = var30; -RET_LABEL29:(void)0; +var34 = var36; +RET_LABEL35:(void)0; } } -if (varonce) { -var31 = varonce; -} else { -var32 = "["; -var33 = 1; -var34 = standard___standard__NativeString___to_s_with_length(var32, var33); -var31 = var34; -varonce = var31; +{ +var37 = ((val*(*)(val* self))(var34->class->vft[COLOR_standard__string__Object__to_s]))(var34); /* to_s on */ } +((struct instance_standard__NativeArray*)var25)->values[0]=var37; { { /* Inline model#MGenericType#arguments (self) on */ -var37 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ -if (unlikely(var37 == NULL)) { +var40 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ +if (unlikely(var40 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); -} -var35 = var37; -RET_LABEL36:(void)0; +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } +var38 = var40; +RET_LABEL39:(void)0; } -if (varonce38) { -var39 = varonce38; -} else { -var40 = ", "; -var41 = 2; -var42 = standard___standard__NativeString___to_s_with_length(var40, var41); -var39 = var42; -varonce38 = var39; -} -{ -var43 = standard__string___Collection___join(var35, var39); } -if (varonce44) { -var45 = varonce44; +if (likely(varonce41!=NULL)) { +var42 = varonce41; } else { -var46 = "]"; -var47 = 1; -var48 = standard___standard__NativeString___to_s_with_length(var46, var47); -var45 = var48; -varonce44 = var45; +var43 = ", "; +var44 = standard___standard__NativeString___to_s_with_length(var43, 2l); +var42 = var44; +varonce41 = var42; } -var49 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var49 = array_instance Array[Object] */ -var50 = 4; -var51 = NEW_standard__NativeArray(var50, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var51)->values[0] = (val*) var28; -((struct instance_standard__NativeArray*)var51)->values[1] = (val*) var31; -((struct instance_standard__NativeArray*)var51)->values[2] = (val*) var43; -((struct instance_standard__NativeArray*)var51)->values[3] = (val*) var45; { -((void (*)(val* self, val* p0, long p1))(var49->class->vft[COLOR_standard__array__Array__with_native]))(var49, var51, var50) /* with_native on */; -} +var45 = standard__string___Collection___join(var38, var42); } +((struct instance_standard__NativeArray*)var25)->values[2]=var45; { -var52 = ((val* (*)(val* self))(var49->class->vft[COLOR_standard__string__Object__to_s]))(var49) /* to_s on */; +var46 = ((val*(*)(val* self))(var25->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var25); /* native_to_s on */ } +varonce = var25; { -{ /* Inline model#MGenericType#to_s= (self,var52) on */ -self->attrs[COLOR_nit__model__MGenericType___to_s].val = var52; /* _to_s on */ -RET_LABEL53:(void)0; +{ /* Inline model#MGenericType#to_s= (self,var46) on */ +self->attrs[COLOR_nit__model__MGenericType___to_s].val = var46; /* _to_s on */ +RET_LABEL47:(void)0; } } RET_LABEL:; @@ -7629,8 +8370,8 @@ val* var1 /* : String */; var1 = self->attrs[COLOR_nit__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", FILE_nit__model, 1183); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1263); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -7658,36 +8399,32 @@ short int var11 /* : Bool */; val* var12 /* : nullable Object */; val* var_t /* var t: MType */; val* var13 /* : String */; -val* var15 /* : MClass */; -val* var17 /* : MClass */; -val* var18 /* : String */; +val* var14 /* : NativeArray[String] */; static val* varonce; -val* var19 /* : String */; -char* var20 /* : NativeString */; -long var21 /* : Int */; +static val* varonce15; +val* var16 /* : String */; +char* var17 /* : NativeString */; +val* var18 /* : FlatString */; +static val* varonce19; +val* var20 /* : String */; +char* var21 /* : NativeString */; val* var22 /* : FlatString */; -static val* varonce23; -val* var24 /* : String */; -char* var25 /* : NativeString */; -long var26 /* : Int */; -val* var27 /* : FlatString */; +val* var23 /* : MClass */; +val* var25 /* : MClass */; +val* var26 /* : String */; +static val* varonce27; val* var28 /* : String */; -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 */; +char* var29 /* : NativeString */; +val* var30 /* : FlatString */; +val* var31 /* : String */; +val* var32 /* : String */; var1 = self->attrs[COLOR_nit__model__MGenericType___full_name].val != NULL; /* _full_name on */ if(likely(var1)) { var2 = self->attrs[COLOR_nit__model__MGenericType___full_name].val; /* _full_name on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1187); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1267); +fatal_exit(1); } } else { { @@ -7701,8 +8438,8 @@ var_args = var5; var8 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ if (unlikely(var8 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } var6 = var8; RET_LABEL7:(void)0; @@ -7723,7 +8460,7 @@ var12 = standard__array___standard__array__ArrayIterator___standard__abstract_co } var_t = var12; { -var13 = ((val* (*)(val* self))(var_t->class->vft[COLOR_nit__model_base__MEntity__full_name]))(var_t) /* full_name on */; +var13 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nit__model_base__MEntity__full_name]))(var_t); /* full_name on */ } { standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_args, var13); /* Direct call array#Array#add on */ @@ -7737,71 +8474,65 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_10) on */ -RET_LABEL14:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_10); /* Direct call array#ArrayIterator#finish on */ } -{ -{ /* Inline model#MClassType#mclass (self) on */ -var17 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var17 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +if (unlikely(varonce==NULL)) { +var14 = NEW_standard__NativeArray(4l, &type_standard__NativeArray__standard__String); +if (likely(varonce15!=NULL)) { +var16 = varonce15; +} else { +var17 = "["; +var18 = standard___standard__NativeString___to_s_with_length(var17, 1l); +var16 = var18; +varonce15 = var16; } -var15 = var17; -RET_LABEL16:(void)0; +((struct instance_standard__NativeArray*)var14)->values[1]=var16; +if (likely(varonce19!=NULL)) { +var20 = varonce19; +} else { +var21 = "]"; +var22 = standard___standard__NativeString___to_s_with_length(var21, 1l); +var20 = var22; +varonce19 = var20; } +((struct instance_standard__NativeArray*)var14)->values[3]=var20; +} else { +var14 = varonce; +varonce = NULL; } { -var18 = nit___nit__MClass___nit__model_base__MEntity__full_name(var15); +{ /* Inline model#MClassType#mclass (self) on */ +var25 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var25 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -if (varonce) { -var19 = varonce; -} else { -var20 = "["; -var21 = 1; -var22 = standard___standard__NativeString___to_s_with_length(var20, var21); -var19 = var22; -varonce = var19; +var23 = var25; +RET_LABEL24:(void)0; } -if (varonce23) { -var24 = varonce23; -} else { -var25 = ", "; -var26 = 2; -var27 = standard___standard__NativeString___to_s_with_length(var25, var26); -var24 = var27; -varonce23 = var24; } { -var28 = standard__string___Collection___join(var_args, var24); +var26 = nit___nit__MClass___nit__model_base__MEntity__full_name(var23); } -if (varonce29) { -var30 = varonce29; +((struct instance_standard__NativeArray*)var14)->values[0]=var26; +if (likely(varonce27!=NULL)) { +var28 = varonce27; } else { -var31 = "]}"; -var32 = 2; -var33 = standard___standard__NativeString___to_s_with_length(var31, var32); -var30 = var33; -varonce29 = var30; +var29 = ", "; +var30 = standard___standard__NativeString___to_s_with_length(var29, 2l); +var28 = var30; +varonce27 = var28; } -var34 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var34 = array_instance Array[Object] */ -var35 = 4; -var36 = NEW_standard__NativeArray(var35, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var36)->values[0] = (val*) var18; -((struct instance_standard__NativeArray*)var36)->values[1] = (val*) var19; -((struct instance_standard__NativeArray*)var36)->values[2] = (val*) var28; -((struct instance_standard__NativeArray*)var36)->values[3] = (val*) var30; { -((void (*)(val* self, val* p0, long p1))(var34->class->vft[COLOR_standard__array__Array__with_native]))(var34, var36, var35) /* with_native on */; -} +var31 = standard__string___Collection___join(var_args, var28); } +((struct instance_standard__NativeArray*)var14)->values[2]=var31; { -var37 = ((val* (*)(val* self))(var34->class->vft[COLOR_standard__string__Object__to_s]))(var34) /* to_s on */; +var32 = ((val*(*)(val* self))(var14->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var14); /* native_to_s on */ } -var3 = var37; +varonce = var14; +var3 = var32; goto RET_LABEL4; RET_LABEL4:(void)0; } @@ -7833,19 +8564,18 @@ val* var_t /* var t: MType */; static val* varonce; val* var16 /* : String */; char* var17 /* : NativeString */; -long var18 /* : Int */; -val* var19 /* : FlatString */; +val* var18 /* : FlatString */; +val* var19 /* : String */; val* var20 /* : String */; val* var21 /* : String */; val* var22 /* : String */; -val* var24 /* : String */; var1 = self->attrs[COLOR_nit__model__MGenericType___c_name].val != NULL; /* _c_name on */ if(likely(var1)) { var2 = self->attrs[COLOR_nit__model__MGenericType___c_name].val; /* _c_name on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1197); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1277); +fatal_exit(1); } } else { { @@ -7854,8 +8584,8 @@ show_backtrace(1); var7 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var5 = var7; RET_LABEL6:(void)0; @@ -7870,8 +8600,8 @@ var_res = var8; var11 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ if (unlikely(var11 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } var9 = var11; RET_LABEL10:(void)0; @@ -7891,26 +8621,25 @@ if (var14){ var15 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_13); } var_t = var15; -if (varonce) { +if (likely(varonce!=NULL)) { var16 = varonce; } else { var17 = "__"; -var18 = 2; -var19 = standard___standard__NativeString___to_s_with_length(var17, var18); -var16 = var19; +var18 = standard___standard__NativeString___to_s_with_length(var17, 2l); +var16 = var18; varonce = var16; } { -var20 = ((val* (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__string__String___43d]))(var_res, var16) /* + on */; +var19 = ((val*(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__string__String___43d]))(var_res, var16); /* + on */ } -var_res = var20; +var_res = var19; { -var21 = ((val* (*)(val* self))(var_t->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_t) /* c_name on */; +var20 = ((val*(*)(val* self))(var_t->class->vft[COLOR_nit__model_base__MEntity__c_name]))(var_t); /* c_name on */ } { -var22 = ((val* (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__string__String___43d]))(var_res, var21) /* + on */; +var21 = ((val*(*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__string__String___43d]))(var_res, var20); /* + on */ } -var_res = var22; +var_res = var21; { standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_13); /* Direct call array#ArrayIterator#next on */ } @@ -7920,14 +8649,12 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_13) on */ -RET_LABEL23:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_13); /* Direct call array#ArrayIterator#finish on */ } { -var24 = standard___standard__String___Object__to_s(var_res); +var22 = standard___standard__String___Object__to_s(var_res); } -var3 = var24; +var3 = var22; goto RET_LABEL4; RET_LABEL4:(void)0; } @@ -7974,9 +8701,9 @@ short int var12 /* : Bool */; val* var13 /* : nullable Object */; val* var_t /* var t: MType */; val* var14 /* : MType */; -val* var16 /* : MClass */; -val* var18 /* : MClass */; -val* var19 /* : MClassType */; +val* var15 /* : MClass */; +val* var17 /* : MClass */; +val* var18 /* : MClassType */; var_mtype = p0; var_anchor = p1; var_mmodule = p2; @@ -7999,8 +8726,8 @@ var5 = nit___nit__MGenericType___MType__can_resolve_for(self, var_mtype, var_anc } if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1212); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1292); +fatal_exit(1); } var6 = NEW_standard__Array(&type_standard__Array__nit__MType); { @@ -8012,8 +8739,8 @@ var_types = var6; var9 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -8034,7 +8761,7 @@ var13 = standard__array___standard__array__ArrayIterator___standard__abstract_co } var_t = var13; { -var14 = ((val* (*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_t->class->vft[COLOR_nit__model__MType__resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on */; +var14 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_t->class->vft[COLOR_nit__model__MType__resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on */ } { standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_types, var14); /* Direct call array#Array#add on */ @@ -8048,26 +8775,24 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_11) on */ -RET_LABEL15:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_11); /* Direct call array#ArrayIterator#finish on */ } { { /* Inline model#MClassType#mclass (self) on */ -var18 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var18 == NULL)) { +var17 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var17 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var16 = var18; -RET_LABEL17:(void)0; +var15 = var17; +RET_LABEL16:(void)0; } } { -var19 = nit___nit__MClass___get_mtype(var16, var_types); +var18 = nit___nit__MClass___get_mtype(var15, var_types); } -var = var19; +var = var18; goto RET_LABEL; RET_LABEL:; return var; @@ -8081,19 +8806,16 @@ val* var_mmodule /* var mmodule: MModule */; short int var1 /* : Bool */; short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; -val* var6 /* : Array[MType] */; -val* var8 /* : Array[MType] */; +val* var5 /* : Array[MType] */; +val* var7 /* : Array[MType] */; val* var_ /* var : Array[MType] */; -val* var9 /* : ArrayIterator[nullable Object] */; -val* var_10 /* var : ArrayIterator[MType] */; -short int var11 /* : Bool */; -val* var12 /* : nullable Object */; +val* var8 /* : ArrayIterator[nullable Object] */; +val* var_9 /* var : ArrayIterator[MType] */; +short int var10 /* : Bool */; +val* var11 /* : 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; @@ -8106,49 +8828,47 @@ RET_LABEL2:(void)0; } var4 = !var1; if (var4){ -var5 = 1; -var = var5; +var = 1; goto RET_LABEL; } else { } { { /* Inline model#MGenericType#arguments (self) on */ -var8 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ -if (unlikely(var8 == NULL)) { +var7 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ +if (unlikely(var7 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } -var6 = var8; -RET_LABEL7:(void)0; +var5 = var7; +RET_LABEL6:(void)0; } } -var_ = var6; +var_ = var5; { -var9 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var8 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_10 = var9; +var_9 = var8; for(;;) { { -var11 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_10); +var10 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_9); } -if (var11){ +if (var10){ { -var12 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_10); +var11 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_9); } -var_t = var12; +var_t = var11; { -var13 = ((short int (*)(val* self, val* p0, val* p1, val* p2))(var_t->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on */; +var12 = ((short int(*)(val* self, val* p0, val* p1, val* p2))(var_t->class->vft[COLOR_nit__model__MType__can_resolve_for]))(var_t, var_mtype, var_anchor, var_mmodule); /* can_resolve_for on */ } -var14 = !var13; -if (var14){ -var15 = 0; -var = var15; +var13 = !var12; +if (var13){ +var = 0; goto RET_LABEL; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_10); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_9); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -8156,12 +8876,9 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_10) on */ -RET_LABEL16:(void)0; +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_9); /* Direct call array#ArrayIterator#finish on */ } -} -var17 = 1; -var = var17; +var = 1; goto RET_LABEL; RET_LABEL:; return var; @@ -8169,74 +8886,72 @@ return var; /* method model#MGenericType#length for (self: MGenericType): Int */ long nit___nit__MGenericType___MType__length(val* self) { long var /* : Int */; -long var1 /* : Int */; long var_res /* var res: Int */; -val* var2 /* : Array[MType] */; -val* var4 /* : Array[MType] */; +val* var1 /* : Array[MType] */; +val* var3 /* : Array[MType] */; val* var_ /* var : Array[MType] */; -val* var5 /* : ArrayIterator[nullable Object] */; -val* var_6 /* var : ArrayIterator[MType] */; -short int var7 /* : Bool */; -val* var8 /* : nullable Object */; +val* var4 /* : ArrayIterator[nullable Object] */; +val* var_5 /* var : ArrayIterator[MType] */; +short int var6 /* : Bool */; +val* var7 /* : nullable Object */; val* var_a /* var a: MType */; +long var8 /* : Int */; long var9 /* : Int */; -long var10 /* : Int */; -short int var12 /* : Bool */; +short int var11 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var13 /* : Int */; -var1 = 1; -var_res = var1; +long var12 /* : Int */; +var_res = 1l; { { /* Inline model#MGenericType#arguments (self) on */ -var4 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ -if (unlikely(var4 == NULL)) { +var3 = self->attrs[COLOR_nit__model__MGenericType___arguments].val; /* _arguments on */ +if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1164); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1244); +fatal_exit(1); } -var2 = var4; -RET_LABEL3:(void)0; +var1 = var3; +RET_LABEL2:(void)0; } } -var_ = var2; +var_ = var1; { -var5 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var4 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_6 = var5; +var_5 = var4; for(;;) { { -var7 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_6); +var6 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_5); } -if (var7){ +if (var6){ { -var8 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_6); +var7 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_5); } -var_a = var8; +var_a = var7; { -var9 = ((long (*)(val* self))(var_a->class->vft[COLOR_nit__model__MType__length]))(var_a) /* length on */; +var8 = ((long(*)(val* self))(var_a->class->vft[COLOR_nit__model__MType__length]))(var_a); /* length on */ } { -{ /* 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)) { +{ /* 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)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var13 = var_res + var9; -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; +var12 = var_res + var8; +var9 = var12; +goto RET_LABEL10; +RET_LABEL10:(void)0; } } -var_res = var10; +var_res = var9; { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_6); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_5); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -8244,15 +8959,42 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_6) on */ -RET_LABEL14:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_5); /* Direct call array#ArrayIterator#finish on */ } var = var_res; goto RET_LABEL; RET_LABEL:; return var; } +/* method model#MFormalType#as_notnull for (self: MFormalType): MType */ +val* nit___nit__MFormalType___MType__as_notnull(val* self) { +val* var /* : MType */; +short int var1 /* : Bool */; +val* var2 /* : MType */; +val* var3 /* : MNotNullType */; +var1 = self->attrs[COLOR_nit__model__MFormalType___as_notnull].val != NULL; /* _as_notnull on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_nit__model__MFormalType___as_notnull].val; /* _as_notnull on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _as_notnull"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1337); +fatal_exit(1); +} +} else { +var3 = NEW_nit__MNotNullType(&type_nit__MNotNullType); +{ +((void(*)(val* self, val* p0))(var3->class->vft[COLOR_nit__model__MProxyType__mtype_61d]))(var3, self); /* mtype= on */ +} +{ +((void(*)(val* self))(var3->class->vft[COLOR_standard__kernel__Object__init]))(var3); /* init on */ +} +self->attrs[COLOR_nit__model__MFormalType___as_notnull].val = var3; /* _as_notnull on */ +var2 = var3; +} +var = var2; +RET_LABEL:; +return var; +} /* method model#MVirtualType#mproperty for (self: MVirtualType): MVirtualTypeProp */ val* nit___nit__MVirtualType___mproperty(val* self) { val* var /* : MVirtualTypeProp */; @@ -8260,8 +9002,8 @@ val* var1 /* : MVirtualTypeProp */; var1 = self->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -8288,8 +9030,8 @@ val* var12 /* : Model */; var3 = self->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -8300,8 +9042,8 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_nit__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", FILE_nit__model, 1736); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1928); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -8312,8 +9054,8 @@ RET_LABEL5:(void)0; var9 = var4->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 489); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 550); +fatal_exit(1); } var7 = var9; RET_LABEL8:(void)0; @@ -8325,7 +9067,7 @@ var12 = var7->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on class->vft[COLOR_nit__model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on */; +var1 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on */ } var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1267); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1357); +fatal_exit(1); } { { /* Inline model#MVirtualType#mproperty (self) on */ var5 = self->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on */ if (unlikely(var5 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344); +fatal_exit(1); } var3 = var5; RET_LABEL4:(void)0; @@ -8435,8 +9175,8 @@ var7 = standard___standard__AbstractArrayRead___standard__abstract_collection__C } if (var7){ PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1270); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1360); +fatal_exit(1); } else { { { /* Inline array#AbstractArrayRead#length (var_props) on */ @@ -8445,76 +9185,75 @@ var8 = var10; RET_LABEL9:(void)0; } } -var11 = 1; { -{ /* Inline kernel#Int#== (var8,var11) on */ -var14 = var8 == var11; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; +{ /* Inline kernel#Int#== (var8,1l) on */ +var13 = var8 == 1l; +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } } -if (var12){ +if (var11){ { -var15 = standard___standard__SequenceRead___Collection__first(var_props); +var14 = standard___standard__SequenceRead___Collection__first(var_props); } -var = var15; +var = var14; goto RET_LABEL; } else { } } -var16 = NEW_standard__ArraySet(&type_standard__ArraySet__nit__MType); +var15 = NEW_standard__ArraySet(&type_standard__ArraySet__nit__MType); { -standard___standard__ArraySet___standard__kernel__Object__init(var16); /* Direct call array#ArraySet#init on */ +standard___standard__ArraySet___standard__kernel__Object__init(var15); /* Direct call array#ArraySet#init on */ } -var_types = var16; +var_types = var15; { -var17 = standard___standard__SequenceRead___Collection__first(var_props); +var16 = standard___standard__SequenceRead___Collection__first(var_props); } -var_res = var17; +var_res = var16; var_ = var_props; { -var18 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var17 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_19 = var18; +var_18 = var17; for(;;) { { -var20 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_19); +var19 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_18); } -if (var20){ +if (var19){ { -var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_19); +var20 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_18); } -var_p = var21; +var_p = var20; { { /* Inline model#MVirtualTypeDef#bound (var_p) on */ -var24 = var_p->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val; /* _bound on */ -var22 = var24; -RET_LABEL23:(void)0; +var23 = var_p->attrs[COLOR_nit__model__MVirtualTypeDef___bound].val; /* _bound on */ +var21 = var23; +RET_LABEL22:(void)0; } } -if (unlikely(var22 == NULL)) { +if (unlikely(var21 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1277); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1367); +fatal_exit(1); } { -standard___standard__ArraySet___standard__abstract_collection__SimpleCollection__add(var_types, var22); /* Direct call array#ArraySet#add on */ +standard___standard__ArraySet___standard__abstract_collection__SimpleCollection__add(var_types, var21); /* Direct call array#ArraySet#add on */ } { { /* Inline model#MVirtualTypeDef#is_fixed (var_res) on */ -var27 = var_res->attrs[COLOR_nit__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on */ -var25 = var27; -RET_LABEL26:(void)0; +var26 = var_res->attrs[COLOR_nit__model__MVirtualTypeDef___is_fixed].s; /* _is_fixed on */ +var24 = var26; +RET_LABEL25:(void)0; } } -var28 = !var25; -if (var28){ +var27 = !var24; +if (var27){ var_res = var_p; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_19); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_18); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -8522,30 +9261,27 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_19) on */ -RET_LABEL29:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_18); /* Direct call array#ArrayIterator#finish on */ } { -var30 = standard___standard__ArraySet___standard__abstract_collection__Collection__length(var_types); +var28 = standard___standard__ArraySet___standard__abstract_collection__Collection__length(var_types); } -var31 = 1; { -{ /* Inline kernel#Int#== (var30,var31) on */ -var34 = var30 == var31; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +{ /* Inline kernel#Int#== (var28,1l) on */ +var31 = var28 == 1l; +var29 = var31; +goto RET_LABEL30; +RET_LABEL30:(void)0; } } -if (var32){ +if (var29){ var = var_res; goto RET_LABEL; } else { } PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1283); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1373); +fatal_exit(1); RET_LABEL:; return var; } @@ -8577,32 +9313,34 @@ val* var17 /* : MClass */; val* var19 /* : MClass */; val* var20 /* : MClassKind */; val* var22 /* : MClassKind */; -val* var23 /* : MClassKind */; -short int var24 /* : Bool */; +val* var23 /* : Sys */; +val* var24 /* : MClassKind */; +short int var25 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var26 /* : Bool */; -short int var28 /* : Bool */; -val* var29 /* : MClass */; -val* var31 /* : MClass */; -val* var32 /* : MClassKind */; -val* var34 /* : MClassKind */; +short int var27 /* : Bool */; +short int var29 /* : Bool */; +val* var30 /* : MClass */; +val* var32 /* : MClass */; +val* var33 /* : MClassKind */; val* var35 /* : MClassKind */; -short int var36 /* : Bool */; +val* var36 /* : Sys */; +val* var37 /* : MClassKind */; short int var38 /* : Bool */; short int var40 /* : Bool */; +short int var42 /* : Bool */; var_mmodule = p0; var_resolved_receiver = p1; { -var1 = ((short int (*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on */; +var1 = ((short int(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__need_anchor]))(var_resolved_receiver); /* need_anchor on */ } var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1292); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1382); +fatal_exit(1); } { -var3 = ((val* (*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__as_notnullable]))(var_resolved_receiver) /* as_notnullable on */; +var3 = ((val*(*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__undecorate]))(var_resolved_receiver); /* undecorate on */ } var_resolved_receiver = var3; /* isa MClassType */ @@ -8615,8 +9353,8 @@ var4 = var_resolved_receiver->type->type_table[cltype] == idtype; } if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1294); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1384); +fatal_exit(1); } { var5 = nit___nit__MVirtualType___lookup_single_definition(self, var_mmodule, var_resolved_receiver); @@ -8631,12 +9369,12 @@ RET_LABEL7:(void)0; } if (unlikely(var6 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1297); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1387); +fatal_exit(1); } var_res = var6; { -var9 = ((val* (*)(val* self, val* p0, val* p1))(var_res->class->vft[COLOR_nit__model__MType__lookup_fixed]))(var_res, var_mmodule, var_resolved_receiver) /* lookup_fixed on */; +var9 = ((val*(*)(val* self, val* p0, val* p1))(var_res->class->vft[COLOR_nit__model__MType__lookup_fixed]))(var_res, var_mmodule, var_resolved_receiver); /* lookup_fixed on */ } var_res = var9; { @@ -8666,8 +9404,8 @@ if (var14){ var19 = var_res->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ if (unlikely(var19 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } var17 = var19; RET_LABEL18:(void)0; @@ -8678,33 +9416,34 @@ RET_LABEL18:(void)0; var22 = var17->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 436); +fatal_exit(1); } var20 = var22; RET_LABEL21:(void)0; } } +var23 = glob_sys; { -var23 = nit__model___standard__Object___enum_kind(self); +var24 = nit__model___standard__Sys___enum_kind(var23); } { -{ /* Inline kernel#Object#== (var20,var23) on */ -var_other = var23; +{ /* Inline kernel#Object#== (var20,var24) on */ +var_other = var24; { { /* Inline kernel#Object#is_same_instance (var20,var_other) on */ -var28 = var20 == var_other; -var26 = var28; -goto RET_LABEL27; -RET_LABEL27:(void)0; +var29 = var20 == var_other; +var27 = var29; +goto RET_LABEL28; +RET_LABEL28:(void)0; } } -var24 = var26; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var25 = var27; +goto RET_LABEL26; +RET_LABEL26:(void)0; } } -var13 = var24; +var13 = var25; } else { var13 = var_; } @@ -8715,48 +9454,49 @@ goto RET_LABEL; } { { /* Inline model#MClassType#mclass (var_resolved_receiver) on */ -var31 = var_resolved_receiver->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var31 == NULL)) { +var32 = var_resolved_receiver->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var32 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var29 = var31; -RET_LABEL30:(void)0; +var30 = var32; +RET_LABEL31:(void)0; } } { -{ /* Inline model#MClass#kind (var29) on */ -var34 = var29->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ -if (unlikely(var34 == NULL)) { +{ /* Inline model#MClass#kind (var30) on */ +var35 = var30->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on */ +if (unlikely(var35 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 436); +fatal_exit(1); } -var32 = var34; -RET_LABEL33:(void)0; +var33 = var35; +RET_LABEL34:(void)0; } } +var36 = glob_sys; { -var35 = nit__model___standard__Object___enum_kind(self); +var37 = nit__model___standard__Sys___enum_kind(var36); } { -{ /* Inline kernel#Object#== (var32,var35) on */ -var_other = var35; +{ /* Inline kernel#Object#== (var33,var37) on */ +var_other = var37; { -{ /* Inline kernel#Object#is_same_instance (var32,var_other) on */ -var40 = var32 == var_other; +{ /* Inline kernel#Object#is_same_instance (var33,var_other) on */ +var42 = var33 == var_other; +var40 = var42; +goto RET_LABEL41; +RET_LABEL41:(void)0; +} +} var38 = var40; goto RET_LABEL39; RET_LABEL39:(void)0; } } -var36 = var38; -goto RET_LABEL37; -RET_LABEL37:(void)0; -} -} -if (var36){ +if (var38){ var = var_res; goto RET_LABEL; } else { @@ -8776,19 +9516,16 @@ short int var_cleanup_virtual /* var cleanup_virtual: Bool */; short int var1 /* : Bool */; short int var2 /* : Bool */; short int var3 /* : Bool */; -val* var4 /* : null */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -short int var6 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : null */; -short int var11 /* : Bool */; -val* var12 /* : MType */; +val* var9 /* : MType */; val* var_resolved_receiver /* var resolved_receiver: nullable Object */; -val* var13 /* : MType */; +val* var10 /* : MType */; val* var_verbatim_bound /* var verbatim_bound: MType */; -val* var14 /* : MType */; +val* var11 /* : MType */; val* var_res /* var res: MType */; var_mtype = p0; var_anchor = p1; @@ -8805,54 +9542,51 @@ var2 = nit___nit__MVirtualType___MType__can_resolve_for(self, var_mtype, var_anc } if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1317); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1407); +fatal_exit(1); } { -var3 = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on */; +var3 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype); /* need_anchor on */ } if (var3){ -var4 = NULL; if (var_anchor == NULL) { -var5 = 0; /* is null */ +var4 = 0; /* is null */ } else { -var5 = 1; /* arg is null and recv is not */ +var4 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_anchor,var4) on */ -var_other = var4; +{ /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var8 = ((short int (*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other) /* == on */; +var7 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on */ } -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var8 = !var7; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -var5 = var6; +var4 = var5; } -if (unlikely(!var5)) { +if (unlikely(!var4)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1324); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1414); +fatal_exit(1); } -var10 = NULL; -var11 = 1; { -var12 = ((val* (*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nit__model__MType__resolve_for]))(var_mtype, var_anchor, var10, var_mmodule, var11) /* resolve_for on */; +var9 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nit__model__MType__resolve_for]))(var_mtype, var_anchor, ((val*)NULL), var_mmodule, 1); /* resolve_for on */ } -var_resolved_receiver = var12; +var_resolved_receiver = var9; } else { var_resolved_receiver = var_mtype; } { -var13 = nit___nit__MVirtualType___MType__lookup_bound(self, var_mmodule, var_resolved_receiver); +var10 = nit___nit__MVirtualType___MType__lookup_bound(self, var_mmodule, var_resolved_receiver); } -var_verbatim_bound = var13; +var_verbatim_bound = var10; { -var14 = ((val* (*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_verbatim_bound->class->vft[COLOR_nit__model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on */; +var11 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_verbatim_bound->class->vft[COLOR_nit__model__MType__resolve_for]))(var_verbatim_bound, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual); /* resolve_for on */ } -var_res = var14; +var_res = var11; var = var_res; goto RET_LABEL; RET_LABEL:; @@ -8865,69 +9599,67 @@ 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 var2 /* : Bool */; short int var3 /* : Bool */; -short int var4 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var5 /* : Bool */; short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var8 /* : MType */; -val* var9 /* : MVirtualTypeProp */; -val* var11 /* : MVirtualTypeProp */; -short int var12 /* : Bool */; +val* var7 /* : MType */; +val* var8 /* : MVirtualTypeProp */; +val* var10 /* : MVirtualTypeProp */; +short int var11 /* : Bool */; var_mtype = p0; var_anchor = p1; var_mmodule = p2; { -var1 = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on */; +var1 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype); /* need_anchor on */ } if (var1){ -var2 = NULL; if (var_anchor == NULL) { -var3 = 0; /* is null */ +var2 = 0; /* is null */ } else { -var3 = 1; /* arg is null and recv is not */ +var2 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_anchor,var2) on */ -var_other = var2; +{ /* Inline kernel#Object#!= (var_anchor,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var6 = ((short int (*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other) /* == on */; +var5 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on */ } -var7 = !var6; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var6 = !var5; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; } -var3 = var4; +var2 = var3; } -if (unlikely(!var3)) { +if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1340); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1430); +fatal_exit(1); } { -var8 = ((val* (*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nit__model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor) /* anchor_to on */; +var7 = ((val*(*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nit__model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor); /* anchor_to on */ } -var_mtype = var8; +var_mtype = var7; } else { } { { /* Inline model#MVirtualType#mproperty (self) on */ -var11 = self->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on */ -if (unlikely(var11 == NULL)) { +var10 = self->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on */ +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var8 = var10; +RET_LABEL9:(void)0; } } { -var12 = nit___nit__MType___has_mproperty(var_mtype, var_mmodule, var9); +var11 = nit___nit__MType___has_mproperty(var_mtype, var_mmodule, var8); } -var = var12; +var = var11; goto RET_LABEL; RET_LABEL:; return var; @@ -8943,8 +9675,8 @@ val* var4 /* : String */; var3 = self->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -8969,8 +9701,8 @@ val* var4 /* : String */; var3 = self->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -8995,8 +9727,8 @@ val* var4 /* : String */; var3 = self->attrs[COLOR_nit__model__MVirtualType___mproperty].val; /* _mproperty on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1254); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1344); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -9013,7 +9745,7 @@ return var; /* method model#MVirtualType#init for (self: MVirtualType) */ void nit___nit__MVirtualType___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_nit___nit__MVirtualType___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_nit___nit__MVirtualType___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } @@ -9024,8 +9756,8 @@ val* var1 /* : MClass */; var1 = self->attrs[COLOR_nit__model__MParameterType___mclass].val; /* _mclass on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1382); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1472); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -9050,8 +9782,8 @@ val* var9 /* : Model */; var3 = self->attrs[COLOR_nit__model__MParameterType___mclass].val; /* _mclass on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1382); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1472); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -9062,8 +9794,8 @@ RET_LABEL2:(void)0; var6 = var1->attrs[COLOR_nit__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", FILE_nit__model, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } var4 = var6; RET_LABEL5:(void)0; @@ -9075,7 +9807,7 @@ var9 = var4->attrs[COLOR_nit__mmodule__MModule___model].val; /* _model on attrs[COLOR_nit__model__MParameterType___name].val; /* _name on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1391); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1481); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -9129,8 +9861,8 @@ val* var3 /* : String */; var3 = self->attrs[COLOR_nit__model__MParameterType___name].val; /* _name on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1391); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1481); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -9147,497 +9879,84 @@ val* var /* : String */; short int var1 /* : Bool */; val* var2 /* : String */; val* var3 /* : String */; -val* var5 /* : MClass */; -val* var7 /* : MClass */; -val* var8 /* : String */; +val* var5 /* : NativeArray[String] */; static val* varonce; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : FlatString */; +static val* varonce6; +val* var7 /* : String */; +char* var8 /* : NativeString */; +val* var9 /* : FlatString */; +val* var10 /* : MClass */; +val* var12 /* : MClass */; val* var13 /* : String */; -val* var15 /* : String */; -val* var16 /* : Array[Object] */; -long var17 /* : Int */; -val* var18 /* : NativeArray[Object] */; -val* var19 /* : String */; +val* var14 /* : String */; +val* var16 /* : String */; +val* var17 /* : String */; var1 = self->attrs[COLOR_nit__model__MParameterType___full_name].val != NULL; /* _full_name on */ if(likely(var1)) { var2 = self->attrs[COLOR_nit__model__MParameterType___full_name].val; /* _full_name on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _full_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1395); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1485); +fatal_exit(1); } } else { { -{ -{ /* Inline model#MParameterType#mclass (self) on */ -var7 = self->attrs[COLOR_nit__model__MParameterType___mclass].val; /* _mclass on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1382); -show_backtrace(1); -} -var5 = var7; -RET_LABEL6:(void)0; -} -} -{ -var8 = nit___nit__MClass___nit__model_base__MEntity__full_name(var5); -} -if (varonce) { -var9 = varonce; +if (unlikely(varonce==NULL)) { +var5 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce6!=NULL)) { +var7 = varonce6; } else { -var10 = "::"; -var11 = 2; -var12 = standard___standard__NativeString___to_s_with_length(var10, var11); -var9 = var12; -varonce = var9; -} -{ -{ /* Inline model#MParameterType#name (self) on */ -var15 = self->attrs[COLOR_nit__model__MParameterType___name].val; /* _name on */ -if (unlikely(var15 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1391); -show_backtrace(1); -} -var13 = var15; -RET_LABEL14:(void)0; -} -} -var16 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var16 = array_instance Array[Object] */ -var17 = 3; -var18 = NEW_standard__NativeArray(var17, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var18)->values[0] = (val*) var8; -((struct instance_standard__NativeArray*)var18)->values[1] = (val*) var9; -((struct instance_standard__NativeArray*)var18)->values[2] = (val*) var13; -{ -((void (*)(val* self, val* p0, long p1))(var16->class->vft[COLOR_standard__array__Array__with_native]))(var16, var18, var17) /* with_native on */; -} -} -{ -var19 = ((val* (*)(val* self))(var16->class->vft[COLOR_standard__string__Object__to_s]))(var16) /* to_s on */; -} -var3 = var19; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -self->attrs[COLOR_nit__model__MParameterType___full_name].val = var3; /* _full_name on */ -var2 = var3; -} -var = var2; -RET_LABEL:; -return var; -} -/* method model#MParameterType#c_name for (self: MParameterType): String */ -val* nit___nit__MParameterType___nit__model_base__MEntity__c_name(val* self) { -val* var /* : String */; -short int var1 /* : Bool */; -val* var2 /* : String */; -val* var3 /* : String */; -val* var5 /* : MClass */; -val* var7 /* : MClass */; -val* var8 /* : String */; -static val* varonce; -val* var9 /* : String */; -char* var10 /* : NativeString */; -long var11 /* : Int */; -val* var12 /* : FlatString */; -val* var13 /* : String */; -static val* varonce14; -val* var15 /* : String */; -char* var16 /* : NativeString */; -long var17 /* : Int */; -val* var18 /* : FlatString */; -val* var19 /* : String */; -val* var21 /* : String */; -val* var22 /* : Array[Object] */; -long var23 /* : Int */; -val* var24 /* : NativeArray[Object] */; -val* var25 /* : String */; -val* var26 /* : String */; -val* var27 /* : String */; -var1 = self->attrs[COLOR_nit__model__MParameterType___c_name].val != NULL; /* _c_name on */ -if(likely(var1)) { -var2 = self->attrs[COLOR_nit__model__MParameterType___c_name].val; /* _c_name on */ -if (unlikely(var2 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1397); -show_backtrace(1); +var8 = "::"; +var9 = standard___standard__NativeString___to_s_with_length(var8, 2l); +var7 = var9; +varonce6 = var7; } +((struct instance_standard__NativeArray*)var5)->values[1]=var7; } else { -{ +var5 = varonce; +varonce = NULL; +} { { /* Inline model#MParameterType#mclass (self) on */ -var7 = self->attrs[COLOR_nit__model__MParameterType___mclass].val; /* _mclass on */ -if (unlikely(var7 == NULL)) { +var12 = self->attrs[COLOR_nit__model__MParameterType___mclass].val; /* _mclass on */ +if (unlikely(var12 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1382); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1472); +fatal_exit(1); } -var5 = var7; -RET_LABEL6:(void)0; -} -} -{ -var8 = nit___nit__MClass___nit__model_base__MEntity__c_name(var5); +var10 = var12; +RET_LABEL11:(void)0; } -if (varonce) { -var9 = varonce; -} else { -var10 = "__"; -var11 = 2; -var12 = standard___standard__NativeString___to_s_with_length(var10, var11); -var9 = var12; -varonce = var9; } { -var13 = ((val* (*)(val* self, val* p0))(var8->class->vft[COLOR_standard__string__String___43d]))(var8, var9) /* + on */; -} -if (varonce14) { -var15 = varonce14; -} else { -var16 = "#"; -var17 = 1; -var18 = standard___standard__NativeString___to_s_with_length(var16, var17); -var15 = var18; -varonce14 = var15; +var13 = nit___nit__MClass___nit__model_base__MEntity__full_name(var10); } +((struct instance_standard__NativeArray*)var5)->values[0]=var13; { { /* Inline model#MParameterType#name (self) on */ -var21 = self->attrs[COLOR_nit__model__MParameterType___name].val; /* _name on */ -if (unlikely(var21 == NULL)) { +var16 = self->attrs[COLOR_nit__model__MParameterType___name].val; /* _name on */ +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1391); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1481); +fatal_exit(1); } -var19 = var21; -RET_LABEL20:(void)0; -} -} -var22 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var22 = array_instance Array[Object] */ -var23 = 2; -var24 = NEW_standard__NativeArray(var23, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var24)->values[0] = (val*) var15; -((struct instance_standard__NativeArray*)var24)->values[1] = (val*) var19; -{ -((void (*)(val* self, val* p0, long p1))(var22->class->vft[COLOR_standard__array__Array__with_native]))(var22, var24, var23) /* with_native on */; -} -} -{ -var25 = ((val* (*)(val* self))(var22->class->vft[COLOR_standard__string__Object__to_s]))(var22) /* to_s on */; +var14 = var16; +RET_LABEL15:(void)0; } -{ -var26 = standard___standard__Text___to_cmangle(var25); } +((struct instance_standard__NativeArray*)var5)->values[2]=var14; { -var27 = ((val* (*)(val* self, val* p0))(var13->class->vft[COLOR_standard__string__String___43d]))(var13, var26) /* + on */; +var17 = ((val*(*)(val* self))(var5->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var5); /* native_to_s on */ } -var3 = var27; +varonce = var5; +var3 = var17; goto RET_LABEL4; RET_LABEL4:(void)0; } -self->attrs[COLOR_nit__model__MParameterType___c_name].val = var3; /* _c_name on */ +self->attrs[COLOR_nit__model__MParameterType___full_name].val = var3; /* _full_name on */ var2 = var3; } var = var2; RET_LABEL:; return var; } -/* method model#MParameterType#lookup_bound for (self: MParameterType, MModule, MType): MType */ -val* nit___nit__MParameterType___MType__lookup_bound(val* self, val* p0, val* p1) { -val* var /* : MType */; -val* var_mmodule /* var mmodule: MModule */; -val* var_resolved_receiver /* var resolved_receiver: MType */; -short int var1 /* : Bool */; -short int var2 /* : Bool */; -val* var3 /* : MType */; -short int var4 /* : Bool */; -int cltype; -int idtype; -val* var5 /* : MClass */; -val* var7 /* : MClass */; -val* var_goalclass /* var goalclass: MClass */; -val* var8 /* : MClass */; -val* var10 /* : MClass */; -short int var11 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -val* var16 /* : Array[MType] */; -long var17 /* : Int */; -long var19 /* : Int */; -val* var20 /* : nullable Object */; -val* var21 /* : Set[MClassType] */; -val* var_supertypes /* var supertypes: Set[MClassType] */; -val* var_ /* var : Set[MClassType] */; -val* var22 /* : Iterator[nullable Object] */; -val* var_23 /* var : Iterator[MClassType] */; -short int var24 /* : Bool */; -val* var25 /* : nullable Object */; -val* var_t /* var t: MClassType */; -val* var26 /* : MClass */; -val* var28 /* : MClass */; -short int var29 /* : Bool */; -short int var31 /* : Bool */; -short int var33 /* : Bool */; -val* var34 /* : Array[MType] */; -long var35 /* : Int */; -long var37 /* : Int */; -val* var38 /* : nullable Object */; -val* var_res /* var res: MType */; -var_mmodule = p0; -var_resolved_receiver = p1; -{ -var1 = ((short int (*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on */; -} -var2 = !var1; -if (unlikely(!var2)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1401); -show_backtrace(1); -} -{ -var3 = ((val* (*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__as_notnullable]))(var_resolved_receiver) /* as_notnullable on */; -} -var_resolved_receiver = var3; -/* isa MClassType */ -cltype = type_nit__MClassType.color; -idtype = type_nit__MClassType.id; -if(cltype >= var_resolved_receiver->type->table_size) { -var4 = 0; -} else { -var4 = var_resolved_receiver->type->type_table[cltype] == idtype; -} -if (unlikely(!var4)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1403); -show_backtrace(1); -} -{ -{ /* Inline model#MParameterType#mclass (self) on */ -var7 = self->attrs[COLOR_nit__model__MParameterType___mclass].val; /* _mclass on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1382); -show_backtrace(1); -} -var5 = var7; -RET_LABEL6:(void)0; -} -} -var_goalclass = var5; -{ -{ /* Inline model#MClassType#mclass (var_resolved_receiver) on */ -var10 = var_resolved_receiver->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); -} -var8 = var10; -RET_LABEL9:(void)0; -} -} -{ -{ /* Inline kernel#Object#== (var8,var_goalclass) on */ -var_other = var_goalclass; -{ -{ /* Inline kernel#Object#is_same_instance (var8,var_other) on */ -var15 = var8 == var_other; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; -} -} -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; -} -} -if (var11){ -{ -var16 = ((val* (*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MClassType__arguments]))(var_resolved_receiver) /* arguments on */; -} -{ -{ /* Inline model#MParameterType#rank (self) on */ -var19 = self->attrs[COLOR_nit__model__MParameterType___rank].l; /* _rank on */ -var17 = var19; -RET_LABEL18:(void)0; -} -} -{ -var20 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var16, var17); -} -var = var20; -goto RET_LABEL; -} else { -} -{ -var21 = nit___nit__MClassType___MType__collect_mtypes(var_resolved_receiver, var_mmodule); -} -var_supertypes = var21; -var_ = var_supertypes; -{ -var22 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on */; -} -var_23 = var22; -for(;;) { -{ -var24 = ((short int (*)(val* self))(var_23->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_23) /* is_ok on */; -} -if (var24){ -{ -var25 = ((val* (*)(val* self))(var_23->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_23) /* item on */; -} -var_t = var25; -{ -{ /* Inline model#MClassType#mclass (var_t) on */ -var28 = var_t->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var28 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); -} -var26 = var28; -RET_LABEL27:(void)0; -} -} -{ -{ /* Inline kernel#Object#== (var26,var_goalclass) on */ -var_other = var_goalclass; -{ -{ /* Inline kernel#Object#is_same_instance (var26,var_other) on */ -var33 = var26 == var_other; -var31 = var33; -goto RET_LABEL32; -RET_LABEL32:(void)0; -} -} -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; -} -} -if (var29){ -{ -var34 = ((val* (*)(val* self))(var_t->class->vft[COLOR_nit__model__MClassType__arguments]))(var_t) /* arguments on */; -} -{ -{ /* Inline model#MParameterType#rank (self) on */ -var37 = self->attrs[COLOR_nit__model__MParameterType___rank].l; /* _rank on */ -var35 = var37; -RET_LABEL36:(void)0; -} -} -{ -var38 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var34, var35); -} -var_res = var38; -var = var_res; -goto RET_LABEL; -} else { -} -{ -((void (*)(val* self))(var_23->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_23) /* next on */; -} -} else { -goto BREAK_label; -} -} -BREAK_label: (void)0; -{ -{ /* Inline abstract_collection#Iterator#finish (var_23) on */ -RET_LABEL39:(void)0; -} -} -PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1417); -show_backtrace(1); -RET_LABEL:; -return var; -} -/* method model#MParameterType#lookup_fixed for (self: MParameterType, MModule, MType): MType */ -val* nit___nit__MParameterType___MType__lookup_fixed(val* self, val* p0, val* p1) { -val* var /* : MType */; -val* var_mmodule /* var mmodule: MModule */; -val* var_resolved_receiver /* var resolved_receiver: MType */; -short int var1 /* : Bool */; -short int var2 /* : Bool */; -val* var3 /* : MType */; -short int var4 /* : Bool */; -int cltype; -int idtype; -val* var5 /* : MClass */; -val* var7 /* : MClass */; -val* var8 /* : MClassType */; -val* var10 /* : MClassType */; -short int var11 /* : Bool */; -val* var12 /* : MType */; -val* var_res /* var res: MType */; -var_mmodule = p0; -var_resolved_receiver = p1; -{ -var1 = ((short int (*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on */; -} -var2 = !var1; -if (unlikely(!var2)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1429); -show_backtrace(1); -} -{ -var3 = ((val* (*)(val* self))(var_resolved_receiver->class->vft[COLOR_nit__model__MType__as_notnullable]))(var_resolved_receiver) /* as_notnullable on */; -} -var_resolved_receiver = var3; -/* isa MClassType */ -cltype = type_nit__MClassType.color; -idtype = type_nit__MClassType.id; -if(cltype >= var_resolved_receiver->type->table_size) { -var4 = 0; -} else { -var4 = var_resolved_receiver->type->type_table[cltype] == idtype; -} -if (unlikely(!var4)) { -PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1431); -show_backtrace(1); -} -{ -{ /* Inline model#MClassType#mclass (var_resolved_receiver) on */ -var7 = var_resolved_receiver->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var7 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058); -show_backtrace(1); -} -var5 = var7; -RET_LABEL6:(void)0; -} -} -{ -{ /* Inline model#MClass#mclass_type (var5) on */ -var10 = var5->attrs[COLOR_nit__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", FILE_nit__model, 438); -show_backtrace(1); -} -var8 = var10; -RET_LABEL9:(void)0; -} -} -var11 = 0; -{ -var12 = nit___nit__MParameterType___MType__resolve_for(self, var8, var_resolved_receiver, var_mmodule, var11); -} -var_res = var12; -var = var_res; -goto RET_LABEL; -RET_LABEL:; -return var; -}