X-Git-Url: http://nitlanguage.org diff --git a/c_src/model.sep.1.c b/c_src/model.sep.1.c index 759b2bb..3f34c80 100644 --- a/c_src/model.sep.1.c +++ b/c_src/model.sep.1.c @@ -5,8 +5,9 @@ val* var /* : Array[MClass] */; val* var1 /* : Array[MClass] */; var1 = self->attrs[COLOR_model__Model___64dmclasses].val; /* @mclasses on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclasses", "src/model/model.nit", 38); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclasses"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 38); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -37,8 +38,9 @@ val* var /* : Array[MProperty] */; val* var1 /* : Array[MProperty] */; var1 = self->attrs[COLOR_model__Model___64dmproperties].val; /* @mproperties on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mproperties", "src/model/model.nit", 41); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mproperties"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 41); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -69,8 +71,9 @@ val* var /* : POSet[MClassDef] */; val* var1 /* : POSet[MClassDef] */; var1 = self->attrs[COLOR_model__Model___64dmclassdef_hierarchy].val; /* @mclassdef_hierarchy on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclassdef_hierarchy", "src/model/model.nit", 44); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclassdef_hierarchy"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 44); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -101,8 +104,9 @@ val* var /* : POSet[MClassType] */; val* var1 /* : POSet[MClassType] */; var1 = self->attrs[COLOR_model__Model___64dintro_mtype_specialization_hierarchy].val; /* @intro_mtype_specialization_hierarchy on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @intro_mtype_specialization_hierarchy", "src/model/model.nit", 50); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @intro_mtype_specialization_hierarchy"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 50); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -133,8 +137,9 @@ val* var /* : POSet[MClassType] */; val* var1 /* : POSet[MClassType] */; var1 = self->attrs[COLOR_model__Model___64dfull_mtype_specialization_hierarchy].val; /* @full_mtype_specialization_hierarchy on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @full_mtype_specialization_hierarchy", "src/model/model.nit", 61); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @full_mtype_specialization_hierarchy"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 61); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -165,8 +170,9 @@ val* var /* : MultiHashMap[String, MClass] */; val* var1 /* : MultiHashMap[String, MClass] */; var1 = self->attrs[COLOR_model__Model___64dmclasses_by_name].val; /* @mclasses_by_name on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclasses_by_name", "src/model/model.nit", 70); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclasses_by_name"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 70); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -231,8 +237,9 @@ val* var /* : MultiHashMap[String, MProperty] */; val* var1 /* : MultiHashMap[String, MProperty] */; var1 = self->attrs[COLOR_model__Model___64dmproperties_by_name].val; /* @mproperties_by_name on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mproperties_by_name", "src/model/model.nit", 88); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mproperties_by_name"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 88); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -299,8 +306,9 @@ val* var /* : MNullType */; val* var1 /* : MNullType */; var1 = self->attrs[COLOR_model__Model___64dnull_type].val; /* @null_type on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @null_type", "src/model/model.nit", 106); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @null_type"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 106); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -331,8 +339,9 @@ val* var /* : Array[MClass] */; val* var1 /* : Array[MClass] */; var1 = self->attrs[COLOR_model__MModule___64dintro_mclasses].val; /* @intro_mclasses on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @intro_mclasses", "src/model/model.nit", 111); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @intro_mclasses"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 111); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -363,8 +372,9 @@ val* var /* : Array[MClassDef] */; val* var1 /* : Array[MClassDef] */; var1 = self->attrs[COLOR_model__MModule___64dmclassdefs].val; /* @mclassdefs on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclassdefs", "src/model/model.nit", 114); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclassdefs"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 114); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -397,7 +407,7 @@ val* var1 /* : POSetElement[MModule] */; val* var2 /* : MModule */; short int var3 /* : Bool */; var_mclass = p0; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__in_importation]))(self) /* in_importation on */; +var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__in_importation]))(self) /* in_importation on */; var2 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__intro_mmodule]))(var_mclass) /* intro_mmodule on */; var3 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_poset__POSetElement___60d_61d]))(var1, var2) /* <= on */; var = var3; @@ -457,9 +467,8 @@ goto RET_LABEL; } var4 = NEW_poset__POSet(&type_poset__POSetmodel__MClass); ((void (*)(val*))(var4->class->vft[COLOR_poset__POSet__init]))(var4) /* init on */; -CHECK_NEW_poset__POSet(var4); var_res = var4; -var5 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__in_importation]))(self) /* in_importation on */; +var5 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__in_importation]))(self) /* in_importation on */; var6 = ((val* (*)(val*))(var5->class->vft[COLOR_poset__POSetElement__greaters]))(var5) /* greaters on */; var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on */; for(;;) { @@ -536,7 +545,6 @@ val* var_sorter /* var sorter: MClassDefSorter */; var_mclassdefs = p0; var = NEW_model__MClassDefSorter(&type_model__MClassDefSorter); ((void (*)(val*, val*))(var->class->vft[COLOR_model__MClassDefSorter__init]))(var, self) /* init on */; -CHECK_NEW_model__MClassDefSorter(var); var_sorter = var; ((void (*)(val*, val*))(var_sorter->class->vft[COLOR_sorter__AbstractSorter__sort]))(var_sorter, var_mclassdefs) /* sort on */; RET_LABEL:; @@ -554,7 +562,6 @@ val* var_sorter /* var sorter: MPropDefSorter */; var_mpropdefs = p0; var = NEW_model__MPropDefSorter(&type_model__MPropDefSorter); ((void (*)(val*, val*))(var->class->vft[COLOR_model__MPropDefSorter__init]))(var, self) /* init on */; -CHECK_NEW_model__MPropDefSorter(var); var_sorter = var; ((void (*)(val*, val*))(var_sorter->class->vft[COLOR_sorter__AbstractSorter__sort]))(var_sorter, var_mpropdefs) /* sort on */; RET_LABEL:; @@ -777,7 +784,7 @@ long var13 /* : Int */; val* var14 /* : String */; val* var15 /* : MClass */; val* var16 /* : MClassType */; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__model]))(self) /* model on */; +var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__model]))(self) /* model on */; if (varonce) { var2 = varonce; } else { @@ -878,7 +885,7 @@ val* var42 /* : String */; val* var43 /* : String */; val* var44 /* : nullable Object */; var_name = p0; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__model]))(self) /* model on */; +var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__model]))(self) /* model on */; var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_model__Model__get_mclasses_by_name]))(var1, var_name) /* get_mclasses_by_name on */; var_cla = var2; var3 = NULL; @@ -904,7 +911,6 @@ var11 = 0; var12 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__enum_kind]))(self) /* enum_kind on */; var13 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__public_visibility]))(self) /* public_visibility on */; ((void (*)(val*, val*, val*, long, val*, val*))(var10->class->vft[COLOR_model__MClass__init]))(var10, self, var_name, var11, var12, var13) /* init on */; -CHECK_NEW_model__MClass(var10); var_c = var10; var14 = NEW_model__MClassDef(&type_model__MClassDef); var15 = ((val* (*)(val*))(var_c->class->vft[COLOR_model__MClass__mclass_type]))(var_c) /* mclass_type on */; @@ -915,12 +921,9 @@ var19 = 0; var20 = 0; var21 = 0; ((void (*)(val*, val*, long, long, long, long))(var16->class->vft[COLOR_location__Location__init]))(var16, var17, var18, var19, var20, var21) /* init on */; -CHECK_NEW_location__Location(var16); var22 = NEW_array__Array(&type_array__Arraystring__String); ((void (*)(val*))(var22->class->vft[COLOR_array__Array__init]))(var22) /* init on */; -CHECK_NEW_array__Array(var22); ((void (*)(val*, val*, val*, val*, val*))(var14->class->vft[COLOR_model__MClassDef__init]))(var14, self, var15, var16, var22) /* init on */; -CHECK_NEW_model__MClassDef(var14); var_cladef = var14; var = var_c; goto RET_LABEL; @@ -942,7 +945,6 @@ var30 = NEW_array__NativeArray(var29, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var30)->values[0] = (val*) var24; ((struct instance_array__NativeArray*)var30)->values[1] = (val*) var_name; ((void (*)(val*, val*, long))(var28->class->vft[COLOR_array__Array__with_native]))(var28, var30, var29) /* with_native on */; -CHECK_NEW_array__Array(var28); } var31 = ((val* (*)(val*))(var28->class->vft[COLOR_string__Object__to_s]))(var28) /* to_s on */; ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var31) /* print on */; @@ -951,8 +953,9 @@ var32 = 1; } else { } if (var_cla == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/model/model.nit", 225); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 225); +show_backtrace(1); } else { var33 = ((long (*)(val*))(var_cla->class->vft[COLOR_abstract_collection__Collection__length]))(var_cla) /* length on */; } @@ -974,18 +977,21 @@ var39 = var42; varonce38 = var39; } if (var_cla == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/model/model.nit", 225); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 225); +show_backtrace(1); } else { var43 = ((val* (*)(val*, val*))(var_cla->class->vft[COLOR_string__Collection__join]))(var_cla, var39) /* join on */; } ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var43) /* print on */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 225); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 225); +show_backtrace(1); } if (var_cla == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/model/model.nit", 226); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 226); +show_backtrace(1); } else { var44 = ((val* (*)(val*))(var_cla->class->vft[COLOR_abstract_collection__Collection__first]))(var_cla) /* first on */; } @@ -1065,7 +1071,7 @@ val* var46 /* : NativeArray[Object] */; val* var47 /* : String */; var_name = p0; var_recv = p1; -var1 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__model]))(self) /* model on */; +var1 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__model]))(self) /* model on */; var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_model__Model__get_mproperties_by_name]))(var1, var_name) /* get_mproperties_by_name on */; var_props = var2; var3 = NULL; @@ -1097,8 +1103,9 @@ var10 = 0; var10 = var_mprop->type->type_table[cltype] == idtype; } if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 236); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 236); +show_backtrace(1); } var11 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__intro_mclassdef]))(var_mprop) /* intro_mclassdef on */; var_intro = var11; @@ -1109,7 +1116,7 @@ var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iter if(!var14) break; var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on */; var_mclassdef = var15; -var16 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__MModule__in_importation]))(self) /* in_importation on */; +var16 = ((val* (*)(val*))(self->class->vft[COLOR_mmodule__MModule__in_importation]))(self) /* in_importation on */; var17 = ((val* (*)(val*))(var16->class->vft[COLOR_poset__POSetElement__greaters]))(var16) /* greaters on */; var18 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mmodule]))(var_mclassdef) /* mmodule on */; var19 = ((short int (*)(val*, val*))(var17->class->vft[COLOR_abstract_collection__Collection__has]))(var17, var18) /* has on */; @@ -1120,8 +1127,9 @@ goto CONTINUE_label; } var21 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__in_hierarchy]))(var_mclassdef) /* in_hierarchy on */; if (var21 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/model/model.nit", 240); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 240); +show_backtrace(1); } else { var22 = ((val* (*)(val*))(var21->class->vft[COLOR_poset__POSetElement__greaters]))(var21) /* greaters on */; } @@ -1182,12 +1190,12 @@ var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var46)->values[4] = (val*) var39; ((struct instance_array__NativeArray*)var46)->values[5] = (val*) var43; ((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on */; -CHECK_NEW_array__Array(var44); } var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on */; ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var47) /* print on */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/model/model.nit", 245); -exit(1); +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 245); +show_backtrace(1); } else { } } @@ -1219,8 +1227,9 @@ val* var /* : MModule */; val* var1 /* : MModule */; var1 = self->attrs[COLOR_model__MClassDefSorter___64dmmodule].val; /* @mmodule on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/model/model.nit", 255); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodule"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 255); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1251,57 +1260,63 @@ long var /* : Int */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; int cltype3; int idtype4; +const char* var_class_name5; val* var_a /* var a: MClassDef */; val* var_b /* var b: MClassDef */; -val* var5 /* : MClass */; -val* var_ca /* var ca: MClass */; val* var6 /* : MClass */; +val* var_ca /* var ca: MClass */; +val* var7 /* : MClass */; val* var_cb /* var cb: MClass */; -short int var7 /* : Bool */; -val* var8 /* : MModule */; -val* var9 /* : POSet[MClass] */; -long var10 /* : Int */; -val* var11 /* : MModule */; -val* var12 /* : Model */; -val* var13 /* : POSet[MClassDef] */; -long var14 /* : Int */; +short int var8 /* : Bool */; +val* var9 /* : MModule */; +val* var10 /* : POSet[MClass] */; +long var11 /* : Int */; +val* var12 /* : MModule */; +val* var13 /* : Model */; +val* var14 /* : POSet[MClassDef] */; +long var15 /* : Int */; /* Covariant cast for argument 0 (a) isa AbstractSorter#0 */ /* isa AbstractSorter#0 */ var1 = 1; /* easy isa AbstractSorter#0*/ if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 256); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 256); +show_backtrace(1); } /* Covariant cast for argument 1 (b) isa AbstractSorter#0 */ /* isa AbstractSorter#0 */ var2 = 1; /* easy isa AbstractSorter#0*/ if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 256); -exit(1); +var_class_name5 = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name5); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 256); +show_backtrace(1); } var_a = p0; var_b = p1; -var5 = ((val* (*)(val*))(var_a->class->vft[COLOR_model__MClassDef__mclass]))(var_a) /* mclass on */; -var_ca = var5; -var6 = ((val* (*)(val*))(var_b->class->vft[COLOR_model__MClassDef__mclass]))(var_b) /* mclass on */; -var_cb = var6; -var7 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___33d_61d]))(var_ca, var_cb) /* != on */; -if (var7){ -var8 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassDefSorter__mmodule]))(self) /* mmodule on */; -var9 = ((val* (*)(val*))(var8->class->vft[COLOR_model__MModule__flatten_mclass_hierarchy]))(var8) /* flatten_mclass_hierarchy on */; -var10 = ((long (*)(val*, val*, val*))(var9->class->vft[COLOR_sorter__AbstractSorter__compare]))(var9, var_ca, var_cb) /* compare on */; -var = var10; +var6 = ((val* (*)(val*))(var_a->class->vft[COLOR_model__MClassDef__mclass]))(var_a) /* mclass on */; +var_ca = var6; +var7 = ((val* (*)(val*))(var_b->class->vft[COLOR_model__MClassDef__mclass]))(var_b) /* mclass on */; +var_cb = var7; +var8 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___33d_61d]))(var_ca, var_cb) /* != on */; +if (var8){ +var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassDefSorter__mmodule]))(self) /* mmodule on */; +var10 = ((val* (*)(val*))(var9->class->vft[COLOR_model__MModule__flatten_mclass_hierarchy]))(var9) /* flatten_mclass_hierarchy on */; +var11 = ((long (*)(val*, val*, val*))(var10->class->vft[COLOR_sorter__AbstractSorter__compare]))(var10, var_ca, var_cb) /* compare on */; +var = var11; goto RET_LABEL; } else { } -var11 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassDefSorter__mmodule]))(self) /* mmodule on */; -var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model_base__MModule__model]))(var11) /* model on */; -var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__Model__mclassdef_hierarchy]))(var12) /* mclassdef_hierarchy on */; -var14 = ((long (*)(val*, val*, val*))(var13->class->vft[COLOR_sorter__AbstractSorter__compare]))(var13, var_a, var_b) /* compare on */; -var = var14; +var12 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassDefSorter__mmodule]))(self) /* mmodule on */; +var13 = ((val* (*)(val*))(var12->class->vft[COLOR_mmodule__MModule__model]))(var12) /* model on */; +var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__Model__mclassdef_hierarchy]))(var13) /* mclassdef_hierarchy on */; +var15 = ((long (*)(val*, val*, val*))(var14->class->vft[COLOR_sorter__AbstractSorter__compare]))(var14, var_a, var_b) /* compare on */; +var = var15; goto RET_LABEL; RET_LABEL:; return var; @@ -1331,8 +1346,9 @@ val* var /* : MModule */; val* var1 /* : MModule */; var1 = self->attrs[COLOR_model__MPropDefSorter___64dmmodule].val; /* @mmodule on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/model/model.nit", 267); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodule"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 267); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1363,65 +1379,71 @@ long var /* : Int */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; int cltype3; int idtype4; +const char* var_class_name5; val* var_pa /* var pa: MPropDef */; val* var_pb /* var pb: MPropDef */; -val* var5 /* : MClassDef */; -val* var_a /* var a: MClassDef */; val* var6 /* : MClassDef */; +val* var_a /* var a: MClassDef */; +val* var7 /* : MClassDef */; val* var_b /* var b: MClassDef */; -val* var7 /* : MClass */; -val* var_ca /* var ca: MClass */; val* var8 /* : MClass */; +val* var_ca /* var ca: MClass */; +val* var9 /* : MClass */; val* var_cb /* var cb: MClass */; -short int var9 /* : Bool */; -val* var10 /* : MModule */; -val* var11 /* : POSet[MClass] */; -long var12 /* : Int */; -val* var13 /* : MModule */; -val* var14 /* : Model */; -val* var15 /* : POSet[MClassDef] */; -long var16 /* : Int */; +short int var10 /* : Bool */; +val* var11 /* : MModule */; +val* var12 /* : POSet[MClass] */; +long var13 /* : Int */; +val* var14 /* : MModule */; +val* var15 /* : Model */; +val* var16 /* : POSet[MClassDef] */; +long var17 /* : Int */; /* Covariant cast for argument 0 (pa) isa AbstractSorter#0 */ /* isa AbstractSorter#0 */ var1 = 1; /* easy isa AbstractSorter#0*/ if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 268); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 268); +show_backtrace(1); } /* Covariant cast for argument 1 (pb) isa AbstractSorter#0 */ /* isa AbstractSorter#0 */ var2 = 1; /* easy isa AbstractSorter#0*/ if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 268); -exit(1); +var_class_name5 = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name5); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 268); +show_backtrace(1); } var_pa = p0; var_pb = p1; -var5 = ((val* (*)(val*))(var_pa->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pa) /* mclassdef on */; -var_a = var5; -var6 = ((val* (*)(val*))(var_pb->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pb) /* mclassdef on */; -var_b = var6; -var7 = ((val* (*)(val*))(var_a->class->vft[COLOR_model__MClassDef__mclass]))(var_a) /* mclass on */; -var_ca = var7; -var8 = ((val* (*)(val*))(var_b->class->vft[COLOR_model__MClassDef__mclass]))(var_b) /* mclass on */; -var_cb = var8; -var9 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___33d_61d]))(var_ca, var_cb) /* != on */; -if (var9){ -var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDefSorter__mmodule]))(self) /* mmodule on */; -var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MModule__flatten_mclass_hierarchy]))(var10) /* flatten_mclass_hierarchy on */; -var12 = ((long (*)(val*, val*, val*))(var11->class->vft[COLOR_sorter__AbstractSorter__compare]))(var11, var_ca, var_cb) /* compare on */; -var = var12; +var6 = ((val* (*)(val*))(var_pa->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pa) /* mclassdef on */; +var_a = var6; +var7 = ((val* (*)(val*))(var_pb->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pb) /* mclassdef on */; +var_b = var7; +var8 = ((val* (*)(val*))(var_a->class->vft[COLOR_model__MClassDef__mclass]))(var_a) /* mclass on */; +var_ca = var8; +var9 = ((val* (*)(val*))(var_b->class->vft[COLOR_model__MClassDef__mclass]))(var_b) /* mclass on */; +var_cb = var9; +var10 = ((short int (*)(val*, val*))(var_ca->class->vft[COLOR_kernel__Object___33d_61d]))(var_ca, var_cb) /* != on */; +if (var10){ +var11 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDefSorter__mmodule]))(self) /* mmodule on */; +var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MModule__flatten_mclass_hierarchy]))(var11) /* flatten_mclass_hierarchy on */; +var13 = ((long (*)(val*, val*, val*))(var12->class->vft[COLOR_sorter__AbstractSorter__compare]))(var12, var_ca, var_cb) /* compare on */; +var = var13; goto RET_LABEL; } else { } -var13 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDefSorter__mmodule]))(self) /* mmodule on */; -var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model_base__MModule__model]))(var13) /* model on */; -var15 = ((val* (*)(val*))(var14->class->vft[COLOR_model__Model__mclassdef_hierarchy]))(var14) /* mclassdef_hierarchy on */; -var16 = ((long (*)(val*, val*, val*))(var15->class->vft[COLOR_sorter__AbstractSorter__compare]))(var15, var_a, var_b) /* compare on */; -var = var16; +var14 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDefSorter__mmodule]))(self) /* mmodule on */; +var15 = ((val* (*)(val*))(var14->class->vft[COLOR_mmodule__MModule__model]))(var14) /* model on */; +var16 = ((val* (*)(val*))(var15->class->vft[COLOR_model__Model__mclassdef_hierarchy]))(var15) /* mclassdef_hierarchy on */; +var17 = ((long (*)(val*, val*, val*))(var16->class->vft[COLOR_sorter__AbstractSorter__compare]))(var16, var_a, var_b) /* compare on */; +var = var17; goto RET_LABEL; RET_LABEL:; return var; @@ -1451,8 +1473,9 @@ val* var /* : MModule */; val* var1 /* : MModule */; var1 = self->attrs[COLOR_model__MClass___64dintro_mmodule].val; /* @intro_mmodule on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @intro_mmodule", "src/model/model.nit", 290); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @intro_mmodule"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 290); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1483,8 +1506,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_model__MClass___64dname].val; /* @name on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/model/model.nit", 295); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 295); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1537,7 +1561,6 @@ val* var20 /* : String */; var1 = NEW_array__Array(&type_array__Arraykernel__Object); var2 = 5; ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -CHECK_NEW_array__Array(var1); var_ = var1; if (varonce) { var3 = varonce; @@ -1550,7 +1573,7 @@ varonce = var3; } ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on */; var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__intro_mmodule]))(self) /* intro_mmodule on */; -var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model_base__MModule__full_name]))(var7) /* full_name on */; +var8 = ((val* (*)(val*))(var7->class->vft[COLOR_mmodule__MModule__full_name]))(var7) /* full_name on */; ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var8) /* add on */; if (varonce9) { var10 = varonce9; @@ -1623,8 +1646,9 @@ val* var /* : MClassKind */; val* var1 /* : MClassKind */; var1 = self->attrs[COLOR_model__MClass___64dkind].val; /* @kind on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @kind", "src/model/model.nit", 310); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @kind"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 310); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1655,8 +1679,9 @@ val* var /* : MVisibility */; val* var1 /* : MVisibility */; var1 = self->attrs[COLOR_model__MClass___64dvisibility].val; /* @visibility on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @visibility", "src/model/model.nit", 314); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @visibility"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 314); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1698,6 +1723,7 @@ short int var5 /* : Bool */; short int var7 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var8 /* : Bool */; val* var9 /* : Array[MParameterType] */; val* var_mparametertypes /* var mparametertypes: Array[MParameterType] */; @@ -1728,7 +1754,7 @@ var_visibility = p4; ((void (*)(val*, val*))(self->class->vft[COLOR_model__MClass__visibility_61d]))(self, var_visibility) /* visibility= on */; var = ((val* (*)(val*))(var_intro_mmodule->class->vft[COLOR_model__MModule__intro_mclasses]))(var_intro_mmodule) /* intro_mclasses on */; ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, self) /* add on */; -var1 = ((val* (*)(val*))(var_intro_mmodule->class->vft[COLOR_model_base__MModule__model]))(var_intro_mmodule) /* model on */; +var1 = ((val* (*)(val*))(var_intro_mmodule->class->vft[COLOR_mmodule__MModule__model]))(var_intro_mmodule) /* model on */; var_model = var1; var2 = ((val* (*)(val*))(var_model->class->vft[COLOR_model__Model__mclasses_by_name]))(var_model) /* mclasses_by_name on */; ((void (*)(val*, val*, val*))(var2->class->vft[COLOR_more_collections__MultiHashMap__add_one]))(var2, var_name, self) /* add_one on */; @@ -1740,8 +1766,10 @@ var4 = 0; /* isa OTHER */ var7 = 1; /* easy isa OTHER*/ if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +var_class_name = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); } var8 = var_arity > var4; var5 = var8; @@ -1751,14 +1779,12 @@ RET_LABEL6:(void)0; if (var5){ var9 = NEW_array__Array(&type_array__Arraymodel__MParameterType); ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on */; -CHECK_NEW_array__Array(var9); var_mparametertypes = var9; var10 = NEW_range__Range(&type_range__Rangekernel__Int); var11 = 0; var12 = BOX_kernel__Int(var11); /* autobox from Int to Discrete */ var13 = BOX_kernel__Int(var_arity); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var10->class->vft[COLOR_range__Range__without_last]))(var10, var12, var13) /* without_last on */; -CHECK_NEW_range__Range(var10); var14 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__iterator]))(var10) /* iterator on */; for(;;) { var15 = ((short int (*)(val*))(var14->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var14) /* is_ok on */; @@ -1768,7 +1794,6 @@ var17 = ((struct instance_kernel__Int*)var16)->value; /* autounbox from nullable var_i = var17; var18 = NEW_model__MParameterType(&type_model__MParameterType); ((void (*)(val*, val*, long))(var18->class->vft[COLOR_model__MParameterType__init]))(var18, self, var_i) /* init on */; -CHECK_NEW_model__MParameterType(var18); var_mparametertype = var18; ((void (*)(val*, val*))(var_mparametertypes->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_mparametertypes, var_mparametertype) /* add on */; CONTINUE_label: (void)0; @@ -1777,7 +1802,6 @@ CONTINUE_label: (void)0; BREAK_label: (void)0; var19 = NEW_model__MGenericType(&type_model__MGenericType); ((void (*)(val*, val*, val*))(var19->class->vft[COLOR_model__MGenericType__init]))(var19, self, var_mparametertypes) /* init on */; -CHECK_NEW_model__MGenericType(var19); var_mclass_type = var19; ((void (*)(val*, val*))(self->class->vft[COLOR_model__MClass__mclass_type_61d]))(self, var_mclass_type) /* mclass_type= on */; var20 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__get_mtype_cache]))(self) /* get_mtype_cache on */; @@ -1785,7 +1809,6 @@ var20 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__get_mtype_cache] } else { var21 = NEW_model__MClassType(&type_model__MClassType); ((void (*)(val*, val*))(var21->class->vft[COLOR_model__MClassType__init]))(var21, self) /* init on */; -CHECK_NEW_model__MClassType(var21); ((void (*)(val*, val*))(self->class->vft[COLOR_model__MClass__mclass_type_61d]))(self, var21) /* mclass_type= on */; } RET_LABEL:; @@ -1801,8 +1824,9 @@ val* var /* : Array[MClassDef] */; val* var1 /* : Array[MClassDef] */; var1 = self->attrs[COLOR_model__MClass___64dmclassdefs].val; /* @mclassdefs on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclassdefs", "src/model/model.nit", 345); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclassdefs"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 345); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1858,8 +1882,9 @@ var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__mclassdefs]))(sel var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var1) /* is_empty on */; var3 = !var2; if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert \'has_a_first_definition\' failed", "src/model/model.nit", 357); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert \'has_a_first_definition\' failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 357); +show_backtrace(1); } var4 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__mclassdefs]))(self) /* mclassdefs on */; var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__first]))(var4) /* first on */; @@ -1906,8 +1931,9 @@ val* var /* : MClassType */; val* var1 /* : MClassType */; var1 = self->attrs[COLOR_model__MClass___64dmclass_type].val; /* @mclass_type on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclass_type", "src/model/model.nit", 370); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclass_type"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 370); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1965,8 +1991,9 @@ goto RET_LABEL4; RET_LABEL4:(void)0; } if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 393); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 393); +show_backtrace(1); } var6 = ((long (*)(val*))(self->class->vft[COLOR_model__MClass__arity]))(self) /* arity on */; var7 = 0; @@ -2002,7 +2029,6 @@ CONTINUE_label: (void)0; BREAK_label: (void)0; var18 = NEW_model__MGenericType(&type_model__MGenericType); ((void (*)(val*, val*, val*))(var18->class->vft[COLOR_model__MGenericType__init]))(var18, self, var_mtype_arguments) /* init on */; -CHECK_NEW_model__MGenericType(var18); var_res = var18; var19 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__get_mtype_cache]))(self) /* get_mtype_cache on */; ((void (*)(val*, val*))(var19->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var19, var_res) /* add on */; @@ -2026,8 +2052,9 @@ val* var /* : Array[MGenericType] */; val* var1 /* : Array[MGenericType] */; var1 = self->attrs[COLOR_model__MClass___64dget_mtype_cache].val; /* @get_mtype_cache on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @get_mtype_cache", "src/model/model.nit", 405); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @get_mtype_cache"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 405); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2058,8 +2085,9 @@ val* var /* : MModule */; val* var1 /* : MModule */; var1 = self->attrs[COLOR_model__MClassDef___64dmmodule].val; /* @mmodule on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/model/model.nit", 415); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodule"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 415); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2090,8 +2118,9 @@ val* var /* : MClass */; val* var1 /* : MClass */; var1 = self->attrs[COLOR_model__MClassDef___64dmclass].val; /* @mclass on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclass", "src/model/model.nit", 418); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclass"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 418); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2122,8 +2151,9 @@ val* var /* : MClassType */; val* var1 /* : MClassType */; var1 = self->attrs[COLOR_model__MClassDef___64dbound_mtype].val; /* @bound_mtype on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @bound_mtype", "src/model/model.nit", 421); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @bound_mtype"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 421); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2154,8 +2184,9 @@ val* var /* : Array[String] */; val* var1 /* : Array[String] */; var1 = self->attrs[COLOR_model__MClassDef___64dparameter_names].val; /* @parameter_names on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @parameter_names", "src/model/model.nit", 433); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @parameter_names"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 433); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2186,8 +2217,9 @@ val* var /* : Location */; val* var1 /* : Location */; var1 = self->attrs[COLOR_model__MClassDef___64dlocation].val; /* @location on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @location", "src/model/model.nit", 436); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @location"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 436); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2218,8 +2250,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_model__MClassDef___64dto_s].val; /* @to_s on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @to_s", "src/model/model.nit", 439); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @to_s"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 439); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2283,8 +2316,9 @@ goto RET_LABEL4; RET_LABEL4:(void)0; } if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 445); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 445); +show_backtrace(1); } ((void (*)(val*, val*))(self->class->vft[COLOR_model__MClassDef__bound_mtype_61d]))(self, var_bound_mtype) /* bound_mtype= on */; ((void (*)(val*, val*))(self->class->vft[COLOR_model__MClassDef__mmodule_61d]))(self, var_mmodule) /* mmodule= on */; @@ -2315,7 +2349,6 @@ var17 = NEW_array__NativeArray(var16, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var17)->values[1] = (val*) var10; ((struct instance_array__NativeArray*)var17)->values[2] = (val*) var14; ((void (*)(val*, val*, long))(var15->class->vft[COLOR_array__Array__with_native]))(var15, var17, var16) /* with_native on */; -CHECK_NEW_array__Array(var15); } var18 = ((val* (*)(val*))(var15->class->vft[COLOR_string__Object__to_s]))(var15) /* to_s on */; ((void (*)(val*, val*))(self->class->vft[COLOR_model__MClassDef__to_s_61d]))(self, var18) /* to_s= on */; @@ -2332,8 +2365,9 @@ val* var /* : Array[MClassType] */; val* var1 /* : Array[MClassType] */; var1 = self->attrs[COLOR_model__MClassDef___64dsupertypes].val; /* @supertypes on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @supertypes", "src/model/model.nit", 456); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @supertypes"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 456); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2394,12 +2428,13 @@ var2 = 1; /* is null */ var2 = 0; /* arg is null but recv is not */ } if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert \'unique_invocation\' failed", "src/model/model.nit", 466); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert \'unique_invocation\' failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 466); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassDef__mmodule]))(self) /* mmodule on */; var_mmodule = var3; -var4 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_model_base__MModule__model]))(var_mmodule) /* model on */; +var4 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__model]))(var_mmodule) /* model on */; var_model = var4; var5 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassDef__bound_mtype]))(self) /* bound_mtype on */; var_mtype = var5; @@ -2469,11 +2504,12 @@ var2 = 1; /* is null */ var2 = 0; /* arg is null but recv is not */ } if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert \'unique_invocation\' failed", "src/model/model.nit", 491); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert \'unique_invocation\' failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 491); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassDef__mmodule]))(self) /* mmodule on */; -var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model_base__MModule__model]))(var3) /* model on */; +var4 = ((val* (*)(val*))(var3->class->vft[COLOR_mmodule__MModule__model]))(var3) /* model on */; var_model = var4; var5 = ((val* (*)(val*))(var_model->class->vft[COLOR_model__Model__mclassdef_hierarchy]))(var_model) /* mclassdef_hierarchy on */; var6 = ((val* (*)(val*, val*))(var5->class->vft[COLOR_poset__POSet__add_node]))(var5, self) /* add_node on */; @@ -2559,8 +2595,9 @@ val* var /* : Array[MProperty] */; val* var1 /* : Array[MProperty] */; var1 = self->attrs[COLOR_model__MClassDef___64dintro_mproperties].val; /* @intro_mproperties on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @intro_mproperties", "src/model/model.nit", 510); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @intro_mproperties"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 510); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2591,8 +2628,9 @@ val* var /* : Array[MPropDef] */; val* var1 /* : Array[MPropDef] */; var1 = self->attrs[COLOR_model__MClassDef___64dmpropdefs].val; /* @mpropdefs on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdefs", "src/model/model.nit", 513); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mpropdefs"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 513); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2620,8 +2658,11 @@ RET_LABEL:; /* method model#MType#model for (self: MType): Model */ val* model__MType__model(val* self) { val* var /* : Model */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/model/model.nit", 546); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "model", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 546); +show_backtrace(1); RET_LABEL:; return var; } @@ -2809,27 +2850,31 @@ if (var4){ var5 = ((short int (*)(val*))(var_sub->class->vft[COLOR_model__MType__need_anchor]))(var_sub) /* need_anchor on */; var6 = !var5; if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 559); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 559); +show_backtrace(1); } var7 = ((short int (*)(val*))(var_sup->class->vft[COLOR_model__MType__need_anchor]))(var_sup) /* need_anchor on */; var8 = !var7; if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 560); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 560); +show_backtrace(1); } } else { var9 = NULL; var10 = ((short int (*)(val*, val*, val*, val*))(var_sub->class->vft[COLOR_model__MType__can_resolve_for]))(var_sub, var_anchor, var9, var_mmodule) /* can_resolve_for on */; if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 562); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 562); +show_backtrace(1); } var11 = NULL; var12 = ((short int (*)(val*, val*, val*, val*))(var_sup->class->vft[COLOR_model__MType__can_resolve_for]))(var_sup, var_anchor, var11, var_mmodule) /* can_resolve_for on */; if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 563); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 563); +show_backtrace(1); } } /* isa MParameterType */ @@ -2862,8 +2907,9 @@ var19 = 0; /* is null */ var19 = 1; /* arg is null and recv is not */ } if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 570); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 570); +show_backtrace(1); } var20 = ((val* (*)(val*))(var_anchor->class->vft[COLOR_model__MClassType__mclass]))(var_anchor) /* mclass on */; var21 = ((val* (*)(val*))(var20->class->vft[COLOR_model__MClass__mclass_type]))(var20) /* mclass_type on */; @@ -2902,8 +2948,9 @@ var33 = 0; /* is null */ var33 = 1; /* arg is null and recv is not */ } if (!var33) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 574); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 574); +show_backtrace(1); } var34 = ((val* (*)(val*))(var_anchor->class->vft[COLOR_model__MClassType__mclass]))(var_anchor) /* mclass on */; var35 = ((val* (*)(val*))(var34->class->vft[COLOR_model__MClass__mclass_type]))(var34) /* mclass_type on */; @@ -3033,8 +3080,9 @@ var75 = 0; /* is null */ var75 = 1; /* arg is null and recv is not */ } if (!var75) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 606); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 606); +show_backtrace(1); } var76 = ((val* (*)(val*, val*, val*))(var_sub->class->vft[COLOR_model__MType__anchor_to]))(var_sub, var_mmodule, var_anchor) /* anchor_to on */; var_sub = var76; @@ -3082,8 +3130,9 @@ var86 = 0; var86 = var_sub->type->type_table[cltype87] == idtype88; } if (!var86) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 618); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 618); +show_backtrace(1); } /* isa MNullType */ cltype90 = type_model__MNullType.color; @@ -3108,8 +3157,9 @@ var93 = 0; var93 = var_sup->type->type_table[cltype94] == idtype95; } if (!var93) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 625); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 625); +show_backtrace(1); } var96 = ((short int (*)(val*, val*))(var_sub->class->vft[COLOR_kernel__Object___61d_61d]))(var_sub, var_sup) /* == on */; if (var96){ @@ -3169,8 +3219,9 @@ var116 = ((val* (*)(val*))(var_sub2->class->vft[COLOR_model__MClassType__mclass] var117 = ((val* (*)(val*))(var_sup->class->vft[COLOR_model__MClassType__mclass]))(var_sup) /* mclass on */; var118 = ((short int (*)(val*, val*))(var116->class->vft[COLOR_kernel__Object___61d_61d]))(var116, var117) /* == on */; if (!var118) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 637); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 637); +show_backtrace(1); } var119 = NEW_range__Range(&type_range__Rangekernel__Int); var120 = 0; @@ -3179,7 +3230,6 @@ var122 = ((long (*)(val*))(var121->class->vft[COLOR_model__MClass__arity]))(var1 var123 = BOX_kernel__Int(var120); /* autobox from Int to Discrete */ var124 = BOX_kernel__Int(var122); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var119->class->vft[COLOR_range__Range__without_last]))(var119, var123, var124) /* without_last on */; -CHECK_NEW_range__Range(var119); var125 = ((val* (*)(val*))(var119->class->vft[COLOR_abstract_collection__Collection__iterator]))(var119) /* iterator on */; for(;;) { var126 = ((short int (*)(val*))(var125->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var125) /* is_ok on */; @@ -3254,8 +3304,9 @@ goto RET_LABEL; var3 = ((short int (*)(val*))(var_anchor->class->vft[COLOR_model__MType__need_anchor]))(var_anchor) /* need_anchor on */; var4 = !var3; if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 682); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 682); +show_backtrace(1); } var5 = NULL; var6 = 1; @@ -3264,8 +3315,9 @@ var_res = var7; var8 = ((short int (*)(val*))(var_res->class->vft[COLOR_model__MType__need_anchor]))(var_res) /* need_anchor on */; var9 = !var8; if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 685); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 685); +show_backtrace(1); } var = var_res; goto RET_LABEL; @@ -3380,8 +3432,9 @@ var13 = 0; /* is null */ var13 = 1; /* arg is null and recv is not */ } if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 711); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 711); +show_backtrace(1); } var14 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MType__anchor_to]))(self, var_mmodule, var_anchor) /* anchor_to on */; var_resolved_self = var14; @@ -3409,8 +3462,9 @@ CONTINUE_label: (void)0; ((void (*)(val*))(var16->class->vft[COLOR_abstract_collection__Iterator__next]))(var16) /* next on */; } BREAK_label: (void)0; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/model/model.nit", 723); -exit(1); +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 723); +show_backtrace(1); RET_LABEL:; return var; } @@ -3426,8 +3480,11 @@ return var; /* method model#MType#resolve_for for (self: MType, MType, nullable MClassType, MModule, Bool): MType */ val* model__MType__resolve_for(val* self, val* p0, val* p1, val* p2, short int p3) { val* var /* : MType */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/model/model.nit", 726); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "resolve_for", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 726); +show_backtrace(1); RET_LABEL:; return var; } @@ -3443,8 +3500,11 @@ return var; /* method model#MType#can_resolve_for for (self: MType, MType, nullable MClassType, MModule): Bool */ short int model__MType__can_resolve_for(val* self, val* p0, val* p1, val* p2) { short int var /* : Bool */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/model/model.nit", 798); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "can_resolve_for", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 798); +show_backtrace(1); RET_LABEL:; return var; } @@ -3480,7 +3540,6 @@ goto RET_LABEL; } var4 = NEW_model__MNullableType(&type_model__MNullableType); ((void (*)(val*, val*))(var4->class->vft[COLOR_model__MNullableType__init]))(var4, self) /* init on */; -CHECK_NEW_model__MNullableType(var4); var_res = var4; ((void (*)(val*, val*))(self->class->vft[COLOR_model__MType__as_nullable_cache_61d]))(self, var_res) /* as_nullable_cache= on */; var = var_res; @@ -3566,8 +3625,11 @@ return var; /* method model#MType#collect_mclassdefs for (self: MType, MModule): Set[MClassDef] */ val* model__MType__collect_mclassdefs(val* self, val* p0) { val* var /* : Set[MClassDef] */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/model/model.nit", 860); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "collect_mclassdefs", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 860); +show_backtrace(1); RET_LABEL:; return var; } @@ -3583,8 +3645,11 @@ return var; /* method model#MType#collect_mclasses for (self: MType, MModule): Set[MClass] */ val* model__MType__collect_mclasses(val* self, val* p0) { val* var /* : Set[MClass] */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/model/model.nit", 870); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "collect_mclasses", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 870); +show_backtrace(1); RET_LABEL:; return var; } @@ -3600,8 +3665,11 @@ return var; /* method model#MType#collect_mtypes for (self: MType, MModule): Set[MClassType] */ val* model__MType__collect_mtypes(val* self, val* p0) { val* var /* : Set[MClassType] */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/model/model.nit", 876); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "collect_mtypes", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 876); +show_backtrace(1); RET_LABEL:; return var; } @@ -3629,8 +3697,9 @@ var_mproperty = p1; var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 889); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 889); +show_backtrace(1); } var3 = ((val* (*)(val*, val*))(self->class->vft[COLOR_model__MType__collect_mclassdefs]))(self, var_mmodule) /* collect_mclassdefs on */; var4 = ((val* (*)(val*))(var_mproperty->class->vft[COLOR_model__MProperty__intro_mclassdef]))(var_mproperty) /* intro_mclassdef on */; @@ -3664,8 +3733,9 @@ val* var /* : MClass */; val* var1 /* : MClass */; var1 = self->attrs[COLOR_model__MClassType___64dmclass].val; /* @mclass on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclass", "src/model/model.nit", 900); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclass"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 900); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -3698,7 +3768,7 @@ val* var2 /* : MModule */; val* var3 /* : Model */; var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on */; var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__intro_mmodule]))(var1) /* intro_mmodule on */; -var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model_base__MModule__model]))(var2) /* model on */; +var3 = ((val* (*)(val*))(var2->class->vft[COLOR_mmodule__MModule__model]))(var2) /* model on */; var = var3; goto RET_LABEL; RET_LABEL:; @@ -3732,8 +3802,9 @@ val* var /* : Array[MType] */; val* var1 /* : Array[MType] */; var1 = self->attrs[COLOR_model__MClassType___64darguments].val; /* @arguments on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @arguments", "src/model/model.nit", 910); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @arguments"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 910); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -3807,6 +3878,7 @@ val* var1 /* : MType */; short int var2 /* : Bool */; int cltype; int idtype; +const char* var_class_name; var_mmodule = p0; var_anchor = p1; var1 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MClassType__anchor_to]))(self, p0, p1) /* anchor_to on */; @@ -3819,8 +3891,10 @@ var2 = 0; var2 = var1->type->type_table[cltype] == idtype; } if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 920); -exit(1); +var_class_name = var1 == NULL ? "null" : var1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 920); +show_backtrace(1); } var = var1; goto RET_LABEL; @@ -3901,8 +3975,9 @@ var_mmodule = p0; var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 929); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 929); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__collect_mclassdefs_cache]))(self) /* collect_mclassdefs_cache on */; var_cache = var3; @@ -3942,8 +4017,9 @@ var_mmodule = p0; var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 939); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 939); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__collect_mclasses_cache]))(self) /* collect_mclasses_cache on */; var_cache = var3; @@ -3983,8 +4059,9 @@ var_mmodule = p0; var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 949); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 949); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__collect_mtypes_cache]))(self) /* collect_mtypes_cache on */; var_cache = var3; @@ -4051,22 +4128,18 @@ val* var28 /* : HashMap[MModule, Set[MClassType]] */; var_mmodule = p0; var = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef); ((void (*)(val*))(var->class->vft[COLOR_hash_collection__HashSet__init]))(var) /* init on */; -CHECK_NEW_hash_collection__HashSet(var); var_res = var; var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass); ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on */; -CHECK_NEW_hash_collection__HashSet(var1); var_seen = var1; var2 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType); ((void (*)(val*))(var2->class->vft[COLOR_hash_collection__HashSet__init]))(var2) /* init on */; -CHECK_NEW_hash_collection__HashSet(var2); var_types = var2; var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on */; ((void (*)(val*, val*))(var_seen->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_seen, var3) /* add on */; var4 = NEW_array__Array(&type_array__Arraymodel__MClass); var5 = 1; ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on */; -CHECK_NEW_array__Array(var4); var_ = var4; var6 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on */; ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var6) /* push on */; @@ -4084,7 +4157,7 @@ var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iter if(!var12) break; var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on */; var_mclassdef = var13; -var14 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_model_base__MModule__in_importation]))(var_mmodule) /* in_importation on */; +var14 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__in_importation]))(var_mmodule) /* in_importation on */; var15 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mmodule]))(var_mclassdef) /* mmodule on */; var16 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_poset__POSetElement___60d_61d]))(var14, var15) /* <= on */; var17 = !var16; @@ -4140,8 +4213,9 @@ val* var /* : HashMap[MModule, Set[MClassDef]] */; val* var1 /* : HashMap[MModule, Set[MClassDef]] */; var1 = self->attrs[COLOR_model__MClassType___64dcollect_mclassdefs_cache].val; /* @collect_mclassdefs_cache on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @collect_mclassdefs_cache", "src/model/model.nit", 987); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @collect_mclassdefs_cache"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 987); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -4172,8 +4246,9 @@ val* var /* : HashMap[MModule, Set[MClass]] */; val* var1 /* : HashMap[MModule, Set[MClass]] */; var1 = self->attrs[COLOR_model__MClassType___64dcollect_mclasses_cache].val; /* @collect_mclasses_cache on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @collect_mclasses_cache", "src/model/model.nit", 988); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @collect_mclasses_cache"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 988); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -4204,8 +4279,9 @@ val* var /* : HashMap[MModule, Set[MClassType]] */; val* var1 /* : HashMap[MModule, Set[MClassType]] */; var1 = self->attrs[COLOR_model__MClassType___64dcollect_mtypes_cache].val; /* @collect_mtypes_cache on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @collect_mtypes_cache", "src/model/model.nit", 989); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @collect_mtypes_cache"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 989); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -4279,8 +4355,9 @@ goto RET_LABEL4; RET_LABEL4:(void)0; } if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1001); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1001); +show_backtrace(1); } ((void (*)(val*, val*))(self->class->vft[COLOR_model__MClassType__arguments_61d]))(self, var_arguments) /* arguments= on */; var6 = 0; @@ -4339,7 +4416,6 @@ var29 = NEW_array__NativeArray(var28, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var29)->values[2] = (val*) var21; ((struct instance_array__NativeArray*)var29)->values[3] = (val*) var23; ((void (*)(val*, val*, long))(var27->class->vft[COLOR_array__Array__with_native]))(var27, var29, var28) /* with_native on */; -CHECK_NEW_array__Array(var27); } var30 = ((val* (*)(val*))(var27->class->vft[COLOR_string__Object__to_s]))(var27) /* to_s on */; ((void (*)(val*, val*))(self->class->vft[COLOR_model__MGenericType__to_s_61d]))(self, var30) /* to_s= on */; @@ -4356,8 +4432,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_model__MGenericType___64dto_s].val; /* @to_s on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @to_s", "src/model/model.nit", 1015); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @to_s"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1015); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -4443,12 +4520,12 @@ goto RET_LABEL; } var3 = ((short int (*)(val*, val*, val*, val*))(self->class->vft[COLOR_model__MType__can_resolve_for]))(self, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on */; if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1024); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1024); +show_backtrace(1); } var4 = NEW_array__Array(&type_array__Arraymodel__MType); ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on */; -CHECK_NEW_array__Array(var4); var_types = var4; var5 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__arguments]))(self) /* arguments on */; var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on */; @@ -4558,6 +4635,7 @@ short int var7 /* : Bool */; short int var9 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var10 /* : Bool */; long var11 /* : Int */; long var12 /* : Int */; @@ -4578,8 +4656,10 @@ var_d = var6; /* isa OTHER */ var9 = 1; /* easy isa OTHER*/ if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +var_class_name = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); } var10 = var_d > var_dmax; var7 = var10; @@ -4669,8 +4749,9 @@ val* var /* : MProperty */; val* var1 /* : MProperty */; var1 = self->attrs[COLOR_model__MVirtualType___64dmproperty].val; /* @mproperty on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mproperty", "src/model/model.nit", 1066); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mproperty"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1066); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -4705,7 +4786,7 @@ val* var4 /* : Model */; var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MVirtualType__mproperty]))(self) /* mproperty on */; var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MProperty__intro_mclassdef]))(var1) /* intro_mclassdef on */; var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model__MClassDef__mmodule]))(var2) /* mmodule on */; -var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model_base__MModule__model]))(var3) /* model on */; +var4 = ((val* (*)(val*))(var3->class->vft[COLOR_mmodule__MModule__model]))(var3) /* model on */; var = var4; goto RET_LABEL; RET_LABEL:; @@ -4739,6 +4820,7 @@ val* var11 /* : nullable Object */; short int var12 /* : Bool */; int cltype; int idtype; +const char* var_class_name; val* var13 /* : nullable MType */; val* var14 /* : ArraySet[MType] */; val* var_types /* var types: ArraySet[MType] */; @@ -4749,27 +4831,30 @@ val* var_p /* var p: MPropDef */; short int var18 /* : Bool */; int cltype19; int idtype20; -val* var21 /* : nullable MType */; -long var22 /* : Int */; +const char* var_class_name21; +val* var22 /* : nullable MType */; long var23 /* : Int */; -short int var24 /* : Bool */; -short int var26 /* : Bool */; -val* var27 /* : nullable Object */; +long var24 /* : Int */; +short int var25 /* : Bool */; +short int var27 /* : Bool */; +val* var28 /* : nullable Object */; var_mmodule = p0; var_resolved_receiver = p1; var1 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1080); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1080); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MVirtualType__mproperty]))(self) /* mproperty on */; var4 = ((val* (*)(val*, val*, val*))(var3->class->vft[COLOR_model__MProperty__lookup_definitions]))(var3, var_mmodule, var_resolved_receiver) /* lookup_definitions on */; var_props = var4; var5 = ((short int (*)(val*))(var_props->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_props) /* is_empty on */; if (var5){ -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/model/model.nit", 1083); -exit(1); +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1083); +show_backtrace(1); } else { var6 = ((long (*)(val*))(var_props->class->vft[COLOR_abstract_collection__Collection__length]))(var_props) /* length on */; var7 = 1; @@ -4790,13 +4875,16 @@ var12 = 0; var12 = var11->type->type_table[cltype] == idtype; } if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1085); -exit(1); +var_class_name = var11 == NULL ? "null" : var11->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1085); +show_backtrace(1); } var13 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MVirtualTypeDef__bound]))(var11) /* bound on */; if (var13 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1085); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1085); +show_backtrace(1); } var = var13; goto RET_LABEL; @@ -4805,7 +4893,6 @@ goto RET_LABEL; } var14 = NEW_array__ArraySet(&type_array__ArraySetmodel__MType); ((void (*)(val*))(var14->class->vft[COLOR_array__ArraySet__init]))(var14) /* init on */; -CHECK_NEW_array__ArraySet(var14); var_types = var14; var15 = ((val* (*)(val*))(var_props->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_props) /* iterator on */; for(;;) { @@ -4822,35 +4909,39 @@ var18 = 0; var18 = var_p->type->type_table[cltype19] == idtype20; } if (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1089); -exit(1); -} -var21 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MVirtualTypeDef__bound]))(var_p) /* bound on */; -if (var21 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1089); -exit(1); -} -((void (*)(val*, val*))(var_types->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_types, var21) /* add on */; +var_class_name21 = var_p == NULL ? "null" : var_p->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MVirtualTypeDef", var_class_name21); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1089); +show_backtrace(1); +} +var22 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MVirtualTypeDef__bound]))(var_p) /* bound on */; +if (var22 == NULL) { +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1089); +show_backtrace(1); +} +((void (*)(val*, val*))(var_types->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_types, var22) /* add on */; CONTINUE_label: (void)0; ((void (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__next]))(var15) /* next on */; } BREAK_label: (void)0; -var22 = ((long (*)(val*))(var_types->class->vft[COLOR_abstract_collection__Collection__length]))(var_types) /* length on */; -var23 = 1; -{ /* Inline kernel#Int#== (var22,var23) */ -var26 = var22 == var23; -var24 = var26; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var23 = ((long (*)(val*))(var_types->class->vft[COLOR_abstract_collection__Collection__length]))(var_types) /* length on */; +var24 = 1; +{ /* Inline kernel#Int#== (var23,var24) */ +var27 = var23 == var24; +var25 = var27; +goto RET_LABEL26; +RET_LABEL26:(void)0; } -if (var24){ -var27 = ((val* (*)(val*))(var_types->class->vft[COLOR_abstract_collection__Collection__first]))(var_types) /* first on */; -var = var27; +if (var25){ +var28 = ((val* (*)(val*))(var_types->class->vft[COLOR_abstract_collection__Collection__first]))(var_types) /* first on */; +var = var28; goto RET_LABEL; } else { } -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/model/model.nit", 1094); -exit(1); +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1094); +show_backtrace(1); RET_LABEL:; return var; } @@ -4889,6 +4980,7 @@ val* var11 /* : MType */; short int var12 /* : Bool */; int cltype13; int idtype14; +const char* var_class_name; val* var15 /* : MClass */; val* var16 /* : MClassKind */; val* var17 /* : MClassKind */; @@ -4911,8 +5003,9 @@ var_mmodule = p2; var_cleanup_virtual = p3; var1 = ((short int (*)(val*, val*, val*, val*))(self->class->vft[COLOR_model__MType__can_resolve_for]))(self, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on */; if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1099); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1099); +show_backtrace(1); } var2 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on */; if (var2){ @@ -4923,8 +5016,9 @@ var4 = 0; /* is null */ var4 = 1; /* arg is null and recv is not */ } if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1106); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1106); +show_backtrace(1); } var5 = NULL; var6 = 1; @@ -4964,8 +5058,10 @@ var12 = 0; var12 = var_resolved_reciever->type->type_table[cltype13] == idtype14; } if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1122); -exit(1); +var_class_name = var_resolved_reciever == NULL ? "null" : var_resolved_reciever->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1122); +show_backtrace(1); } var15 = ((val* (*)(val*))(var_resolved_reciever->class->vft[COLOR_model__MClassType__mclass]))(var_resolved_reciever) /* mclass on */; var16 = ((val* (*)(val*))(var15->class->vft[COLOR_model__MClass__kind]))(var15) /* kind on */; @@ -5050,8 +5146,9 @@ var3 = 0; /* is null */ var3 = 1; /* arg is null and recv is not */ } if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1138); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1138); +show_backtrace(1); } var4 = ((val* (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor) /* anchor_to on */; var_mtype = var4; @@ -5113,8 +5210,9 @@ val* var /* : MClass */; val* var1 /* : MClass */; var1 = self->attrs[COLOR_model__MParameterType___64dmclass].val; /* @mclass on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclass", "src/model/model.nit", 1180); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclass"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1180); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -5147,7 +5245,7 @@ val* var2 /* : MModule */; val* var3 /* : Model */; var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on */; var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__intro_mmodule]))(var1) /* intro_mmodule on */; -var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model_base__MModule__model]))(var2) /* model on */; +var3 = ((val* (*)(val*))(var2->class->vft[COLOR_mmodule__MModule__model]))(var2) /* model on */; var = var3; goto RET_LABEL; RET_LABEL:; @@ -5218,7 +5316,6 @@ val* var20 /* : String */; var1 = NEW_array__Array(&type_array__Arraykernel__Object); var2 = 5; ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -CHECK_NEW_array__Array(var1); var_ = var1; if (varonce) { var3 = varonce; @@ -5296,8 +5393,9 @@ var_resolved_receiver = p1; var1 = ((short int (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MType__need_anchor]))(var_resolved_receiver) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1200); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1200); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on */; var_goalclass = var3; @@ -5324,8 +5422,9 @@ CONTINUE_label: (void)0; ((void (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__next]))(var5) /* next on */; } BREAK_label: (void)0; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/model/model.nit", 1211); -exit(1); +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1211); +show_backtrace(1); RET_LABEL:; return var; } @@ -5408,8 +5507,9 @@ var_mmodule = p2; var_cleanup_virtual = p3; var1 = ((short int (*)(val*, val*, val*, val*))(self->class->vft[COLOR_model__MType__can_resolve_for]))(self, var_mtype, var_anchor, var_mmodule) /* can_resolve_for on */; if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1216); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1216); +show_backtrace(1); } /* isa MGenericType */ cltype = type_model__MGenericType.color; @@ -5445,8 +5545,9 @@ var12 = 0; /* is null */ var12 = 1; /* arg is null and recv is not */ } if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1229); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1229); +show_backtrace(1); } var13 = ((val* (*)(val*))(var_anchor->class->vft[COLOR_model__MClassType__mclass]))(var_anchor) /* mclass on */; var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MClass__mclass_type]))(var13) /* mclass_type on */; @@ -5480,19 +5581,22 @@ var21 = var_resolved_receiver->type->type_table[cltype22] == idtype23; if (var21){ var24 = ((val* (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MParameterType__mclass]))(var_resolved_receiver) /* mclass on */; if (var_anchor == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/model/model.nit", 1236); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1236); +show_backtrace(1); } else { var25 = ((val* (*)(val*))(var_anchor->class->vft[COLOR_model__MClassType__mclass]))(var_anchor) /* mclass on */; } var26 = ((short int (*)(val*, val*))(var24->class->vft[COLOR_kernel__Object___61d_61d]))(var24, var25) /* == on */; if (!var26) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1236); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1236); +show_backtrace(1); } if (var_anchor == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/model/model.nit", 1237); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1237); +show_backtrace(1); } else { var27 = ((val* (*)(val*))(var_anchor->class->vft[COLOR_model__MClassType__arguments]))(var_anchor) /* arguments on */; } @@ -5523,8 +5627,9 @@ var34 = 0; var34 = var_resolved_receiver->type->type_table[cltype35] == idtype36; } if (!var34) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1240); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1240); +show_backtrace(1); } var37 = ((val* (*)(val*))(var_resolved_receiver->class->vft[COLOR_model__MClassType__mclass]))(var_resolved_receiver) /* mclass on */; var38 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on */; @@ -5547,8 +5652,9 @@ var45 = 0; /* is null */ var45 = 1; /* arg is null and recv is not */ } if (!var45) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1251); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1251); +show_backtrace(1); } var46 = NULL; var47 = 0; @@ -5600,8 +5706,9 @@ var3 = 0; /* is null */ var3 = 1; /* arg is null and recv is not */ } if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1267); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1267); +show_backtrace(1); } var4 = ((val* (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__anchor_to]))(var_mtype, var_mmodule, var_anchor) /* anchor_to on */; var_mtype = var4; @@ -5647,8 +5754,9 @@ val* var /* : MType */; val* var1 /* : MType */; var1 = self->attrs[COLOR_model__MNullableType___64dmtype].val; /* @mtype on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mtype", "src/model/model.nit", 1284); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mtype"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1284); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -5725,7 +5833,6 @@ var6 = NEW_array__NativeArray(var5, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var6)->values[0] = (val*) var; ((struct instance_array__NativeArray*)var6)->values[1] = (val*) var_mtype; ((void (*)(val*, val*, long))(var4->class->vft[COLOR_array__Array__with_native]))(var4, var6, var5) /* with_native on */; -CHECK_NEW_array__Array(var4); } var7 = ((val* (*)(val*))(var4->class->vft[COLOR_string__Object__to_s]))(var4) /* to_s on */; ((void (*)(val*, val*))(self->class->vft[COLOR_model__MNullableType__to_s_61d]))(self, var7) /* to_s= on */; @@ -5742,8 +5849,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_model__MNullableType___64dto_s].val; /* @to_s on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @to_s", "src/model/model.nit", 1295); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @to_s"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1295); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -5920,8 +6028,9 @@ var_mmodule = p0; var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1316); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1316); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on */; var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_model__MType__collect_mclassdefs]))(var3, var_mmodule) /* collect_mclassdefs on */; @@ -5951,8 +6060,9 @@ var_mmodule = p0; var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1322); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1322); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on */; var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_model__MType__collect_mclasses]))(var3, var_mmodule) /* collect_mclasses on */; @@ -5982,8 +6092,9 @@ var_mmodule = p0; var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MType__need_anchor]))(self) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1328); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1328); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on */; var4 = ((val* (*)(val*, val*))(var3->class->vft[COLOR_model__MType__collect_mtypes]))(var3, var_mmodule) /* collect_mtypes on */; @@ -6007,8 +6118,9 @@ val* var /* : Model */; val* var1 /* : Model */; var1 = self->attrs[COLOR_model__MNullType___64dmodel].val; /* @model on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @model", "src/model/model.nit", 1338); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @model"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1338); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -6171,7 +6283,6 @@ val* var1 /* : HashSet[MClassDef] */; var_mmodule = p0; var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassDef); ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on */; -CHECK_NEW_hash_collection__HashSet(var1); var = var1; goto RET_LABEL; RET_LABEL:; @@ -6194,7 +6305,6 @@ val* var1 /* : HashSet[MClass] */; var_mmodule = p0; var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClass); ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on */; -CHECK_NEW_hash_collection__HashSet(var1); var = var1; goto RET_LABEL; RET_LABEL:; @@ -6217,7 +6327,6 @@ val* var1 /* : HashSet[MClassType] */; var_mmodule = p0; var1 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MClassType); ((void (*)(val*))(var1->class->vft[COLOR_hash_collection__HashSet__init]))(var1) /* init on */; -CHECK_NEW_hash_collection__HashSet(var1); var = var1; goto RET_LABEL; RET_LABEL:; @@ -6238,8 +6347,9 @@ val* var /* : Array[MParameter] */; val* var1 /* : Array[MParameter] */; var1 = self->attrs[COLOR_model__MSignature___64dmparameters].val; /* @mparameters on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mparameters", "src/model/model.nit", 1360); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mparameters"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1360); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -6264,38 +6374,6 @@ void VIRTUAL_model__MSignature__mparameters_61d(val* self, val* p0) { model__MSignature__mparameters_61d(self, p0); RET_LABEL:; } -/* method model#MSignature#mclosures for (self: MSignature): Array[MParameter] */ -val* model__MSignature__mclosures(val* self) { -val* var /* : Array[MParameter] */; -val* var1 /* : Array[MParameter] */; -var1 = self->attrs[COLOR_model__MSignature___64dmclosures].val; /* @mclosures on */ -if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclosures", "src/model/model.nit", 1363); -exit(1); -} -var = var1; -RET_LABEL:; -return var; -} -/* method model#MSignature#mclosures for (self: Object): Array[MParameter] */ -val* VIRTUAL_model__MSignature__mclosures(val* self) { -val* var /* : Array[MParameter] */; -val* var1 /* : Array[MParameter] */; -var1 = model__MSignature__mclosures(self); -var = var1; -RET_LABEL:; -return var; -} -/* method model#MSignature#mclosures= for (self: MSignature, Array[MParameter]) */ -void model__MSignature__mclosures_61d(val* self, val* p0) { -self->attrs[COLOR_model__MSignature___64dmclosures].val = p0; /* @mclosures on */ -RET_LABEL:; -} -/* method model#MSignature#mclosures= for (self: Object, Array[MParameter]) */ -void VIRTUAL_model__MSignature__mclosures_61d(val* self, val* p0) { -model__MSignature__mclosures_61d(self, p0); -RET_LABEL:; -} /* method model#MSignature#return_mtype for (self: MSignature): nullable MType */ val* model__MSignature__return_mtype(val* self) { val* var /* : nullable MType */; @@ -6346,23 +6424,11 @@ short int var12 /* : Bool */; short int var14 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var15 /* : Bool */; -val* var16 /* : Array[MParameter] */; -val* var17 /* : Iterator[nullable Object] */; -short int var18 /* : Bool */; -val* var19 /* : nullable Object */; -val* var_p20 /* var p: MParameter */; -val* var21 /* : MType */; -long var22 /* : Int */; -long var_d23 /* var d: Int */; -short int var24 /* : Bool */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -short int var29 /* : Bool */; -long var31 /* : Int */; -long var32 /* : Int */; -long var34 /* : Int */; +long var16 /* : Int */; +long var17 /* : Int */; +long var19 /* : Int */; var1 = 0; var_dmax = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__return_mtype]))(self) /* return_mtype on */; @@ -6393,8 +6459,10 @@ var_d = var11; /* isa OTHER */ var14 = 1; /* easy isa OTHER*/ if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +var_class_name = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); } var15 = var_d > var_dmax; var12 = var15; @@ -6409,45 +6477,14 @@ CONTINUE_label: (void)0; ((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on */; } BREAK_label: (void)0; -var16 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mclosures]))(self) /* mclosures on */; -var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on */; -for(;;) { -var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on */; -if(!var18) break; -var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on */; -var_p20 = var19; -var21 = ((val* (*)(val*))(var_p20->class->vft[COLOR_model__MParameter__mtype]))(var_p20) /* mtype on */; -var22 = ((long (*)(val*))(var21->class->vft[COLOR_model__MType__depth]))(var21) /* depth on */; -var_d23 = var22; -{ /* Inline kernel#Int#> (var_d23,var_dmax) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var26 = 1; /* easy isa OTHER*/ -if (!var26) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var29 = var_d23 > var_dmax; -var24 = var29; -goto RET_LABEL25; -RET_LABEL25:(void)0; -} -if (var24){ -var_dmax = var_d23; -} else { -} -CONTINUE_label30: (void)0; -((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on */; -} -BREAK_label30: (void)0; -var31 = 1; -{ /* Inline kernel#Int#+ (var_dmax,var31) */ -var34 = var_dmax + var31; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +var16 = 1; +{ /* Inline kernel#Int#+ (var_dmax,var16) */ +var19 = var_dmax + var16; +var17 = var19; +goto RET_LABEL18; +RET_LABEL18:(void)0; } -var = var32; +var = var17; goto RET_LABEL; RET_LABEL:; return var; @@ -6482,15 +6519,6 @@ val* var13 /* : MType */; long var14 /* : Int */; long var15 /* : Int */; long var17 /* : Int */; -val* var18 /* : Array[MParameter] */; -val* var19 /* : Iterator[nullable Object] */; -short int var20 /* : Bool */; -val* var21 /* : nullable Object */; -val* var_p22 /* var p: MParameter */; -val* var23 /* : MType */; -long var24 /* : Int */; -long var25 /* : Int */; -long var27 /* : Int */; var1 = 1; var_res = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__return_mtype]))(self) /* return_mtype on */; @@ -6532,26 +6560,6 @@ CONTINUE_label: (void)0; ((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on */; } BREAK_label: (void)0; -var18 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mclosures]))(self) /* mclosures on */; -var19 = ((val* (*)(val*))(var18->class->vft[COLOR_abstract_collection__Collection__iterator]))(var18) /* iterator on */; -for(;;) { -var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on */; -if(!var20) break; -var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on */; -var_p22 = var21; -var23 = ((val* (*)(val*))(var_p22->class->vft[COLOR_model__MParameter__mtype]))(var_p22) /* mtype on */; -var24 = ((long (*)(val*))(var23->class->vft[COLOR_model__MType__length]))(var23) /* length on */; -{ /* Inline kernel#Int#+ (var_res,var24) */ -var27 = var_res + var24; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; -} -var_res = var25; -CONTINUE_label28: (void)0; -((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on */; -} -BREAK_label28: (void)0; var = var_res; goto RET_LABEL; RET_LABEL:; @@ -6609,7 +6617,6 @@ var6 = ((long (*)(val*))(var_mparameters->class->vft[COLOR_abstract_collection__ var7 = BOX_kernel__Int(var5); /* autobox from Int to Discrete */ var8 = BOX_kernel__Int(var6); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var4->class->vft[COLOR_range__Range__without_last]))(var4, var7, var8) /* without_last on */; -CHECK_NEW_range__Range(var4); var9 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on */; for(;;) { var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var9) /* is_ok on */; @@ -6635,8 +6642,9 @@ goto RET_LABEL20; RET_LABEL20:(void)0; } if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1405); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1396); +show_backtrace(1); } var_vararg_rank = var_i; } else { @@ -6736,6 +6744,7 @@ short int var22 /* : Bool */; short int var24 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var25 /* : Bool */; static val* varonce26; val* var27 /* : String */; @@ -6774,7 +6783,6 @@ val* var58 /* : String */; val* var59 /* : String */; var1 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on */; -CHECK_NEW_string__Buffer(var1); var_b = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on */; var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var2) /* is_empty on */; @@ -6797,7 +6805,6 @@ var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collectio var13 = BOX_kernel__Int(var10); /* autobox from Int to Discrete */ var14 = BOX_kernel__Int(var12); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var9->class->vft[COLOR_range__Range__without_last]))(var9, var13, var14) /* without_last on */; -CHECK_NEW_range__Range(var9); var15 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Collection__iterator]))(var9) /* iterator on */; for(;;) { var16 = ((short int (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var15) /* is_ok on */; @@ -6814,8 +6821,10 @@ var21 = 0; /* isa OTHER */ var24 = 1; /* easy isa OTHER*/ if (!var24) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +var_class_name = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); } var25 = var_i > var21; var22 = var25; @@ -6940,20 +6949,12 @@ short int var9 /* : Bool */; val* var10 /* : MType */; val* var11 /* : MSignature */; val* var_res /* var res: MSignature */; -val* var12 /* : Array[MParameter] */; -val* var13 /* : Iterator[nullable Object] */; -short int var14 /* : Bool */; -val* var15 /* : nullable Object */; -val* var_p16 /* var p: MParameter */; -val* var17 /* : Array[MParameter] */; -val* var18 /* : MParameter */; var_mtype = p0; var_anchor = p1; var_mmodule = p2; var_cleanup_virtual = p3; var1 = NEW_array__Array(&type_array__Arraymodel__MParameter); ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on */; -CHECK_NEW_array__Array(var1); var_params = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mparameters]))(self) /* mparameters on */; var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on */; @@ -6983,22 +6984,7 @@ var_ret = var10; } var11 = NEW_model__MSignature(&type_model__MSignature); ((void (*)(val*, val*, val*))(var11->class->vft[COLOR_model__MSignature__init]))(var11, var_params, var_ret) /* init on */; -CHECK_NEW_model__MSignature(var11); var_res = var11; -var12 = ((val* (*)(val*))(self->class->vft[COLOR_model__MSignature__mclosures]))(self) /* mclosures on */; -var13 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Collection__iterator]))(var12) /* iterator on */; -for(;;) { -var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on */; -if(!var14) break; -var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on */; -var_p16 = var15; -var17 = ((val* (*)(val*))(var_res->class->vft[COLOR_model__MSignature__mclosures]))(var_res) /* mclosures on */; -var18 = ((val* (*)(val*, val*, val*, val*, short int))(var_p16->class->vft[COLOR_model__MParameter__resolve_for]))(var_p16, var_mtype, var_anchor, var_mmodule, var_cleanup_virtual) /* resolve_for on */; -((void (*)(val*, val*))(var17->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var17, var18) /* add on */; -CONTINUE_label19: (void)0; -((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on */; -} -BREAK_label19: (void)0; var = var_res; goto RET_LABEL; RET_LABEL:; @@ -7019,8 +7005,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_model__MParameter___64dname].val; /* @name on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/model/model.nit", 1467); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1455); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -7051,8 +7038,9 @@ val* var /* : MType */; val* var1 /* : MType */; var1 = self->attrs[COLOR_model__MParameter___64dmtype].val; /* @mtype on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mtype", "src/model/model.nit", 1470); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mtype"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1458); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -7141,7 +7129,6 @@ var6 = NEW_model__MParameter(&type_model__MParameter); var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameter__name]))(self) /* name on */; var8 = ((short int (*)(val*))(self->class->vft[COLOR_model__MParameter__is_vararg]))(self) /* is_vararg on */; ((void (*)(val*, val*, val*, short int))(var6->class->vft[COLOR_model__MParameter__init]))(var6, var7, var_newtype, var8) /* init on */; -CHECK_NEW_model__MParameter(var6); var_res = var6; var = var_res; goto RET_LABEL; @@ -7175,8 +7162,9 @@ val* var /* : MClassDef */; val* var1 /* : MClassDef */; var1 = self->attrs[COLOR_model__MProperty___64dintro_mclassdef].val; /* @intro_mclassdef on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @intro_mclassdef", "src/model/model.nit", 1501); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @intro_mclassdef"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1489); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -7207,8 +7195,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_model__MProperty___64dname].val; /* @name on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @name", "src/model/model.nit", 1506); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1494); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -7270,7 +7259,6 @@ val* var29 /* : String */; var1 = NEW_array__Array(&type_array__Arraykernel__Object); var2 = 7; ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -CHECK_NEW_array__Array(var1); var_ = var1; if (varonce) { var3 = varonce; @@ -7284,7 +7272,7 @@ varonce = var3; ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var3) /* add on */; var7 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__intro_mclassdef]))(self) /* intro_mclassdef on */; var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MClassDef__mmodule]))(var7) /* mmodule on */; -var9 = ((val* (*)(val*))(var8->class->vft[COLOR_model_base__MModule__full_name]))(var8) /* full_name on */; +var9 = ((val* (*)(val*))(var8->class->vft[COLOR_mmodule__MModule__full_name]))(var8) /* full_name on */; ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var9) /* add on */; if (varonce10) { var11 = varonce10; @@ -7343,8 +7331,9 @@ val* var /* : MVisibility */; val* var1 /* : MVisibility */; var1 = self->attrs[COLOR_model__MProperty___64dvisibility].val; /* @visibility on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @visibility", "src/model/model.nit", 1516); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @visibility"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1504); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -7389,7 +7378,7 @@ var_visibility = p2; var = ((val* (*)(val*))(var_intro_mclassdef->class->vft[COLOR_model__MClassDef__intro_mproperties]))(var_intro_mclassdef) /* intro_mproperties on */; ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, self) /* add on */; var1 = ((val* (*)(val*))(var_intro_mclassdef->class->vft[COLOR_model__MClassDef__mmodule]))(var_intro_mclassdef) /* mmodule on */; -var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model_base__MModule__model]))(var1) /* model on */; +var2 = ((val* (*)(val*))(var1->class->vft[COLOR_mmodule__MModule__model]))(var1) /* model on */; var_model = var2; var3 = ((val* (*)(val*))(var_model->class->vft[COLOR_model__Model__mproperties_by_name]))(var_model) /* mproperties_by_name on */; ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_more_collections__MultiHashMap__add_one]))(var3, var_name, self) /* add_one on */; @@ -7408,8 +7397,9 @@ val* var /* : Array[MPropDef] */; val* var1 /* : Array[MPropDef] */; var1 = self->attrs[COLOR_model__MProperty___64dmpropdefs].val; /* @mpropdefs on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdefs", "src/model/model.nit", 1530); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mpropdefs"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1518); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -7430,6 +7420,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; /* Covariant cast for argument 0 (mpropdefs) isa Array[MPROPDEF] */ /* isa Array[MPROPDEF] */ type_struct = self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]; @@ -7441,8 +7432,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1530); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[MPROPDEF]", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1518); +show_backtrace(1); } self->attrs[COLOR_model__MProperty___64dmpropdefs].val = p0; /* @mpropdefs on */ RET_LABEL:; @@ -7531,66 +7524,18 @@ short int var26 /* : Bool */; short int var28 /* : Bool */; int cltype29; int idtype30; +const char* var_class_name; short int var31 /* : Bool */; val* var32 /* : HashMap2[MModule, MType, Array[MPropDef]] */; val* var33 /* : Array[MPropDef] */; -val* var_res /* var res: Array[MPropDef] */; -val* var34 /* : Iterator[nullable Object] */; -short int var35 /* : Bool */; -val* var36 /* : nullable Object */; -val* var_pd1 /* var pd1: MPropDef */; -val* var37 /* : MClassDef */; -val* var_cd1 /* var cd1: MClassDef */; -val* var38 /* : MClass */; -val* var_c1 /* var c1: MClass */; -short int var39 /* : Bool */; -short int var_keep /* var keep: Bool */; -val* var40 /* : Iterator[nullable Object] */; -short int var41 /* : Bool */; -val* var42 /* : nullable Object */; -val* var_pd2 /* var pd2: MPropDef */; -short int var43 /* : Bool */; -val* var45 /* : MClassDef */; -val* var_cd2 /* var cd2: MClassDef */; -val* var46 /* : MClass */; -val* var_c2 /* var c2: MClass */; -val* var47 /* : MClassType */; -val* var48 /* : MClassType */; -short int var49 /* : Bool */; -val* var50 /* : MModule */; -val* var51 /* : POSetElement[MModule] */; -val* var52 /* : MModule */; -short int var53 /* : Bool */; -short int var54 /* : Bool */; -val* var55 /* : MClassType */; -val* var56 /* : null */; -val* var57 /* : MClassType */; -short int var58 /* : Bool */; -short int var59 /* : Bool */; -short int var61 /* : Bool */; -static val* varonce; -val* var62 /* : String */; -char* var63 /* : NativeString */; -long var64 /* : Int */; -val* var65 /* : String */; -static val* varonce66; -val* var67 /* : String */; -char* var68 /* : NativeString */; -long var69 /* : Int */; -val* var70 /* : String */; -val* var71 /* : String */; -val* var72 /* : Array[Object] */; -long var73 /* : Int */; -val* var74 /* : NativeArray[Object] */; -val* var75 /* : String */; -val* var76 /* : HashMap2[MModule, MType, Array[MPropDef]] */; var_mmodule = p0; var_mtype = p1; var1 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1552); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1540); +show_backtrace(1); } /* isa MNullableType */ cltype = type_model__MNullableType.color; @@ -7621,7 +7566,6 @@ goto RET_LABEL; } var9 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]); ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on */; -CHECK_NEW_array__Array(var9); var_candidates = var9; var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__mpropdefs]))(self) /* mpropdefs on */; var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__iterator]))(var10) /* iterator on */; @@ -7630,7 +7574,7 @@ var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iter if(!var12) break; var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on */; var_mpropdef = var13; -var14 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_model_base__MModule__in_importation]))(var_mmodule) /* in_importation on */; +var14 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__in_importation]))(var_mmodule) /* in_importation on */; var15 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on */; var16 = ((val* (*)(val*))(var15->class->vft[COLOR_model__MClassDef__mmodule]))(var15) /* mmodule on */; var17 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_poset__POSetElement___60d_61d]))(var14, var16) /* <= on */; @@ -7660,8 +7604,10 @@ var25 = 1; /* isa OTHER */ var28 = 1; /* easy isa OTHER*/ if (!var28) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); +var_class_name = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +show_backtrace(1); } var31 = var24 <= var25; var26 = var31; @@ -7675,112 +7621,8 @@ var = var_candidates; goto RET_LABEL; } else { } -var33 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]); -((void (*)(val*))(var33->class->vft[COLOR_array__Array__init]))(var33) /* init on */; -CHECK_NEW_array__Array(var33); -var_res = var33; -var34 = ((val* (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_candidates) /* iterator on */; -for(;;) { -var35 = ((short int (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var34) /* is_ok on */; -if(!var35) break; -var36 = ((val* (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__item]))(var34) /* item on */; -var_pd1 = var36; -var37 = ((val* (*)(val*))(var_pd1->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pd1) /* mclassdef on */; -var_cd1 = var37; -var38 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__mclass]))(var_cd1) /* mclass on */; -var_c1 = var38; -var39 = 1; -var_keep = var39; -var40 = ((val* (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_candidates) /* iterator on */; -for(;;) { -var41 = ((short int (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var40) /* is_ok on */; -if(!var41) break; -var42 = ((val* (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__item]))(var40) /* item on */; -var_pd2 = var42; -var43 = ((short int (*)(val*, val*))(var_pd2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pd2, var_pd1) /* == on */; -if (var43){ -goto CONTINUE_label44; -} else { -} -var45 = ((val* (*)(val*))(var_pd2->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pd2) /* mclassdef on */; -var_cd2 = var45; -var46 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__mclass]))(var_cd2) /* mclass on */; -var_c2 = var46; -var47 = ((val* (*)(val*))(var_c2->class->vft[COLOR_model__MClass__mclass_type]))(var_c2) /* mclass_type on */; -var48 = ((val* (*)(val*))(var_c1->class->vft[COLOR_model__MClass__mclass_type]))(var_c1) /* mclass_type on */; -var49 = ((short int (*)(val*, val*))(var47->class->vft[COLOR_kernel__Object___61d_61d]))(var47, var48) /* == on */; -if (var49){ -var50 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__mmodule]))(var_cd2) /* mmodule on */; -var51 = ((val* (*)(val*))(var50->class->vft[COLOR_model_base__MModule__in_importation]))(var50) /* in_importation on */; -var52 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__mmodule]))(var_cd1) /* mmodule on */; -var53 = ((short int (*)(val*, val*))(var51->class->vft[COLOR_poset__POSetElement___60d_61d]))(var51, var52) /* <= on */; -if (var53){ -var54 = 0; -var_keep = var54; -goto BREAK_label44; -} else { -} -} else { -var55 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd2) /* bound_mtype on */; -var56 = NULL; -var57 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd1) /* bound_mtype on */; -var58 = ((short int (*)(val*, val*, val*, val*))(var55->class->vft[COLOR_model__MType__is_subtype]))(var55, var_mmodule, var56, var57) /* is_subtype on */; -if (var58){ -var59 = 0; -var_keep = var59; -goto BREAK_label44; -} else { -} -} -CONTINUE_label44: (void)0; -((void (*)(val*))(var40->class->vft[COLOR_abstract_collection__Iterator__next]))(var40) /* next on */; -} -BREAK_label44: (void)0; -if (var_keep){ -((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var_pd1) /* add on */; -} else { -} -CONTINUE_label60: (void)0; -((void (*)(val*))(var34->class->vft[COLOR_abstract_collection__Iterator__next]))(var34) /* next on */; -} -BREAK_label60: (void)0; -var61 = ((short int (*)(val*))(var_res->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_res) /* is_empty on */; -if (var61){ -if (varonce) { -var62 = varonce; -} else { -var63 = "All lost! "; -var64 = 10; -var65 = string__NativeString__to_s_with_length(var63, var64); -var62 = var65; -varonce = var62; -} -if (varonce66) { -var67 = varonce66; -} else { -var68 = ", "; -var69 = 2; -var70 = string__NativeString__to_s_with_length(var68, var69); -var67 = var70; -varonce66 = var67; -} -var71 = ((val* (*)(val*, val*))(var_candidates->class->vft[COLOR_string__Collection__join]))(var_candidates, var67) /* join on */; -var72 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var72 = array_instance Array[Object] */ -var73 = 2; -var74 = NEW_array__NativeArray(var73, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var74)->values[0] = (val*) var62; -((struct instance_array__NativeArray*)var74)->values[1] = (val*) var71; -((void (*)(val*, val*, long))(var72->class->vft[COLOR_array__Array__with_native]))(var72, var74, var73) /* with_native on */; -CHECK_NEW_array__Array(var72); -} -var75 = ((val* (*)(val*))(var72->class->vft[COLOR_string__Object__to_s]))(var72) /* to_s on */; -((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var75) /* print on */; -} else { -} -var76 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__lookup_definitions_cache]))(self) /* lookup_definitions_cache on */; -((void (*)(val*, val*, val*, val*))(var76->class->vft[COLOR_more_collections__HashMap2___91d_93d_61d]))(var76, var_mmodule, var_mtype, var_res) /* []= on */; -var = var_res; +var33 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MProperty__select_most_specific]))(self, var_mmodule, var_candidates) /* select_most_specific on */; +var = var33; goto RET_LABEL; RET_LABEL:; return var; @@ -7800,8 +7642,9 @@ val* var /* : HashMap2[MModule, MType, Array[MPropDef]] */; val* var1 /* : HashMap2[MModule, MType, Array[MPropDef]] */; var1 = self->attrs[COLOR_model__MProperty___64dlookup_definitions_cache].val; /* @lookup_definitions_cache on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @lookup_definitions_cache", "src/model/model.nit", 1609); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @lookup_definitions_cache"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1567); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -7822,9 +7665,10 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; /* Covariant cast for argument 0 (lookup_definitions_cache) isa HashMap2[MModule, MType, Array[MPROPDEF]] */ /* isa HashMap2[MModule, MType, Array[MPROPDEF]] */ -type_struct = self->type->resolution_table->types[COLOR_more_collections__HashMap2model_base__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF]; +type_struct = self->type->resolution_table->types[COLOR_more_collections__HashMap2mmodule__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF]; cltype = type_struct->color; idtype = type_struct->id; if(cltype >= p0->type->table_size) { @@ -7833,8 +7677,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1609); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap2[MModule, MType, Array[MPROPDEF]]", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1567); +show_backtrace(1); } self->attrs[COLOR_model__MProperty___64dlookup_definitions_cache].val = p0; /* @lookup_definitions_cache on */ RET_LABEL:; @@ -7886,64 +7732,17 @@ short int var29 /* : Bool */; short int var31 /* : Bool */; int cltype32; int idtype33; +const char* var_class_name; short int var34 /* : Bool */; val* var35 /* : Array[MPropDef] */; -val* var_res /* var res: Array[MPropDef] */; -val* var36 /* : Iterator[nullable Object] */; -short int var37 /* : Bool */; -val* var38 /* : nullable Object */; -val* var_pd1 /* var pd1: MPropDef */; -val* var39 /* : MClassDef */; -val* var_cd1 /* var cd1: MClassDef */; -val* var40 /* : MClass */; -val* var_c1 /* var c1: MClass */; -short int var41 /* : Bool */; -short int var_keep /* var keep: Bool */; -val* var42 /* : Iterator[nullable Object] */; -short int var43 /* : Bool */; -val* var44 /* : nullable Object */; -val* var_pd2 /* var pd2: MPropDef */; -short int var45 /* : Bool */; -val* var47 /* : MClassDef */; -val* var_cd2 /* var cd2: MClassDef */; -val* var48 /* : MClass */; -val* var_c2 /* var c2: MClass */; -val* var49 /* : MClassType */; -val* var50 /* : MClassType */; -short int var51 /* : Bool */; -val* var52 /* : MModule */; -val* var53 /* : POSetElement[MModule] */; -val* var54 /* : MModule */; -short int var55 /* : Bool */; -short int var56 /* : Bool */; -val* var57 /* : MClassType */; -val* var58 /* : null */; -val* var59 /* : MClassType */; -short int var60 /* : Bool */; -short int var61 /* : Bool */; -short int var63 /* : Bool */; -static val* varonce; -val* var64 /* : String */; -char* var65 /* : NativeString */; -long var66 /* : Int */; -val* var67 /* : String */; -static val* varonce68; -val* var69 /* : String */; -char* var70 /* : NativeString */; -long var71 /* : Int */; -val* var72 /* : String */; -val* var73 /* : String */; -val* var74 /* : Array[Object] */; -long var75 /* : Int */; -val* var76 /* : NativeArray[Object] */; -val* var77 /* : String */; var_mmodule = p0; var_mtype = p1; var1 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1621); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1579); +show_backtrace(1); } /* isa MNullableType */ cltype = type_model__MNullableType.color; @@ -7958,9 +7757,8 @@ var4 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MNullableType__mtype var_mtype = var4; } else { } -var5 = NEW_array__Array(&type_array__Arraymodel__MPropDef); +var5 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]); ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on */; -CHECK_NEW_array__Array(var5); var_candidates = var5; var6 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__mpropdefs]))(self) /* mpropdefs on */; var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on */; @@ -7969,7 +7767,7 @@ var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterat if(!var8) break; var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; var_mpropdef = var9; -var10 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_model_base__MModule__in_importation]))(var_mmodule) /* in_importation on */; +var10 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__in_importation]))(var_mmodule) /* in_importation on */; var11 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on */; var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MClassDef__mmodule]))(var11) /* mmodule on */; var13 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_poset__POSetElement___60d_61d]))(var10, var12) /* <= on */; @@ -8015,8 +7813,10 @@ var28 = 1; /* isa OTHER */ var31 = 1; /* easy isa OTHER*/ if (!var31) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); +var_class_name = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +show_backtrace(1); } var34 = var27 <= var28; var29 = var34; @@ -8028,107 +7828,212 @@ var = var_candidates; goto RET_LABEL; } else { } -var35 = NEW_array__Array(&type_array__Arraymodel__MPropDef); -((void (*)(val*))(var35->class->vft[COLOR_array__Array__init]))(var35) /* init on */; -CHECK_NEW_array__Array(var35); -var_res = var35; -var36 = ((val* (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_candidates) /* iterator on */; +var35 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MProperty__select_most_specific]))(self, var_mmodule, var_candidates) /* select_most_specific on */; +var = var35; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method model#MProperty#lookup_super_definitions for (self: Object, MModule, MType): Array[MPropDef] */ +val* VIRTUAL_model__MProperty__lookup_super_definitions(val* self, val* p0, val* p1) { +val* var /* : Array[MPropDef] */; +val* var1 /* : Array[MPropDef] */; +var1 = model__MProperty__lookup_super_definitions(self, p0, p1); +var = var1; +RET_LABEL:; +return var; +} +/* method model#MProperty#select_most_specific for (self: MProperty, MModule, Array[MPropDef]): Array[MPropDef] */ +val* model__MProperty__select_most_specific(val* self, val* p0, val* p1) { +val* var /* : Array[MPropDef] */; +short int var1 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +val* var_mmodule /* var mmodule: MModule */; +val* var_candidates /* var candidates: Array[MPropDef] */; +val* var2 /* : Array[MPropDef] */; +val* var_res /* var res: Array[MPropDef] */; +val* var3 /* : Iterator[nullable Object] */; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; +val* var_pd1 /* var pd1: MPropDef */; +val* var6 /* : MClassDef */; +val* var_cd1 /* var cd1: MClassDef */; +val* var7 /* : MClass */; +val* var_c1 /* var c1: MClass */; +short int var8 /* : Bool */; +short int var_keep /* var keep: Bool */; +val* var9 /* : Iterator[nullable Object] */; +short int var10 /* : Bool */; +val* var11 /* : nullable Object */; +val* var_pd2 /* var pd2: MPropDef */; +short int var12 /* : Bool */; +val* var13 /* : MClassDef */; +val* var_cd2 /* var cd2: MClassDef */; +val* var14 /* : MClass */; +val* var_c2 /* var c2: MClass */; +val* var15 /* : MClassType */; +val* var16 /* : MClassType */; +short int var17 /* : Bool */; +val* var18 /* : MModule */; +val* var19 /* : POSetElement[MModule] */; +val* var20 /* : MModule */; +short int var21 /* : Bool */; +short int var22 /* : Bool */; +short int var23 /* : Bool */; +val* var24 /* : MClassType */; +val* var25 /* : null */; +val* var26 /* : MClassType */; +short int var27 /* : Bool */; +short int var_ /* var : Bool */; +val* var28 /* : MClassType */; +val* var29 /* : MClassType */; +short int var30 /* : Bool */; +short int var31 /* : Bool */; +short int var33 /* : Bool */; +static val* varonce; +val* var34 /* : String */; +char* var35 /* : NativeString */; +long var36 /* : Int */; +val* var37 /* : String */; +static val* varonce38; +val* var39 /* : String */; +char* var40 /* : NativeString */; +long var41 /* : Int */; +val* var42 /* : String */; +val* var43 /* : String */; +val* var44 /* : Array[Object] */; +long var45 /* : Int */; +val* var46 /* : NativeArray[Object] */; +val* var47 /* : String */; +/* Covariant cast for argument 1 (candidates) isa Array[MPROPDEF] */ +/* isa Array[MPROPDEF] */ +type_struct = self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p1->type->table_size) { +var1 = 0; +} else { +var1 = p1->type->type_table[cltype] == idtype; +} +if (!var1) { +var_class_name = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[MPROPDEF]", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1601); +show_backtrace(1); +} +var_mmodule = p0; +var_candidates = p1; +var2 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]); +((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; +var_res = var2; +var3 = ((val* (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_candidates) /* iterator on */; for(;;) { -var37 = ((short int (*)(val*))(var36->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var36) /* is_ok on */; -if(!var37) break; -var38 = ((val* (*)(val*))(var36->class->vft[COLOR_abstract_collection__Iterator__item]))(var36) /* item on */; -var_pd1 = var38; -var39 = ((val* (*)(val*))(var_pd1->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pd1) /* mclassdef on */; -var_cd1 = var39; -var40 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__mclass]))(var_cd1) /* mclass on */; -var_c1 = var40; -var41 = 1; -var_keep = var41; -var42 = ((val* (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_candidates) /* iterator on */; +var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on */; +if(!var4) break; +var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on */; +var_pd1 = var5; +var6 = ((val* (*)(val*))(var_pd1->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pd1) /* mclassdef on */; +var_cd1 = var6; +var7 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__mclass]))(var_cd1) /* mclass on */; +var_c1 = var7; +var8 = 1; +var_keep = var8; +var9 = ((val* (*)(val*))(var_candidates->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_candidates) /* iterator on */; for(;;) { -var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var42) /* is_ok on */; -if(!var43) break; -var44 = ((val* (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__item]))(var42) /* item on */; -var_pd2 = var44; -var45 = ((short int (*)(val*, val*))(var_pd2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pd2, var_pd1) /* == on */; -if (var45){ -goto CONTINUE_label46; -} else { -} -var47 = ((val* (*)(val*))(var_pd2->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pd2) /* mclassdef on */; -var_cd2 = var47; -var48 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__mclass]))(var_cd2) /* mclass on */; -var_c2 = var48; -var49 = ((val* (*)(val*))(var_c2->class->vft[COLOR_model__MClass__mclass_type]))(var_c2) /* mclass_type on */; -var50 = ((val* (*)(val*))(var_c1->class->vft[COLOR_model__MClass__mclass_type]))(var_c1) /* mclass_type on */; -var51 = ((short int (*)(val*, val*))(var49->class->vft[COLOR_kernel__Object___61d_61d]))(var49, var50) /* == on */; -if (var51){ -var52 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__mmodule]))(var_cd2) /* mmodule on */; -var53 = ((val* (*)(val*))(var52->class->vft[COLOR_model_base__MModule__in_importation]))(var52) /* in_importation on */; -var54 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__mmodule]))(var_cd1) /* mmodule on */; -var55 = ((short int (*)(val*, val*))(var53->class->vft[COLOR_poset__POSetElement___60d_61d]))(var53, var54) /* <= on */; -if (var55){ -var56 = 0; -var_keep = var56; -goto BREAK_label46; +var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var9) /* is_ok on */; +if(!var10) break; +var11 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__item]))(var9) /* item on */; +var_pd2 = var11; +var12 = ((short int (*)(val*, val*))(var_pd2->class->vft[COLOR_kernel__Object___61d_61d]))(var_pd2, var_pd1) /* == on */; +if (var12){ +goto CONTINUE_label; +} else { +} +var13 = ((val* (*)(val*))(var_pd2->class->vft[COLOR_model__MPropDef__mclassdef]))(var_pd2) /* mclassdef on */; +var_cd2 = var13; +var14 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__mclass]))(var_cd2) /* mclass on */; +var_c2 = var14; +var15 = ((val* (*)(val*))(var_c2->class->vft[COLOR_model__MClass__mclass_type]))(var_c2) /* mclass_type on */; +var16 = ((val* (*)(val*))(var_c1->class->vft[COLOR_model__MClass__mclass_type]))(var_c1) /* mclass_type on */; +var17 = ((short int (*)(val*, val*))(var15->class->vft[COLOR_kernel__Object___61d_61d]))(var15, var16) /* == on */; +if (var17){ +var18 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__mmodule]))(var_cd2) /* mmodule on */; +var19 = ((val* (*)(val*))(var18->class->vft[COLOR_mmodule__MModule__in_importation]))(var18) /* in_importation on */; +var20 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__mmodule]))(var_cd1) /* mmodule on */; +var21 = ((short int (*)(val*, val*))(var19->class->vft[COLOR_poset__POSetElement___60d]))(var19, var20) /* < on */; +if (var21){ +var22 = 0; +var_keep = var22; +goto BREAK_label; } else { } } else { -var57 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd2) /* bound_mtype on */; -var58 = NULL; -var59 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd1) /* bound_mtype on */; -var60 = ((short int (*)(val*, val*, val*, val*))(var57->class->vft[COLOR_model__MType__is_subtype]))(var57, var_mmodule, var58, var59) /* is_subtype on */; -if (var60){ -var61 = 0; -var_keep = var61; -goto BREAK_label46; +var24 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd2) /* bound_mtype on */; +var25 = NULL; +var26 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd1) /* bound_mtype on */; +var27 = ((short int (*)(val*, val*, val*, val*))(var24->class->vft[COLOR_model__MType__is_subtype]))(var24, var_mmodule, var25, var26) /* is_subtype on */; +var_ = var27; +if (var27){ +var28 = ((val* (*)(val*))(var_cd2->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd2) /* bound_mtype on */; +var29 = ((val* (*)(val*))(var_cd1->class->vft[COLOR_model__MClassDef__bound_mtype]))(var_cd1) /* bound_mtype on */; +var30 = ((short int (*)(val*, val*))(var28->class->vft[COLOR_kernel__Object___33d_61d]))(var28, var29) /* != on */; +var23 = var30; +} else { +var23 = var_; +} +if (var23){ +var31 = 0; +var_keep = var31; +goto BREAK_label; } else { } } -CONTINUE_label46: (void)0; -((void (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__next]))(var42) /* next on */; +CONTINUE_label: (void)0; +((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__next]))(var9) /* next on */; } -BREAK_label46: (void)0; +BREAK_label: (void)0; if (var_keep){ ((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var_pd1) /* add on */; } else { } -CONTINUE_label62: (void)0; -((void (*)(val*))(var36->class->vft[COLOR_abstract_collection__Iterator__next]))(var36) /* next on */; +CONTINUE_label32: (void)0; +((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on */; } -BREAK_label62: (void)0; -var63 = ((short int (*)(val*))(var_res->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_res) /* is_empty on */; -if (var63){ +BREAK_label32: (void)0; +var33 = ((short int (*)(val*))(var_res->class->vft[COLOR_abstract_collection__Collection__is_empty]))(var_res) /* is_empty on */; +if (var33){ if (varonce) { -var64 = varonce; +var34 = varonce; } else { -var65 = "All lost! "; -var66 = 10; -var67 = string__NativeString__to_s_with_length(var65, var66); -var64 = var67; -varonce = var64; +var35 = "All lost! "; +var36 = 10; +var37 = string__NativeString__to_s_with_length(var35, var36); +var34 = var37; +varonce = var34; } -if (varonce68) { -var69 = varonce68; +if (varonce38) { +var39 = varonce38; } else { -var70 = ", "; -var71 = 2; -var72 = string__NativeString__to_s_with_length(var70, var71); -var69 = var72; -varonce68 = var69; +var40 = ", "; +var41 = 2; +var42 = string__NativeString__to_s_with_length(var40, var41); +var39 = var42; +varonce38 = var39; } -var73 = ((val* (*)(val*, val*))(var_candidates->class->vft[COLOR_string__Collection__join]))(var_candidates, var69) /* join on */; -var74 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var74 = array_instance Array[Object] */ -var75 = 2; -var76 = NEW_array__NativeArray(var75, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var76)->values[0] = (val*) var64; -((struct instance_array__NativeArray*)var76)->values[1] = (val*) var73; -((void (*)(val*, val*, long))(var74->class->vft[COLOR_array__Array__with_native]))(var74, var76, var75) /* with_native on */; -CHECK_NEW_array__Array(var74); +var43 = ((val* (*)(val*, val*))(var_candidates->class->vft[COLOR_string__Collection__join]))(var_candidates, var39) /* join on */; +var44 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var44 = array_instance Array[Object] */ +var45 = 2; +var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var46)->values[0] = (val*) var34; +((struct instance_array__NativeArray*)var46)->values[1] = (val*) var43; +((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on */; } -var77 = ((val* (*)(val*))(var74->class->vft[COLOR_string__Object__to_s]))(var74) /* to_s on */; -((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var77) /* print on */; +var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on */; +((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var47) /* print on */; } else { } var = var_res; @@ -8136,11 +8041,11 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method model#MProperty#lookup_super_definitions for (self: Object, MModule, MType): Array[MPropDef] */ -val* VIRTUAL_model__MProperty__lookup_super_definitions(val* self, val* p0, val* p1) { +/* method model#MProperty#select_most_specific for (self: Object, MModule, Array[MPropDef]): Array[MPropDef] */ +val* VIRTUAL_model__MProperty__select_most_specific(val* self, val* p0, val* p1) { val* var /* : Array[MPropDef] */; val* var1 /* : Array[MPropDef] */; -var1 = model__MProperty__lookup_super_definitions(self, p0, p1); +var1 = model__MProperty__select_most_specific(self, p0, p1); var = var1; RET_LABEL:; return var; @@ -8157,8 +8062,9 @@ var_mmodule = p0; var_mtype = p1; var1 = ((short int (*)(val*, val*, val*))(var_mtype->class->vft[COLOR_model__MType__has_mproperty]))(var_mtype, var_mmodule, self) /* has_mproperty on */; if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1683); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1648); +show_backtrace(1); } var2 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MProperty__lookup_all_definitions]))(self, var_mmodule, var_mtype) /* lookup_all_definitions on */; var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__first]))(var2) /* first on */; @@ -8215,6 +8121,7 @@ short int var26 /* : Bool */; short int var28 /* : Bool */; int cltype29; int idtype30; +const char* var_class_name; short int var31 /* : Bool */; val* var32 /* : HashMap2[MModule, MType, Array[MPropDef]] */; val* var33 /* : Array[nullable Object] */; @@ -8224,8 +8131,9 @@ var_mtype = p1; var1 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1691); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1656); +show_backtrace(1); } /* isa MNullableType */ cltype = type_model__MNullableType.color; @@ -8256,7 +8164,6 @@ goto RET_LABEL; } var9 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymodel__MProperty_VTMPROPDEF]); ((void (*)(val*))(var9->class->vft[COLOR_array__Array__init]))(var9) /* init on */; -CHECK_NEW_array__Array(var9); var_candidates = var9; var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__mpropdefs]))(self) /* mpropdefs on */; var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Collection__iterator]))(var10) /* iterator on */; @@ -8265,7 +8172,7 @@ var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iter if(!var12) break; var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on */; var_mpropdef = var13; -var14 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_model_base__MModule__in_importation]))(var_mmodule) /* in_importation on */; +var14 = ((val* (*)(val*))(var_mmodule->class->vft[COLOR_mmodule__MModule__in_importation]))(var_mmodule) /* in_importation on */; var15 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on */; var16 = ((val* (*)(val*))(var15->class->vft[COLOR_model__MClassDef__mmodule]))(var15) /* mmodule on */; var17 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_poset__POSetElement___60d_61d]))(var14, var16) /* <= on */; @@ -8295,8 +8202,10 @@ var25 = 1; /* isa OTHER */ var28 = 1; /* easy isa OTHER*/ if (!var28) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); +var_class_name = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +show_backtrace(1); } var31 = var24 <= var25; var26 = var31; @@ -8335,8 +8244,9 @@ val* var /* : HashMap2[MModule, MType, Array[MPropDef]] */; val* var1 /* : HashMap2[MModule, MType, Array[MPropDef]] */; var1 = self->attrs[COLOR_model__MProperty___64dlookup_all_definitions_cache].val; /* @lookup_all_definitions_cache on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @lookup_all_definitions_cache", "src/model/model.nit", 1720); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @lookup_all_definitions_cache"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1685); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -8357,9 +8267,10 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; /* Covariant cast for argument 0 (lookup_all_definitions_cache) isa HashMap2[MModule, MType, Array[MPROPDEF]] */ /* isa HashMap2[MModule, MType, Array[MPROPDEF]] */ -type_struct = self->type->resolution_table->types[COLOR_more_collections__HashMap2model_base__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF]; +type_struct = self->type->resolution_table->types[COLOR_more_collections__HashMap2mmodule__MModulemodel__MTypearray__Arraymodel__MProperty_VTMPROPDEF]; cltype = type_struct->color; idtype = type_struct->id; if(cltype >= p0->type->table_size) { @@ -8368,8 +8279,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1720); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap2[MModule, MType, Array[MPROPDEF]]", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1685); +show_backtrace(1); } self->attrs[COLOR_model__MProperty___64dlookup_all_definitions_cache].val = p0; /* @lookup_all_definitions_cache on */ RET_LABEL:; @@ -8510,8 +8423,9 @@ val* var /* : MVirtualType */; val* var1 /* : MVirtualType */; var1 = self->attrs[COLOR_model__MVirtualTypeProp___64dmvirtualtype].val; /* @mvirtualtype on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mvirtualtype", "src/model/model.nit", 1774); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mvirtualtype"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1739); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -8542,8 +8456,9 @@ val* var /* : Location */; val* var1 /* : Location */; var1 = self->attrs[COLOR_model__MPropDef___64dlocation].val; /* @location on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @location", "src/model/model.nit", 1791); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @location"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1756); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -8574,8 +8489,9 @@ val* var /* : MClassDef */; val* var1 /* : MClassDef */; var1 = self->attrs[COLOR_model__MPropDef___64dmclassdef].val; /* @mclassdef on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mclassdef", "src/model/model.nit", 1794); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclassdef"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1759); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -8606,8 +8522,9 @@ val* var /* : MProperty */; val* var1 /* : MProperty */; var1 = self->attrs[COLOR_model__MPropDef___64dmproperty].val; /* @mproperty on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mproperty", "src/model/model.nit", 1797); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mproperty"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1762); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -8628,6 +8545,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; /* Covariant cast for argument 0 (mproperty) isa MPROPERTY */ /* isa MPROPERTY */ type_struct = self->type->resolution_table->types[COLOR_model__MPropDef_VTMPROPERTY]; @@ -8639,8 +8557,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1797); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1762); +show_backtrace(1); } self->attrs[COLOR_model__MPropDef___64dmproperty].val = p0; /* @mproperty on */ RET_LABEL:; @@ -8656,6 +8576,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_mclassdef /* var mclassdef: MClassDef */; val* var_mproperty /* var mproperty: MProperty */; val* var_location /* var location: Location */; @@ -8681,8 +8602,10 @@ var = 0; var = p1->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1800); -exit(1); +var_class_name = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1765); +show_backtrace(1); } var_mclassdef = p0; var_mproperty = p1; @@ -8711,7 +8634,6 @@ var9 = NEW_array__NativeArray(var8, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var9)->values[1] = (val*) var3; ((struct instance_array__NativeArray*)var9)->values[2] = (val*) var_mproperty; ((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on */; -CHECK_NEW_array__Array(var7); } var10 = ((val* (*)(val*))(var7->class->vft[COLOR_string__Object__to_s]))(var7) /* to_s on */; ((void (*)(val*, val*))(self->class->vft[COLOR_model__MPropDef__to_s_61d]))(self, var10) /* to_s= on */; @@ -8728,8 +8650,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_model__MPropDef___64dto_s].val; /* @to_s on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @to_s", "src/model/model.nit", 1810); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @to_s"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1775); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -8801,13 +8724,15 @@ short int var13 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; var_mmodule = p0; var_mtype = p1; var1 = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/model/model.nit", 1824); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1789); +show_backtrace(1); } var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on */; var4 = ((val* (*)(val*, val*, val*))(var3->class->vft[COLOR_model__MProperty__lookup_all_definitions]))(var3, var_mmodule, var_mtype) /* lookup_all_definitions on */; @@ -8831,14 +8756,16 @@ CONTINUE_label: (void)0; BREAK_label: (void)0; var10 = ((short int (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_i) /* is_ok on */; if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert \'has_property\' failed", "src/model/model.nit", 1829); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert \'has_property\' failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1794); +show_backtrace(1); } ((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__next]))(var_i) /* next on */; var11 = ((short int (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_i) /* is_ok on */; if (!var11) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert \'has_next_property\' failed", "src/model/model.nit", 1831); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert \'has_next_property\' failed"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1796); +show_backtrace(1); } var12 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__item]))(var_i) /* item on */; /* isa MPROPDEF */ @@ -8851,8 +8778,10 @@ var13 = 0; var13 = var12->type->type_table[cltype] == idtype; } if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1832); -exit(1); +var_class_name = var12 == NULL ? "null" : var12->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPDEF", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1797); +show_backtrace(1); } var = var12; goto RET_LABEL; @@ -8874,6 +8803,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_mclassdef /* var mclassdef: MClassDef */; val* var_mproperty /* var mproperty: MMethod */; val* var_location /* var location: Location */; @@ -8888,8 +8818,10 @@ var = 0; var = p1->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1843); -exit(1); +var_class_name = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1808); +show_backtrace(1); } var_mclassdef = p0; var_mproperty = p1; @@ -8964,6 +8896,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_mclassdef /* var mclassdef: MClassDef */; val* var_mproperty /* var mproperty: MAttribute */; val* var_location /* var location: Location */; @@ -8978,8 +8911,10 @@ var = 0; var = p1->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1862); -exit(1); +var_class_name = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1827); +show_backtrace(1); } var_mclassdef = p0; var_mproperty = p1; @@ -9026,6 +8961,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_mclassdef /* var mclassdef: MClassDef */; val* var_mproperty /* var mproperty: MVirtualTypeProp */; val* var_location /* var location: Location */; @@ -9040,8 +8976,10 @@ var = 0; var = p1->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/model/model.nit", 1878); -exit(1); +var_class_name = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MPROPERTY", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1843); +show_backtrace(1); } var_mclassdef = p0; var_mproperty = p1; @@ -9088,8 +9026,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_model__MClassKind___64dto_s].val; /* @to_s on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @to_s", "src/model/model.nit", 1898); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @to_s"); +fprintf(stderr, " (%s:%d)\n", "src/model/model.nit", 1863); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -9185,7 +9124,6 @@ varonce3 = var4; } var8 = 1; ((void (*)(val*, val*, short int))(var2->class->vft[COLOR_model__MClassKind__init]))(var2, var4, var8) /* init on */; -CHECK_NEW_model__MClassKind(var2); var1 = var2; varonce = var1; varonce_guard = 1; @@ -9232,7 +9170,6 @@ varonce3 = var4; } var8 = 1; ((void (*)(val*, val*, short int))(var2->class->vft[COLOR_model__MClassKind__init]))(var2, var4, var8) /* init on */; -CHECK_NEW_model__MClassKind(var2); var1 = var2; varonce = var1; varonce_guard = 1; @@ -9279,7 +9216,6 @@ varonce3 = var4; } var8 = 0; ((void (*)(val*, val*, short int))(var2->class->vft[COLOR_model__MClassKind__init]))(var2, var4, var8) /* init on */; -CHECK_NEW_model__MClassKind(var2); var1 = var2; varonce = var1; varonce_guard = 1; @@ -9326,7 +9262,6 @@ varonce3 = var4; } var8 = 0; ((void (*)(val*, val*, short int))(var2->class->vft[COLOR_model__MClassKind__init]))(var2, var4, var8) /* init on */; -CHECK_NEW_model__MClassKind(var2); var1 = var2; varonce = var1; varonce_guard = 1; @@ -9373,7 +9308,6 @@ varonce3 = var4; } var8 = 0; ((void (*)(val*, val*, short int))(var2->class->vft[COLOR_model__MClassKind__init]))(var2, var4, var8) /* init on */; -CHECK_NEW_model__MClassKind(var2); var1 = var2; varonce = var1; varonce_guard = 1;