X-Git-Url: http://nitlanguage.org diff --git a/c_src/nit__modelbuilder_base.sep.1.c b/c_src/nit__modelbuilder_base.sep.1.c index 1ea80dd..25b6b29 100644 --- a/c_src/nit__modelbuilder_base.sep.1.c +++ b/c_src/nit__modelbuilder_base.sep.1.c @@ -14,7 +14,7 @@ RET_LABEL2:(void)0; if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Cast failed"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 36); -show_backtrace(1); +fatal_exit(1); } var = var1; goto RET_LABEL; @@ -43,7 +43,7 @@ var1 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -62,7 +62,7 @@ var1 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -79,21 +79,20 @@ val* var /* : ToolContext */; val* var2 /* : ToolContext */; val* var3 /* : nullable ModelBuilder */; val* var5 /* : nullable ModelBuilder */; -val* var6 /* : null */; +short int var6 /* : Bool */; short int var7 /* : Bool */; -short int var8 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var10 /* : Bool */; -short int var12 /* : Bool */; -val* var13 /* : ToolContext */; -val* var15 /* : ToolContext */; +short int var9 /* : Bool */; +short int var11 /* : Bool */; +val* var12 /* : ToolContext */; +val* var14 /* : ToolContext */; { { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ var2 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -106,50 +105,49 @@ var3 = var5; RET_LABEL4:(void)0; } } -var6 = NULL; if (var3 == NULL) { -var7 = 1; /* is null */ +var6 = 1; /* is null */ } else { -var7 = 0; /* arg is null but recv is not */ +var6 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var3,var6) on */ -var_other = var6; +{ /* Inline kernel#Object#== (var3,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var3,var_other) on */ -var12 = var3 == var_other; -var10 = var12; -goto RET_LABEL11; -RET_LABEL11:(void)0; +var11 = var3 == var_other; +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; } } -var8 = var10; -goto RET_LABEL9; -RET_LABEL9:(void)0; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; } -var7 = var8; +var6 = var7; } -if (unlikely(!var7)) { +if (unlikely(!var6)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 54); -show_backtrace(1); +fatal_exit(1); } { { /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ -var15 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var15 == NULL)) { +var14 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } { -{ /* Inline modelbuilder_base#ToolContext#modelbuilder_real= (var13,self) on */ -var13->attrs[COLOR_nit__modelbuilder_base__ToolContext___modelbuilder_real].val = self; /* _modelbuilder_real on */ -RET_LABEL16:(void)0; +{ /* Inline modelbuilder_base#ToolContext#modelbuilder_real= (var12,self) on */ +var12->attrs[COLOR_nit__modelbuilder_base__ToolContext___modelbuilder_real].val = self; /* _modelbuilder_real on */ +RET_LABEL15:(void)0; } } RET_LABEL:; @@ -164,58 +162,53 @@ val* var1 /* : Model */; val* var3 /* : Model */; val* var4 /* : nullable Array[MClass] */; val* var_classes /* var classes: nullable Array[MClass] */; -val* var5 /* : null */; +short int var5 /* : Bool */; short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var8 /* : null */; -val* var9 /* : null */; val* var_res /* var res: nullable MClass */; val* var_ /* var : Array[MClass] */; -val* var10 /* : ArrayIterator[nullable Object] */; -val* var_11 /* var : ArrayIterator[MClass] */; -short int var12 /* : Bool */; -val* var13 /* : nullable Object */; +val* var7 /* : ArrayIterator[nullable Object] */; +val* var_8 /* var : ArrayIterator[MClass] */; +short int var9 /* : Bool */; +val* var10 /* : nullable Object */; val* var_mclass /* var mclass: MClass */; -val* var14 /* : POSetElement[MModule] */; -val* var16 /* : POSetElement[MModule] */; -val* var17 /* : MModule */; +val* var11 /* : POSetElement[MModule] */; +val* var13 /* : POSetElement[MModule] */; +val* var14 /* : MModule */; +val* var16 /* : MModule */; +short int var17 /* : Bool */; +short int var18 /* : Bool */; val* var19 /* : MModule */; -short int var20 /* : Bool */; -short int var21 /* : Bool */; -val* var22 /* : MModule */; -val* var24 /* : MModule */; -val* var25 /* : MVisibility */; -val* var27 /* : MVisibility */; +val* var21 /* : MModule */; +val* var22 /* : MVisibility */; +val* var24 /* : MVisibility */; +short int var25 /* : Bool */; +short int var26 /* : Bool */; +short int var27 /* : Bool */; short int var28 /* : Bool */; -short int var29 /* : Bool */; -val* var30 /* : null */; -short int var31 /* : Bool */; -short int var32 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var34 /* : Bool */; -short int var36 /* : Bool */; +short int var30 /* : Bool */; +short int var32 /* : Bool */; +val* var33 /* : NativeArray[String] */; static val* varonce; -val* var37 /* : String */; -char* var38 /* : NativeString */; -long var39 /* : Int */; -val* var40 /* : FlatString */; -static val* varonce41; -val* var42 /* : String */; -char* var43 /* : NativeString */; -long var44 /* : Int */; +static val* varonce34; +val* var35 /* : String */; +char* var36 /* : NativeString */; +val* var37 /* : FlatString */; +static val* varonce38; +val* var39 /* : String */; +char* var40 /* : NativeString */; +val* var41 /* : FlatString */; +static val* varonce42; +val* var43 /* : String */; +char* var44 /* : NativeString */; val* var45 /* : FlatString */; -val* var46 /* : String */; -static val* varonce47; -val* var48 /* : String */; -char* var49 /* : NativeString */; -long var50 /* : Int */; -val* var51 /* : FlatString */; +static val* varonce46; +val* var47 /* : String */; +char* var48 /* : NativeString */; +val* var49 /* : FlatString */; +val* var50 /* : String */; +val* var51 /* : String */; val* var52 /* : String */; -val* var53 /* : Array[Object] */; -long var54 /* : Int */; -val* var55 /* : NativeArray[Object] */; -val* var56 /* : String */; -val* var57 /* : null */; var_anode = p0; var_mmodule = p1; var_name = p2; @@ -225,7 +218,7 @@ var3 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44); -show_backtrace(1); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -235,204 +228,295 @@ RET_LABEL2:(void)0; var4 = nit__model___Model___get_mclasses_by_name(var1, var_name); } var_classes = var4; -var5 = NULL; if (var_classes == NULL) { -var6 = 1; /* is null */ +var5 = 1; /* is null */ } else { -var6 = 0; /* arg is null but recv is not */ +var5 = 0; /* arg is null but recv is not */ } if (0) { -var7 = standard___standard__Array___standard__kernel__Object___61d_61d(var_classes, var5); -var6 = var7; +var6 = standard___standard__Array___standard__kernel__Object___61d_61d(var_classes, ((val*)NULL)); +var5 = var6; } -if (var6){ -var8 = NULL; -var = var8; +if (var5){ +var = ((val*)NULL); goto RET_LABEL; } else { } -var9 = NULL; -var_res = var9; +var_res = ((val*)NULL); var_ = var_classes; { -var10 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var7 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_11 = var10; +var_8 = var7; for(;;) { { -var12 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_11); +var9 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_8); } -if (var12){ +if (var9){ { -var13 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_11); +var10 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_8); } -var_mclass = var13; +var_mclass = var10; { { /* Inline mmodule#MModule#in_importation (var_mmodule) on */ -var16 = var_mmodule->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on */ -if (unlikely(var16 == NULL)) { +var13 = var_mmodule->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); } -var14 = var16; -RET_LABEL15:(void)0; +var11 = var13; +RET_LABEL12:(void)0; } } { { /* Inline model#MClass#intro_mmodule (var_mclass) on */ -var19 = var_mclass->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var19 == NULL)) { +var16 = var_mclass->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ +if (unlikely(var16 == 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); } -var17 = var19; -RET_LABEL18:(void)0; +var14 = var16; +RET_LABEL15:(void)0; } } { -var20 = poset___poset__POSetElement____60d_61d(var14, var17); +var17 = poset___poset__POSetElement____60d_61d(var11, var14); } -var21 = !var20; -if (var21){ +var18 = !var17; +if (var18){ goto BREAK_label; } else { } { { /* Inline model#MClass#intro_mmodule (var_mclass) on */ -var24 = var_mclass->attrs[COLOR_nit__model__MClass___intro_mmodule].val; /* _intro_mmodule on */ -if (unlikely(var24 == NULL)) { +var21 = var_mclass->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, 343); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 357); +fatal_exit(1); } -var22 = var24; -RET_LABEL23:(void)0; +var19 = var21; +RET_LABEL20:(void)0; } } { { /* Inline model#MClass#visibility (var_mclass) on */ -var27 = var_mclass->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ -if (unlikely(var27 == NULL)) { +var24 = var_mclass->attrs[COLOR_nit__model__MClass___visibility].val; /* _visibility on */ +if (unlikely(var24 == 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); } -var25 = var27; -RET_LABEL26:(void)0; +var22 = var24; +RET_LABEL23:(void)0; } } { -var28 = nit___nit__MModule___is_visible(var_mmodule, var22, var25); +var25 = nit___nit__MModule___is_visible(var_mmodule, var19, var22); } -var29 = !var28; -if (var29){ +var26 = !var25; +if (var26){ goto BREAK_label; } else { } -var30 = NULL; if (var_res == NULL) { -var31 = 1; /* is null */ +var27 = 1; /* is null */ } else { -var31 = 0; /* arg is null but recv is not */ +var27 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_res,var30) on */ -var_other = var30; +{ /* Inline kernel#Object#== (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ -var36 = var_res == var_other; -var34 = var36; -goto RET_LABEL35; -RET_LABEL35:(void)0; +var32 = var_res == var_other; +var30 = var32; +goto RET_LABEL31; +RET_LABEL31:(void)0; } } -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +var28 = var30; +goto RET_LABEL29; +RET_LABEL29:(void)0; } -var31 = var32; +var27 = var28; } -if (var31){ +if (var27){ var_res = var_mclass; } else { -if (varonce) { -var37 = varonce; +if (unlikely(varonce==NULL)) { +var33 = NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String); +if (likely(varonce34!=NULL)) { +var35 = varonce34; } else { -var38 = "Ambigous class name \'"; -var39 = 21; -var40 = standard___standard__NativeString___to_s_with_length(var38, var39); -var37 = var40; -varonce = var37; +var36 = "Error: ambiguous class name `"; +var37 = standard___standard__NativeString___to_s_with_length(var36, 29l); +var35 = var37; +varonce34 = var35; } -if (varonce41) { -var42 = varonce41; +((struct instance_standard__NativeArray*)var33)->values[0]=var35; +if (likely(varonce38!=NULL)) { +var39 = varonce38; } else { -var43 = "\'; conflict between "; -var44 = 20; -var45 = standard___standard__NativeString___to_s_with_length(var43, var44); -var42 = var45; -varonce41 = var42; +var40 = "`; conflict between `"; +var41 = standard___standard__NativeString___to_s_with_length(var40, 21l); +var39 = var41; +varonce38 = var39; } -{ -var46 = nit___nit__MClass___nit__model_base__MEntity__full_name(var_mclass); +((struct instance_standard__NativeArray*)var33)->values[2]=var39; +if (likely(varonce42!=NULL)) { +var43 = varonce42; +} else { +var44 = "` and `"; +var45 = standard___standard__NativeString___to_s_with_length(var44, 7l); +var43 = var45; +varonce42 = var43; } -if (varonce47) { -var48 = varonce47; +((struct instance_standard__NativeArray*)var33)->values[4]=var43; +if (likely(varonce46!=NULL)) { +var47 = varonce46; } else { -var49 = " and "; -var50 = 5; -var51 = standard___standard__NativeString___to_s_with_length(var49, var50); -var48 = var51; -varonce47 = var48; +var48 = "`."; +var49 = standard___standard__NativeString___to_s_with_length(var48, 2l); +var47 = var49; +varonce46 = var47; } -{ -var52 = nit___nit__MClass___nit__model_base__MEntity__full_name(var_res); +((struct instance_standard__NativeArray*)var33)->values[6]=var47; +} else { +var33 = varonce; +varonce = NULL; } -var53 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var53 = array_instance Array[Object] */ -var54 = 6; -var55 = NEW_standard__NativeArray(var54, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var55)->values[0] = (val*) var37; -((struct instance_standard__NativeArray*)var55)->values[1] = (val*) var_name; -((struct instance_standard__NativeArray*)var55)->values[2] = (val*) var42; -((struct instance_standard__NativeArray*)var55)->values[3] = (val*) var46; -((struct instance_standard__NativeArray*)var55)->values[4] = (val*) var48; -((struct instance_standard__NativeArray*)var55)->values[5] = (val*) var52; +((struct instance_standard__NativeArray*)var33)->values[1]=var_name; { -((void (*)(val* self, val* p0, long p1))(var53->class->vft[COLOR_standard__array__Array__with_native]))(var53, var55, var54) /* with_native on */; +var50 = nit___nit__MClass___nit__model_base__MEntity__full_name(var_mclass); } +((struct instance_standard__NativeArray*)var33)->values[3]=var50; +{ +var51 = nit___nit__MClass___nit__model_base__MEntity__full_name(var_res); } +((struct instance_standard__NativeArray*)var33)->values[5]=var51; { -var56 = ((val* (*)(val* self))(var53->class->vft[COLOR_standard__string__Object__to_s]))(var53) /* to_s on */; +var52 = ((val*(*)(val* self))(var33->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var33); /* native_to_s on */ } +varonce = var33; { -nit___nit__ModelBuilder___error(self, var_anode, var56); /* Direct call modelbuilder_base#ModelBuilder#error on */ +nit___nit__ModelBuilder___error(self, var_anode, var52); /* Direct call modelbuilder_base#ModelBuilder#error on */ } -var57 = NULL; -var = var57; +var = ((val*)NULL); goto RET_LABEL; } BREAK_label: (void)0; { -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_8); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label58; +goto BREAK_label53; } } -BREAK_label58: (void)0; +BREAK_label53: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_11) on */ -RET_LABEL59:(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 modelbuilder_base#ModelBuilder#get_mclass_by_name for (self: ModelBuilder, ANode, MModule, String): nullable MClass */ +val* nit___nit__ModelBuilder___get_mclass_by_name(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable MClass */; +val* var_node /* var node: ANode */; +val* var_mmodule /* var mmodule: MModule */; +val* var_name /* var name: String */; +val* var1 /* : nullable MClass */; +val* var_mclass /* var mclass: nullable MClass */; +short int var2 /* : Bool */; +short int var3 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : NativeArray[String] */; +static val* varonce; +static val* varonce9; +val* var10 /* : String */; +char* var11 /* : NativeString */; +val* var12 /* : FlatString */; +static val* varonce13; +val* var14 /* : String */; +char* var15 /* : NativeString */; +val* var16 /* : FlatString */; +val* var17 /* : String */; +var_node = p0; +var_mmodule = p1; +var_name = p2; +{ +var1 = nit___nit__ModelBuilder___try_get_mclass_by_name(self, var_node, var_mmodule, var_name); +} +var_mclass = var1; +if (var_mclass == NULL) { +var2 = 1; /* is null */ +} else { +var2 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on */ +var7 = var_mclass == var_other; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +} +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +var2 = var3; +} +if (var2){ +if (unlikely(varonce==NULL)) { +var8 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce9!=NULL)) { +var10 = varonce9; +} else { +var11 = "Type Error: missing primitive class `"; +var12 = standard___standard__NativeString___to_s_with_length(var11, 37l); +var10 = var12; +varonce9 = var10; +} +((struct instance_standard__NativeArray*)var8)->values[0]=var10; +if (likely(varonce13!=NULL)) { +var14 = varonce13; +} else { +var15 = "\'."; +var16 = standard___standard__NativeString___to_s_with_length(var15, 2l); +var14 = var16; +varonce13 = var14; +} +((struct instance_standard__NativeArray*)var8)->values[2]=var14; +} else { +var8 = varonce; +varonce = NULL; +} +((struct instance_standard__NativeArray*)var8)->values[1]=var_name; +{ +var17 = ((val*(*)(val* self))(var8->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var8); /* native_to_s on */ +} +varonce = var8; +{ +nit___nit__ModelBuilder___error(self, var_node, var17); /* Direct call modelbuilder_base#ModelBuilder#error on */ +} +} else { +} +var = var_mclass; +goto RET_LABEL; +RET_LABEL:; +return var; +} /* method modelbuilder_base#ModelBuilder#try_get_mproperty_by_name2 for (self: ModelBuilder, ANode, MModule, MType, String): nullable MProperty */ val* nit___nit__ModelBuilder___try_get_mproperty_by_name2(val* self, val* p0, val* p1, val* p2, val* p3) { val* var /* : nullable MProperty */; @@ -444,198 +528,185 @@ val* var1 /* : Model */; val* var3 /* : Model */; val* var4 /* : nullable Array[MProperty] */; val* var_props /* var props: nullable Array[MProperty] */; -val* var5 /* : null */; +short int var5 /* : Bool */; short int var6 /* : Bool */; -short int var7 /* : Bool */; -val* var8 /* : null */; +val* var7 /* : HashMap3[MModule, MType, String, nullable MProperty] */; val* var9 /* : HashMap3[MModule, MType, String, nullable MProperty] */; -val* var11 /* : HashMap3[MModule, MType, String, nullable MProperty] */; -val* var12 /* : nullable Object */; +val* var10 /* : nullable Object */; val* var_cache /* var cache: nullable MProperty */; -val* var13 /* : null */; +short int var11 /* : Bool */; +short int var12 /* : Bool */; +val* var_other /* var other: nullable Object */; 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 /* : null */; val* var_res /* var res: nullable MProperty */; -val* var20 /* : null */; val* var_ress /* var ress: nullable Array[MProperty] */; val* var_ /* var : Array[MProperty] */; -val* var21 /* : ArrayIterator[nullable Object] */; -val* var_22 /* var : ArrayIterator[MProperty] */; -short int var23 /* : Bool */; -val* var24 /* : nullable Object */; +val* var16 /* : ArrayIterator[nullable Object] */; +val* var_17 /* var : ArrayIterator[MProperty] */; +short int var18 /* : Bool */; +val* var19 /* : nullable Object */; val* var_mprop /* var mprop: MProperty */; -short int var25 /* : Bool */; -short int var26 /* : Bool */; -val* var27 /* : MClassDef */; -val* var29 /* : MClassDef */; -val* var30 /* : MModule */; -val* var32 /* : MModule */; -val* var33 /* : MVisibility */; -val* var35 /* : MVisibility */; -short int var36 /* : Bool */; -short int var37 /* : Bool */; -short int var38 /* : Bool */; -short int var39 /* : Bool */; -short int var40 /* : Bool */; +short int var20 /* : Bool */; +short int var21 /* : Bool */; +val* var22 /* : MClassDef */; +val* var24 /* : MClassDef */; +val* var25 /* : MModule */; +val* var27 /* : MModule */; +val* var28 /* : MVisibility */; +val* var30 /* : MVisibility */; +short int var31 /* : Bool */; +short int var32 /* : Bool */; +short int var33 /* : Bool */; +short int var34 /* : Bool */; +short int var35 /* : Bool */; int cltype; int idtype; -short int var_41 /* var : Bool */; +short int var_36 /* var : Bool */; +short int var37 /* : Bool */; +short int var39 /* : Bool */; +short int var_40 /* var : Bool */; +short int var41 /* : Bool */; short int var42 /* : Bool */; -short int var44 /* : Bool */; -short int var_45 /* var : Bool */; -short int var46 /* : Bool */; -short int var47 /* : Bool */; -int cltype48; -int idtype49; -short int var50 /* : Bool */; -short int var_51 /* var : Bool */; -val* var52 /* : MClassDef */; -val* var54 /* : MClassDef */; +int cltype43; +int idtype44; +short int var45 /* : Bool */; +short int var_46 /* var : Bool */; +val* var47 /* : MClassDef */; +val* var49 /* : MClassDef */; +val* var50 /* : MClass */; +val* var52 /* : MClass */; +val* var53 /* : MClass */; val* var55 /* : MClass */; -val* var57 /* : MClass */; -val* var58 /* : MClass */; -val* var60 /* : MClass */; +short int var56 /* : Bool */; +short int var58 /* : Bool */; +short int var59 /* : Bool */; +short int var60 /* : Bool */; short int var61 /* : Bool */; -short int var63 /* : Bool */; +val* var_other63 /* var other: nullable Object */; short int var64 /* : Bool */; -val* var65 /* : null */; short int var66 /* : Bool */; short int var67 /* : Bool */; -val* var_other69 /* var other: nullable Object */; +short int var68 /* : Bool */; +short int var69 /* : Bool */; short int var70 /* : Bool */; -short int var72 /* : Bool */; -short int var73 /* : Bool */; +int cltype71; +int idtype72; +short int var_73 /* var : Bool */; short int var74 /* : Bool */; -short int var75 /* : Bool */; -short int var76 /* : Bool */; -int cltype77; -int idtype78; -short int var_79 /* var : Bool */; +int cltype75; +int idtype76; +short int var_77 /* var : Bool */; +short int var78 /* : Bool */; short int var80 /* : Bool */; -int cltype81; -int idtype82; -short int var_83 /* var : Bool */; +short int var_81 /* var : Bool */; +short int var82 /* : Bool */; short int var84 /* : Bool */; -short int var86 /* : Bool */; -short int var_87 /* var : Bool */; -short int var88 /* : Bool */; -short int var90 /* : Bool */; +val* var85 /* : MClassDef */; +val* var87 /* : MClassDef */; +val* var88 /* : MClassType */; +val* var90 /* : MClassType */; +val* var_restype /* var restype: MClassType */; val* var91 /* : MClassDef */; val* var93 /* : MClassDef */; val* var94 /* : MClassType */; val* var96 /* : MClassType */; -val* var_restype /* var restype: MClassType */; -val* var97 /* : MClassDef */; -val* var99 /* : MClassDef */; -val* var100 /* : MClassType */; -val* var102 /* : MClassType */; val* var_mproptype /* var mproptype: MClassType */; -val* var103 /* : null */; +short int var97 /* : Bool */; +short int var98 /* : Bool */; +short int var99 /* : Bool */; +val* var100 /* : Array[MProperty] */; +short int var102 /* : Bool */; +short int var103 /* : Bool */; short int var104 /* : Bool */; -val* var105 /* : null */; -short int var106 /* : Bool */; +short int var105 /* : Bool */; short int var107 /* : Bool */; -val* var108 /* : Array[MProperty] */; -short int var111 /* : Bool */; -short int var112 /* : Bool */; -val* var113 /* : null */; +short int var108 /* : Bool */; +short int var_109 /* var : Bool */; +short int var110 /* : Bool */; +int cltype111; +int idtype112; +short int var_113 /* var : Bool */; short int var114 /* : Bool */; -short int var115 /* : Bool */; -short int var117 /* : Bool */; -short int var118 /* : Bool */; -short int var_119 /* var : Bool */; -short int var120 /* : Bool */; -int cltype121; -int idtype122; -short int var_123 /* var : Bool */; -short int var124 /* : Bool */; -short int var126 /* : Bool */; -val* var127 /* : MClassDef */; -val* var129 /* : MClassDef */; -val* var130 /* : MClassType */; -val* var132 /* : MClassType */; -val* var_restype133 /* var restype: MClassType */; -val* var134 /* : Array[MProperty] */; +short int var116 /* : Bool */; +val* var117 /* : MClassDef */; +val* var119 /* : MClassDef */; +val* var120 /* : MClassType */; +val* var122 /* : MClassType */; +val* var_restype123 /* var restype: MClassType */; +val* var124 /* : Array[MProperty] */; val* var_ress2 /* var ress2: Array[MProperty] */; -val* var_135 /* var : Array[MProperty] */; -val* var136 /* : ArrayIterator[nullable Object] */; -val* var_137 /* var : ArrayIterator[MProperty] */; +val* var_125 /* var : Array[MProperty] */; +val* var126 /* : ArrayIterator[nullable Object] */; +val* var_127 /* var : ArrayIterator[MProperty] */; +short int var128 /* : Bool */; +val* var129 /* : nullable Object */; +val* var_mprop130 /* var mprop: MProperty */; +val* var131 /* : MClassDef */; +val* var133 /* : MClassDef */; +val* var134 /* : MClassType */; +val* var136 /* : MClassType */; +val* var_mproptype137 /* var mproptype: MClassType */; short int var138 /* : Bool */; -val* var139 /* : nullable Object */; -val* var_mprop140 /* var mprop: MProperty */; -val* var141 /* : MClassDef */; -val* var143 /* : MClassDef */; -val* var144 /* : MClassType */; -val* var146 /* : MClassType */; -val* var_mproptype147 /* var mproptype: MClassType */; -val* var148 /* : null */; +short int var139 /* : Bool */; +short int var140 /* : Bool */; +short int var141 /* : Bool */; +int cltype142; +int idtype143; +short int var144 /* : Bool */; +short int var_145 /* var : Bool */; +short int var146 /* : Bool */; +short int var148 /* : Bool */; short int var149 /* : Bool */; -short int var150 /* : Bool */; short int var151 /* : Bool */; short int var152 /* : Bool */; -int cltype153; -int idtype154; +short int var153 /* : Bool */; short int var155 /* : Bool */; -short int var_156 /* var : Bool */; -short int var157 /* : Bool */; -short int var159 /* : Bool */; +short int var156 /* : Bool */; +long var157 /* : Int */; +long var159 /* : Int */; short int var160 /* : Bool */; -short int var163 /* : Bool */; -val* var164 /* : null */; -val* var165 /* : null */; -short int var166 /* : Bool */; -short int var167 /* : Bool */; -short int var169 /* : Bool */; -short int var170 /* : Bool */; -long var171 /* : Int */; -long var173 /* : Int */; -long var174 /* : Int */; -short int var175 /* : Bool */; -short int var177 /* : Bool */; -int cltype178; -int idtype179; +short int var162 /* : Bool */; +int cltype163; +int idtype164; const char* var_class_name; -short int var180 /* : Bool */; -val* var181 /* : Array[String] */; +short int var165 /* : Bool */; +val* var166 /* : Array[String] */; val* var_s /* var s: Array[String] */; -val* var_182 /* var : Array[MProperty] */; -val* var183 /* : ArrayIterator[nullable Object] */; -val* var_184 /* var : ArrayIterator[MProperty] */; -short int var185 /* : Bool */; -val* var186 /* : nullable Object */; -val* var_mprop187 /* var mprop: MProperty */; -val* var188 /* : String */; +val* var_167 /* var : Array[MProperty] */; +val* var168 /* : ArrayIterator[nullable Object] */; +val* var_169 /* var : ArrayIterator[MProperty] */; +short int var170 /* : Bool */; +val* var171 /* : nullable Object */; +val* var_mprop172 /* var mprop: MProperty */; +val* var173 /* : String */; +val* var175 /* : NativeArray[String] */; static val* varonce; -val* var191 /* : String */; -char* var192 /* : NativeString */; -long var193 /* : Int */; -val* var194 /* : FlatString */; -static val* varonce195; -val* var196 /* : String */; -char* var197 /* : NativeString */; -long var198 /* : Int */; -val* var199 /* : FlatString */; -static val* varonce200; -val* var201 /* : String */; -char* var202 /* : NativeString */; -long var203 /* : Int */; -val* var204 /* : FlatString */; -static val* varonce205; -val* var206 /* : String */; -char* var207 /* : NativeString */; -long var208 /* : Int */; -val* var209 /* : FlatString */; -val* var210 /* : String */; -val* var211 /* : Array[Object] */; -long var212 /* : Int */; -val* var213 /* : NativeArray[Object] */; -val* var214 /* : String */; -val* var215 /* : HashMap3[MModule, MType, String, nullable MProperty] */; -val* var217 /* : HashMap3[MModule, MType, String, nullable MProperty] */; +static val* varonce176; +val* var177 /* : String */; +char* var178 /* : NativeString */; +val* var179 /* : FlatString */; +static val* varonce180; +val* var181 /* : String */; +char* var182 /* : NativeString */; +val* var183 /* : FlatString */; +static val* varonce184; +val* var185 /* : String */; +char* var186 /* : NativeString */; +val* var187 /* : FlatString */; +static val* varonce188; +val* var189 /* : String */; +char* var190 /* : NativeString */; +val* var191 /* : FlatString */; +val* var192 /* : String */; +static val* varonce193; +val* var194 /* : String */; +char* var195 /* : NativeString */; +val* var196 /* : FlatString */; +val* var197 /* : String */; +val* var198 /* : String */; +val* var199 /* : HashMap3[MModule, MType, String, nullable MProperty] */; +val* var201 /* : HashMap3[MModule, MType, String, nullable MProperty] */; var_anode = p0; var_mmodule = p1; var_mtype = p2; @@ -646,7 +717,7 @@ var3 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___model].val; /* _ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model"); PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 44); -show_backtrace(1); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -656,129 +727,124 @@ RET_LABEL2:(void)0; var4 = nit__model___Model___get_mproperties_by_name(var1, var_name); } var_props = var4; -var5 = NULL; if (var_props == NULL) { -var6 = 1; /* is null */ +var5 = 1; /* is null */ } else { -var6 = 0; /* arg is null but recv is not */ +var5 = 0; /* arg is null but recv is not */ } if (0) { -var7 = standard___standard__Array___standard__kernel__Object___61d_61d(var_props, var5); -var6 = var7; +var6 = standard___standard__Array___standard__kernel__Object___61d_61d(var_props, ((val*)NULL)); +var5 = var6; } -if (var6){ -var8 = NULL; -var = var8; +if (var5){ +var = ((val*)NULL); goto RET_LABEL; } else { } { { /* Inline modelbuilder_base#ModelBuilder#try_get_mproperty_by_name2_cache (self) on */ -var11 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ -if (unlikely(var11 == NULL)) { +var9 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 168); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 178); +fatal_exit(1); } -var9 = var11; -RET_LABEL10:(void)0; +var7 = var9; +RET_LABEL8:(void)0; } } { -var12 = more_collections___more_collections__HashMap3____91d_93d(var9, var_mmodule, var_mtype, var_name); +var10 = more_collections___more_collections__HashMap3____91d_93d(var7, var_mmodule, var_mtype, var_name); } -var_cache = var12; -var13 = NULL; +var_cache = var10; if (var_cache == NULL) { -var14 = 0; /* is null */ +var11 = 0; /* is null */ } else { -var14 = 1; /* arg is null and recv is not */ +var11 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_cache,var13) on */ -var_other = var13; +{ /* Inline kernel#Object#!= (var_cache,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var17 = ((short int (*)(val* self, val* p0))(var_cache->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cache, var_other) /* == on */; +var14 = ((short int(*)(val* self, val* p0))(var_cache->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_cache, var_other); /* == on */ } -var18 = !var17; -var15 = var18; -goto RET_LABEL16; -RET_LABEL16:(void)0; +var15 = !var14; +var12 = var15; +goto RET_LABEL13; +RET_LABEL13:(void)0; } -var14 = var15; +var11 = var12; } -if (var14){ +if (var11){ var = var_cache; goto RET_LABEL; } else { } -var19 = NULL; -var_res = var19; -var20 = NULL; -var_ress = var20; +var_res = ((val*)NULL); +var_ress = ((val*)NULL); var_ = var_props; { -var21 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var16 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_22 = var21; +var_17 = var16; for(;;) { { -var23 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_22); +var18 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_17); } -if (var23){ +if (var18){ { -var24 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_22); +var19 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_17); } -var_mprop = var24; +var_mprop = var19; { -var25 = nit___nit__MType___has_mproperty(var_mtype, var_mmodule, var_mprop); +var20 = nit___nit__MType___has_mproperty(var_mtype, var_mmodule, var_mprop); } -var26 = !var25; -if (var26){ +var21 = !var20; +if (var21){ goto BREAK_label; } else { } { { /* Inline model#MProperty#intro_mclassdef (var_mprop) on */ -var29 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ -if (unlikely(var29 == NULL)) { +var24 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var24 == 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); } -var27 = var29; -RET_LABEL28:(void)0; +var22 = var24; +RET_LABEL23:(void)0; } } { -{ /* Inline model#MClassDef#mmodule (var27) on */ -var32 = var27->attrs[COLOR_nit__model__MClassDef___mmodule].val; /* _mmodule on */ -if (unlikely(var32 == NULL)) { +{ /* Inline model#MClassDef#mmodule (var22) on */ +var27 = var22->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); } -var30 = var32; -RET_LABEL31:(void)0; +var25 = var27; +RET_LABEL26:(void)0; } } { { /* Inline model#MProperty#visibility (var_mprop) on */ -var35 = var_mprop->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on */ -if (unlikely(var35 == NULL)) { +var30 = var_mprop->attrs[COLOR_nit__model__MProperty___visibility].val; /* _visibility on */ +if (unlikely(var30 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1757); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1949); +fatal_exit(1); } -var33 = var35; -RET_LABEL34:(void)0; +var28 = var30; +RET_LABEL29:(void)0; } } { -var36 = nit___nit__MModule___is_visible(var_mmodule, var30, var33); +var31 = nit___nit__MModule___is_visible(var_mmodule, var25, var28); } -var37 = !var36; -if (var37){ +var32 = !var31; +if (var32){ goto BREAK_label; } else { } @@ -786,250 +852,247 @@ goto BREAK_label; cltype = type_nit__MMethod.color; idtype = type_nit__MMethod.id; if(cltype >= var_mprop->type->table_size) { -var40 = 0; +var35 = 0; } else { -var40 = var_mprop->type->type_table[cltype] == idtype; +var35 = var_mprop->type->type_table[cltype] == idtype; } -var_41 = var40; -if (var40){ +var_36 = var35; +if (var35){ { { /* Inline model#MMethod#is_new (var_mprop) on */ -var44 = var_mprop->attrs[COLOR_nit__model__MMethod___is_new].s; /* _is_new on */ -var42 = var44; -RET_LABEL43:(void)0; +var39 = var_mprop->attrs[COLOR_nit__model__MMethod___is_new].s; /* _is_new on */ +var37 = var39; +RET_LABEL38:(void)0; } } -var39 = var42; +var34 = var37; } else { -var39 = var_41; +var34 = var_36; } -var_45 = var39; -if (var39){ +var_40 = var34; +if (var34){ /* isa MClassType */ -cltype48 = type_nit__MClassType.color; -idtype49 = type_nit__MClassType.id; -if(cltype48 >= var_mtype->type->table_size) { -var47 = 0; +cltype43 = type_nit__MClassType.color; +idtype44 = type_nit__MClassType.id; +if(cltype43 >= var_mtype->type->table_size) { +var42 = 0; } else { -var47 = var_mtype->type->type_table[cltype48] == idtype49; +var42 = var_mtype->type->type_table[cltype43] == idtype44; } -var50 = !var47; -var_51 = var50; -if (var50){ -var46 = var_51; +var45 = !var42; +var_46 = var45; +if (var45){ +var41 = var_46; } else { { { /* Inline model#MProperty#intro_mclassdef (var_mprop) on */ -var54 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ -if (unlikely(var54 == NULL)) { +var49 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var49 == 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); } -var52 = var54; -RET_LABEL53:(void)0; +var47 = var49; +RET_LABEL48:(void)0; } } { -{ /* Inline model#MClassDef#mclass (var52) on */ -var57 = var52->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ -if (unlikely(var57 == NULL)) { +{ /* Inline model#MClassDef#mclass (var47) on */ +var52 = var47->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on */ +if (unlikely(var52 == 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); } -var55 = var57; -RET_LABEL56:(void)0; +var50 = var52; +RET_LABEL51:(void)0; } } { { /* Inline model#MClassType#mclass (var_mtype) on */ -var60 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ -if (unlikely(var60 == NULL)) { +var55 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var55 == 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); } -var58 = var60; -RET_LABEL59:(void)0; +var53 = var55; +RET_LABEL54:(void)0; } } { -{ /* Inline kernel#Object#!= (var55,var58) on */ -var_other = var58; +{ /* Inline kernel#Object#!= (var50,var53) on */ +var_other = var53; { -var63 = ((short int (*)(val* self, val* p0))(var55->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var55, var_other) /* == on */; +var58 = ((short int(*)(val* self, val* p0))(var50->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var50, var_other); /* == on */ } -var64 = !var63; -var61 = var64; -goto RET_LABEL62; -RET_LABEL62:(void)0; +var59 = !var58; +var56 = var59; +goto RET_LABEL57; +RET_LABEL57:(void)0; } } -var46 = var61; +var41 = var56; } -var38 = var46; +var33 = var41; } else { -var38 = var_45; +var33 = var_40; } -if (var38){ +if (var33){ goto BREAK_label; } else { } -var65 = NULL; if (var_res == NULL) { -var66 = 1; /* is null */ +var60 = 1; /* is null */ } else { -var66 = 0; /* arg is null but recv is not */ +var60 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_res,var65) on */ -var_other69 = var65; +{ /* Inline kernel#Object#== (var_res,((val*)NULL)) on */ +var_other63 = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_res,var_other69) on */ -var72 = var_res == var_other69; -var70 = var72; -goto RET_LABEL71; -RET_LABEL71:(void)0; +{ /* Inline kernel#Object#is_same_instance (var_res,var_other63) on */ +var66 = var_res == var_other63; +var64 = var66; +goto RET_LABEL65; +RET_LABEL65:(void)0; } } -var67 = var70; -goto RET_LABEL68; -RET_LABEL68:(void)0; +var61 = var64; +goto RET_LABEL62; +RET_LABEL62:(void)0; } -var66 = var67; +var60 = var61; } -if (var66){ +if (var60){ var_res = var_mprop; goto BREAK_label; } else { } /* isa MMethod */ -cltype77 = type_nit__MMethod.color; -idtype78 = type_nit__MMethod.id; -if(cltype77 >= var_res->type->table_size) { -var76 = 0; +cltype71 = type_nit__MMethod.color; +idtype72 = type_nit__MMethod.id; +if(cltype71 >= var_res->type->table_size) { +var70 = 0; } else { -var76 = var_res->type->type_table[cltype77] == idtype78; +var70 = var_res->type->type_table[cltype71] == idtype72; } -var_79 = var76; -if (var76){ +var_73 = var70; +if (var70){ /* isa MMethod */ -cltype81 = type_nit__MMethod.color; -idtype82 = type_nit__MMethod.id; -if(cltype81 >= var_mprop->type->table_size) { -var80 = 0; +cltype75 = type_nit__MMethod.color; +idtype76 = type_nit__MMethod.id; +if(cltype75 >= var_mprop->type->table_size) { +var74 = 0; } else { -var80 = var_mprop->type->type_table[cltype81] == idtype82; +var74 = var_mprop->type->type_table[cltype75] == idtype76; } -var75 = var80; +var69 = var74; } else { -var75 = var_79; +var69 = var_73; } -var_83 = var75; -if (var75){ +var_77 = var69; +if (var69){ { { /* Inline model#MMethod#is_init (var_res) on */ -var86 = var_res->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on */ -var84 = var86; -RET_LABEL85:(void)0; +var80 = var_res->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on */ +var78 = var80; +RET_LABEL79:(void)0; } } -var74 = var84; +var68 = var78; } else { -var74 = var_83; +var68 = var_77; } -var_87 = var74; -if (var74){ +var_81 = var68; +if (var68){ { { /* Inline model#MMethod#is_init (var_mprop) on */ -var90 = var_mprop->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on */ -var88 = var90; -RET_LABEL89:(void)0; +var84 = var_mprop->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on */ +var82 = var84; +RET_LABEL83:(void)0; } } -var73 = var88; +var67 = var82; } else { -var73 = var_87; +var67 = var_81; } -if (var73){ +if (var67){ { { /* Inline model#MProperty#intro_mclassdef (var_res) on */ -var93 = var_res->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ -if (unlikely(var93 == NULL)) { +var87 = var_res->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var87 == 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); } -var91 = var93; -RET_LABEL92:(void)0; +var85 = var87; +RET_LABEL86:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var91) on */ -var96 = var91->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var96 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var85) on */ +var90 = var85->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var90 == 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); } -var94 = var96; -RET_LABEL95:(void)0; +var88 = var90; +RET_LABEL89:(void)0; } } -var_restype = var94; +var_restype = var88; { { /* Inline model#MProperty#intro_mclassdef (var_mprop) on */ -var99 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ -if (unlikely(var99 == NULL)) { +var93 = var_mprop->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var93 == 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); } -var97 = var99; -RET_LABEL98:(void)0; +var91 = var93; +RET_LABEL92:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var97) on */ -var102 = var97->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var102 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var91) on */ +var96 = var91->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var96 == 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); } -var100 = var102; -RET_LABEL101:(void)0; +var94 = var96; +RET_LABEL95:(void)0; } } -var_mproptype = var100; -var103 = NULL; +var_mproptype = var94; { -var104 = nit___nit__MType___is_subtype(var_mproptype, var_mmodule, var103, var_restype); +var97 = nit___nit__MType___is_subtype(var_mproptype, var_mmodule, ((val*)NULL), var_restype); } -if (var104){ +if (var97){ var_res = var_mprop; goto BREAK_label; } else { } } else { } -var105 = NULL; if (var_ress == NULL) { -var106 = 1; /* is null */ +var98 = 1; /* is null */ } else { -var106 = 0; /* arg is null but recv is not */ +var98 = 0; /* arg is null but recv is not */ } if (0) { -var107 = standard___standard__Array___standard__kernel__Object___61d_61d(var_ress, var105); -var106 = var107; +var99 = standard___standard__Array___standard__kernel__Object___61d_61d(var_ress, ((val*)NULL)); +var98 = var99; } -if (var106){ -var108 = NEW_standard__Array(&type_standard__Array__nit__MProperty); +if (var98){ +var100 = NEW_standard__Array(&type_standard__Array__nit__MProperty); { -standard___standard__Array___standard__kernel__Object__init(var108); /* Direct call array#Array#init on */ +standard___standard__Array___standard__kernel__Object__init(var100); /* Direct call array#Array#init on */ } -var_ress = var108; +var_ress = var100; { standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress, var_res); /* Direct call array#Array#add on */ } @@ -1040,197 +1103,190 @@ standard___standard__Array___standard__abstract_collection__SimpleCollection__ad } BREAK_label: (void)0; { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_22); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_17); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label109; +goto BREAK_label101; } } -BREAK_label109: (void)0; +BREAK_label101: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_22) on */ -RET_LABEL110:(void)0; +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_17); /* Direct call array#ArrayIterator#finish on */ } -} -var113 = NULL; if (var_ress == NULL) { -var114 = 0; /* is null */ +var104 = 0; /* is null */ } else { -var114 = 1; /* arg is null and recv is not */ +var104 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_ress,var113) on */ -var_other = var113; +{ /* Inline kernel#Object#!= (var_ress,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var117 = ((short int (*)(val* self, val* p0))(var_ress->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ress, var_other) /* == on */; +var107 = ((short int(*)(val* self, val* p0))(var_ress->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ress, var_other); /* == on */ } -var118 = !var117; -var115 = var118; -goto RET_LABEL116; -RET_LABEL116:(void)0; +var108 = !var107; +var105 = var108; +goto RET_LABEL106; +RET_LABEL106:(void)0; } -var114 = var115; +var104 = var105; } -var_119 = var114; -if (var114){ +var_109 = var104; +if (var104){ /* isa MMethod */ -cltype121 = type_nit__MMethod.color; -idtype122 = type_nit__MMethod.id; +cltype111 = type_nit__MMethod.color; +idtype112 = type_nit__MMethod.id; if(var_res == NULL) { -var120 = 0; +var110 = 0; } else { -if(cltype121 >= var_res->type->table_size) { -var120 = 0; +if(cltype111 >= var_res->type->table_size) { +var110 = 0; } else { -var120 = var_res->type->type_table[cltype121] == idtype122; +var110 = var_res->type->type_table[cltype111] == idtype112; } } -var112 = var120; +var103 = var110; } else { -var112 = var_119; +var103 = var_109; } -var_123 = var112; -if (var112){ +var_113 = var103; +if (var103){ { { /* Inline model#MMethod#is_init (var_res) on */ -var126 = var_res->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on */ -var124 = var126; -RET_LABEL125:(void)0; +var116 = var_res->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on */ +var114 = var116; +RET_LABEL115:(void)0; } } -var111 = var124; +var102 = var114; } else { -var111 = var_123; +var102 = var_113; } -if (var111){ +if (var102){ { { /* Inline model#MProperty#intro_mclassdef (var_res) on */ -var129 = var_res->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ -if (unlikely(var129 == NULL)) { +var119 = var_res->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var119 == 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); } -var127 = var129; -RET_LABEL128:(void)0; +var117 = var119; +RET_LABEL118:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var127) on */ -var132 = var127->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var132 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var117) on */ +var122 = var117->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var122 == 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); } -var130 = var132; -RET_LABEL131:(void)0; +var120 = var122; +RET_LABEL121:(void)0; } } -var_restype133 = var130; -var134 = NEW_standard__Array(&type_standard__Array__nit__MProperty); +var_restype123 = var120; +var124 = NEW_standard__Array(&type_standard__Array__nit__MProperty); { -standard___standard__Array___standard__kernel__Object__init(var134); /* Direct call array#Array#init on */ +standard___standard__Array___standard__kernel__Object__init(var124); /* Direct call array#Array#init on */ } -var_ress2 = var134; -var_135 = var_ress; +var_ress2 = var124; +var_125 = var_ress; { -var136 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_135); +var126 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_125); } -var_137 = var136; +var_127 = var126; for(;;) { { -var138 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_137); +var128 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_127); } -if (var138){ +if (var128){ { -var139 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_137); +var129 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_127); } -var_mprop140 = var139; +var_mprop130 = var129; { -{ /* Inline model#MProperty#intro_mclassdef (var_mprop140) on */ -var143 = var_mprop140->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ -if (unlikely(var143 == NULL)) { +{ /* Inline model#MProperty#intro_mclassdef (var_mprop130) on */ +var133 = var_mprop130->attrs[COLOR_nit__model__MProperty___intro_mclassdef].val; /* _intro_mclassdef on */ +if (unlikely(var133 == 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); } -var141 = var143; -RET_LABEL142:(void)0; +var131 = var133; +RET_LABEL132:(void)0; } } { -{ /* Inline model#MClassDef#bound_mtype (var141) on */ -var146 = var141->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ -if (unlikely(var146 == NULL)) { +{ /* Inline model#MClassDef#bound_mtype (var131) on */ +var136 = var131->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var136 == 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); } -var144 = var146; -RET_LABEL145:(void)0; +var134 = var136; +RET_LABEL135:(void)0; } } -var_mproptype147 = var144; -var148 = NULL; +var_mproptype137 = var134; { -var149 = nit___nit__MType___is_subtype(var_restype133, var_mmodule, var148, var_mproptype147); +var138 = nit___nit__MType___is_subtype(var_restype123, var_mmodule, ((val*)NULL), var_mproptype137); } -var150 = !var149; -if (var150){ +var139 = !var138; +if (var139){ { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress2, var_mprop140); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress2, var_mprop130); /* Direct call array#Array#add on */ } } else { -/* isa MMethod */ -cltype153 = type_nit__MMethod.color; -idtype154 = type_nit__MMethod.id; -if(cltype153 >= var_mprop140->type->table_size) { -var152 = 0; +/* isa MMethod */ +cltype142 = type_nit__MMethod.color; +idtype143 = type_nit__MMethod.id; +if(cltype142 >= var_mprop130->type->table_size) { +var141 = 0; } else { -var152 = var_mprop140->type->type_table[cltype153] == idtype154; +var141 = var_mprop130->type->type_table[cltype142] == idtype143; } -var155 = !var152; -var_156 = var155; -if (var155){ -var151 = var_156; +var144 = !var141; +var_145 = var144; +if (var144){ +var140 = var_145; } else { { -{ /* Inline model#MMethod#is_init (var_mprop140) on */ -var159 = var_mprop140->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on */ -var157 = var159; -RET_LABEL158:(void)0; +{ /* Inline model#MMethod#is_init (var_mprop130) on */ +var148 = var_mprop130->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on */ +var146 = var148; +RET_LABEL147:(void)0; } } -var160 = !var157; -var151 = var160; +var149 = !var146; +var140 = var149; } -if (var151){ +if (var140){ { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress2, var_mprop140); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_ress2, var_mprop130); /* Direct call array#Array#add on */ } } else { } } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_137); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_127); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label161; +goto BREAK_label150; } } -BREAK_label161: (void)0; +BREAK_label150: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_137) on */ -RET_LABEL162:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_127); /* Direct call array#ArrayIterator#finish on */ } { -var163 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_ress2); +var151 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_ress2); } -if (var163){ -var164 = NULL; -var_ress = var164; +if (var151){ +var_ress = ((val*)NULL); } else { var_ress = var_ress2; { @@ -1239,169 +1295,172 @@ standard___standard__Array___standard__abstract_collection__SimpleCollection__ad } } else { } -var165 = NULL; if (var_ress == NULL) { -var166 = 0; /* is null */ +var152 = 0; /* is null */ } else { -var166 = 1; /* arg is null and recv is not */ +var152 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_ress,var165) on */ -var_other = var165; +{ /* Inline kernel#Object#!= (var_ress,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var169 = ((short int (*)(val* self, val* p0))(var_ress->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ress, var_other) /* == on */; +var155 = ((short int(*)(val* self, val* p0))(var_ress->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ress, var_other); /* == on */ } -var170 = !var169; -var167 = var170; -goto RET_LABEL168; -RET_LABEL168:(void)0; +var156 = !var155; +var153 = var156; +goto RET_LABEL154; +RET_LABEL154:(void)0; } -var166 = var167; +var152 = var153; } -if (var166){ +if (var152){ { { /* Inline array#AbstractArrayRead#length (var_ress) on */ -var173 = var_ress->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var171 = var173; -RET_LABEL172:(void)0; +var159 = var_ress->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var157 = var159; +RET_LABEL158:(void)0; } } -var174 = 1; { -{ /* Inline kernel#Int#> (var171,var174) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var177 = 1; /* easy isa OTHER*/ -if (unlikely(!var177)) { +{ /* Inline kernel#Int#> (var157,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var162 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var162)) { 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); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); } -var180 = var171 > var174; -var175 = var180; -goto RET_LABEL176; -RET_LABEL176:(void)0; +var165 = var157 > 1l; +var160 = var165; +goto RET_LABEL161; +RET_LABEL161:(void)0; } } -if (unlikely(!var175)) { +if (unlikely(!var160)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 158); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 168); +fatal_exit(1); } -var181 = NEW_standard__Array(&type_standard__Array__standard__String); +var166 = NEW_standard__Array(&type_standard__Array__standard__String); { -standard___standard__Array___standard__kernel__Object__init(var181); /* Direct call array#Array#init on */ +standard___standard__Array___standard__kernel__Object__init(var166); /* Direct call array#Array#init on */ } -var_s = var181; -var_182 = var_ress; +var_s = var166; +var_167 = var_ress; { -var183 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_182); +var168 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_167); } -var_184 = var183; +var_169 = var168; for(;;) { { -var185 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_184); +var170 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_169); } -if (var185){ +if (var170){ { -var186 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_184); +var171 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_169); } -var_mprop187 = var186; +var_mprop172 = var171; { -var188 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop187); +var173 = nit___nit__MProperty___nit__model_base__MEntity__full_name(var_mprop172); } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_s, var188); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_s, var173); /* Direct call array#Array#add on */ } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_184); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_169); /* Direct call array#ArrayIterator#next on */ } } else { -goto BREAK_label189; +goto BREAK_label174; } } -BREAK_label189: (void)0; +BREAK_label174: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_184) on */ -RET_LABEL190:(void)0; +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_169); /* Direct call array#ArrayIterator#finish on */ } +if (unlikely(varonce==NULL)) { +var175 = NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String); +if (likely(varonce176!=NULL)) { +var177 = varonce176; +} else { +var178 = "Error: ambiguous property name `"; +var179 = standard___standard__NativeString___to_s_with_length(var178, 32l); +var177 = var179; +varonce176 = var177; } -if (varonce) { -var191 = varonce; +((struct instance_standard__NativeArray*)var175)->values[0]=var177; +if (likely(varonce180!=NULL)) { +var181 = varonce180; } else { -var192 = "Ambigous property name \'"; -var193 = 24; -var194 = standard___standard__NativeString___to_s_with_length(var192, var193); -var191 = var194; -varonce = var191; +var182 = "` for `"; +var183 = standard___standard__NativeString___to_s_with_length(var182, 7l); +var181 = var183; +varonce180 = var181; } -if (varonce195) { -var196 = varonce195; +((struct instance_standard__NativeArray*)var175)->values[2]=var181; +if (likely(varonce184!=NULL)) { +var185 = varonce184; } else { -var197 = "\' for "; -var198 = 6; -var199 = standard___standard__NativeString___to_s_with_length(var197, var198); -var196 = var199; -varonce195 = var196; +var186 = "`; conflict between "; +var187 = standard___standard__NativeString___to_s_with_length(var186, 20l); +var185 = var187; +varonce184 = var185; } -if (varonce200) { -var201 = varonce200; +((struct instance_standard__NativeArray*)var175)->values[4]=var185; +if (likely(varonce188!=NULL)) { +var189 = varonce188; } else { -var202 = "; conflict between "; -var203 = 19; -var204 = standard___standard__NativeString___to_s_with_length(var202, var203); -var201 = var204; -varonce200 = var201; +var190 = "."; +var191 = standard___standard__NativeString___to_s_with_length(var190, 1l); +var189 = var191; +varonce188 = var189; } -if (varonce205) { -var206 = varonce205; +((struct instance_standard__NativeArray*)var175)->values[6]=var189; } else { -var207 = " and "; -var208 = 5; -var209 = standard___standard__NativeString___to_s_with_length(var207, var208); -var206 = var209; -varonce205 = var206; +var175 = varonce; +varonce = NULL; } +((struct instance_standard__NativeArray*)var175)->values[1]=var_name; { -var210 = standard__string___Collection___join(var_s, var206); +var192 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype); /* to_s on */ } -var211 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var211 = array_instance Array[Object] */ -var212 = 6; -var213 = NEW_standard__NativeArray(var212, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var213)->values[0] = (val*) var191; -((struct instance_standard__NativeArray*)var213)->values[1] = (val*) var_name; -((struct instance_standard__NativeArray*)var213)->values[2] = (val*) var196; -((struct instance_standard__NativeArray*)var213)->values[3] = (val*) var_mtype; -((struct instance_standard__NativeArray*)var213)->values[4] = (val*) var201; -((struct instance_standard__NativeArray*)var213)->values[5] = (val*) var210; -{ -((void (*)(val* self, val* p0, long p1))(var211->class->vft[COLOR_standard__array__Array__with_native]))(var211, var213, var212) /* with_native on */; +((struct instance_standard__NativeArray*)var175)->values[3]=var192; +if (likely(varonce193!=NULL)) { +var194 = varonce193; +} else { +var195 = " and "; +var196 = standard___standard__NativeString___to_s_with_length(var195, 5l); +var194 = var196; +varonce193 = var194; } +{ +var197 = standard__string___Collection___join(var_s, var194); } +((struct instance_standard__NativeArray*)var175)->values[5]=var197; { -var214 = ((val* (*)(val* self))(var211->class->vft[COLOR_standard__string__Object__to_s]))(var211) /* to_s on */; +var198 = ((val*(*)(val* self))(var175->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var175); /* native_to_s on */ } +varonce = var175; { -nit___nit__ModelBuilder___error(self, var_anode, var214); /* Direct call modelbuilder_base#ModelBuilder#error on */ +nit___nit__ModelBuilder___error(self, var_anode, var198); /* Direct call modelbuilder_base#ModelBuilder#error on */ } } else { } { { /* Inline modelbuilder_base#ModelBuilder#try_get_mproperty_by_name2_cache (self) on */ -var217 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ -if (unlikely(var217 == NULL)) { +var201 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ +if (unlikely(var201 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 168); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 178); +fatal_exit(1); } -var215 = var217; -RET_LABEL216:(void)0; +var199 = var201; +RET_LABEL200:(void)0; } } { -more_collections___more_collections__HashMap3____91d_93d_61d(var215, var_mmodule, var_mtype, var_name, var_res); /* Direct call more_collections#HashMap3#[]= on */ +more_collections___more_collections__HashMap3____91d_93d_61d(var199, var_mmodule, var_mtype, var_name, var_res); /* Direct call more_collections#HashMap3#[]= on */ } var = var_res; goto RET_LABEL; @@ -1415,8 +1474,8 @@ val* var1 /* : HashMap3[MModule, MType, String, nullable MProperty] */; var1 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___try_get_mproperty_by_name2_cache].val; /* _try_get_mproperty_by_name2_cache on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _try_get_mproperty_by_name2_cache"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 168); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 178); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -1441,8 +1500,8 @@ var_name = p2; var3 = var_mclassdef->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; @@ -1453,8 +1512,8 @@ RET_LABEL2:(void)0; var6 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ if (unlikely(var6 == 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); } var4 = var6; RET_LABEL5:(void)0; @@ -1472,373 +1531,1921 @@ return var; void nit___nit__ModelBuilder___error(val* self, val* p0, val* p1) { val* var_n /* var n: nullable ANode */; val* var_text /* var text: String */; -val* var /* : null */; val* var_l /* var l: nullable Object */; -val* var1 /* : null */; -short int var2 /* : Bool */; -short int var3 /* : Bool */; +short int var /* : Bool */; +short int var1 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -val* var7 /* : Location */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var5 /* : Location */; +val* var6 /* : ToolContext */; val* var8 /* : ToolContext */; -val* var10 /* : ToolContext */; +val* var9 /* : Message */; var_n = p0; var_text = p1; -var = NULL; -var_l = var; -var1 = NULL; +var_l = ((val*)NULL); if (var_n == NULL) { -var2 = 0; /* is null */ +var = 0; /* is null */ } else { -var2 = 1; /* arg is null and recv is not */ +var = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_n,var1) on */ -var_other = var1; +{ /* Inline kernel#Object#!= (var_n,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var5 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other) /* == on */; +var3 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other); /* == on */ } -var6 = !var5; -var3 = var6; -goto RET_LABEL4; +var4 = !var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} +var = var1; +} +if (var){ +{ +var5 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n); /* hot_location on */ +} +var_l = var5; +} else { +} +{ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ +var8 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +var9 = nit___nit__ToolContext___error(var6, var_l, var_text); +} +RET_LABEL:; +} +/* method modelbuilder_base#ModelBuilder#warning for (self: ModelBuilder, nullable ANode, String, String) */ +void nit___nit__ModelBuilder___warning(val* self, val* p0, val* p1, val* p2) { +val* var_n /* var n: nullable ANode */; +val* var_tag /* var tag: String */; +val* var_text /* var text: String */; +val* var_l /* var l: nullable Object */; +short int var /* : Bool */; +short int var1 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var5 /* : Location */; +val* var6 /* : ToolContext */; +val* var8 /* : ToolContext */; +val* var9 /* : nullable Message */; +var_n = p0; +var_tag = p1; +var_text = p2; +var_l = ((val*)NULL); +if (var_n == NULL) { +var = 0; /* is null */ +} else { +var = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_n,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var3 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other); /* == on */ +} +var4 = !var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} +var = var1; +} +if (var){ +{ +var5 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n); /* hot_location on */ +} +var_l = var5; +} else { +} +{ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ +var8 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +var9 = nit___nit__ToolContext___warning(var6, var_l, var_tag, var_text); +} +RET_LABEL:; +} +/* method modelbuilder_base#ModelBuilder#advice for (self: ModelBuilder, nullable ANode, String, String) */ +void nit___nit__ModelBuilder___advice(val* self, val* p0, val* p1, val* p2) { +val* var_n /* var n: nullable ANode */; +val* var_tag /* var tag: String */; +val* var_text /* var text: String */; +val* var_l /* var l: nullable Object */; +short int var /* : Bool */; +short int var1 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var5 /* : Location */; +val* var6 /* : ToolContext */; +val* var8 /* : ToolContext */; +val* var9 /* : nullable Message */; +var_n = p0; +var_tag = p1; +var_text = p2; +var_l = ((val*)NULL); +if (var_n == NULL) { +var = 0; /* is null */ +} else { +var = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_n,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var3 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other); /* == on */ +} +var4 = !var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} +var = var1; +} +if (var){ +{ +var5 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n); /* hot_location on */ +} +var_l = var5; +} else { +} +{ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ +var8 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var8 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var6 = var8; +RET_LABEL7:(void)0; +} +} +{ +var9 = nit___nit__ToolContext___advice(var6, var_l, var_tag, var_text); +} +RET_LABEL:; +} +/* method modelbuilder_base#ModelBuilder#force_get_primitive_method for (self: ModelBuilder, nullable ANode, String, MClass, MModule): MMethod */ +val* nit___nit__ModelBuilder___force_get_primitive_method(val* self, val* p0, val* p1, val* p2, val* p3) { +val* var /* : MMethod */; +val* var_n /* var n: nullable ANode */; +val* var_name /* var name: String */; +val* var_recv /* var recv: MClass */; +val* var_mmodule /* var mmodule: MModule */; +val* var1 /* : nullable MMethod */; +val* var_res /* var res: nullable MMethod */; +short int var2 /* : Bool */; +short int var3 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; +val* var_l /* var l: nullable Object */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +val* var_other11 /* var other: nullable Object */; +short int var12 /* : Bool */; +short int var13 /* : Bool */; +val* var14 /* : Location */; +val* var15 /* : ToolContext */; +val* var17 /* : ToolContext */; +val* var18 /* : NativeArray[String] */; +static val* varonce; +static val* varonce19; +val* var20 /* : String */; +char* var21 /* : NativeString */; +val* var22 /* : FlatString */; +static val* varonce23; +val* var24 /* : String */; +char* var25 /* : NativeString */; +val* var26 /* : FlatString */; +static val* varonce27; +val* var28 /* : String */; +char* var29 /* : NativeString */; +val* var30 /* : FlatString */; +val* var31 /* : String */; +val* var32 /* : String */; +var_n = p0; +var_name = p1; +var_recv = p2; +var_mmodule = p3; +{ +var1 = nit__model___MModule___try_get_primitive_method(var_mmodule, var_name, var_recv); +} +var_res = var1; +if (var_res == NULL) { +var2 = 1; /* is null */ +} else { +var2 = 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 */ +var7 = var_res == var_other; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +} +var3 = var5; +goto RET_LABEL4; RET_LABEL4:(void)0; } -var2 = var3; +var2 = var3; +} +if (var2){ +var_l = ((val*)NULL); +if (var_n == NULL) { +var8 = 0; /* is null */ +} else { +var8 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_n,((val*)NULL)) on */ +var_other11 = ((val*)NULL); +{ +var12 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other11); /* == on */ +} +var13 = !var12; +var9 = var13; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +var8 = var9; +} +if (var8){ +{ +var14 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n); /* hot_location on */ +} +var_l = var14; +} else { +} +{ +{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ +var17 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ +if (unlikely(var17 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); +fatal_exit(1); +} +var15 = var17; +RET_LABEL16:(void)0; +} +} +if (unlikely(varonce==NULL)) { +var18 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce19!=NULL)) { +var20 = varonce19; +} else { +var21 = "Fatal Error: `"; +var22 = standard___standard__NativeString___to_s_with_length(var21, 14l); +var20 = var22; +varonce19 = var20; +} +((struct instance_standard__NativeArray*)var18)->values[0]=var20; +if (likely(varonce23!=NULL)) { +var24 = varonce23; +} else { +var25 = "` must have a property named `"; +var26 = standard___standard__NativeString___to_s_with_length(var25, 30l); +var24 = var26; +varonce23 = var24; +} +((struct instance_standard__NativeArray*)var18)->values[2]=var24; +if (likely(varonce27!=NULL)) { +var28 = varonce27; +} else { +var29 = "`."; +var30 = standard___standard__NativeString___to_s_with_length(var29, 2l); +var28 = var30; +varonce27 = var28; +} +((struct instance_standard__NativeArray*)var18)->values[4]=var28; +} else { +var18 = varonce; +varonce = NULL; +} +{ +var31 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_standard__string__Object__to_s]))(var_recv); /* to_s on */ +} +((struct instance_standard__NativeArray*)var18)->values[1]=var31; +((struct instance_standard__NativeArray*)var18)->values[3]=var_name; +{ +var32 = ((val*(*)(val* self))(var18->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var18); /* native_to_s on */ +} +varonce = var18; +{ +nit___nit__ToolContext___fatal_error(var15, var_l, var32); /* Direct call toolcontext#ToolContext#fatal_error on */ +} +PRINT_ERROR("Runtime error: %s", "Aborted"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 222); +fatal_exit(1); +} else { +} +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method modelbuilder_base#ModelBuilder#resolve_mtype_unchecked for (self: ModelBuilder, MModule, nullable MClassDef, AType, Bool): nullable MType */ +val* nit___nit__ModelBuilder___resolve_mtype_unchecked(val* self, val* p0, val* p1, val* p2, short int p3) { +val* var /* : nullable MType */; +val* var_mmodule /* var mmodule: MModule */; +val* var_mclassdef /* var mclassdef: nullable MClassDef */; +val* var_ntype /* var ntype: AType */; +short int var_with_virtual /* var with_virtual: Bool */; +val* var1 /* : TClassid */; +val* var3 /* : TClassid */; +val* var4 /* : String */; +val* var_name /* var name: String */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var9 /* : Bool */; +short int var10 /* : Bool */; +short int var_ /* var : Bool */; +val* var11 /* : nullable MProperty */; +short int var12 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +val* var_prop /* var prop: nullable MVirtualTypeProp */; +short int var13 /* : Bool */; +short int var14 /* : Bool */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; +val* var18 /* : ANodes[AType] */; +val* var20 /* : ANodes[AType] */; +short int var21 /* : Bool */; +short int var22 /* : Bool */; +val* var23 /* : NativeArray[String] */; +static val* varonce; +static val* varonce24; +val* var25 /* : String */; +char* var26 /* : NativeString */; +val* var27 /* : FlatString */; +static val* varonce28; +val* var29 /* : String */; +char* var30 /* : NativeString */; +val* var31 /* : FlatString */; +val* var32 /* : String */; +val* var33 /* : MVirtualType */; +val* var35 /* : MVirtualType */; +val* var_res /* var res: MType */; +val* var36 /* : nullable TKwnullable */; +val* var38 /* : nullable TKwnullable */; +short int var39 /* : Bool */; +short int var40 /* : Bool */; +short int var42 /* : Bool */; +short int var43 /* : Bool */; +val* var44 /* : MType */; +short int var46 /* : Bool */; +short int var47 /* : Bool */; +short int var49 /* : Bool */; +short int var50 /* : Bool */; +val* var51 /* : MClass */; +val* var53 /* : MClass */; +val* var54 /* : Array[MParameterType] */; +val* var56 /* : Array[MParameterType] */; +val* var_57 /* var : Array[MParameterType] */; +val* var58 /* : ArrayIterator[nullable Object] */; +val* var_59 /* var : ArrayIterator[MParameterType] */; +short int var60 /* : Bool */; +val* var61 /* : nullable Object */; +val* var_p /* var p: MParameterType */; +val* var62 /* : String */; +val* var64 /* : String */; +short int var65 /* : Bool */; +short int var67 /* : Bool */; +short int var68 /* : Bool */; +val* var69 /* : ANodes[AType] */; +val* var71 /* : ANodes[AType] */; +short int var72 /* : Bool */; +short int var73 /* : Bool */; +val* var75 /* : NativeArray[String] */; +static val* varonce74; +static val* varonce76; +val* var77 /* : String */; +char* var78 /* : NativeString */; +val* var79 /* : FlatString */; +static val* varonce80; +val* var81 /* : String */; +char* var82 /* : NativeString */; +val* var83 /* : FlatString */; +val* var84 /* : String */; +val* var85 /* : nullable TKwnullable */; +val* var87 /* : nullable TKwnullable */; +short int var88 /* : Bool */; +short int var89 /* : Bool */; +short int var91 /* : Bool */; +short int var92 /* : Bool */; +val* var93 /* : MType */; +val* var96 /* : nullable MClass */; +val* var_mclass /* var mclass: nullable MClass */; +short int var97 /* : Bool */; +short int var98 /* : Bool */; +short int var100 /* : Bool */; +short int var101 /* : Bool */; +val* var102 /* : ANodes[AType] */; +val* var104 /* : ANodes[AType] */; +long var105 /* : Int */; +long var_arity /* var arity: Int */; +long var106 /* : Int */; +long var108 /* : Int */; +short int var109 /* : Bool */; +short int var111 /* : Bool */; +short int var112 /* : Bool */; +short int var113 /* : Bool */; +short int var115 /* : Bool */; +val* var117 /* : NativeArray[String] */; +static val* varonce116; +static val* varonce118; +val* var119 /* : String */; +char* var120 /* : NativeString */; +val* var121 /* : FlatString */; +static val* varonce122; +val* var123 /* : String */; +char* var124 /* : NativeString */; +val* var125 /* : FlatString */; +val* var126 /* : String */; +val* var127 /* : String */; +long var128 /* : Int */; +long var130 /* : Int */; +short int var131 /* : Bool */; +short int var133 /* : Bool */; +val* var135 /* : NativeArray[String] */; +static val* varonce134; +static val* varonce136; +val* var137 /* : String */; +char* var138 /* : NativeString */; +val* var139 /* : FlatString */; +static val* varonce140; +val* var141 /* : String */; +char* var142 /* : NativeString */; +val* var143 /* : FlatString */; +val* var144 /* : String */; +val* var146 /* : NativeArray[String] */; +static val* varonce145; +static val* varonce147; +val* var148 /* : String */; +char* var149 /* : NativeString */; +val* var150 /* : FlatString */; +static val* varonce151; +val* var152 /* : String */; +char* var153 /* : NativeString */; +val* var154 /* : FlatString */; +static val* varonce155; +val* var156 /* : String */; +char* var157 /* : NativeString */; +val* var158 /* : FlatString */; +static val* varonce159; +val* var160 /* : String */; +char* var161 /* : NativeString */; +val* var162 /* : FlatString */; +long var163 /* : Int */; +long var165 /* : Int */; +val* var166 /* : String */; +val* var167 /* : String */; +val* var168 /* : String */; +val* var169 /* : String */; +short int var170 /* : Bool */; +short int var172 /* : Bool */; +val* var173 /* : MClassType */; +val* var175 /* : MClassType */; +val* var176 /* : nullable TKwnullable */; +val* var178 /* : nullable TKwnullable */; +short int var179 /* : Bool */; +short int var180 /* : Bool */; +short int var182 /* : Bool */; +short int var183 /* : Bool */; +val* var184 /* : MType */; +val* var186 /* : Array[MType] */; +val* var_mtypes /* var mtypes: Array[MType] */; +val* var187 /* : ANodes[AType] */; +val* var189 /* : ANodes[AType] */; +val* var_190 /* var : ANodes[AType] */; +val* var191 /* : Iterator[ANode] */; +val* var_192 /* var : Iterator[AType] */; +short int var193 /* : Bool */; +val* var194 /* : nullable Object */; +val* var_nt /* var nt: AType */; +val* var195 /* : nullable MType */; +val* var_mt /* var mt: nullable MType */; +short int var196 /* : Bool */; +short int var197 /* : Bool */; +val* var_other199 /* var other: nullable Object */; +short int var200 /* : Bool */; +short int var202 /* : Bool */; +val* var204 /* : MClassType */; +val* var205 /* : nullable TKwnullable */; +val* var207 /* : nullable TKwnullable */; +short int var208 /* : Bool */; +short int var209 /* : Bool */; +short int var211 /* : Bool */; +short int var212 /* : Bool */; +val* var213 /* : MType */; +val* var216 /* : NativeArray[String] */; +static val* varonce215; +static val* varonce217; +val* var218 /* : String */; +char* var219 /* : NativeString */; +val* var220 /* : FlatString */; +static val* varonce221; +val* var222 /* : String */; +char* var223 /* : NativeString */; +val* var224 /* : FlatString */; +static val* varonce225; +val* var226 /* : String */; +char* var227 /* : NativeString */; +val* var228 /* : FlatString */; +val* var229 /* : String */; +val* var230 /* : String */; +var_mmodule = p0; +var_mclassdef = p1; +var_ntype = p2; +var_with_virtual = p3; +{ +{ /* Inline parser_nodes#AType#n_id (var_ntype) on */ +var3 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_id].val; /* _n_id on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1723); +fatal_exit(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = nit__lexer_work___Token___text(var1); +} +var_name = var4; +if (var_mclassdef == NULL) { +var6 = 0; /* is null */ +} else { +var6 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_mclassdef,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var9 = ((short int(*)(val* self, val* p0))(var_mclassdef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mclassdef, var_other); /* == on */ +} +var10 = !var9; +var7 = var10; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +var6 = var7; +} +var_ = var6; +if (var6){ +var5 = var_with_virtual; +} else { +var5 = var_; +} +if (var5){ +{ +var11 = nit___nit__ModelBuilder___try_get_mproperty_by_name(self, var_ntype, var_mclassdef, var_name); +} +/* isa nullable MVirtualTypeProp */ +cltype = type_nullable__nit__MVirtualTypeProp.color; +idtype = type_nullable__nit__MVirtualTypeProp.id; +if(var11 == NULL) { +var12 = 1; +} else { +if(cltype >= var11->type->table_size) { +var12 = 0; +} else { +var12 = var11->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var12)) { +var_class_name = var11 == NULL ? "null" : var11->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MVirtualTypeProp", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 238); +fatal_exit(1); +} +var_prop = var11; +if (var_prop == NULL) { +var13 = 0; /* is null */ +} else { +var13 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_prop,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var16 = ((short int(*)(val* self, val* p0))(var_prop->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_prop, var_other); /* == on */ +} +var17 = !var16; +var14 = var17; +goto RET_LABEL15; +RET_LABEL15:(void)0; +} +var13 = var14; +} +if (var13){ +{ +{ /* Inline parser_nodes#AType#n_types (var_ntype) on */ +var20 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_types].val; /* _n_types on */ +if (unlikely(var20 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1729); +fatal_exit(1); +} +var18 = var20; +RET_LABEL19:(void)0; +} +} +{ +var21 = nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var18); +} +var22 = !var21; +if (var22){ +if (unlikely(varonce==NULL)) { +var23 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce24!=NULL)) { +var25 = varonce24; +} else { +var26 = "Type Error: formal type `"; +var27 = standard___standard__NativeString___to_s_with_length(var26, 25l); +var25 = var27; +varonce24 = var25; +} +((struct instance_standard__NativeArray*)var23)->values[0]=var25; +if (likely(varonce28!=NULL)) { +var29 = varonce28; +} else { +var30 = "` cannot have formal parameters."; +var31 = standard___standard__NativeString___to_s_with_length(var30, 32l); +var29 = var31; +varonce28 = var29; +} +((struct instance_standard__NativeArray*)var23)->values[2]=var29; +} else { +var23 = varonce; +varonce = NULL; +} +((struct instance_standard__NativeArray*)var23)->values[1]=var_name; +{ +var32 = ((val*(*)(val* self))(var23->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var23); /* native_to_s on */ +} +varonce = var23; +{ +nit___nit__ModelBuilder___error(self, var_ntype, var32); /* Direct call modelbuilder_base#ModelBuilder#error on */ +} +} else { +} +{ +{ /* Inline model#MVirtualTypeProp#mvirtualtype (var_prop) on */ +var35 = var_prop->attrs[COLOR_nit__model__MVirtualTypeProp___mvirtualtype].val; /* _mvirtualtype on */ +if (unlikely(var35 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mvirtualtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2191); +fatal_exit(1); +} +var33 = var35; +RET_LABEL34:(void)0; +} +} +var_res = var33; +{ +{ /* Inline parser_nodes#AType#n_kwnullable (var_ntype) on */ +var38 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on */ +var36 = var38; +RET_LABEL37:(void)0; +} +} +if (var36 == NULL) { +var39 = 0; /* is null */ +} else { +var39 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var36,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var42 = ((short int(*)(val* self, val* p0))(var36->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var36, var_other); /* == on */ +} +var43 = !var42; +var40 = var43; +goto RET_LABEL41; +RET_LABEL41:(void)0; +} +var39 = var40; +} +if (var39){ +{ +var44 = nit___nit__MType___as_nullable(var_res); +} +var_res = var44; +} else { +} +{ +{ /* Inline modelbuilder_base#AType#mtype= (var_ntype,var_res) on */ +var_ntype->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val = var_res; /* _mtype on */ +RET_LABEL45:(void)0; +} +} +var = var_res; +goto RET_LABEL; +} else { +} +} else { +} +if (var_mclassdef == NULL) { +var46 = 0; /* is null */ +} else { +var46 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_mclassdef,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var49 = ((short int(*)(val* self, val* p0))(var_mclassdef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mclassdef, var_other); /* == on */ +} +var50 = !var49; +var47 = var50; +goto RET_LABEL48; +RET_LABEL48:(void)0; +} +var46 = var47; +} +if (var46){ +{ +{ /* Inline model#MClassDef#mclass (var_mclassdef) on */ +var53 = var_mclassdef->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, 553); +fatal_exit(1); +} +var51 = var53; +RET_LABEL52:(void)0; +} +} +{ +{ /* Inline model#MClass#mparameters (var51) on */ +var56 = var51->attrs[COLOR_nit__model__MClass___mparameters].val; /* _mparameters on */ +if (unlikely(var56 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 382); +fatal_exit(1); +} +var54 = var56; +RET_LABEL55:(void)0; +} +} +var_57 = var54; +{ +var58 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_57); +} +var_59 = var58; +for(;;) { +{ +var60 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_59); +} +if (var60){ +{ +var61 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_59); +} +var_p = var61; +{ +{ /* Inline model#MParameterType#name (var_p) on */ +var64 = var_p->attrs[COLOR_nit__model__MParameterType___name].val; /* _name on */ +if (unlikely(var64 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1481); +fatal_exit(1); +} +var62 = var64; +RET_LABEL63:(void)0; +} +} +{ +{ /* Inline kernel#Object#!= (var62,var_name) on */ +var_other = var_name; +{ +var67 = ((short int(*)(val* self, val* p0))(var62->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var62, var_other); /* == on */ +} +var68 = !var67; +var65 = var68; +goto RET_LABEL66; +RET_LABEL66:(void)0; +} +} +if (var65){ +goto BREAK_label; +} else { +} +{ +{ /* Inline parser_nodes#AType#n_types (var_ntype) on */ +var71 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_types].val; /* _n_types on */ +if (unlikely(var71 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1729); +fatal_exit(1); +} +var69 = var71; +RET_LABEL70:(void)0; +} +} +{ +var72 = nit___nit__ANodes___standard__abstract_collection__Collection__is_empty(var69); +} +var73 = !var72; +if (var73){ +if (unlikely(varonce74==NULL)) { +var75 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce76!=NULL)) { +var77 = varonce76; +} else { +var78 = "Type Error: formal type `"; +var79 = standard___standard__NativeString___to_s_with_length(var78, 25l); +var77 = var79; +varonce76 = var77; +} +((struct instance_standard__NativeArray*)var75)->values[0]=var77; +if (likely(varonce80!=NULL)) { +var81 = varonce80; +} else { +var82 = "` cannot have formal parameters."; +var83 = standard___standard__NativeString___to_s_with_length(var82, 32l); +var81 = var83; +varonce80 = var81; +} +((struct instance_standard__NativeArray*)var75)->values[2]=var81; +} else { +var75 = varonce74; +varonce74 = NULL; +} +((struct instance_standard__NativeArray*)var75)->values[1]=var_name; +{ +var84 = ((val*(*)(val* self))(var75->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var75); /* native_to_s on */ +} +varonce74 = var75; +{ +nit___nit__ModelBuilder___error(self, var_ntype, var84); /* Direct call modelbuilder_base#ModelBuilder#error on */ +} +} else { +} +var_res = var_p; +{ +{ /* Inline parser_nodes#AType#n_kwnullable (var_ntype) on */ +var87 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on */ +var85 = var87; +RET_LABEL86:(void)0; +} +} +if (var85 == NULL) { +var88 = 0; /* is null */ +} else { +var88 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var85,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var91 = ((short int(*)(val* self, val* p0))(var85->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var85, var_other); /* == on */ +} +var92 = !var91; +var89 = var92; +goto RET_LABEL90; +RET_LABEL90:(void)0; +} +var88 = var89; +} +if (var88){ +{ +var93 = nit___nit__MType___as_nullable(var_res); +} +var_res = var93; +} else { +} +{ +{ /* Inline modelbuilder_base#AType#mtype= (var_ntype,var_res) on */ +var_ntype->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val = var_res; /* _mtype on */ +RET_LABEL94:(void)0; +} +} +var = var_res; +goto RET_LABEL; +BREAK_label: (void)0; +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_59); /* Direct call array#ArrayIterator#next on */ +} +} else { +goto BREAK_label95; +} +} +BREAK_label95: (void)0; +{ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_59); /* Direct call array#ArrayIterator#finish on */ +} +} else { +} +{ +var96 = nit___nit__ModelBuilder___try_get_mclass_by_name(self, var_ntype, var_mmodule, var_name); +} +var_mclass = var96; +if (var_mclass == NULL) { +var97 = 0; /* is null */ +} else { +var97 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var_mclass,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var100 = ((short int(*)(val* self, val* p0))(var_mclass->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mclass, var_other); /* == on */ +} +var101 = !var100; +var98 = var101; +goto RET_LABEL99; +RET_LABEL99:(void)0; +} +var97 = var98; +} +if (var97){ +{ +{ /* Inline parser_nodes#AType#n_types (var_ntype) on */ +var104 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_types].val; /* _n_types on */ +if (unlikely(var104 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1729); +fatal_exit(1); +} +var102 = var104; +RET_LABEL103:(void)0; +} +} +{ +var105 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var102); +} +var_arity = var105; +{ +{ /* Inline model#MClass#arity (var_mclass) on */ +var108 = var_mclass->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var106 = var108; +RET_LABEL107:(void)0; +} +} +{ +{ /* Inline kernel#Int#!= (var_arity,var106) on */ +var111 = var_arity == var106; +var112 = !var111; +var109 = var112; +goto RET_LABEL110; +RET_LABEL110:(void)0; +} +} +if (var109){ +{ +{ /* Inline kernel#Int#== (var_arity,0l) on */ +var115 = var_arity == 0l; +var113 = var115; +goto RET_LABEL114; +RET_LABEL114:(void)0; +} +} +if (var113){ +if (unlikely(varonce116==NULL)) { +var117 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce118!=NULL)) { +var119 = varonce118; +} else { +var120 = "Type Error: `"; +var121 = standard___standard__NativeString___to_s_with_length(var120, 13l); +var119 = var121; +varonce118 = var119; +} +((struct instance_standard__NativeArray*)var117)->values[0]=var119; +if (likely(varonce122!=NULL)) { +var123 = varonce122; +} else { +var124 = "` is a generic class."; +var125 = standard___standard__NativeString___to_s_with_length(var124, 21l); +var123 = var125; +varonce122 = var123; +} +((struct instance_standard__NativeArray*)var117)->values[2]=var123; +} else { +var117 = varonce116; +varonce116 = NULL; +} +{ +var126 = nit___nit__MClass___signature_to_s(var_mclass); +} +((struct instance_standard__NativeArray*)var117)->values[1]=var126; +{ +var127 = ((val*(*)(val* self))(var117->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var117); /* native_to_s on */ +} +varonce116 = var117; +{ +nit___nit__ModelBuilder___error(self, var_ntype, var127); /* Direct call modelbuilder_base#ModelBuilder#error on */ +} +} else { +{ +{ /* Inline model#MClass#arity (var_mclass) on */ +var130 = var_mclass->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var128 = var130; +RET_LABEL129:(void)0; +} +} +{ +{ /* Inline kernel#Int#== (var128,0l) on */ +var133 = var128 == 0l; +var131 = var133; +goto RET_LABEL132; +RET_LABEL132:(void)0; +} +} +if (var131){ +if (unlikely(varonce134==NULL)) { +var135 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String); +if (likely(varonce136!=NULL)) { +var137 = varonce136; +} else { +var138 = "Type Error: `"; +var139 = standard___standard__NativeString___to_s_with_length(var138, 13l); +var137 = var139; +varonce136 = var137; +} +((struct instance_standard__NativeArray*)var135)->values[0]=var137; +if (likely(varonce140!=NULL)) { +var141 = varonce140; +} else { +var142 = "` is not a generic class."; +var143 = standard___standard__NativeString___to_s_with_length(var142, 25l); +var141 = var143; +varonce140 = var141; +} +((struct instance_standard__NativeArray*)var135)->values[2]=var141; +} else { +var135 = varonce134; +varonce134 = NULL; +} +((struct instance_standard__NativeArray*)var135)->values[1]=var_name; +{ +var144 = ((val*(*)(val* self))(var135->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var135); /* native_to_s on */ +} +varonce134 = var135; +{ +nit___nit__ModelBuilder___error(self, var_ntype, var144); /* Direct call modelbuilder_base#ModelBuilder#error on */ +} +} else { +if (unlikely(varonce145==NULL)) { +var146 = NEW_standard__NativeArray(7l, &type_standard__NativeArray__standard__String); +if (likely(varonce147!=NULL)) { +var148 = varonce147; +} else { +var149 = "Type Error: expected "; +var150 = standard___standard__NativeString___to_s_with_length(var149, 21l); +var148 = var150; +varonce147 = var148; +} +((struct instance_standard__NativeArray*)var146)->values[0]=var148; +if (likely(varonce151!=NULL)) { +var152 = varonce151; +} else { +var153 = " formal argument(s) for `"; +var154 = standard___standard__NativeString___to_s_with_length(var153, 25l); +var152 = var154; +varonce151 = var152; +} +((struct instance_standard__NativeArray*)var146)->values[2]=var152; +if (likely(varonce155!=NULL)) { +var156 = varonce155; +} else { +var157 = "`; got "; +var158 = standard___standard__NativeString___to_s_with_length(var157, 7l); +var156 = var158; +varonce155 = var156; +} +((struct instance_standard__NativeArray*)var146)->values[4]=var156; +if (likely(varonce159!=NULL)) { +var160 = varonce159; +} else { +var161 = "."; +var162 = standard___standard__NativeString___to_s_with_length(var161, 1l); +var160 = var162; +varonce159 = var160; +} +((struct instance_standard__NativeArray*)var146)->values[6]=var160; +} else { +var146 = varonce145; +varonce145 = NULL; +} +{ +{ /* Inline model#MClass#arity (var_mclass) on */ +var165 = var_mclass->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var163 = var165; +RET_LABEL164:(void)0; +} +} +var166 = standard__string___Int___Object__to_s(var163); +((struct instance_standard__NativeArray*)var146)->values[1]=var166; +{ +var167 = nit___nit__MClass___signature_to_s(var_mclass); +} +((struct instance_standard__NativeArray*)var146)->values[3]=var167; +var168 = standard__string___Int___Object__to_s(var_arity); +((struct instance_standard__NativeArray*)var146)->values[5]=var168; +{ +var169 = ((val*(*)(val* self))(var146->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var146); /* native_to_s on */ +} +varonce145 = var146; +{ +nit___nit__ModelBuilder___error(self, var_ntype, var169); /* Direct call modelbuilder_base#ModelBuilder#error on */ +} +} +} +var = ((val*)NULL); +goto RET_LABEL; +} else { +} +{ +{ /* Inline kernel#Int#== (var_arity,0l) on */ +var172 = var_arity == 0l; +var170 = var172; +goto RET_LABEL171; +RET_LABEL171:(void)0; +} +} +if (var170){ +{ +{ /* Inline model#MClass#mclass_type (var_mclass) on */ +var175 = var_mclass->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on */ +if (unlikely(var175 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 484); +fatal_exit(1); +} +var173 = var175; +RET_LABEL174:(void)0; +} +} +var_res = var173; +{ +{ /* Inline parser_nodes#AType#n_kwnullable (var_ntype) on */ +var178 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on */ +var176 = var178; +RET_LABEL177:(void)0; +} +} +if (var176 == NULL) { +var179 = 0; /* is null */ +} else { +var179 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var176,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var182 = ((short int(*)(val* self, val* p0))(var176->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var176, var_other); /* == on */ +} +var183 = !var182; +var180 = var183; +goto RET_LABEL181; +RET_LABEL181:(void)0; +} +var179 = var180; +} +if (var179){ +{ +var184 = nit___nit__MType___as_nullable(var_res); +} +var_res = var184; +} else { +} +{ +{ /* Inline modelbuilder_base#AType#mtype= (var_ntype,var_res) on */ +var_ntype->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val = var_res; /* _mtype on */ +RET_LABEL185:(void)0; +} +} +var = var_res; +goto RET_LABEL; +} else { +var186 = NEW_standard__Array(&type_standard__Array__nit__MType); +{ +standard___standard__Array___standard__kernel__Object__init(var186); /* Direct call array#Array#init on */ +} +var_mtypes = var186; +{ +{ /* Inline parser_nodes#AType#n_types (var_ntype) on */ +var189 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_types].val; /* _n_types on */ +if (unlikely(var189 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1729); +fatal_exit(1); +} +var187 = var189; +RET_LABEL188:(void)0; +} +} +var_190 = var187; +{ +var191 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_190); +} +var_192 = var191; +for(;;) { +{ +var193 = ((short int(*)(val* self))((((long)var_192&3)?class_info[((long)var_192&3)]:var_192->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_192); /* is_ok on */ +} +if (var193){ +{ +var194 = ((val*(*)(val* self))((((long)var_192&3)?class_info[((long)var_192&3)]:var_192->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_192); /* item on */ +} +var_nt = var194; +{ +var195 = nit___nit__ModelBuilder___resolve_mtype_unchecked(self, var_mmodule, var_mclassdef, var_nt, var_with_virtual); +} +var_mt = var195; +if (var_mt == NULL) { +var196 = 1; /* is null */ +} else { +var196 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_mt,((val*)NULL)) on */ +var_other199 = ((val*)NULL); +{ +{ /* Inline kernel#Object#is_same_instance (var_mt,var_other199) on */ +var202 = var_mt == var_other199; +var200 = var202; +goto RET_LABEL201; +RET_LABEL201:(void)0; +} +} +var197 = var200; +goto RET_LABEL198; +RET_LABEL198:(void)0; +} +var196 = var197; +} +if (var196){ +var = ((val*)NULL); +goto RET_LABEL; +} else { +} +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_mtypes, var_mt); /* Direct call array#Array#add on */ +} +{ +((void(*)(val* self))((((long)var_192&3)?class_info[((long)var_192&3)]:var_192->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_192); /* next on */ +} +} else { +goto BREAK_label203; +} +} +BREAK_label203: (void)0; +{ +((void(*)(val* self))((((long)var_192&3)?class_info[((long)var_192&3)]:var_192->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_192); /* finish on */ +} +{ +var204 = nit___nit__MClass___get_mtype(var_mclass, var_mtypes); +} +var_res = var204; +{ +{ /* Inline parser_nodes#AType#n_kwnullable (var_ntype) on */ +var207 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on */ +var205 = var207; +RET_LABEL206:(void)0; +} +} +if (var205 == NULL) { +var208 = 0; /* is null */ +} else { +var208 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel#Object#!= (var205,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var211 = ((short int(*)(val* self, val* p0))(var205->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var205, var_other); /* == on */ +} +var212 = !var211; +var209 = var212; +goto RET_LABEL210; +RET_LABEL210:(void)0; +} +var208 = var209; +} +if (var208){ +{ +var213 = nit___nit__MType___as_nullable(var_res); +} +var_res = var213; +} else { +} +{ +{ /* Inline modelbuilder_base#AType#mtype= (var_ntype,var_res) on */ +var_ntype->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val = var_res; /* _mtype on */ +RET_LABEL214:(void)0; +} +} +var = var_res; +goto RET_LABEL; +} +} else { +} +if (unlikely(varonce215==NULL)) { +var216 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce217!=NULL)) { +var218 = varonce217; +} else { +var219 = "Error: class `"; +var220 = standard___standard__NativeString___to_s_with_length(var219, 14l); +var218 = var220; +varonce217 = var218; +} +((struct instance_standard__NativeArray*)var216)->values[0]=var218; +if (likely(varonce221!=NULL)) { +var222 = varonce221; +} else { +var223 = "` not found in module `"; +var224 = standard___standard__NativeString___to_s_with_length(var223, 23l); +var222 = var224; +varonce221 = var222; +} +((struct instance_standard__NativeArray*)var216)->values[2]=var222; +if (likely(varonce225!=NULL)) { +var226 = varonce225; +} else { +var227 = "`."; +var228 = standard___standard__NativeString___to_s_with_length(var227, 2l); +var226 = var228; +varonce225 = var226; +} +((struct instance_standard__NativeArray*)var216)->values[4]=var226; +} else { +var216 = varonce215; +varonce215 = NULL; +} +((struct instance_standard__NativeArray*)var216)->values[1]=var_name; +{ +var229 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_standard__string__Object__to_s]))(var_mmodule); /* to_s on */ +} +((struct instance_standard__NativeArray*)var216)->values[3]=var229; +{ +var230 = ((val*(*)(val* self))(var216->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var216); /* native_to_s on */ +} +varonce215 = var216; +{ +nit___nit__ModelBuilder___error(self, var_ntype, var230); /* Direct call modelbuilder_base#ModelBuilder#error on */ +} +var = ((val*)NULL); +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method modelbuilder_base#ModelBuilder#resolve_mtype for (self: ModelBuilder, MModule, nullable MClassDef, AType): nullable MType */ +val* nit___nit__ModelBuilder___resolve_mtype(val* self, val* p0, val* p1, val* p2) { +val* var /* : nullable MType */; +val* var_mmodule /* var mmodule: MModule */; +val* var_mclassdef /* var mclassdef: nullable MClassDef */; +val* var_ntype /* var ntype: AType */; +val* var1 /* : nullable MType */; +val* var3 /* : nullable MType */; +val* var_mtype /* var mtype: nullable MType */; +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 /* : nullable MType */; +short int var11 /* : Bool */; +short int var12 /* : Bool */; +short int var14 /* : Bool */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +int cltype; +int idtype; +val* var21 /* : MClass */; +val* var23 /* : MClass */; +val* var_mclass /* var mclass: MClass */; +long var_i /* var i: Int */; +long var24 /* : Int */; +long var26 /* : Int */; +long var_ /* var : Int */; +short int var27 /* : Bool */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +const char* var_class_name; +short int var32 /* : Bool */; +val* var33 /* : nullable MClassDef */; +val* var_intro /* var intro: nullable MClassDef */; +short int var34 /* : Bool */; +short int var35 /* : Bool */; +short int var37 /* : Bool */; +short int var39 /* : Bool */; +val* var40 /* : MClassType */; +val* var42 /* : MClassType */; +val* var43 /* : Array[MType] */; +val* var44 /* : nullable Object */; +val* var_bound /* var bound: MType */; +val* var45 /* : ANodes[AType] */; +val* var47 /* : ANodes[AType] */; +val* var48 /* : ANode */; +val* var_nt /* var nt: AType */; +val* var49 /* : nullable MType */; +val* var_mt /* var mt: nullable MType */; +short int var50 /* : Bool */; +short int var51 /* : Bool */; +short int var53 /* : Bool */; +short int var55 /* : Bool */; +short int var56 /* : Bool */; +short int var57 /* : Bool */; +val* var_other59 /* var other: nullable Object */; +short int var60 /* : Bool */; +short int var61 /* : Bool */; +val* var62 /* : MClassType */; +val* var64 /* : MClassType */; +val* var_anchor /* var anchor: nullable Object */; +short int var65 /* : Bool */; +short int var66 /* : Bool */; +val* var67 /* : NativeArray[String] */; +static val* varonce; +static val* varonce68; +val* var69 /* : String */; +char* var70 /* : NativeString */; +val* var71 /* : FlatString */; +static val* varonce72; +val* var73 /* : String */; +char* var74 /* : NativeString */; +val* var75 /* : FlatString */; +static val* varonce76; +val* var77 /* : String */; +char* var78 /* : NativeString */; +val* var79 /* : FlatString */; +val* var80 /* : String */; +val* var81 /* : String */; +val* var82 /* : String */; +long var83 /* : Int */; +var_mmodule = p0; +var_mclassdef = p1; +var_ntype = p2; +{ +{ /* Inline modelbuilder_base#AType#mtype (var_ntype) on */ +var3 = var_ntype->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val; /* _mtype on */ +var1 = var3; +RET_LABEL2:(void)0; +} +} +var_mtype = var1; +if (var_mtype == NULL) { +var4 = 1; /* is null */ +} else { +var4 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on */ +var9 = var_mtype == var_other; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; +} +} +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +var4 = var5; +} +if (var4){ +{ +var10 = nit___nit__ModelBuilder___resolve_mtype_unchecked(self, var_mmodule, var_mclassdef, var_ntype, 1); +} +var_mtype = var10; +} else { +} +if (var_mtype == NULL) { +var11 = 1; /* is null */ +} else { +var11 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on */ +var16 = var_mtype == var_other; +var14 = var16; +goto RET_LABEL15; +RET_LABEL15:(void)0; +} +} +var12 = var14; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +var11 = var12; +} +if (var11){ +var = ((val*)NULL); +goto RET_LABEL; +} else { } -if (var2){ { -var7 = ((val* (*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; +{ /* Inline modelbuilder_base#AType#checked_mtype (var_ntype) on */ +var19 = var_ntype->attrs[COLOR_nit__modelbuilder_base__AType___checked_mtype].s; /* _checked_mtype on */ +var17 = var19; +RET_LABEL18:(void)0; +} +} +if (var17){ +var = var_mtype; +goto RET_LABEL; +} else { } -var_l = var7; +/* isa MGenericType */ +cltype = type_nit__MGenericType.color; +idtype = type_nit__MGenericType.id; +if(cltype >= var_mtype->type->table_size) { +var20 = 0; } else { +var20 = var_mtype->type->type_table[cltype] == idtype; } +if (var20){ { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ -var10 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +{ /* Inline model#MClassType#mclass (var_mtype) on */ +var23 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on */ +if (unlikely(var23 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1138); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var21 = var23; +RET_LABEL22:(void)0; } } +var_mclass = var21; +var_i = 0l; { -nit___nit__ToolContext___error(var8, var_l, var_text); /* Direct call toolcontext#ToolContext#error on */ +{ /* Inline model#MClass#arity (var_mclass) on */ +var26 = var_mclass->attrs[COLOR_nit__model__MClass___arity].l; /* _arity on */ +var24 = var26; +RET_LABEL25:(void)0; } -RET_LABEL:; } -/* method modelbuilder_base#ModelBuilder#warning for (self: ModelBuilder, nullable ANode, String, String) */ -void nit___nit__ModelBuilder___warning(val* self, val* p0, val* p1, val* p2) { -val* var_n /* var n: nullable ANode */; -val* var_tag /* var tag: String */; -val* var_text /* var text: String */; -val* var /* : null */; -val* var_l /* var l: nullable Object */; -val* var1 /* : null */; -short int var2 /* : Bool */; -short int var3 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -val* var7 /* : Location */; -val* var8 /* : ToolContext */; -val* var10 /* : ToolContext */; -var_n = p0; -var_tag = p1; -var_text = p2; -var = NULL; -var_l = var; -var1 = NULL; -if (var_n == NULL) { -var2 = 0; /* is null */ +var_ = var24; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_i,var_) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var29 = 1; /* easy isa OTHER*/ +if (unlikely(!var29)) { +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); +} +var32 = var_i < var_; +var27 = var32; +goto RET_LABEL28; +RET_LABEL28:(void)0; +} +} +if (var27){ +{ +var33 = nit___nit__MClass___try_intro(var_mclass); +} +var_intro = var33; +if (var_intro == NULL) { +var34 = 1; /* is null */ } else { -var2 = 1; /* arg is null and recv is not */ +var34 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_n,var1) on */ -var_other = var1; +{ /* Inline kernel#Object#== (var_intro,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var5 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other) /* == on */; +{ /* Inline kernel#Object#is_same_instance (var_intro,var_other) on */ +var39 = var_intro == var_other; +var37 = var39; +goto RET_LABEL38; +RET_LABEL38:(void)0; } -var6 = !var5; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; } -var2 = var3; +var35 = var37; +goto RET_LABEL36; +RET_LABEL36:(void)0; } -if (var2){ -{ -var7 = ((val* (*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; +var34 = var35; } -var_l = var7; +if (var34){ +var = ((val*)NULL); +goto RET_LABEL; } else { } { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ -var10 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +{ /* Inline model#MClassDef#bound_mtype (var_intro) on */ +var42 = var_intro->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var42 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -var8 = var10; -RET_LABEL9:(void)0; +var40 = var42; +RET_LABEL41:(void)0; } } { -nit___nit__ToolContext___warning(var8, var_l, var_tag, var_text); /* Direct call toolcontext#ToolContext#warning on */ +var43 = ((val*(*)(val* self))(var40->class->vft[COLOR_nit__model__MClassType__arguments]))(var40); /* arguments on */ } -RET_LABEL:; +{ +var44 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var43, var_i); } -/* method modelbuilder_base#ModelBuilder#advice for (self: ModelBuilder, nullable ANode, String, String) */ -void nit___nit__ModelBuilder___advice(val* self, val* p0, val* p1, val* p2) { -val* var_n /* var n: nullable ANode */; -val* var_tag /* var tag: String */; -val* var_text /* var text: String */; -val* var /* : null */; -val* var_l /* var l: nullable Object */; -val* var1 /* : null */; -short int var2 /* : Bool */; -short int var3 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -val* var7 /* : Location */; -val* var8 /* : ToolContext */; -val* var10 /* : ToolContext */; -var_n = p0; -var_tag = p1; -var_text = p2; -var = NULL; -var_l = var; -var1 = NULL; -if (var_n == NULL) { -var2 = 0; /* is null */ +var_bound = var44; +{ +{ /* Inline parser_nodes#AType#n_types (var_ntype) on */ +var47 = var_ntype->attrs[COLOR_nit__parser_nodes__AType___n_types].val; /* _n_types on */ +if (unlikely(var47 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1729); +fatal_exit(1); +} +var45 = var47; +RET_LABEL46:(void)0; +} +} +{ +var48 = nit___nit__ANodes___standard__abstract_collection__SequenceRead___91d_93d(var45, var_i); +} +var_nt = var48; +{ +var49 = nit___nit__ModelBuilder___resolve_mtype(self, var_mmodule, var_mclassdef, var_nt); +} +var_mt = var49; +if (var_mt == NULL) { +var50 = 1; /* is null */ } else { -var2 = 1; /* arg is null and recv is not */ +var50 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_n,var1) on */ -var_other = var1; +{ /* Inline kernel#Object#== (var_mt,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var5 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other) /* == on */; +{ /* Inline kernel#Object#is_same_instance (var_mt,var_other) on */ +var55 = var_mt == var_other; +var53 = var55; +goto RET_LABEL54; +RET_LABEL54:(void)0; } -var6 = !var5; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; } -var2 = var3; +var51 = var53; +goto RET_LABEL52; +RET_LABEL52:(void)0; } -if (var2){ -{ -var7 = ((val* (*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; +var50 = var51; +} +if (var50){ +var = ((val*)NULL); +goto RET_LABEL; +} else { } -var_l = var7; +if (var_mclassdef == NULL) { +var56 = 0; /* is null */ } else { +var56 = 1; /* arg is null and recv is not */ } +if (0) { +{ /* Inline kernel#Object#!= (var_mclassdef,((val*)NULL)) on */ +var_other59 = ((val*)NULL); { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ -var10 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var10 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +var60 = ((short int(*)(val* self, val* p0))(var_mclassdef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mclassdef, var_other59); /* == on */ } -var8 = var10; -RET_LABEL9:(void)0; +var61 = !var60; +var57 = var61; +goto RET_LABEL58; +RET_LABEL58:(void)0; } +var56 = var57; } +if (var56){ { -nit___nit__ToolContext___advice(var8, var_l, var_tag, var_text); /* Direct call toolcontext#ToolContext#advice on */ +{ /* Inline model#MClassDef#bound_mtype (var_mclassdef) on */ +var64 = var_mclassdef->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on */ +if (unlikely(var64 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556); +fatal_exit(1); } -RET_LABEL:; +var62 = var64; +RET_LABEL63:(void)0; } -/* method modelbuilder_base#ModelBuilder#force_get_primitive_method for (self: ModelBuilder, nullable ANode, String, MClass, MModule): MMethod */ -val* nit___nit__ModelBuilder___force_get_primitive_method(val* self, val* p0, val* p1, val* p2, val* p3) { -val* var /* : MMethod */; -val* var_n /* var n: nullable ANode */; -val* var_name /* var name: String */; -val* var_recv /* var recv: MClass */; -val* var_mmodule /* var mmodule: MModule */; -val* var1 /* : nullable MMethod */; -val* var_res /* var res: nullable MMethod */; -val* var2 /* : null */; -short int var3 /* : Bool */; -short int var4 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; -val* var9 /* : null */; -val* var_l /* var l: nullable Object */; -val* var10 /* : null */; -short int var11 /* : Bool */; -short int var12 /* : Bool */; -val* var_other14 /* var other: nullable Object */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -val* var17 /* : Location */; -val* var18 /* : ToolContext */; -val* var20 /* : ToolContext */; -static val* varonce; -val* var21 /* : String */; -char* var22 /* : NativeString */; -long var23 /* : Int */; -val* var24 /* : FlatString */; -static val* varonce25; -val* var26 /* : String */; -char* var27 /* : NativeString */; -long var28 /* : Int */; -val* var29 /* : FlatString */; -static val* varonce30; -val* var31 /* : String */; -char* var32 /* : NativeString */; -long var33 /* : Int */; -val* var34 /* : FlatString */; -val* var35 /* : Array[Object] */; -long var36 /* : Int */; -val* var37 /* : NativeArray[Object] */; -val* var38 /* : String */; -var_n = p0; -var_name = p1; -var_recv = p2; -var_mmodule = p3; -{ -var1 = nit__model___MModule___try_get_primitive_method(var_mmodule, var_name, var_recv); } -var_res = var1; -var2 = NULL; -if (var_res == NULL) { -var3 = 1; /* is null */ +var_anchor = var62; } else { -var3 = 0; /* arg is null but recv is not */ +var_anchor = ((val*)NULL); } -if (0) { -{ /* Inline kernel#Object#== (var_res,var2) on */ -var_other = var2; { -{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ -var8 = var_res == var_other; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var65 = nit___nit__ModelBuilder___check_subtype(self, var_nt, var_mmodule, var_anchor, var_mt, var_bound); } +var66 = !var65; +if (var66){ +if (unlikely(varonce==NULL)) { +var67 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String); +if (likely(varonce68!=NULL)) { +var69 = varonce68; +} else { +var70 = "Type Error: expected `"; +var71 = standard___standard__NativeString___to_s_with_length(var70, 22l); +var69 = var71; +varonce68 = var69; } -var4 = var6; -goto RET_LABEL5; -RET_LABEL5:(void)0; +((struct instance_standard__NativeArray*)var67)->values[0]=var69; +if (likely(varonce72!=NULL)) { +var73 = varonce72; +} else { +var74 = "`, got `"; +var75 = standard___standard__NativeString___to_s_with_length(var74, 8l); +var73 = var75; +varonce72 = var73; } -var3 = var4; +((struct instance_standard__NativeArray*)var67)->values[2]=var73; +if (likely(varonce76!=NULL)) { +var77 = varonce76; +} else { +var78 = "`."; +var79 = standard___standard__NativeString___to_s_with_length(var78, 2l); +var77 = var79; +varonce76 = var77; } -if (var3){ -var9 = NULL; -var_l = var9; -var10 = NULL; -if (var_n == NULL) { -var11 = 0; /* is null */ +((struct instance_standard__NativeArray*)var67)->values[4]=var77; } else { -var11 = 1; /* arg is null and recv is not */ +var67 = varonce; +varonce = NULL; } -if (0) { -{ /* Inline kernel#Object#!= (var_n,var10) on */ -var_other14 = var10; { -var15 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other14) /* == on */; +var80 = ((val*(*)(val* self))(var_bound->class->vft[COLOR_standard__string__Object__to_s]))(var_bound); /* to_s on */ } -var16 = !var15; -var12 = var16; -goto RET_LABEL13; -RET_LABEL13:(void)0; +((struct instance_standard__NativeArray*)var67)->values[1]=var80; +{ +var81 = ((val*(*)(val* self))(var_mt->class->vft[COLOR_standard__string__Object__to_s]))(var_mt); /* to_s on */ } -var11 = var12; +((struct instance_standard__NativeArray*)var67)->values[3]=var81; +{ +var82 = ((val*(*)(val* self))(var67->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var67); /* native_to_s on */ } -if (var11){ +varonce = var67; { -var17 = ((val* (*)(val* self))(var_n->class->vft[COLOR_nit__parser_nodes__ANode__hot_location]))(var_n) /* hot_location on */; +nit___nit__ModelBuilder___error(self, var_nt, var82); /* Direct call modelbuilder_base#ModelBuilder#error on */ } -var_l = var17; +var = ((val*)NULL); +goto RET_LABEL; } else { } { -{ /* Inline modelbuilder_base#ModelBuilder#toolcontext (self) on */ -var20 = self->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on */ -if (unlikely(var20 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47); -show_backtrace(1); +var83 = standard___standard__Int___Discrete__successor(var_i, 1l); } -var18 = var20; -RET_LABEL19:(void)0; +var_i = var83; +} else { +goto BREAK_label; } } -if (varonce) { -var21 = varonce; +BREAK_label: (void)0; } else { -var22 = "Fatal Error: "; -var23 = 13; -var24 = standard___standard__NativeString___to_s_with_length(var22, var23); -var21 = var24; -varonce = var21; } -if (varonce25) { -var26 = varonce25; -} else { -var27 = " must have a property named "; -var28 = 28; -var29 = standard___standard__NativeString___to_s_with_length(var27, var28); -var26 = var29; -varonce25 = var26; +{ +{ /* Inline modelbuilder_base#AType#checked_mtype= (var_ntype,1) on */ +var_ntype->attrs[COLOR_nit__modelbuilder_base__AType___checked_mtype].s = 1; /* _checked_mtype on */ +RET_LABEL84:(void)0; } -if (varonce30) { -var31 = varonce30; -} else { -var32 = "."; -var33 = 1; -var34 = standard___standard__NativeString___to_s_with_length(var32, var33); -var31 = var34; -varonce30 = var31; } -var35 = NEW_standard__Array(&type_standard__Array__standard__Object); -{ /* var35 = array_instance Array[Object] */ -var36 = 5; -var37 = NEW_standard__NativeArray(var36, &type_standard__NativeArray__standard__Object); -((struct instance_standard__NativeArray*)var37)->values[0] = (val*) var21; -((struct instance_standard__NativeArray*)var37)->values[1] = (val*) var_recv; -((struct instance_standard__NativeArray*)var37)->values[2] = (val*) var26; -((struct instance_standard__NativeArray*)var37)->values[3] = (val*) var_name; -((struct instance_standard__NativeArray*)var37)->values[4] = (val*) var31; +var = var_mtype; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method modelbuilder_base#ModelBuilder#check_subtype for (self: ModelBuilder, ANode, MModule, nullable MClassType, MType, MType): Bool */ +short int nit___nit__ModelBuilder___check_subtype(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) { +short int var /* : Bool */; +val* var_node /* var node: ANode */; +val* var_mmodule /* var mmodule: MModule */; +val* var_anchor /* var anchor: nullable MClassType */; +val* var_sub /* var sub: MType */; +val* var_sup /* var sup: MType */; +short int var1 /* : Bool */; +var_node = p0; +var_mmodule = p1; +var_anchor = p2; +var_sub = p3; +var_sup = p4; { -((void (*)(val* self, val* p0, long p1))(var35->class->vft[COLOR_standard__array__Array__with_native]))(var35, var37, var36) /* with_native on */; +var1 = nit___nit__MType___is_subtype(var_sub, var_mmodule, var_anchor, var_sup); } +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; } +/* method modelbuilder_base#ModelBuilder#check_sametype for (self: ModelBuilder, ANode, MModule, nullable MClassType, MType, MType): Bool */ +short int nit___nit__ModelBuilder___check_sametype(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) { +short int var /* : Bool */; +val* var_node /* var node: ANode */; +val* var_mmodule /* var mmodule: MModule */; +val* var_anchor /* var anchor: nullable MClassType */; +val* var_sub /* var sub: MType */; +val* var_sup /* var sup: MType */; +short int var1 /* : Bool */; +short int var2 /* : Bool */; +short int var_ /* var : Bool */; +short int var3 /* : Bool */; +var_node = p0; +var_mmodule = p1; +var_anchor = p2; +var_sub = p3; +var_sup = p4; { -var38 = ((val* (*)(val* self))(var35->class->vft[COLOR_standard__string__Object__to_s]))(var35) /* to_s on */; +var2 = nit___nit__MType___is_subtype(var_sub, var_mmodule, var_anchor, var_sup); } +var_ = var2; +if (var2){ { -nit___nit__ToolContext___fatal_error(var18, var_l, var38); /* Direct call toolcontext#ToolContext#fatal_error on */ +var3 = nit___nit__MType___is_subtype(var_sup, var_mmodule, var_anchor, var_sub); } -PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 212); -show_backtrace(1); +var1 = var3; } else { +var1 = var_; } -var = var_res; +var = var1; goto RET_LABEL; RET_LABEL:; return var; } +/* method modelbuilder_base#AType#mtype for (self: AType): nullable MType */ +val* nit__modelbuilder_base___AType___mtype(val* self) { +val* var /* : nullable MType */; +val* var1 /* : nullable MType */; +var1 = self->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val; /* _mtype on */ +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder_base#AType#mtype= for (self: AType, nullable MType) */ +void nit__modelbuilder_base___AType___mtype_61d(val* self, val* p0) { +self->attrs[COLOR_nit__modelbuilder_base__AType___mtype].val = p0; /* _mtype on */ +RET_LABEL:; +} +/* method modelbuilder_base#AType#checked_mtype for (self: AType): Bool */ +short int nit__modelbuilder_base___AType___checked_mtype(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = self->attrs[COLOR_nit__modelbuilder_base__AType___checked_mtype].s; /* _checked_mtype on */ +var = var1; +RET_LABEL:; +return var; +} +/* method modelbuilder_base#AType#checked_mtype= for (self: AType, Bool) */ +void nit__modelbuilder_base___AType___checked_mtype_61d(val* self, short int p0) { +self->attrs[COLOR_nit__modelbuilder_base__AType___checked_mtype].s = p0; /* _checked_mtype on */ +RET_LABEL:; +} /* method modelbuilder_base#AIntrudeVisibility#mvisibility for (self: AIntrudeVisibility): MVisibility */ val* nit__modelbuilder_base___AIntrudeVisibility___AVisibility__mvisibility(val* self) { val* var /* : MVisibility */; -val* var1 /* : MVisibility */; +val* var1 /* : Sys */; +val* var2 /* : MVisibility */; +var1 = glob_sys; { -var1 = nit__model_base___standard__Object___intrude_visibility(self); +var2 = nit__model_base___standard__Sys___intrude_visibility(var1); } -var = var1; +var = var2; goto RET_LABEL; RET_LABEL:; return var; @@ -1846,11 +3453,13 @@ return var; /* method modelbuilder_base#APublicVisibility#mvisibility for (self: APublicVisibility): MVisibility */ val* nit__modelbuilder_base___APublicVisibility___AVisibility__mvisibility(val* self) { val* var /* : MVisibility */; -val* var1 /* : MVisibility */; +val* var1 /* : Sys */; +val* var2 /* : MVisibility */; +var1 = glob_sys; { -var1 = nit__model_base___standard__Object___public_visibility(self); +var2 = nit__model_base___standard__Sys___public_visibility(var1); } -var = var1; +var = var2; goto RET_LABEL; RET_LABEL:; return var; @@ -1858,11 +3467,13 @@ return var; /* method modelbuilder_base#AProtectedVisibility#mvisibility for (self: AProtectedVisibility): MVisibility */ val* nit__modelbuilder_base___AProtectedVisibility___AVisibility__mvisibility(val* self) { val* var /* : MVisibility */; -val* var1 /* : MVisibility */; +val* var1 /* : Sys */; +val* var2 /* : MVisibility */; +var1 = glob_sys; { -var1 = nit__model_base___standard__Object___protected_visibility(self); +var2 = nit__model_base___standard__Sys___protected_visibility(var1); } -var = var1; +var = var2; goto RET_LABEL; RET_LABEL:; return var; @@ -1870,11 +3481,13 @@ return var; /* method modelbuilder_base#APrivateVisibility#mvisibility for (self: APrivateVisibility): MVisibility */ val* nit__modelbuilder_base___APrivateVisibility___AVisibility__mvisibility(val* self) { val* var /* : MVisibility */; -val* var1 /* : MVisibility */; +val* var1 /* : Sys */; +val* var2 /* : MVisibility */; +var1 = glob_sys; { -var1 = nit__model_base___standard__Object___private_visibility(self); +var2 = nit__model_base___standard__Sys___private_visibility(var1); } -var = var1; +var = var2; goto RET_LABEL; RET_LABEL:; return var; @@ -1899,24 +3512,24 @@ val* var /* : MDoc */; val* var1 /* : nullable MDoc */; val* var3 /* : nullable MDoc */; val* var_res /* var res: nullable MDoc */; -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 /* : MDoc */; -val* var12 /* : ANodes[TComment] */; -val* var14 /* : ANodes[TComment] */; +val* var9 /* : MDoc */; +val* var10 /* : Location */; +val* var12 /* : Location */; +val* var13 /* : ANodes[TComment] */; +val* var15 /* : ANodes[TComment] */; val* var_ /* var : ANodes[TComment] */; -val* var15 /* : Iterator[ANode] */; -val* var_16 /* var : Iterator[TComment] */; -short int var17 /* : Bool */; -val* var18 /* : nullable Object */; +val* var16 /* : Iterator[ANode] */; +val* var_17 /* var : Iterator[TComment] */; +short int var18 /* : Bool */; +val* var19 /* : nullable Object */; val* var_c /* var c: TComment */; -val* var19 /* : String */; +val* var20 /* : String */; val* var_text /* var text: String */; -long var20 /* : Int */; long var21 /* : Int */; short int var22 /* : Bool */; short int var24 /* : Bool */; @@ -1929,44 +3542,34 @@ val* var28 /* : Array[String] */; static val* varonce; val* var29 /* : String */; char* var30 /* : NativeString */; -long var31 /* : Int */; -val* var32 /* : FlatString */; -val* var33 /* : SequenceRead[Char] */; -long var34 /* : Int */; -val* var35 /* : nullable Object */; -char var36 /* : Char */; -short int var37 /* : Bool */; -short int var39 /* : Bool */; -char var40 /* : Char */; -val* var41 /* : SequenceRead[Char] */; -long var42 /* : Int */; -val* var43 /* : nullable Object */; -char var44 /* : Char */; -short int var45 /* : Bool */; -short int var47 /* : Bool */; -char var48 /* : Char */; -long var49 /* : Int */; -val* var50 /* : Text */; -long var51 /* : Int */; -val* var52 /* : Text */; -val* var53 /* : SequenceRead[Char] */; -val* var54 /* : nullable Object */; -char var55 /* : Char */; -short int var56 /* : Bool */; -short int var58 /* : Bool */; -char var59 /* : Char */; -long var60 /* : Int */; -long var61 /* : Int */; -long var62 /* : Int */; -long var63 /* : Int */; -short int var65 /* : Bool */; -int cltype66; -int idtype67; -const char* var_class_name68; -long var69 /* : Int */; -val* var70 /* : Text */; -val* var71 /* : Array[String] */; -val* var73 /* : Array[String] */; +val* var31 /* : FlatString */; +val* var32 /* : SequenceRead[Char] */; +val* var33 /* : nullable Object */; +short int var34 /* : Bool */; +short int var36 /* : Bool */; +uint32_t var37 /* : Char */; +val* var38 /* : SequenceRead[Char] */; +val* var39 /* : nullable Object */; +short int var40 /* : Bool */; +short int var42 /* : Bool */; +uint32_t var43 /* : Char */; +val* var44 /* : Text */; +val* var45 /* : Text */; +val* var46 /* : SequenceRead[Char] */; +val* var47 /* : nullable Object */; +short int var48 /* : Bool */; +short int var50 /* : Bool */; +uint32_t var51 /* : Char */; +long var52 /* : Int */; +long var53 /* : Int */; +short int var55 /* : Bool */; +int cltype56; +int idtype57; +const char* var_class_name58; +long var59 /* : Int */; +val* var60 /* : Text */; +val* var61 /* : Array[String] */; +val* var63 /* : Array[String] */; { { /* Inline modelbuilder_base#ADoc#mdoc_cache (self) on */ var3 = self->attrs[COLOR_nit__modelbuilder_base__ADoc___mdoc_cache].val; /* _mdoc_cache on */ @@ -1975,83 +3578,94 @@ 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__MDoc(&type_nit__MDoc); +var9 = NEW_nit__MDoc(&type_nit__MDoc); { -{ /* Inline kernel#Object#init (var10) on */ +{ /* Inline parser_nodes#ANode#location (self) on */ +var12 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on */ +if (unlikely(var12 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location"); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24); +fatal_exit(1); +} +var10 = var12; RET_LABEL11:(void)0; } } -var_res = var10; +{ +((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nit__mdoc__MDoc__location_61d]))(var9, var10); /* location= on */ +} +{ +((void(*)(val* self))(var9->class->vft[COLOR_standard__kernel__Object__init]))(var9); /* init on */ +} +var_res = var9; { { /* Inline parser_nodes#ADoc#n_comment (self) on */ -var14 = self->attrs[COLOR_nit__parser_nodes__ADoc___n_comment].val; /* _n_comment on */ -if (unlikely(var14 == NULL)) { +var15 = self->attrs[COLOR_nit__parser_nodes__ADoc___n_comment].val; /* _n_comment on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2515); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2945); +fatal_exit(1); } -var12 = var14; -RET_LABEL13:(void)0; +var13 = var15; +RET_LABEL14:(void)0; } } -var_ = var12; +var_ = var13; { -var15 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_); +var16 = nit___nit__ANodes___standard__abstract_collection__Collection__iterator(var_); } -var_16 = var15; +var_17 = var16; for(;;) { { -var17 = ((short int (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_16) /* is_ok on */; +var18 = ((short int(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_17); /* is_ok on */ } -if (var17){ +if (var18){ { -var18 = ((val* (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_16) /* item on */; +var19 = ((val*(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_17); /* item on */ } -var_c = var18; +var_c = var19; { -var19 = nit__lexer_work___Token___text(var_c); +var20 = nit__lexer_work___Token___text(var_c); } -var_text = var19; +var_text = var20; { -var20 = ((long (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__length]))(var_text) /* length on */; +var21 = ((long(*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__length]))(var_text); /* length on */ } -var21 = 2; { -{ /* Inline kernel#Int#< (var20,var21) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var24 = 1; /* easy isa OTHER*/ +{ /* Inline kernel#Int#< (var21,2l) on */ +/* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */ +/* <2l:Int> isa OTHER */ +var24 = 1; /* easy <2l:Int> isa OTHER*/ if (unlikely(!var24)) { 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); } -var25 = var20 < var21; +var25 = var21 < 2l; var22 = var25; goto RET_LABEL23; RET_LABEL23:(void)0; @@ -2063,20 +3677,19 @@ if (var22){ var28 = var_res->attrs[COLOR_nit__mdoc__MDoc___content].val; /* _content on */ if (unlikely(var28 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__mdoc, 22); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mdoc, 23); +fatal_exit(1); } var26 = var28; RET_LABEL27:(void)0; } } -if (varonce) { +if (likely(varonce!=NULL)) { var29 = varonce; } else { var30 = ""; -var31 = 0; -var32 = standard___standard__NativeString___to_s_with_length(var30, var31); -var29 = var32; +var31 = standard___standard__NativeString___to_s_with_length(var30, 0l); +var29 = var31; varonce = var29; } { @@ -2086,144 +3699,124 @@ goto BREAK_label; } else { } { -var33 = ((val* (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text) /* chars on */; +var32 = ((val*(*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text); /* chars on */ } -var34 = 0; { -var35 = ((val* (*)(val* self, long p0))(var33->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var33, var34) /* [] on */; +var33 = ((val*(*)(val* self, long p0))((((long)var32&3)?class_info[((long)var32&3)]:var32->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var32, 0l); /* [] on */ } -var36 = '#'; { -{ /* Inline kernel#Char#== (var35,var36) on */ -var39 = (var35 != NULL) && (var35->class == &class_standard__Char); -if (var39) { -var40 = ((struct instance_standard__Char*)var35)->value; /* autounbox from nullable Object to Char */; -var39 = (var40 == var36); -} -var37 = var39; -goto RET_LABEL38; -RET_LABEL38:(void)0; +{ /* Inline kernel#Char#== (var33,'#') on */ +var37 = (uint32_t)((long)(var33)>>2); +var36 = (var33 != NULL) && (var37 == '#'); +var34 = var36; +goto RET_LABEL35; +RET_LABEL35:(void)0; } } -if (unlikely(!var37)) { +if (unlikely(!var34)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 250); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 397); +fatal_exit(1); } { -var41 = ((val* (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text) /* chars on */; +var38 = ((val*(*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text); /* chars on */ } -var42 = 1; { -var43 = ((val* (*)(val* self, long p0))(var41->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var41, var42) /* [] on */; +var39 = ((val*(*)(val* self, long p0))((((long)var38&3)?class_info[((long)var38&3)]:var38->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var38, 1l); /* [] on */ } -var44 = ' '; { -{ /* Inline kernel#Char#== (var43,var44) on */ -var47 = (var43 != NULL) && (var43->class == &class_standard__Char); -if (var47) { -var48 = ((struct instance_standard__Char*)var43)->value; /* autounbox from nullable Object to Char */; -var47 = (var48 == var44); -} -var45 = var47; -goto RET_LABEL46; -RET_LABEL46:(void)0; +{ /* Inline kernel#Char#== (var39,' ') on */ +var43 = (uint32_t)((long)(var39)>>2); +var42 = (var39 != NULL) && (var43 == ' '); +var40 = var42; +goto RET_LABEL41; +RET_LABEL41:(void)0; } } -if (var45){ -var49 = 2; +if (var40){ { -var50 = standard___standard__Text___substring_from(var_text, var49); +var44 = standard___standard__Text___substring_from(var_text, 2l); } -var_text = var50; +var_text = var44; } else { -var51 = 1; { -var52 = standard___standard__Text___substring_from(var_text, var51); +var45 = standard___standard__Text___substring_from(var_text, 1l); } -var_text = var52; +var_text = var45; } { -var53 = ((val* (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text) /* chars on */; +var46 = ((val*(*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__chars]))(var_text); /* chars on */ } { -var54 = ((val* (*)(val* self))(var53->class->vft[COLOR_standard__abstract_collection__SequenceRead__last]))(var53) /* last on */; +var47 = ((val*(*)(val* self))((((long)var46&3)?class_info[((long)var46&3)]:var46->class)->vft[COLOR_standard__abstract_collection__SequenceRead__last]))(var46); /* last on */ } -var55 = '\n'; { -{ /* Inline kernel#Char#== (var54,var55) on */ -var58 = (var54 != NULL) && (var54->class == &class_standard__Char); -if (var58) { -var59 = ((struct instance_standard__Char*)var54)->value; /* autounbox from nullable Object to Char */; -var58 = (var59 == var55); -} -var56 = var58; -goto RET_LABEL57; -RET_LABEL57:(void)0; +{ /* Inline kernel#Char#== (var47,'\n') on */ +var51 = (uint32_t)((long)(var47)>>2); +var50 = (var47 != NULL) && (var51 == '\n'); +var48 = var50; +goto RET_LABEL49; +RET_LABEL49:(void)0; } } -if (var56){ -var60 = 0; +if (var48){ { -var61 = ((long (*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__length]))(var_text) /* length on */; +var52 = ((long(*)(val* self))(var_text->class->vft[COLOR_standard__string__Text__length]))(var_text); /* length on */ } -var62 = 1; { -{ /* Inline kernel#Int#- (var61,var62) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var65 = 1; /* easy isa OTHER*/ -if (unlikely(!var65)) { -var_class_name68 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var52,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var55 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var55)) { +var_class_name58 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name58); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var69 = var61 - var62; -var63 = var69; -goto RET_LABEL64; -RET_LABEL64:(void)0; +var59 = var52 - 1l; +var53 = var59; +goto RET_LABEL54; +RET_LABEL54:(void)0; } } { -var70 = ((val* (*)(val* self, long p0, long p1))(var_text->class->vft[COLOR_standard__string__Text__substring]))(var_text, var60, var63) /* substring on */; +var60 = ((val*(*)(val* self, long p0, long p1))(var_text->class->vft[COLOR_standard__string__Text__substring]))(var_text, 0l, var53); /* substring on */ } -var_text = var70; +var_text = var60; } else { } { { /* Inline mdoc#MDoc#content (var_res) on */ -var73 = var_res->attrs[COLOR_nit__mdoc__MDoc___content].val; /* _content on */ -if (unlikely(var73 == NULL)) { +var63 = var_res->attrs[COLOR_nit__mdoc__MDoc___content].val; /* _content on */ +if (unlikely(var63 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content"); -PRINT_ERROR(" (%s:%d)\n", FILE_nit__mdoc, 22); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_nit__mdoc, 23); +fatal_exit(1); } -var71 = var73; -RET_LABEL72:(void)0; +var61 = var63; +RET_LABEL62:(void)0; } } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var71, var_text); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var61, var_text); /* Direct call array#Array#add on */ } BREAK_label: (void)0; { -((void (*)(val* self))(var_16->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_16) /* next on */; +((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_17); /* next on */ } } else { -goto BREAK_label74; +goto BREAK_label64; } } -BREAK_label74: (void)0; +BREAK_label64: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_16) on */ -RET_LABEL75:(void)0; -} +((void(*)(val* self))((((long)var_17&3)?class_info[((long)var_17&3)]:var_17->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_17); /* finish on */ } { { /* Inline modelbuilder_base#ADoc#mdoc_cache= (self,var_res) on */ self->attrs[COLOR_nit__modelbuilder_base__ADoc___mdoc_cache].val = var_res; /* _mdoc_cache on */ -RET_LABEL76:(void)0; +RET_LABEL65:(void)0; } } var = var_res;