X-Git-Url: http://nitlanguage.org diff --git a/c_src/modelize_property.sep.1.c b/c_src/modelize_property.sep.1.c index a23e6d6..d3e547a 100644 --- a/c_src/modelize_property.sep.1.c +++ b/c_src/modelize_property.sep.1.c @@ -5,8 +5,9 @@ val* var /* : Phase */; val* var1 /* : Phase */; var1 = self->attrs[COLOR_modelize_property__ToolContext___64dmodelize_property_phase].val; /* @modelize_property_phase on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @modelize_property_phase", "src/modelize_property.nit", 23); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @modelize_property_phase"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 23); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -69,8 +70,9 @@ val* var /* : HashMap[MPropDef, APropdef] */; val* var1 /* : HashMap[MPropDef, APropdef] */; var1 = self->attrs[COLOR_modelize_property__ModelBuilder___64dmpropdef2npropdef].val; /* @mpropdef2npropdef on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mpropdef2npropdef", "src/modelize_property.nit", 37); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mpropdef2npropdef"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 37); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -138,8 +140,9 @@ var1 = 1; ((void (*)(val*, short int))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__build_properties_is_done_61d]))(var_nclassdef, var1) /* build_properties_is_done= on */; var2 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 48); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 48); +show_backtrace(1); } var_mclassdef = var2; var3 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__in_hierarchy]))(var_mclassdef) /* in_hierarchy on */; @@ -155,8 +158,9 @@ goto RET_LABEL; } var6 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__in_hierarchy]))(var_mclassdef) /* in_hierarchy on */; if (var6 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 50); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 50); +show_backtrace(1); } else { var7 = ((val* (*)(val*))(var6->class->vft[COLOR_poset__POSetElement__direct_greaters]))(var6) /* direct_greaters on */; } @@ -272,6 +276,7 @@ val* var39 /* : nullable MProperty */; short int var40 /* : Bool */; int cltype41; int idtype42; +const char* var_class_name; val* var_candidate /* var candidate: nullable MMethod */; short int var43 /* : Bool */; val* var44 /* : null */; @@ -440,8 +445,9 @@ long var199 /* : Int */; var_nclassdef = p0; var = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 70); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 70); +show_backtrace(1); } var_mclassdef = var; var1 = ((short int (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__is_intro]))(var_mclassdef) /* is_intro on */; @@ -503,15 +509,15 @@ goto RET_LABEL; } var19 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var19 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 86); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 86); +show_backtrace(1); } else { var20 = ((val* (*)(val*))(var19->class->vft[COLOR_model__MClassDef__mmodule]))(var19) /* mmodule on */; } var_mmodule = var20; var21 = NEW_array__Array(&type_array__Arraymodel__MMethod); ((void (*)(val*))(var21->class->vft[COLOR_array__Array__init]))(var21) /* init on */; -CHECK_NEW_array__Array(var21); var_combine = var21; var22 = NULL; var_inhc = var22; @@ -533,8 +539,9 @@ goto CONTINUE_label31; } var32 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var32 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 93); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 93); +show_backtrace(1); } else { var33 = ((val* (*)(val*))(var32->class->vft[COLOR_model__MClassDef__bound_mtype]))(var32) /* bound_mtype on */; } @@ -563,8 +570,10 @@ var40 = var39->type->type_table[cltype41] == idtype42; } } if (!var40) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 94); -exit(1); +var_class_name = var39 == NULL ? "null" : var39->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 94); +show_backtrace(1); } var_candidate = var39; var44 = NULL; @@ -578,8 +587,9 @@ if (var45){ var46 = ((val* (*)(val*))(var_candidate->class->vft[COLOR_model__MProperty__intro]))(var_candidate) /* intro on */; var47 = ((val* (*)(val*))(var46->class->vft[COLOR_model__MMethodDef__msignature]))(var46) /* msignature on */; if (var47 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 95); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 95); +show_backtrace(1); } else { var48 = ((long (*)(val*))(var47->class->vft[COLOR_model__MSignature__arity]))(var47) /* arity on */; } @@ -650,7 +660,6 @@ var71 = NEW_array__NativeArray(var70, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var71)->values[2] = (val*) var65; ((struct instance_array__NativeArray*)var71)->values[3] = (val*) var_c; ((void (*)(val*, val*, long))(var69->class->vft[COLOR_array__Array__with_native]))(var69, var71, var70) /* with_native on */; -CHECK_NEW_array__Array(var69); } var72 = ((val* (*)(val*))(var69->class->vft[COLOR_string__Object__to_s]))(var69) /* to_s on */; ((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_nclassdef, var72) /* error on */; @@ -693,7 +702,6 @@ var86 = NEW_array__NativeArray(var85, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var86)->values[1] = (val*) var80; ((struct instance_array__NativeArray*)var86)->values[2] = (val*) var_inhc; ((void (*)(val*, val*, long))(var84->class->vft[COLOR_array__Array__with_native]))(var84, var86, var85) /* with_native on */; -CHECK_NEW_array__Array(var84); } var87 = ((val* (*)(val*))(var84->class->vft[COLOR_string__Object__to_s]))(var84) /* to_s on */; var88 = 3; @@ -755,7 +763,6 @@ var114 = NEW_array__NativeArray(var113, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var114)->values[2] = (val*) var108; ((struct instance_array__NativeArray*)var114)->values[3] = (val*) var_inhc; ((void (*)(val*, val*, long))(var112->class->vft[COLOR_array__Array__with_native]))(var112, var114, var113) /* with_native on */; -CHECK_NEW_array__Array(var112); } var115 = ((val* (*)(val*))(var112->class->vft[COLOR_string__Object__to_s]))(var112) /* to_s on */; ((void (*)(val*, val*, val*))(self->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(self, var_nclassdef, var115) /* error on */; @@ -779,21 +786,17 @@ varonce119 = var120; var124 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on */; var125 = ((val* (*)(val*))(var124->class->vft[COLOR_model__MClass__visibility]))(var124) /* visibility on */; ((void (*)(val*, val*, val*, val*))(var118->class->vft[COLOR_model__MMethod__init]))(var118, var_mclassdef, var120, var125) /* init on */; -CHECK_NEW_model__MMethod(var118); var_mprop = var118; var126 = NEW_model__MMethodDef(&type_model__MMethodDef); var127 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__ANode__location]))(var_nclassdef) /* location on */; ((void (*)(val*, val*, val*, val*))(var126->class->vft[COLOR_model__MMethodDef__init]))(var126, var_mclassdef, var_mprop, var127) /* init on */; -CHECK_NEW_model__MMethodDef(var126); var_mpropdef128 = var126; var129 = NEW_array__Array(&type_array__Arraymodel__MParameter); ((void (*)(val*))(var129->class->vft[COLOR_array__Array__init]))(var129) /* init on */; -CHECK_NEW_array__Array(var129); var_mparameters = var129; var130 = NEW_model__MSignature(&type_model__MSignature); var131 = NULL; ((void (*)(val*, val*, val*))(var130->class->vft[COLOR_model__MSignature__init]))(var130, var_mparameters, var131) /* init on */; -CHECK_NEW_model__MSignature(var130); var_msignature = var130; ((void (*)(val*, val*))(var_mpropdef128->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var_mpropdef128, var_msignature) /* msignature= on */; var132 = 1; @@ -818,7 +821,6 @@ var141 = NEW_array__NativeArray(var140, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var141)->values[2] = (val*) var_mpropdef128; ((struct instance_array__NativeArray*)var141)->values[3] = (val*) var_msignature; ((void (*)(val*, val*, long))(var139->class->vft[COLOR_array__Array__with_native]))(var139, var141, var140) /* with_native on */; -CHECK_NEW_array__Array(var139); } var142 = ((val* (*)(val*))(var139->class->vft[COLOR_string__Object__to_s]))(var139) /* to_s on */; var143 = 3; @@ -828,7 +830,6 @@ goto RET_LABEL; } var144 = NEW_array__Array(&type_array__Arraymodel__MParameter); ((void (*)(val*))(var144->class->vft[COLOR_array__Array__init]))(var144) /* init on */; -CHECK_NEW_array__Array(var144); var_mparameters145 = var144; var146 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(var_nclassdef) /* n_propdefs on */; var147 = ((val* (*)(val*))(var146->class->vft[COLOR_abstract_collection__Collection__iterator]))(var146) /* iterator on */; @@ -872,8 +873,9 @@ goto RET_LABEL; } var161 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on */; if (var161 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 137); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 137); +show_backtrace(1); } else { var162 = ((val* (*)(val*))(var161->class->vft[COLOR_model__MPropDef__mproperty]))(var161) /* mproperty on */; } @@ -883,8 +885,9 @@ var165 = ((val* (*)(val*, long))(var163->class->vft[COLOR_string__AbstractString var_paramname = var165; var166 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on */; if (var166 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 138); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 138); +show_backtrace(1); } else { var167 = ((val* (*)(val*))(var166->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var166) /* static_mtype on */; } @@ -902,7 +905,6 @@ goto RET_LABEL; var170 = NEW_model__MParameter(&type_model__MParameter); var171 = 0; ((void (*)(val*, val*, val*, short int))(var170->class->vft[COLOR_model__MParameter__init]))(var170, var_paramname, var_ret_type, var171) /* init on */; -CHECK_NEW_model__MParameter(var170); var_mparameter = var170; ((void (*)(val*, val*))(var_mparameters145->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_mparameters145, var_mparameter) /* add on */; } else { @@ -924,17 +926,14 @@ varonce174 = var175; var179 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on */; var180 = ((val* (*)(val*))(var179->class->vft[COLOR_model__MClass__visibility]))(var179) /* visibility on */; ((void (*)(val*, val*, val*, val*))(var173->class->vft[COLOR_model__MMethod__init]))(var173, var_mclassdef, var175, var180) /* init on */; -CHECK_NEW_model__MMethod(var173); var_mprop181 = var173; var182 = NEW_model__MMethodDef(&type_model__MMethodDef); var183 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_parser_nodes__ANode__location]))(var_nclassdef) /* location on */; ((void (*)(val*, val*, val*, val*))(var182->class->vft[COLOR_model__MMethodDef__init]))(var182, var_mclassdef, var_mprop181, var183) /* init on */; -CHECK_NEW_model__MMethodDef(var182); var_mpropdef184 = var182; var185 = NEW_model__MSignature(&type_model__MSignature); var186 = NULL; ((void (*)(val*, val*, val*))(var185->class->vft[COLOR_model__MSignature__init]))(var185, var_mparameters145, var186) /* init on */; -CHECK_NEW_model__MSignature(var185); var_msignature187 = var185; ((void (*)(val*, val*))(var_mpropdef184->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var_mpropdef184, var_msignature187) /* msignature= on */; var188 = 1; @@ -959,7 +958,6 @@ var197 = NEW_array__NativeArray(var196, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var197)->values[2] = (val*) var_mpropdef184; ((struct instance_array__NativeArray*)var197)->values[3] = (val*) var_msignature187; ((void (*)(val*, val*, long))(var195->class->vft[COLOR_array__Array__with_native]))(var195, var197, var196) /* with_native on */; -CHECK_NEW_array__Array(var195); } var198 = ((val* (*)(val*))(var195->class->vft[COLOR_string__Object__to_s]))(var195) /* to_s on */; var199 = 3; @@ -999,6 +997,67 @@ void VIRTUAL_modelize_property__MClass__inherit_init_from_61d(val* self, val* p0 modelize_property__MClass__inherit_init_from_61d(self, p0); RET_LABEL:; } +/* method modelize_property#MClassDef#propdef_names for (self: MClassDef): HashSet[String] */ +val* modelize_property__MClassDef__propdef_names(val* self) { +val* var /* : HashSet[String] */; +val* var1 /* : HashSet[String] */; +var1 = self->attrs[COLOR_modelize_property__MClassDef___64dpropdef_names].val; /* @propdef_names on */ +if (var1 == NULL) { +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @propdef_names"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 162); +show_backtrace(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method modelize_property#MClassDef#propdef_names for (self: Object): HashSet[String] */ +val* VIRTUAL_modelize_property__MClassDef__propdef_names(val* self) { +val* var /* : HashSet[String] */; +val* var1 /* : HashSet[String] */; +var1 = modelize_property__MClassDef__propdef_names(self); +var = var1; +RET_LABEL:; +return var; +} +/* method modelize_property#MClassDef#propdef_names= for (self: MClassDef, HashSet[String]) */ +void modelize_property__MClassDef__propdef_names_61d(val* self, val* p0) { +self->attrs[COLOR_modelize_property__MClassDef___64dpropdef_names].val = p0; /* @propdef_names on */ +RET_LABEL:; +} +/* method modelize_property#MClassDef#propdef_names= for (self: Object, HashSet[String]) */ +void VIRTUAL_modelize_property__MClassDef__propdef_names_61d(val* self, val* p0) { +modelize_property__MClassDef__propdef_names_61d(self, p0); +RET_LABEL:; +} +/* method modelize_property#MPropDef#has_supercall for (self: MPropDef): Bool */ +short int modelize_property__MPropDef__has_supercall(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = self->attrs[COLOR_modelize_property__MPropDef___64dhas_supercall].s; /* @has_supercall on */ +var = var1; +RET_LABEL:; +return var; +} +/* method modelize_property#MPropDef#has_supercall for (self: Object): Bool */ +short int VIRTUAL_modelize_property__MPropDef__has_supercall(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = modelize_property__MPropDef__has_supercall(self); +var = var1; +RET_LABEL:; +return var; +} +/* method modelize_property#MPropDef#has_supercall= for (self: MPropDef, Bool) */ +void modelize_property__MPropDef__has_supercall_61d(val* self, short int p0) { +self->attrs[COLOR_modelize_property__MPropDef___64dhas_supercall].s = p0; /* @has_supercall on */ +RET_LABEL:; +} +/* method modelize_property#MPropDef#has_supercall= for (self: Object, Bool) */ +void VIRTUAL_modelize_property__MPropDef__has_supercall_61d(val* self, short int p0) { +modelize_property__MPropDef__has_supercall_61d(self, p0); +RET_LABEL:; +} /* method modelize_property#AClassdef#build_properties_is_done for (self: AClassdef): Bool */ short int modelize_property__AClassdef__build_properties_is_done(val* self) { short int var /* : Bool */; @@ -1089,8 +1148,9 @@ val* var /* : Map[MProperty, APropdef] */; val* var1 /* : Map[MProperty, APropdef] */; var1 = self->attrs[COLOR_modelize_property__AClassdef___64dmprop2npropdef].val; /* @mprop2npropdef on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mprop2npropdef", "src/modelize_property.nit", 170); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mprop2npropdef"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 180); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1130,7 +1190,6 @@ short int var7 /* : Bool */; val* var8 /* : String */; var1 = NEW_modelize_property__TextCollectorVisitor(&type_modelize_property__TextCollectorVisitor); ((void (*)(val*))(var1->class->vft[COLOR_modelize_property__TextCollectorVisitor__init]))(var1) /* init on */; -CHECK_NEW_modelize_property__TextCollectorVisitor(var1); var_v = var1; ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, self) /* enter_visit on */; var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_modelize_property__TextCollectorVisitor__text]))(var_v) /* text on */; @@ -1145,8 +1204,9 @@ varonce = var3; } var7 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_kernel__Object___33d_61d]))(var2, var3) /* != on */; if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/modelize_property.nit", 182); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 192); +show_backtrace(1); } var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_modelize_property__TextCollectorVisitor__text]))(var_v) /* text on */; var = var8; @@ -1169,8 +1229,9 @@ val* var /* : String */; val* var1 /* : String */; var1 = self->attrs[COLOR_modelize_property__TextCollectorVisitor___64dtext].val; /* @text on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @text", "src/modelize_property.nit", 189); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @text"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 199); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1264,9 +1325,10 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; /* Covariant cast for argument 0 (mpropdef) isa nullable MPROPDEF */ /* isa nullable MPROPDEF */ -type_struct = self->type->resolution_table->types[COLOR_parser_nodes__APropdef_VTMPROPDEF]; +type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF]; cltype = type_struct->color; idtype = type_struct->id; if(p0 == NULL) { @@ -1279,8 +1341,10 @@ var = p0->type->type_table[cltype] == idtype; } } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 201); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 211); +show_backtrace(1); } self->attrs[COLOR_modelize_property__APropdef___64dmpropdef].val = p0; /* @mpropdef on */ RET_LABEL:; @@ -1292,8 +1356,11 @@ RET_LABEL:; } /* method modelize_property#APropdef#build_property for (self: APropdef, ModelBuilder, AClassdef) */ void modelize_property__APropdef__build_property(val* self, val* p0, val* p1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/modelize_property.nit", 204); -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`", "build_property", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 214); +show_backtrace(1); RET_LABEL:; } /* method modelize_property#APropdef#build_property for (self: Object, ModelBuilder, AClassdef) */ @@ -1303,8 +1370,11 @@ RET_LABEL:; } /* method modelize_property#APropdef#build_signature for (self: APropdef, ModelBuilder, AClassdef) */ void modelize_property__APropdef__build_signature(val* self, val* p0, val* p1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/modelize_property.nit", 205); -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`", "build_signature", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 215); +show_backtrace(1); RET_LABEL:; } /* method modelize_property#APropdef#build_signature for (self: Object, ModelBuilder, AClassdef) */ @@ -1314,8 +1384,11 @@ RET_LABEL:; } /* method modelize_property#APropdef#check_signature for (self: APropdef, ModelBuilder, AClassdef) */ void modelize_property__APropdef__check_signature(val* self, val* p0, val* p1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "src/modelize_property.nit", 206); -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`", "check_signature", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 216); +show_backtrace(1); RET_LABEL:; } /* method modelize_property#APropdef#check_signature for (self: Object, ModelBuilder, AClassdef) */ @@ -1396,8 +1469,9 @@ var_mvisibility = var11; } var12 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var12 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 217); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 227); +show_backtrace(1); } else { var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MClassDef__mclass]))(var12) /* mclass on */; } @@ -1415,8 +1489,9 @@ var20 = 0; /* is null */ var20 = 1; /* arg is null and recv is not */ } if (!var20) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/modelize_property.nit", 219); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 229); +show_backtrace(1); } if (varonce21) { var22 = varonce21; @@ -1439,8 +1514,9 @@ var29 = 0; /* is null */ var29 = 1; /* arg is null and recv is not */ } if (!var29) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/modelize_property.nit", 222); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 232); +show_backtrace(1); } } else { } @@ -1549,7 +1625,6 @@ var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var20)->values[2] = (val*) var14; ((struct instance_array__NativeArray*)var20)->values[3] = (val*) var_mvisibility; ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on */; -CHECK_NEW_array__Array(var18); } var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_nvisibility, var21) /* error on */; @@ -1672,8 +1747,9 @@ varonce7 = var8; } var12 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var12 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 243); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 253); +show_backtrace(1); } else { var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MClassDef__mclass]))(var12) /* mclass on */; } @@ -1696,7 +1772,6 @@ var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var21)->values[3] = (val*) var13; ((struct instance_array__NativeArray*)var21)->values[4] = (val*) var15; ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on */; -CHECK_NEW_array__Array(var19); } var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var22) /* error on */; @@ -1724,8 +1799,9 @@ varonce26 = var27; } var31 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var31 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 248); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 258); +show_backtrace(1); } else { var32 = ((val* (*)(val*))(var31->class->vft[COLOR_model__MClassDef__mclass]))(var31) /* mclass on */; } @@ -1758,7 +1834,6 @@ var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var46)->values[3] = (val*) var38; ((struct instance_array__NativeArray*)var46)->values[4] = (val*) var40; ((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*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var47) /* error on */; @@ -1781,8 +1856,9 @@ varonce50 = var51; } var55 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var55 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 253); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 263); +show_backtrace(1); } else { var56 = ((val* (*)(val*))(var55->class->vft[COLOR_model__MClassDef__mclass]))(var55) /* mclass on */; } @@ -1815,7 +1891,6 @@ var70 = NEW_array__NativeArray(var69, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var70)->values[3] = (val*) var62; ((struct instance_array__NativeArray*)var70)->values[4] = (val*) var64; ((void (*)(val*, val*, long))(var68->class->vft[COLOR_array__Array__with_native]))(var68, var70, var69) /* with_native on */; -CHECK_NEW_array__Array(var68); } var71 = ((val* (*)(val*))(var68->class->vft[COLOR_string__Object__to_s]))(var68) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var71) /* error on */; @@ -1874,8 +1949,9 @@ val* var /* : Array[String] */; val* var1 /* : Array[String] */; var1 = self->attrs[COLOR_modelize_property__ASignature___64dparam_names].val; /* @param_names on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @param_names", "src/modelize_property.nit", 265); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @param_names"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 275); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1906,8 +1982,9 @@ val* var /* : Array[MType] */; val* var1 /* : Array[MType] */; var1 = self->attrs[COLOR_modelize_property__ASignature___64dparam_types].val; /* @param_types on */ if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @param_types", "src/modelize_property.nit", 268); -exit(1); +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @param_types"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 278); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2066,17 +2143,8 @@ val* var68 /* : nullable MType */; val* var69 /* : null */; short int var70 /* : Bool */; short int var71 /* : Bool */; -val* var72 /* : ANodes[AClosureDecl] */; -val* var73 /* : Iterator[nullable Object] */; -short int var74 /* : Bool */; -val* var75 /* : nullable Object */; -val* var_nclosure /* var nclosure: AClosureDecl */; -val* var76 /* : ASignature */; -short int var77 /* : Bool */; -short int var78 /* : Bool */; -short int var79 /* : Bool */; -short int var81 /* : Bool */; -short int var82 /* : Bool */; +short int var72 /* : Bool */; +short int var73 /* : Bool */; var_modelbuilder = p0; var_nclassdef = p1; var1 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__param_names]))(self) /* param_names on */; @@ -2129,7 +2197,6 @@ RET_LABEL21:(void)0; var23 = BOX_kernel__Int(var17); /* autobox from Int to Discrete */ var24 = BOX_kernel__Int(var20); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var16->class->vft[COLOR_range__Range__without_last]))(var16, var23, var24) /* without_last on */; -CHECK_NEW_range__Range(var16); var25 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on */; for(;;) { var26 = ((short int (*)(val*))(var25->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var25) /* is_ok on */; @@ -2194,7 +2261,6 @@ var54 = NEW_array__NativeArray(var53, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var54)->values[1] = (val*) var46; ((struct instance_array__NativeArray*)var54)->values[2] = (val*) var48; ((void (*)(val*, val*, long))(var52->class->vft[COLOR_array__Array__with_native]))(var52, var54, var53) /* with_native on */; -CHECK_NEW_array__Array(var52); } var55 = ((val* (*)(val*))(var52->class->vft[COLOR_string__Object__to_s]))(var52) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_np, var55) /* error on */; @@ -2246,30 +2312,10 @@ goto RET_LABEL; } } else { } -var72 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASignature__n_closure_decls]))(self) /* n_closure_decls on */; -var73 = ((val* (*)(val*))(var72->class->vft[COLOR_abstract_collection__Collection__iterator]))(var72) /* iterator on */; -for(;;) { -var74 = ((short int (*)(val*))(var73->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var73) /* is_ok on */; -if(!var74) break; -var75 = ((val* (*)(val*))(var73->class->vft[COLOR_abstract_collection__Iterator__item]))(var73) /* item on */; -var_nclosure = var75; -var76 = ((val* (*)(val*))(var_nclosure->class->vft[COLOR_parser_nodes__AClosureDecl__n_signature]))(var_nclosure) /* n_signature on */; -var77 = ((short int (*)(val*, val*, val*))(var76->class->vft[COLOR_modelize_property__ASignature__visit_signature]))(var76, var_modelbuilder, var_nclassdef) /* visit_signature on */; -var78 = !var77; -if (var78){ -var79 = 0; -var = var79; -goto RET_LABEL; -} else { -} -CONTINUE_label80: (void)0; -((void (*)(val*))(var73->class->vft[COLOR_abstract_collection__Iterator__next]))(var73) /* next on */; -} -BREAK_label80: (void)0; -var81 = 1; -((void (*)(val*, short int))(self->class->vft[COLOR_modelize_property__ASignature__is_visited_61d]))(self, var81) /* is_visited= on */; -var82 = 1; -var = var82; +var72 = 1; +((void (*)(val*, short int))(self->class->vft[COLOR_modelize_property__ASignature__is_visited_61d]))(self, var72) /* is_visited= on */; +var73 = 1; +var = var73; goto RET_LABEL; RET_LABEL:; return var; @@ -2393,7 +2439,6 @@ var28 = NEW_array__NativeArray(var27, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var28)->values[1] = (val*) var20; ((struct instance_array__NativeArray*)var28)->values[2] = (val*) var22; ((void (*)(val*, val*, long))(var26->class->vft[COLOR_array__Array__with_native]))(var26, var28, var27) /* with_native on */; -CHECK_NEW_array__Array(var26); } var29 = ((val* (*)(val*))(var26->class->vft[COLOR_string__Object__to_s]))(var26) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var12, var29) /* error on */; @@ -2404,7 +2449,6 @@ goto RET_LABEL; } var31 = NEW_array__Array(&type_array__Arraymodel__MParameter); ((void (*)(val*))(var31->class->vft[COLOR_array__Array__init]))(var31) /* init on */; -CHECK_NEW_array__Array(var31); var_mparameters = var31; var32 = NEW_range__Range(&type_range__Rangekernel__Int); var33 = 0; @@ -2413,7 +2457,6 @@ var35 = ((long (*)(val*))(var34->class->vft[COLOR_abstract_collection__Collectio var36 = BOX_kernel__Int(var33); /* autobox from Int to Discrete */ var37 = BOX_kernel__Int(var35); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var32->class->vft[COLOR_range__Range__without_last]))(var32, var36, var37) /* without_last on */; -CHECK_NEW_range__Range(var32); var38 = ((val* (*)(val*))(var32->class->vft[COLOR_abstract_collection__Collection__iterator]))(var32) /* iterator on */; for(;;) { var39 = ((short int (*)(val*))(var38->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var38) /* is_ok on */; @@ -2434,7 +2477,6 @@ goto RET_LABEL49; RET_LABEL49:(void)0; } ((void (*)(val*, val*, val*, short int))(var42->class->vft[COLOR_model__MParameter__init]))(var42, var44, var46, var48) /* init on */; -CHECK_NEW_model__MParameter(var42); var_mparameter = var42; var51 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASignature__n_params]))(self) /* n_params on */; var52 = ((val* (*)(val*, long))(var51->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var51, var_i) /* [] on */; @@ -2447,7 +2489,6 @@ BREAK_label: (void)0; var53 = NEW_model__MSignature(&type_model__MSignature); var54 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__ASignature__ret_type]))(self) /* ret_type on */; ((void (*)(val*, val*, val*))(var53->class->vft[COLOR_model__MSignature__init]))(var53, var_mparameters, var54) /* init on */; -CHECK_NEW_model__MSignature(var53); var_msignature = var53; var = var_msignature; goto RET_LABEL; @@ -2569,6 +2610,7 @@ val* var61 /* : nullable MProperty */; short int var62 /* : Bool */; int cltype63; int idtype64; +const char* var_class_name; val* var65 /* : null */; short int var66 /* : Bool */; val* var67 /* : nullable AVisibility */; @@ -2597,36 +2639,77 @@ val* var88 /* : Map[MProperty, APropdef] */; val* var89 /* : MMethodDef */; val* var90 /* : Location */; val* var_mpropdef /* var mpropdef: MMethodDef */; -short int var91 /* : Bool */; -int cltype92; -int idtype93; -const struct type* type_struct; -val* var94 /* : HashMap[MPropDef, APropdef] */; -short int var95 /* : Bool */; -val* var96 /* : ToolContext */; -static val* varonce97; -val* var98 /* : String */; -char* var99 /* : NativeString */; -long var100 /* : Int */; +val* var91 /* : HashSet[String] */; +val* var92 /* : String */; +short int var93 /* : Bool */; +val* var94 /* : null */; +val* var_loc /* var loc: nullable Location */; +val* var95 /* : Array[MPropDef] */; +val* var96 /* : Iterator[nullable Object] */; +short int var97 /* : Bool */; +val* var98 /* : nullable Object */; +val* var_i /* var i: MPropDef */; +val* var99 /* : MProperty */; +val* var100 /* : String */; val* var101 /* : String */; -val* var102 /* : String */; -val* var103 /* : Array[Object] */; -long var104 /* : Int */; -val* var105 /* : NativeArray[Object] */; -val* var106 /* : String */; -long var107 /* : Int */; -val* var108 /* : ToolContext */; -static val* varonce109; +short int var102 /* : Bool */; +val* var103 /* : Location */; +val* var104 /* : null */; +short int var105 /* : Bool */; +static val* varonce106; +val* var107 /* : String */; +char* var108 /* : NativeString */; +long var109 /* : Int */; val* var110 /* : String */; -char* var111 /* : NativeString */; -long var112 /* : Int */; -val* var113 /* : String */; -val* var114 /* : String */; -val* var115 /* : Array[Object] */; -long var116 /* : Int */; -val* var117 /* : NativeArray[Object] */; +static val* varonce111; +val* var112 /* : String */; +char* var113 /* : NativeString */; +long var114 /* : Int */; +val* var115 /* : String */; +val* var116 /* : MClass */; +static val* varonce117; val* var118 /* : String */; -long var119 /* : Int */; +char* var119 /* : NativeString */; +long var120 /* : Int */; +val* var121 /* : String */; +val* var122 /* : Array[Object] */; +long var123 /* : Int */; +val* var124 /* : NativeArray[Object] */; +val* var125 /* : String */; +val* var126 /* : HashSet[String] */; +val* var127 /* : MProperty */; +val* var128 /* : String */; +short int var129 /* : Bool */; +int cltype130; +int idtype131; +const struct type* type_struct; +const char* var_class_name132; +val* var133 /* : HashMap[MPropDef, APropdef] */; +short int var134 /* : Bool */; +val* var135 /* : ToolContext */; +static val* varonce136; +val* var137 /* : String */; +char* var138 /* : NativeString */; +long var139 /* : Int */; +val* var140 /* : String */; +val* var141 /* : String */; +val* var142 /* : Array[Object] */; +long var143 /* : Int */; +val* var144 /* : NativeArray[Object] */; +val* var145 /* : String */; +long var146 /* : Int */; +val* var147 /* : ToolContext */; +static val* varonce148; +val* var149 /* : String */; +char* var150 /* : NativeString */; +long var151 /* : Int */; +val* var152 /* : String */; +val* var153 /* : String */; +val* var154 /* : Array[Object] */; +long var155 /* : Int */; +val* var156 /* : NativeArray[Object] */; +val* var157 /* : String */; +long var158 /* : Int */; var_modelbuilder = p0; var_nclassdef = p1; /* isa AInitPropdef */ @@ -2640,8 +2723,9 @@ var = self->type->type_table[cltype] == idtype; var_is_init = var; var1 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var1 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 347); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 353); +show_backtrace(1); } var_mclassdef = var1; var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_methid]))(self) /* n_methid on */; @@ -2718,8 +2802,9 @@ var_name = var25; var29 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternInitPropdef__n_kwnew]))(self) /* n_kwnew on */; var_name_node = var29; } else { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/modelize_property.nit", 362); -exit(1); +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 368); +show_backtrace(1); } } } @@ -2756,8 +2841,9 @@ var36 = 0; } else { var43 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_signature]))(self) /* n_signature on */; if (var43 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 372); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 378); +show_backtrace(1); } else { var44 = ((val* (*)(val*))(var43->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var43) /* n_params on */; } @@ -2817,8 +2903,10 @@ var62 = var61->type->type_table[cltype63] == idtype64; } } if (!var62) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 378); -exit(1); +var_class_name = var61 == NULL ? "null" : var61->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 384); +show_backtrace(1); } var_mprop = var61; } else { @@ -2835,7 +2923,6 @@ var68 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_prop var_mvisibility = var68; var69 = NEW_model__MMethod(&type_model__MMethod); ((void (*)(val*, val*, val*, val*))(var69->class->vft[COLOR_model__MMethod__init]))(var69, var_mclassdef, var_name, var_mvisibility) /* init on */; -CHECK_NEW_model__MMethod(var69); var_mprop = var69; ((void (*)(val*, short int))(var_mprop->class->vft[COLOR_model__MMethod__is_init_61d]))(var_mprop, var_is_init) /* is_init= on */; /* isa AExternInitPropdef */ @@ -2893,75 +2980,161 @@ var88 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__ACl var89 = NEW_model__MMethodDef(&type_model__MMethodDef); var90 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; ((void (*)(val*, val*, val*, val*))(var89->class->vft[COLOR_model__MMethodDef__init]))(var89, var_mclassdef, var_mprop, var90) /* init on */; -CHECK_NEW_model__MMethodDef(var89); var_mpropdef = var89; -/* isa nullable MPROPDEF */ -type_struct = self->type->resolution_table->types[COLOR_parser_nodes__APropdef_VTMPROPDEF]; -cltype92 = type_struct->color; -idtype93 = type_struct->id; -if(cltype92 >= var_mpropdef->type->table_size) { -var91 = 0; +var91 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_modelize_property__MClassDef__propdef_names]))(var_mclassdef) /* propdef_names on */; +var92 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__name]))(var_mprop) /* name on */; +var93 = ((short int (*)(val*, val*))(var91->class->vft[COLOR_abstract_collection__Collection__has]))(var91, var92) /* has on */; +if (var93){ +var94 = NULL; +var_loc = var94; +var95 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mpropdefs]))(var_mclassdef) /* mpropdefs on */; +var96 = ((val* (*)(val*))(var95->class->vft[COLOR_abstract_collection__Collection__iterator]))(var95) /* iterator on */; +for(;;) { +var97 = ((short int (*)(val*))(var96->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var96) /* is_ok on */; +if(!var97) break; +var98 = ((val* (*)(val*))(var96->class->vft[COLOR_abstract_collection__Iterator__item]))(var96) /* item on */; +var_i = var98; +var99 = ((val* (*)(val*))(var_i->class->vft[COLOR_model__MPropDef__mproperty]))(var_i) /* mproperty on */; +var100 = ((val* (*)(val*))(var99->class->vft[COLOR_model__MProperty__name]))(var99) /* name on */; +var101 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__name]))(var_mprop) /* name on */; +var102 = ((short int (*)(val*, val*))(var100->class->vft[COLOR_kernel__Object___61d_61d]))(var100, var101) /* == on */; +if (var102){ +var103 = ((val* (*)(val*))(var_i->class->vft[COLOR_model__MPropDef__location]))(var_i) /* location on */; +var_loc = var103; +goto BREAK_label; } else { -var91 = var_mpropdef->type->type_table[cltype92] == idtype93; -} -if (!var91) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 399); -exit(1); } -((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef) /* mpropdef= on */; -var94 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; -((void (*)(val*, val*, val*))(var94->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var94, var_mpropdef, self) /* []= on */; -var95 = ((short int (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__is_intro]))(var_mpropdef) /* is_intro on */; -if (var95){ -var96 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var_modelbuilder) /* toolcontext on */; -if (varonce97) { -var98 = varonce97; -} else { -var99 = " introduces new method "; -var100 = 23; -var101 = string__NativeString__to_s_with_length(var99, var100); -var98 = var101; -varonce97 = var98; +CONTINUE_label: (void)0; +((void (*)(val*))(var96->class->vft[COLOR_abstract_collection__Iterator__next]))(var96) /* next on */; } -var102 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__full_name]))(var_mprop) /* full_name on */; -var103 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var103 = array_instance Array[Object] */ -var104 = 3; -var105 = NEW_array__NativeArray(var104, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var105)->values[0] = (val*) var_mpropdef; -((struct instance_array__NativeArray*)var105)->values[1] = (val*) var98; -((struct instance_array__NativeArray*)var105)->values[2] = (val*) var102; -((void (*)(val*, val*, long))(var103->class->vft[COLOR_array__Array__with_native]))(var103, var105, var104) /* with_native on */; -CHECK_NEW_array__Array(var103); -} -var106 = ((val* (*)(val*))(var103->class->vft[COLOR_string__Object__to_s]))(var103) /* to_s on */; -var107 = 3; -((void (*)(val*, val*, long))(var96->class->vft[COLOR_toolcontext__ToolContext__info]))(var96, var106, var107) /* info on */; -} else { -var108 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var_modelbuilder) /* toolcontext on */; -if (varonce109) { -var110 = varonce109; +BREAK_label: (void)0; +var104 = NULL; +if (var_loc == NULL) { +var105 = 1; /* is null */ +} else { +var105 = 0; /* arg is null but recv is not */ +} +if (var105){ +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 413); +show_backtrace(1); +} else { +} +if (varonce106) { +var107 = varonce106; +} else { +var108 = "Error: a property "; +var109 = 18; +var110 = string__NativeString__to_s_with_length(var108, var109); +var107 = var110; +varonce106 = var107; +} +if (varonce111) { +var112 = varonce111; +} else { +var113 = " is already defined in class "; +var114 = 29; +var115 = string__NativeString__to_s_with_length(var113, var114); +var112 = var115; +varonce111 = var112; +} +var116 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on */; +if (varonce117) { +var118 = varonce117; +} else { +var119 = " at "; +var120 = 4; +var121 = string__NativeString__to_s_with_length(var119, var120); +var118 = var121; +varonce117 = var118; +} +var122 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var122 = array_instance Array[Object] */ +var123 = 6; +var124 = NEW_array__NativeArray(var123, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var124)->values[0] = (val*) var107; +((struct instance_array__NativeArray*)var124)->values[1] = (val*) var_mprop; +((struct instance_array__NativeArray*)var124)->values[2] = (val*) var112; +((struct instance_array__NativeArray*)var124)->values[3] = (val*) var116; +((struct instance_array__NativeArray*)var124)->values[4] = (val*) var118; +((struct instance_array__NativeArray*)var124)->values[5] = (val*) var_loc; +((void (*)(val*, val*, long))(var122->class->vft[COLOR_array__Array__with_native]))(var122, var124, var123) /* with_native on */; +} +var125 = ((val* (*)(val*))(var122->class->vft[COLOR_string__Object__to_s]))(var122) /* to_s on */; +((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var125) /* error on */; +} else { +} +var126 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_modelize_property__MClassDef__propdef_names]))(var_mclassdef) /* propdef_names on */; +var127 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on */; +var128 = ((val* (*)(val*))(var127->class->vft[COLOR_model__MProperty__name]))(var127) /* name on */; +((void (*)(val*, val*))(var126->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var126, var128) /* add on */; +/* isa nullable MPROPDEF */ +type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF]; +cltype130 = type_struct->color; +idtype131 = type_struct->id; +if(cltype130 >= var_mpropdef->type->table_size) { +var129 = 0; } else { -var111 = " redefines method "; -var112 = 18; -var113 = string__NativeString__to_s_with_length(var111, var112); -var110 = var113; -varonce109 = var110; +var129 = var_mpropdef->type->type_table[cltype130] == idtype131; } -var114 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__full_name]))(var_mprop) /* full_name on */; -var115 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var115 = array_instance Array[Object] */ -var116 = 3; -var117 = NEW_array__NativeArray(var116, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var117)->values[0] = (val*) var_mpropdef; -((struct instance_array__NativeArray*)var117)->values[1] = (val*) var110; -((struct instance_array__NativeArray*)var117)->values[2] = (val*) var114; -((void (*)(val*, val*, long))(var115->class->vft[COLOR_array__Array__with_native]))(var115, var117, var116) /* with_native on */; -CHECK_NEW_array__Array(var115); +if (!var129) { +var_class_name132 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name132); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 419); +show_backtrace(1); } -var118 = ((val* (*)(val*))(var115->class->vft[COLOR_string__Object__to_s]))(var115) /* to_s on */; -var119 = 3; -((void (*)(val*, val*, long))(var108->class->vft[COLOR_toolcontext__ToolContext__info]))(var108, var118, var119) /* info on */; +((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef) /* mpropdef= on */; +var133 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; +((void (*)(val*, val*, val*))(var133->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var133, var_mpropdef, self) /* []= on */; +var134 = ((short int (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__is_intro]))(var_mpropdef) /* is_intro on */; +if (var134){ +var135 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var_modelbuilder) /* toolcontext on */; +if (varonce136) { +var137 = varonce136; +} else { +var138 = " introduces new method "; +var139 = 23; +var140 = string__NativeString__to_s_with_length(var138, var139); +var137 = var140; +varonce136 = var137; +} +var141 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__full_name]))(var_mprop) /* full_name on */; +var142 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var142 = array_instance Array[Object] */ +var143 = 3; +var144 = NEW_array__NativeArray(var143, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var144)->values[0] = (val*) var_mpropdef; +((struct instance_array__NativeArray*)var144)->values[1] = (val*) var137; +((struct instance_array__NativeArray*)var144)->values[2] = (val*) var141; +((void (*)(val*, val*, long))(var142->class->vft[COLOR_array__Array__with_native]))(var142, var144, var143) /* with_native on */; +} +var145 = ((val* (*)(val*))(var142->class->vft[COLOR_string__Object__to_s]))(var142) /* to_s on */; +var146 = 3; +((void (*)(val*, val*, long))(var135->class->vft[COLOR_toolcontext__ToolContext__info]))(var135, var145, var146) /* info on */; +} else { +var147 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var_modelbuilder) /* toolcontext on */; +if (varonce148) { +var149 = varonce148; +} else { +var150 = " redefines method "; +var151 = 18; +var152 = string__NativeString__to_s_with_length(var150, var151); +var149 = var152; +varonce148 = var149; +} +var153 = ((val* (*)(val*))(var_mprop->class->vft[COLOR_model__MProperty__full_name]))(var_mprop) /* full_name on */; +var154 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var154 = array_instance Array[Object] */ +var155 = 3; +var156 = NEW_array__NativeArray(var155, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var156)->values[0] = (val*) var_mpropdef; +((struct instance_array__NativeArray*)var156)->values[1] = (val*) var149; +((struct instance_array__NativeArray*)var156)->values[2] = (val*) var153; +((void (*)(val*, val*, long))(var154->class->vft[COLOR_array__Array__with_native]))(var154, var156, var155) /* with_native on */; +} +var157 = ((val* (*)(val*))(var154->class->vft[COLOR_string__Object__to_s]))(var154) /* to_s on */; +var158 = 3; +((void (*)(val*, val*, long))(var147->class->vft[COLOR_toolcontext__ToolContext__info]))(var147, var157, var158) /* info on */; } RET_LABEL:; } @@ -3076,6 +3249,7 @@ val* var88 /* : MPropDef */; short int var89 /* : Bool */; int cltype; int idtype; +const char* var_class_name; val* var90 /* : nullable MSignature */; short int var91 /* : Bool */; short int var92 /* : Bool */; @@ -3163,24 +3337,6 @@ val* var176 /* : MSignature */; short int var177 /* : Bool */; int cltype178; int idtype179; -val* var180 /* : null */; -short int var181 /* : Bool */; -val* var182 /* : ANodes[AClosureDecl] */; -val* var183 /* : Iterator[nullable Object] */; -short int var184 /* : Bool */; -val* var185 /* : nullable Object */; -val* var_nclosure /* var nclosure: AClosureDecl */; -val* var186 /* : ASignature */; -val* var187 /* : nullable MSignature */; -val* var_clos_signature /* var clos_signature: nullable MSignature */; -val* var188 /* : null */; -short int var189 /* : Bool */; -val* var190 /* : MParameter */; -val* var191 /* : TId */; -val* var192 /* : String */; -short int var193 /* : Bool */; -val* var_mparameter194 /* var mparameter: MParameter */; -val* var195 /* : Array[MParameter] */; var_modelbuilder = p0; var_nclassdef = p1; var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; @@ -3202,11 +3358,9 @@ var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_si var_nsig = var5; var6 = NEW_array__Array(&type_array__Arraystring__String); ((void (*)(val*))(var6->class->vft[COLOR_array__Array__init]))(var6) /* init on */; -CHECK_NEW_array__Array(var6); var_param_names = var6; var7 = NEW_array__Array(&type_array__Arraymodel__MType); ((void (*)(val*))(var7->class->vft[COLOR_array__Array__init]))(var7) /* init on */; -CHECK_NEW_array__Array(var7); var_param_types = var7; var8 = 1; { /* Inline kernel#Int#unary - (var8) */ @@ -3348,7 +3502,6 @@ var69 = BOX_kernel__Int(var59); /* autobox from Int to Object */ ((struct instance_array__NativeArray*)var67)->values[9] = (val*) var_mpropdef; ((struct instance_array__NativeArray*)var67)->values[10] = (val*) var_msignature; ((void (*)(val*, val*, long))(var65->class->vft[COLOR_array__Array__with_native]))(var65, var67, var66) /* with_native on */; -CHECK_NEW_array__Array(var65); } var70 = ((val* (*)(val*))(var65->class->vft[COLOR_string__Object__to_s]))(var65) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node, var70) /* error on */; @@ -3361,8 +3514,9 @@ var72 = ((short int (*)(val*))(var71->class->vft[COLOR_model__MMethod__is_init]) if (var72){ var73 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var73 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 444); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 464); +show_backtrace(1); } else { var74 = ((val* (*)(val*))(var73->class->vft[COLOR_model__MClassDef__supertypes]))(var73) /* supertypes on */; } @@ -3374,8 +3528,9 @@ var77 = ((val* (*)(val*))(var75->class->vft[COLOR_abstract_collection__Iterator_ var_msupertype = var77; var78 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var78 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 445); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 465); +show_backtrace(1); } else { var79 = ((val* (*)(val*))(var78->class->vft[COLOR_model__MClassDef__bound_mtype]))(var78) /* bound_mtype on */; } @@ -3409,8 +3564,10 @@ var89 = 0; var89 = var88->type->type_table[cltype] == idtype; } if (!var89) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 449); -exit(1); +var_class_name = var88 == NULL ? "null" : var88->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 469); +show_backtrace(1); } var90 = ((val* (*)(val*))(var88->class->vft[COLOR_model__MMethodDef__msignature]))(var88) /* msignature on */; var_msignature = var90; @@ -3477,7 +3634,6 @@ var91 = var_108; if (var91){ var114 = NEW_array__Array(&type_array__Arraymodel__MType); ((void (*)(val*))(var114->class->vft[COLOR_array__Array__init]))(var114) /* init on */; -CHECK_NEW_array__Array(var114); var_param_types = var114; var115 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__mparameters]))(var_msignature) /* mparameters on */; var116 = ((val* (*)(val*))(var115->class->vft[COLOR_abstract_collection__Collection__iterator]))(var115) /* iterator on */; @@ -3530,8 +3686,9 @@ RET_LABEL132:(void)0; } if (var131){ if (var_nsig == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 471); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 491); +show_backtrace(1); } else { var135 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var_nsig) /* n_params on */; } @@ -3565,7 +3722,6 @@ var152 = NEW_array__NativeArray(var151, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var152)->values[1] = (val*) var144; ((struct instance_array__NativeArray*)var152)->values[2] = (val*) var146; ((void (*)(val*, val*, long))(var150->class->vft[COLOR_array__Array__with_native]))(var150, var152, var151) /* with_native on */; -CHECK_NEW_array__Array(var150); } var153 = ((val* (*)(val*))(var150->class->vft[COLOR_string__Object__to_s]))(var150) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var137, var153) /* error on */; @@ -3574,7 +3730,6 @@ goto RET_LABEL; } var154 = NEW_array__Array(&type_array__Arraymodel__MParameter); ((void (*)(val*))(var154->class->vft[COLOR_array__Array__init]))(var154) /* init on */; -CHECK_NEW_array__Array(var154); var_mparameters = var154; var155 = NEW_range__Range(&type_range__Rangekernel__Int); var156 = 0; @@ -3582,7 +3737,6 @@ var157 = ((long (*)(val*))(var_param_names->class->vft[COLOR_abstract_collection var158 = BOX_kernel__Int(var156); /* autobox from Int to Discrete */ var159 = BOX_kernel__Int(var157); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var155->class->vft[COLOR_range__Range__without_last]))(var155, var158, var159) /* without_last on */; -CHECK_NEW_range__Range(var155); var160 = ((val* (*)(val*))(var155->class->vft[COLOR_abstract_collection__Collection__iterator]))(var155) /* iterator on */; for(;;) { var161 = ((short int (*)(val*))(var160->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var160) /* is_ok on */; @@ -3600,7 +3754,6 @@ goto RET_LABEL168; RET_LABEL168:(void)0; } ((void (*)(val*, val*, val*, short int))(var164->class->vft[COLOR_model__MParameter__init]))(var164, var165, var166, var167) /* init on */; -CHECK_NEW_model__MParameter(var164); var_mparameter170 = var164; var171 = NULL; if (var_nsig == NULL) { @@ -3621,7 +3774,6 @@ CONTINUE_label175: (void)0; BREAK_label175: (void)0; var176 = NEW_model__MSignature(&type_model__MSignature); ((void (*)(val*, val*, val*))(var176->class->vft[COLOR_model__MSignature__init]))(var176, var_mparameters, var_ret_type) /* init on */; -CHECK_NEW_model__MSignature(var176); var_msignature = var176; ((void (*)(val*, val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var_mpropdef, var_msignature) /* msignature= on */; /* isa ADeferredMethPropdef */ @@ -3633,48 +3785,6 @@ var177 = 0; var177 = self->type->type_table[cltype178] == idtype179; } ((void (*)(val*, short int))(var_mpropdef->class->vft[COLOR_model__MMethodDef__is_abstract_61d]))(var_mpropdef, var177) /* is_abstract= on */; -var180 = NULL; -if (var_nsig == NULL) { -var181 = 0; /* is null */ -} else { -var181 = 1; /* arg is null and recv is not */ -} -if (var181){ -var182 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_closure_decls]))(var_nsig) /* n_closure_decls on */; -var183 = ((val* (*)(val*))(var182->class->vft[COLOR_abstract_collection__Collection__iterator]))(var182) /* iterator on */; -for(;;) { -var184 = ((short int (*)(val*))(var183->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var183) /* is_ok on */; -if(!var184) break; -var185 = ((val* (*)(val*))(var183->class->vft[COLOR_abstract_collection__Iterator__item]))(var183) /* item on */; -var_nclosure = var185; -var186 = ((val* (*)(val*))(var_nclosure->class->vft[COLOR_parser_nodes__AClosureDecl__n_signature]))(var_nclosure) /* n_signature on */; -var187 = ((val* (*)(val*, val*, val*))(var186->class->vft[COLOR_modelize_property__ASignature__build_signature]))(var186, var_modelbuilder, var_nclassdef) /* build_signature on */; -var_clos_signature = var187; -var188 = NULL; -if (var_clos_signature == NULL) { -var189 = 1; /* is null */ -} else { -var189 = 0; /* arg is null but recv is not */ -} -if (var189){ -goto RET_LABEL; -} else { -} -var190 = NEW_model__MParameter(&type_model__MParameter); -var191 = ((val* (*)(val*))(var_nclosure->class->vft[COLOR_parser_nodes__AClosureDecl__n_id]))(var_nclosure) /* n_id on */; -var192 = ((val* (*)(val*))(var191->class->vft[COLOR_parser_nodes__Token__text]))(var191) /* text on */; -var193 = 0; -((void (*)(val*, val*, val*, short int))(var190->class->vft[COLOR_model__MParameter__init]))(var190, var192, var_clos_signature, var193) /* init on */; -CHECK_NEW_model__MParameter(var190); -var_mparameter194 = var190; -var195 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__mclosures]))(var_msignature) /* mclosures on */; -((void (*)(val*, val*))(var195->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var195, var_mparameter194) /* add on */; -CONTINUE_label196: (void)0; -((void (*)(val*))(var183->class->vft[COLOR_abstract_collection__Iterator__next]))(var183) /* next on */; -} -BREAK_label196: (void)0; -} else { -} RET_LABEL:; } /* method modelize_property#AMethPropdef#build_signature for (self: Object, ModelBuilder, AClassdef) */ @@ -3740,6 +3850,7 @@ short int var41 /* : Bool */; short int var43 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var44 /* : Bool */; val* var45 /* : Range[Int] */; long var46 /* : Int */; @@ -3794,38 +3905,52 @@ val* var91 /* : String */; char* var92 /* : NativeString */; long var93 /* : Int */; val* var94 /* : String */; -val* var95 /* : Array[Object] */; -long var96 /* : Int */; -val* var97 /* : NativeArray[Object] */; +val* var95 /* : MProperty */; +val* var96 /* : MPropDef */; +static val* varonce97; val* var98 /* : String */; -val* var99 /* : null */; -short int var100 /* : Bool */; -val* var101 /* : null */; -short int var102 /* : Bool */; -val* var103 /* : nullable MClassDef */; -val* var104 /* : MClassType */; -short int var105 /* : Bool */; -short int var106 /* : Bool */; -val* var107 /* : nullable AType */; -static val* varonce108; -val* var109 /* : String */; -char* var110 /* : NativeString */; -long var111 /* : Int */; -val* var112 /* : String */; -static val* varonce113; -val* var114 /* : String */; -char* var115 /* : NativeString */; -long var116 /* : Int */; -val* var117 /* : String */; -static val* varonce118; +char* var99 /* : NativeString */; +long var100 /* : Int */; +val* var101 /* : String */; +val* var102 /* : Array[Object] */; +long var103 /* : Int */; +val* var104 /* : NativeArray[Object] */; +val* var105 /* : String */; +val* var106 /* : null */; +short int var107 /* : Bool */; +val* var108 /* : null */; +short int var109 /* : Bool */; +val* var110 /* : nullable MClassDef */; +val* var111 /* : MClassType */; +short int var112 /* : Bool */; +short int var113 /* : Bool */; +val* var114 /* : nullable AType */; +static val* varonce115; +val* var116 /* : String */; +char* var117 /* : NativeString */; +long var118 /* : Int */; val* var119 /* : String */; -char* var120 /* : NativeString */; -long var121 /* : Int */; -val* var122 /* : String */; -val* var123 /* : Array[Object] */; -long var124 /* : Int */; -val* var125 /* : NativeArray[Object] */; +static val* varonce120; +val* var121 /* : String */; +char* var122 /* : NativeString */; +long var123 /* : Int */; +val* var124 /* : String */; +static val* varonce125; val* var126 /* : String */; +char* var127 /* : NativeString */; +long var128 /* : Int */; +val* var129 /* : String */; +val* var130 /* : MProperty */; +val* var131 /* : MPropDef */; +static val* varonce132; +val* var133 /* : String */; +char* var134 /* : NativeString */; +long var135 /* : Int */; +val* var136 /* : String */; +val* var137 /* : Array[Object] */; +long var138 /* : Int */; +val* var139 /* : NativeArray[Object] */; +val* var140 /* : String */; var_modelbuilder = p0; var_nclassdef = p1; var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; @@ -3847,8 +3972,9 @@ var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_si var_nsig = var5; var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; if (var6 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 503); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 513); +show_backtrace(1); } else { var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model__MMethodDef__msignature]))(var6) /* msignature on */; } @@ -3904,14 +4030,16 @@ var19 = var_; } if (var19){ if (var_nsig == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 515); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 525); +show_backtrace(1); } else { var24 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_type]))(var_nsig) /* n_type on */; } if (var24 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 515); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 525); +show_backtrace(1); } if (varonce) { var25 = varonce; @@ -3940,7 +4068,6 @@ var37 = NEW_array__NativeArray(var36, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var37)->values[1] = (val*) var29; ((struct instance_array__NativeArray*)var37)->values[2] = (val*) var31; ((void (*)(val*, val*, long))(var35->class->vft[COLOR_array__Array__with_native]))(var35, var37, var36) /* with_native on */; -CHECK_NEW_array__Array(var35); } var38 = ((val* (*)(val*))(var35->class->vft[COLOR_string__Object__to_s]))(var35) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var24, var38) /* error on */; @@ -3954,8 +4081,10 @@ var40 = 0; /* isa OTHER */ var43 = 1; /* easy isa OTHER*/ if (!var43) { -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); } var44 = var39 > var40; var41 = var44; @@ -3969,7 +4098,6 @@ var47 = ((long (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__a var48 = BOX_kernel__Int(var46); /* autobox from Int to Discrete */ var49 = BOX_kernel__Int(var47); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var45->class->vft[COLOR_range__Range__without_last]))(var45, var48, var49) /* without_last on */; -CHECK_NEW_range__Range(var45); var50 = ((val* (*)(val*))(var45->class->vft[COLOR_abstract_collection__Collection__iterator]))(var45) /* iterator on */; for(;;) { var51 = ((short int (*)(val*))(var50->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var50) /* is_ok on */; @@ -3987,8 +4115,9 @@ var59 = ((val* (*)(val*))(var58->class->vft[COLOR_model__MParameter__mtype]))(va var_prt = var59; var61 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var61 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 524); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 534); +show_backtrace(1); } else { var62 = ((val* (*)(val*))(var61->class->vft[COLOR_model__MClassDef__bound_mtype]))(var61) /* bound_mtype on */; } @@ -3996,23 +4125,25 @@ var63 = ((short int (*)(val*, val*, val*, val*))(var_myt->class->vft[COLOR_model var64 = !var63; var_65 = var64; if (var64){ +var60 = var_65; +} else { var66 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var66 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 525); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 535); +show_backtrace(1); } else { var67 = ((val* (*)(val*))(var66->class->vft[COLOR_model__MClassDef__bound_mtype]))(var66) /* bound_mtype on */; } var68 = ((short int (*)(val*, val*, val*, val*))(var_prt->class->vft[COLOR_model__MType__is_subtype]))(var_prt, var_mmodule, var67, var_myt) /* is_subtype on */; var69 = !var68; var60 = var69; -} else { -var60 = var_65; } if (var60){ if (var_nsig == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 526); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 536); +show_backtrace(1); } else { var70 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var_nsig) /* n_params on */; } @@ -4050,28 +4181,40 @@ varonce85 = var86; if (varonce90) { var91 = varonce90; } else { -var92 = "."; -var93 = 1; +var92 = " as in "; +var93 = 7; var94 = string__NativeString__to_s_with_length(var92, var93); var91 = var94; varonce90 = var91; } -var95 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var95 = array_instance Array[Object] */ -var96 = 7; -var97 = NEW_array__NativeArray(var96, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var97)->values[0] = (val*) var73; -((struct instance_array__NativeArray*)var97)->values[1] = (val*) var79; -((struct instance_array__NativeArray*)var97)->values[2] = (val*) var81; -((struct instance_array__NativeArray*)var97)->values[3] = (val*) var_myt; -((struct instance_array__NativeArray*)var97)->values[4] = (val*) var86; -((struct instance_array__NativeArray*)var97)->values[5] = (val*) var_prt; -((struct instance_array__NativeArray*)var97)->values[6] = (val*) var91; -((void (*)(val*, val*, long))(var95->class->vft[COLOR_array__Array__with_native]))(var95, var97, var96) /* with_native on */; -CHECK_NEW_array__Array(var95); +var95 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on */; +var96 = ((val* (*)(val*))(var95->class->vft[COLOR_model__MProperty__intro]))(var95) /* intro on */; +if (varonce97) { +var98 = varonce97; +} else { +var99 = "."; +var100 = 1; +var101 = string__NativeString__to_s_with_length(var99, var100); +var98 = var101; +varonce97 = var98; } -var98 = ((val* (*)(val*))(var95->class->vft[COLOR_string__Object__to_s]))(var95) /* to_s on */; -((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var71, var98) /* error on */; +var102 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var102 = array_instance Array[Object] */ +var103 = 9; +var104 = NEW_array__NativeArray(var103, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var104)->values[0] = (val*) var73; +((struct instance_array__NativeArray*)var104)->values[1] = (val*) var79; +((struct instance_array__NativeArray*)var104)->values[2] = (val*) var81; +((struct instance_array__NativeArray*)var104)->values[3] = (val*) var_myt; +((struct instance_array__NativeArray*)var104)->values[4] = (val*) var86; +((struct instance_array__NativeArray*)var104)->values[5] = (val*) var_prt; +((struct instance_array__NativeArray*)var104)->values[6] = (val*) var91; +((struct instance_array__NativeArray*)var104)->values[7] = (val*) var96; +((struct instance_array__NativeArray*)var104)->values[8] = (val*) var98; +((void (*)(val*, val*, long))(var102->class->vft[COLOR_array__Array__with_native]))(var102, var104, var103) /* with_native on */; +} +var105 = ((val* (*)(val*))(var102->class->vft[COLOR_string__Object__to_s]))(var102) /* to_s on */; +((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var71, var105) /* error on */; } else { } CONTINUE_label: (void)0; @@ -4080,83 +4223,98 @@ CONTINUE_label: (void)0; BREAK_label: (void)0; } else { } -var99 = NULL; +var106 = NULL; if (var_precursor_ret_type == NULL) { -var100 = 0; /* is null */ +var107 = 0; /* is null */ } else { -var100 = 1; /* arg is null and recv is not */ +var107 = 1; /* arg is null and recv is not */ } -if (var100){ -var101 = NULL; +if (var107){ +var108 = NULL; if (var_ret_type == NULL) { -var102 = 1; /* is null */ +var109 = 1; /* is null */ } else { -var102 = 0; /* arg is null but recv is not */ +var109 = 0; /* arg is null but recv is not */ } -if (var102){ +if (var109){ var_ret_type = var_precursor_ret_type; } else { -var103 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; -if (var103 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 534); -exit(1); +var110 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; +if (var110 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 544); +show_backtrace(1); } else { -var104 = ((val* (*)(val*))(var103->class->vft[COLOR_model__MClassDef__bound_mtype]))(var103) /* bound_mtype on */; +var111 = ((val* (*)(val*))(var110->class->vft[COLOR_model__MClassDef__bound_mtype]))(var110) /* bound_mtype on */; } -var105 = ((short int (*)(val*, val*, val*, val*))(var_ret_type->class->vft[COLOR_model__MType__is_subtype]))(var_ret_type, var_mmodule, var104, var_precursor_ret_type) /* is_subtype on */; -var106 = !var105; -if (var106){ +var112 = ((short int (*)(val*, val*, val*, val*))(var_ret_type->class->vft[COLOR_model__MType__is_subtype]))(var_ret_type, var_mmodule, var111, var_precursor_ret_type) /* is_subtype on */; +var113 = !var112; +if (var113){ if (var_nsig == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 535); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 545); +show_backtrace(1); } else { -var107 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_type]))(var_nsig) /* n_type on */; +var114 = ((val* (*)(val*))(var_nsig->class->vft[COLOR_parser_nodes__ASignature__n_type]))(var_nsig) /* n_type on */; } -if (var107 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 535); -exit(1); +if (var114 == NULL) { +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 545); +show_backtrace(1); +} +if (varonce115) { +var116 = varonce115; +} else { +var117 = "Redef Error: Wrong return type. found "; +var118 = 38; +var119 = string__NativeString__to_s_with_length(var117, var118); +var116 = var119; +varonce115 = var116; } -if (varonce108) { -var109 = varonce108; +if (varonce120) { +var121 = varonce120; } else { -var110 = "Redef Error: Wrong return type. found "; -var111 = 38; -var112 = string__NativeString__to_s_with_length(var110, var111); -var109 = var112; -varonce108 = var109; +var122 = ", expected "; +var123 = 11; +var124 = string__NativeString__to_s_with_length(var122, var123); +var121 = var124; +varonce120 = var121; } -if (varonce113) { -var114 = varonce113; +if (varonce125) { +var126 = varonce125; } else { -var115 = ", expected "; -var116 = 11; -var117 = string__NativeString__to_s_with_length(var115, var116); -var114 = var117; -varonce113 = var114; +var127 = " as in "; +var128 = 7; +var129 = string__NativeString__to_s_with_length(var127, var128); +var126 = var129; +varonce125 = var126; } -if (varonce118) { -var119 = varonce118; +var130 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on */; +var131 = ((val* (*)(val*))(var130->class->vft[COLOR_model__MProperty__intro]))(var130) /* intro on */; +if (varonce132) { +var133 = varonce132; } else { -var120 = "."; -var121 = 1; -var122 = string__NativeString__to_s_with_length(var120, var121); -var119 = var122; -varonce118 = var119; +var134 = "."; +var135 = 1; +var136 = string__NativeString__to_s_with_length(var134, var135); +var133 = var136; +varonce132 = var133; } -var123 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var123 = array_instance Array[Object] */ -var124 = 5; -var125 = NEW_array__NativeArray(var124, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var125)->values[0] = (val*) var109; -((struct instance_array__NativeArray*)var125)->values[1] = (val*) var_ret_type; -((struct instance_array__NativeArray*)var125)->values[2] = (val*) var114; -((struct instance_array__NativeArray*)var125)->values[3] = (val*) var_precursor_ret_type; -((struct instance_array__NativeArray*)var125)->values[4] = (val*) var119; -((void (*)(val*, val*, long))(var123->class->vft[COLOR_array__Array__with_native]))(var123, var125, var124) /* with_native on */; -CHECK_NEW_array__Array(var123); +var137 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var137 = array_instance Array[Object] */ +var138 = 7; +var139 = NEW_array__NativeArray(var138, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var139)->values[0] = (val*) var116; +((struct instance_array__NativeArray*)var139)->values[1] = (val*) var_ret_type; +((struct instance_array__NativeArray*)var139)->values[2] = (val*) var121; +((struct instance_array__NativeArray*)var139)->values[3] = (val*) var_precursor_ret_type; +((struct instance_array__NativeArray*)var139)->values[4] = (val*) var126; +((struct instance_array__NativeArray*)var139)->values[5] = (val*) var131; +((struct instance_array__NativeArray*)var139)->values[6] = (val*) var133; +((void (*)(val*, val*, long))(var137->class->vft[COLOR_array__Array__with_native]))(var137, var139, var138) /* with_native on */; } -var126 = ((val* (*)(val*))(var123->class->vft[COLOR_string__Object__to_s]))(var123) /* to_s on */; -((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var107, var126) /* error on */; +var140 = ((val* (*)(val*))(var137->class->vft[COLOR_string__Object__to_s]))(var137) /* to_s on */; +((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var114, var140) /* error on */; } else { } } @@ -4347,6 +4505,7 @@ short int var101 /* : Bool */; int cltype102; int idtype103; const struct type* type_struct; +const char* var_class_name; val* var104 /* : HashMap[MPropDef, APropdef] */; val* var105 /* : nullable AAble */; val* var_nreadable /* var nreadable: nullable AAble */; @@ -4359,158 +4518,164 @@ val* var110 /* : nullable MProperty */; short int var111 /* : Bool */; int cltype112; int idtype113; +const char* var_class_name114; val* var_mreadprop /* var mreadprop: nullable MMethod */; -val* var114 /* : null */; -short int var115 /* : Bool */; -val* var116 /* : nullable AVisibility */; -val* var117 /* : MVisibility */; -val* var_mvisibility118 /* var mvisibility: MVisibility */; -val* var119 /* : MMethod */; -val* var120 /* : nullable TKwredef */; -short int var121 /* : Bool */; +val* var115 /* : null */; +short int var116 /* : Bool */; +val* var117 /* : nullable AVisibility */; +val* var118 /* : MVisibility */; +val* var_mvisibility119 /* var mvisibility: MVisibility */; +val* var120 /* : MMethod */; +val* var121 /* : nullable TKwredef */; short int var122 /* : Bool */; short int var123 /* : Bool */; -val* var124 /* : nullable TKwredef */; -short int var125 /* : Bool */; +short int var124 /* : Bool */; +val* var125 /* : nullable TKwredef */; short int var126 /* : Bool */; short int var127 /* : Bool */; -val* var128 /* : nullable AVisibility */; -val* var129 /* : Map[MProperty, APropdef] */; -val* var130 /* : MMethodDef */; -val* var131 /* : Location */; +short int var128 /* : Bool */; +val* var129 /* : nullable AVisibility */; +val* var130 /* : Map[MProperty, APropdef] */; +val* var131 /* : MMethodDef */; +val* var132 /* : Location */; val* var_mreadpropdef /* var mreadpropdef: MMethodDef */; -val* var132 /* : HashMap[MPropDef, APropdef] */; -val* var133 /* : nullable AAble */; +val* var133 /* : HashMap[MPropDef, APropdef] */; +val* var134 /* : nullable AAble */; val* var_nwritable /* var nwritable: nullable AAble */; -val* var134 /* : null */; -short int var135 /* : Bool */; -long var136 /* : Int */; -val* var137 /* : String */; -static val* varonce138; -val* var139 /* : String */; -char* var140 /* : NativeString */; -long var141 /* : Int */; -val* var142 /* : String */; +val* var135 /* : null */; +short int var136 /* : Bool */; +long var137 /* : Int */; +val* var138 /* : String */; +static val* varonce139; +val* var140 /* : String */; +char* var141 /* : NativeString */; +long var142 /* : Int */; val* var143 /* : String */; +val* var144 /* : String */; val* var_writename /* var writename: String */; -val* var144 /* : nullable MProperty */; -short int var145 /* : Bool */; -int cltype146; -int idtype147; +val* var145 /* : nullable MProperty */; +short int var146 /* : Bool */; +int cltype147; +int idtype148; +const char* var_class_name149; val* var_mwriteprop /* var mwriteprop: nullable MMethod */; -val* var148 /* : null */; -short int var149 /* : Bool */; -val* var150 /* : nullable AVisibility */; -val* var151 /* : MVisibility */; -val* var_mvisibility152 /* var mvisibility: MVisibility */; -val* var153 /* : MMethod */; -val* var154 /* : nullable TKwredef */; -short int var155 /* : Bool */; -short int var156 /* : Bool */; +val* var150 /* : null */; +short int var151 /* : Bool */; +val* var152 /* : nullable AVisibility */; +val* var153 /* : MVisibility */; +val* var_mvisibility154 /* var mvisibility: MVisibility */; +val* var155 /* : MMethod */; +val* var156 /* : nullable TKwredef */; short int var157 /* : Bool */; -val* var158 /* : nullable TKwredef */; +short int var158 /* : Bool */; short int var159 /* : Bool */; -short int var160 /* : Bool */; +val* var160 /* : nullable TKwredef */; short int var161 /* : Bool */; -val* var162 /* : nullable AVisibility */; -val* var163 /* : Map[MProperty, APropdef] */; -val* var164 /* : MMethodDef */; -val* var165 /* : Location */; +short int var162 /* : Bool */; +short int var163 /* : Bool */; +val* var164 /* : nullable AVisibility */; +val* var165 /* : Map[MProperty, APropdef] */; +val* var166 /* : MMethodDef */; +val* var167 /* : Location */; val* var_mwritepropdef /* var mwritepropdef: MMethodDef */; -val* var166 /* : HashMap[MPropDef, APropdef] */; -val* var167 /* : nullable TId */; +val* var168 /* : HashMap[MPropDef, APropdef] */; +val* var169 /* : nullable TId */; val* var_nid2 /* var nid2: TId */; -val* var168 /* : MAttribute */; -static val* varonce169; -val* var170 /* : String */; -char* var171 /* : NativeString */; -long var172 /* : Int */; -val* var173 /* : String */; -val* var174 /* : String */; -val* var175 /* : MVisibility */; -val* var_mprop176 /* var mprop: MAttribute */; -val* var177 /* : MAttributeDef */; -val* var178 /* : Location */; -val* var_mpropdef179 /* var mpropdef: MAttributeDef */; -short int var180 /* : Bool */; -int cltype181; -int idtype182; -const struct type* type_struct183; -val* var184 /* : HashMap[MPropDef, APropdef] */; -val* var_readname185 /* var readname: String */; -val* var186 /* : nullable MProperty */; -short int var187 /* : Bool */; -int cltype188; -int idtype189; -val* var_mreadprop190 /* var mreadprop: nullable MMethod */; -val* var191 /* : null */; -short int var192 /* : Bool */; -val* var193 /* : AVisibility */; -val* var194 /* : MVisibility */; -val* var_mvisibility195 /* var mvisibility: MVisibility */; -val* var196 /* : MMethod */; -val* var197 /* : nullable TKwredef */; -short int var198 /* : Bool */; -short int var199 /* : Bool */; -short int var200 /* : Bool */; +val* var170 /* : MAttribute */; +static val* varonce171; +val* var172 /* : String */; +char* var173 /* : NativeString */; +long var174 /* : Int */; +val* var175 /* : String */; +val* var176 /* : String */; +val* var177 /* : MVisibility */; +val* var_mprop178 /* var mprop: MAttribute */; +val* var179 /* : MAttributeDef */; +val* var180 /* : Location */; +val* var_mpropdef181 /* var mpropdef: MAttributeDef */; +short int var182 /* : Bool */; +int cltype183; +int idtype184; +const struct type* type_struct185; +const char* var_class_name186; +val* var187 /* : HashMap[MPropDef, APropdef] */; +val* var_readname188 /* var readname: String */; +val* var189 /* : nullable MProperty */; +short int var190 /* : Bool */; +int cltype191; +int idtype192; +const char* var_class_name193; +val* var_mreadprop194 /* var mreadprop: nullable MMethod */; +val* var195 /* : null */; +short int var196 /* : Bool */; +val* var197 /* : AVisibility */; +val* var198 /* : MVisibility */; +val* var_mvisibility199 /* var mvisibility: MVisibility */; +val* var200 /* : MMethod */; val* var201 /* : nullable TKwredef */; short int var202 /* : Bool */; short int var203 /* : Bool */; short int var204 /* : Bool */; -val* var205 /* : AVisibility */; -val* var206 /* : Map[MProperty, APropdef] */; -val* var207 /* : MMethodDef */; -val* var208 /* : Location */; -val* var_mreadpropdef209 /* var mreadpropdef: MMethodDef */; -val* var210 /* : HashMap[MPropDef, APropdef] */; -static val* varonce211; -val* var212 /* : String */; -char* var213 /* : NativeString */; -long var214 /* : Int */; -val* var215 /* : String */; +val* var205 /* : nullable TKwredef */; +short int var206 /* : Bool */; +short int var207 /* : Bool */; +short int var208 /* : Bool */; +val* var209 /* : AVisibility */; +val* var210 /* : Map[MProperty, APropdef] */; +val* var211 /* : MMethodDef */; +val* var212 /* : Location */; +val* var_mreadpropdef213 /* var mreadpropdef: MMethodDef */; +val* var214 /* : HashMap[MPropDef, APropdef] */; +static val* varonce215; val* var216 /* : String */; -val* var_writename217 /* var writename: String */; -val* var218 /* : nullable AAble */; -val* var_nwritable219 /* var nwritable: nullable AAble */; -val* var220 /* : nullable MProperty */; -short int var221 /* : Bool */; -int cltype222; -int idtype223; -val* var_mwriteprop224 /* var mwriteprop: nullable MMethod */; -val* var225 /* : null */; +char* var217 /* : NativeString */; +long var218 /* : Int */; +val* var219 /* : String */; +val* var220 /* : String */; +val* var_writename221 /* var writename: String */; +val* var222 /* : nullable AAble */; +val* var_nwritable223 /* var nwritable: nullable AAble */; +val* var224 /* : nullable MProperty */; +short int var225 /* : Bool */; +int cltype226; +int idtype227; +const char* var_class_name228; +val* var_mwriteprop229 /* var mwriteprop: nullable MMethod */; +val* var230 /* : null */; val* var_nwkwredef /* var nwkwredef: nullable Token */; -val* var226 /* : null */; -short int var227 /* : Bool */; -val* var228 /* : nullable TKwredef */; -val* var229 /* : null */; -short int var230 /* : Bool */; val* var231 /* : null */; short int var232 /* : Bool */; -val* var233 /* : nullable AVisibility */; -val* var234 /* : MVisibility */; -val* var_mvisibility235 /* var mvisibility: nullable Object */; -val* var236 /* : MVisibility */; -val* var237 /* : MMethod */; -short int var238 /* : Bool */; -short int var239 /* : Bool */; -short int var240 /* : Bool */; -short int var241 /* : Bool */; -short int var242 /* : Bool */; +val* var233 /* : nullable TKwredef */; +val* var234 /* : null */; +short int var235 /* : Bool */; +val* var236 /* : null */; +short int var237 /* : Bool */; +val* var238 /* : nullable AVisibility */; +val* var239 /* : MVisibility */; +val* var_mvisibility240 /* var mvisibility: nullable Object */; +val* var241 /* : MVisibility */; +val* var242 /* : MMethod */; short int var243 /* : Bool */; -val* var244 /* : null */; +short int var244 /* : Bool */; short int var245 /* : Bool */; -val* var246 /* : nullable AVisibility */; -val* var247 /* : Map[MProperty, APropdef] */; -val* var248 /* : MMethodDef */; -val* var249 /* : Location */; -val* var_mwritepropdef250 /* var mwritepropdef: MMethodDef */; -val* var251 /* : HashMap[MPropDef, APropdef] */; +short int var246 /* : Bool */; +short int var247 /* : Bool */; +short int var248 /* : Bool */; +val* var249 /* : null */; +short int var250 /* : Bool */; +val* var251 /* : nullable AVisibility */; +val* var252 /* : Map[MProperty, APropdef] */; +val* var253 /* : MMethodDef */; +val* var254 /* : Location */; +val* var_mwritepropdef255 /* var mwritepropdef: MMethodDef */; +val* var256 /* : HashMap[MPropDef, APropdef] */; var_modelbuilder = p0; var_nclassdef = p1; var = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 551); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 561); +show_backtrace(1); } var_mclassdef = var; var1 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__mclass]))(var_mclassdef) /* mclass on */; @@ -4525,8 +4690,9 @@ var4 = 1; /* arg is null and recv is not */ if (var4){ var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id]))(self) /* n_id on */; if (var5 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 556); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 566); +show_backtrace(1); } else { var6 = ((val* (*)(val*))(var5->class->vft[COLOR_parser_nodes__Token__text]))(var5) /* text on */; } @@ -4534,8 +4700,9 @@ var_name = var6; } else { var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id2]))(self) /* n_id2 on */; if (var7 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 558); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 568); +show_backtrace(1); } else { var8 = ((val* (*)(val*))(var7->class->vft[COLOR_parser_nodes__Token__text]))(var7) /* text on */; } @@ -4592,7 +4759,6 @@ var33 = NEW_array__NativeArray(var32, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var33)->values[3] = (val*) var_mclass; ((struct instance_array__NativeArray*)var33)->values[4] = (val*) var27; ((void (*)(val*, val*, long))(var31->class->vft[COLOR_array__Array__with_native]))(var31, var33, var32) /* with_native on */; -CHECK_NEW_array__Array(var31); } var34 = ((val* (*)(val*))(var31->class->vft[COLOR_string__Object__to_s]))(var31) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var34) /* error on */; @@ -4638,7 +4804,6 @@ var55 = NEW_array__NativeArray(var54, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var55)->values[3] = (val*) var_mclass; ((struct instance_array__NativeArray*)var55)->values[4] = (val*) var49; ((void (*)(val*, val*, long))(var53->class->vft[COLOR_array__Array__with_native]))(var53, var55, var54) /* with_native on */; -CHECK_NEW_array__Array(var53); } var56 = ((val* (*)(val*))(var53->class->vft[COLOR_string__Object__to_s]))(var53) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var56) /* error on */; @@ -4684,7 +4849,6 @@ var77 = NEW_array__NativeArray(var76, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var77)->values[3] = (val*) var_mclass; ((struct instance_array__NativeArray*)var77)->values[4] = (val*) var71; ((void (*)(val*, val*, long))(var75->class->vft[COLOR_array__Array__with_native]))(var75, var77, var76) /* with_native on */; -CHECK_NEW_array__Array(var75); } var78 = ((val* (*)(val*))(var75->class->vft[COLOR_string__Object__to_s]))(var75) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var78) /* error on */; @@ -4715,7 +4879,6 @@ var86 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_prop var_mvisibility = var86; var87 = NEW_model__MAttribute(&type_model__MAttribute); ((void (*)(val*, val*, val*, val*))(var87->class->vft[COLOR_model__MAttribute__init]))(var87, var_mclassdef, var_name, var_mvisibility) /* init on */; -CHECK_NEW_model__MAttribute(var87); var_mprop = var87; var88 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_kwredef]))(self) /* n_kwredef on */; var89 = 0; @@ -4735,8 +4898,9 @@ var92 = 0; var92 = var_mprop->type->type_table[cltype] == idtype; } if (!var92) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/modelize_property.nit", 578); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 588); +show_backtrace(1); } var93 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on */; ((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var93, var_mprop) /* check_redef_property_visibility on */; @@ -4754,10 +4918,9 @@ var98 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__ACl var99 = NEW_model__MAttributeDef(&type_model__MAttributeDef); var100 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; ((void (*)(val*, val*, val*, val*))(var99->class->vft[COLOR_model__MAttributeDef__init]))(var99, var_mclassdef, var_mprop, var100) /* init on */; -CHECK_NEW_model__MAttributeDef(var99); var_mpropdef = var99; /* isa nullable MPROPDEF */ -type_struct = self->type->resolution_table->types[COLOR_parser_nodes__APropdef_VTMPROPDEF]; +type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF]; cltype102 = type_struct->color; idtype103 = type_struct->id; if(cltype102 >= var_mpropdef->type->table_size) { @@ -4766,8 +4929,10 @@ var101 = 0; var101 = var_mpropdef->type->type_table[cltype102] == idtype103; } if (!var101) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 585); -exit(1); +var_class_name = var_mpropdef == NULL ? "null" : var_mpropdef->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 595); +show_backtrace(1); } ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef) /* mpropdef= on */; var104 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; @@ -4798,354 +4963,355 @@ var111 = var110->type->type_table[cltype112] == idtype113; } } if (!var111) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 591); -exit(1); +var_class_name114 = var110 == NULL ? "null" : var110->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name114); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 601); +show_backtrace(1); } var_mreadprop = var110; -var114 = NULL; +var115 = NULL; if (var_mreadprop == NULL) { -var115 = 1; /* is null */ -} else { -var115 = 0; /* arg is null but recv is not */ -} -if (var115){ -var116 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nreadable) /* n_visibility on */; -var117 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var116) /* new_property_visibility on */; -var_mvisibility118 = var117; -var119 = NEW_model__MMethod(&type_model__MMethod); -((void (*)(val*, val*, val*, val*))(var119->class->vft[COLOR_model__MMethod__init]))(var119, var_mclassdef, var_readname, var_mvisibility118) /* init on */; -CHECK_NEW_model__MMethod(var119); -var_mreadprop = var119; -var120 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nreadable) /* n_kwredef on */; -var121 = 0; -var122 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var120, var121, var_mreadprop) /* check_redef_keyword on */; -var123 = !var122; -if (var123){ +var116 = 1; /* is null */ +} else { +var116 = 0; /* arg is null but recv is not */ +} +if (var116){ +var117 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nreadable) /* n_visibility on */; +var118 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var117) /* new_property_visibility on */; +var_mvisibility119 = var118; +var120 = NEW_model__MMethod(&type_model__MMethod); +((void (*)(val*, val*, val*, val*))(var120->class->vft[COLOR_model__MMethod__init]))(var120, var_mclassdef, var_readname, var_mvisibility119) /* init on */; +var_mreadprop = var120; +var121 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nreadable) /* n_kwredef on */; +var122 = 0; +var123 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var121, var122, var_mreadprop) /* check_redef_keyword on */; +var124 = !var123; +if (var124){ goto RET_LABEL; } else { } } else { -var124 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nreadable) /* n_kwredef on */; -var125 = 1; -var126 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var124, var125, var_mreadprop) /* check_redef_keyword on */; -var127 = !var126; -if (var127){ +var125 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nreadable) /* n_kwredef on */; +var126 = 1; +var127 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var125, var126, var_mreadprop) /* check_redef_keyword on */; +var128 = !var127; +if (var128){ goto RET_LABEL; } else { } -var128 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nreadable) /* n_visibility on */; -((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var128, var_mreadprop) /* check_redef_property_visibility on */; +var129 = ((val* (*)(val*))(var_nreadable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nreadable) /* n_visibility on */; +((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var129, var_mreadprop) /* check_redef_property_visibility on */; } -var129 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; -((void (*)(val*, val*, val*))(var129->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var129, var_mreadprop, self) /* []= on */; -var130 = NEW_model__MMethodDef(&type_model__MMethodDef); -var131 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; -((void (*)(val*, val*, val*, val*))(var130->class->vft[COLOR_model__MMethodDef__init]))(var130, var_mclassdef, var_mreadprop, var131) /* init on */; -CHECK_NEW_model__MMethodDef(var130); -var_mreadpropdef = var130; +var130 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; +((void (*)(val*, val*, val*))(var130->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var130, var_mreadprop, self) /* []= on */; +var131 = NEW_model__MMethodDef(&type_model__MMethodDef); +var132 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; +((void (*)(val*, val*, val*, val*))(var131->class->vft[COLOR_model__MMethodDef__init]))(var131, var_mclassdef, var_mreadprop, var132) /* init on */; +var_mreadpropdef = var131; ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mreadpropdef_61d]))(self, var_mreadpropdef) /* mreadpropdef= on */; -var132 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; -((void (*)(val*, val*, val*))(var132->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var132, var_mreadpropdef, self) /* []= on */; +var133 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; +((void (*)(val*, val*, val*))(var133->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var133, var_mreadpropdef, self) /* []= on */; } else { } -var133 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_writable]))(self) /* n_writable on */; -var_nwritable = var133; -var134 = NULL; +var134 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_writable]))(self) /* n_writable on */; +var_nwritable = var134; +var135 = NULL; if (var_nwritable == NULL) { -var135 = 0; /* is null */ +var136 = 0; /* is null */ } else { -var135 = 1; /* arg is null and recv is not */ +var136 = 1; /* arg is null and recv is not */ } -if (var135){ -var136 = 1; -var137 = ((val* (*)(val*, long))(var_name->class->vft[COLOR_string__AbstractString__substring_from]))(var_name, var136) /* substring_from on */; -if (varonce138) { -var139 = varonce138; +if (var136){ +var137 = 1; +var138 = ((val* (*)(val*, long))(var_name->class->vft[COLOR_string__AbstractString__substring_from]))(var_name, var137) /* substring_from on */; +if (varonce139) { +var140 = varonce139; } else { -var140 = "="; -var141 = 1; -var142 = string__NativeString__to_s_with_length(var140, var141); -var139 = var142; -varonce138 = var139; +var141 = "="; +var142 = 1; +var143 = string__NativeString__to_s_with_length(var141, var142); +var140 = var143; +varonce139 = var140; } -var143 = ((val* (*)(val*, val*))(var137->class->vft[COLOR_string__String___43d]))(var137, var139) /* + on */; -var_writename = var143; -var144 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid, var_mclassdef, var_writename) /* try_get_mproperty_by_name on */; -/* isa nullable MMethod */ -cltype146 = type_nullable_model__MMethod.color; -idtype147 = type_nullable_model__MMethod.id; -if(var144 == NULL) { -var145 = 1; +var144 = ((val* (*)(val*, val*))(var138->class->vft[COLOR_string__String___43d]))(var138, var140) /* + on */; +var_writename = var144; +var145 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid, var_mclassdef, var_writename) /* try_get_mproperty_by_name on */; +/* isa nullable MMethod */ +cltype147 = type_nullable_model__MMethod.color; +idtype148 = type_nullable_model__MMethod.id; +if(var145 == NULL) { +var146 = 1; } else { -if(cltype146 >= var144->type->table_size) { -var145 = 0; +if(cltype147 >= var145->type->table_size) { +var146 = 0; } else { -var145 = var144->type->type_table[cltype146] == idtype147; +var146 = var145->type->type_table[cltype147] == idtype148; } } -if (!var145) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 610); -exit(1); +if (!var146) { +var_class_name149 = var145 == NULL ? "null" : var145->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name149); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 620); +show_backtrace(1); } -var_mwriteprop = var144; -var148 = NULL; +var_mwriteprop = var145; +var150 = NULL; if (var_mwriteprop == NULL) { -var149 = 1; /* is null */ -} else { -var149 = 0; /* arg is null but recv is not */ -} -if (var149){ -var150 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable) /* n_visibility on */; -var151 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var150) /* new_property_visibility on */; -var_mvisibility152 = var151; -var153 = NEW_model__MMethod(&type_model__MMethod); -((void (*)(val*, val*, val*, val*))(var153->class->vft[COLOR_model__MMethod__init]))(var153, var_mclassdef, var_writename, var_mvisibility152) /* init on */; -CHECK_NEW_model__MMethod(var153); -var_mwriteprop = var153; -var154 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable) /* n_kwredef on */; -var155 = 0; -var156 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var154, var155, var_mwriteprop) /* check_redef_keyword on */; -var157 = !var156; -if (var157){ +var151 = 1; /* is null */ +} else { +var151 = 0; /* arg is null but recv is not */ +} +if (var151){ +var152 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable) /* n_visibility on */; +var153 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var152) /* new_property_visibility on */; +var_mvisibility154 = var153; +var155 = NEW_model__MMethod(&type_model__MMethod); +((void (*)(val*, val*, val*, val*))(var155->class->vft[COLOR_model__MMethod__init]))(var155, var_mclassdef, var_writename, var_mvisibility154) /* init on */; +var_mwriteprop = var155; +var156 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable) /* n_kwredef on */; +var157 = 0; +var158 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var156, var157, var_mwriteprop) /* check_redef_keyword on */; +var159 = !var158; +if (var159){ goto RET_LABEL; } else { } } else { -var158 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable) /* n_kwredef on */; -var159 = 1; -var160 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var158, var159, var_mwriteprop) /* check_redef_keyword on */; -var161 = !var160; -if (var161){ +var160 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable) /* n_kwredef on */; +var161 = 1; +var162 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var160, var161, var_mwriteprop) /* check_redef_keyword on */; +var163 = !var162; +if (var163){ goto RET_LABEL; } else { } -var162 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable) /* n_visibility on */; -((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var162, var_mwriteprop) /* check_redef_property_visibility on */; +var164 = ((val* (*)(val*))(var_nwritable->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable) /* n_visibility on */; +((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var164, var_mwriteprop) /* check_redef_property_visibility on */; } -var163 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; -((void (*)(val*, val*, val*))(var163->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var163, var_mwriteprop, self) /* []= on */; -var164 = NEW_model__MMethodDef(&type_model__MMethodDef); -var165 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; -((void (*)(val*, val*, val*, val*))(var164->class->vft[COLOR_model__MMethodDef__init]))(var164, var_mclassdef, var_mwriteprop, var165) /* init on */; -CHECK_NEW_model__MMethodDef(var164); -var_mwritepropdef = var164; +var165 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; +((void (*)(val*, val*, val*))(var165->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var165, var_mwriteprop, self) /* []= on */; +var166 = NEW_model__MMethodDef(&type_model__MMethodDef); +var167 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; +((void (*)(val*, val*, val*, val*))(var166->class->vft[COLOR_model__MMethodDef__init]))(var166, var_mclassdef, var_mwriteprop, var167) /* init on */; +var_mwritepropdef = var166; ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef_61d]))(self, var_mwritepropdef) /* mwritepropdef= on */; -var166 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; -((void (*)(val*, val*, val*))(var166->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var166, var_mwritepropdef, self) /* []= on */; -} else { -} -} else { -var167 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id2]))(self) /* n_id2 on */; -if (var167 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 627); -exit(1); -} -var_nid2 = var167; -var168 = NEW_model__MAttribute(&type_model__MAttribute); -if (varonce169) { -var170 = varonce169; -} else { -var171 = "@"; -var172 = 1; -var173 = string__NativeString__to_s_with_length(var171, var172); -var170 = var173; -varonce169 = var170; -} -var174 = ((val* (*)(val*, val*))(var170->class->vft[COLOR_string__String___43d]))(var170, var_name) /* + on */; -var175 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__none_visibility]))(self) /* none_visibility on */; -((void (*)(val*, val*, val*, val*))(var168->class->vft[COLOR_model__MAttribute__init]))(var168, var_mclassdef, var174, var175) /* init on */; -CHECK_NEW_model__MAttribute(var168); -var_mprop176 = var168; -var177 = NEW_model__MAttributeDef(&type_model__MAttributeDef); -var178 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; -((void (*)(val*, val*, val*, val*))(var177->class->vft[COLOR_model__MAttributeDef__init]))(var177, var_mclassdef, var_mprop176, var178) /* init on */; -CHECK_NEW_model__MAttributeDef(var177); -var_mpropdef179 = var177; -/* isa nullable MPROPDEF */ -type_struct183 = self->type->resolution_table->types[COLOR_parser_nodes__APropdef_VTMPROPDEF]; -cltype181 = type_struct183->color; -idtype182 = type_struct183->id; -if(cltype181 >= var_mpropdef179->type->table_size) { -var180 = 0; -} else { -var180 = var_mpropdef179->type->type_table[cltype181] == idtype182; -} -if (!var180) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 630); -exit(1); -} -((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef179) /* mpropdef= on */; -var184 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; -((void (*)(val*, val*, val*))(var184->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var184, var_mpropdef179, self) /* []= on */; -var_readname185 = var_name; -var186 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid2, var_mclassdef, var_readname185) /* try_get_mproperty_by_name on */; -/* isa nullable MMethod */ -cltype188 = type_nullable_model__MMethod.color; -idtype189 = type_nullable_model__MMethod.id; -if(var186 == NULL) { -var187 = 1; -} else { -if(cltype188 >= var186->type->table_size) { -var187 = 0; -} else { -var187 = var186->type->type_table[cltype188] == idtype189; -} -} -if (!var187) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 634); -exit(1); -} -var_mreadprop190 = var186; -var191 = NULL; -if (var_mreadprop190 == NULL) { -var192 = 1; /* is null */ -} else { -var192 = 0; /* arg is null but recv is not */ -} -if (var192){ -var193 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on */; -var194 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var193) /* new_property_visibility on */; -var_mvisibility195 = var194; -var196 = NEW_model__MMethod(&type_model__MMethod); -((void (*)(val*, val*, val*, val*))(var196->class->vft[COLOR_model__MMethod__init]))(var196, var_mclassdef, var_readname185, var_mvisibility195) /* init on */; -CHECK_NEW_model__MMethod(var196); -var_mreadprop190 = var196; -var197 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_kwredef]))(self) /* n_kwredef on */; -var198 = 0; -var199 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var197, var198, var_mreadprop190) /* check_redef_keyword on */; -var200 = !var199; -if (var200){ -goto RET_LABEL; -} else { -} -} else { +var168 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; +((void (*)(val*, val*, val*))(var168->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var168, var_mwritepropdef, self) /* []= on */; +} else { +} +} else { +var169 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id2]))(self) /* n_id2 on */; +if (var169 == NULL) { +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 637); +show_backtrace(1); +} +var_nid2 = var169; +var170 = NEW_model__MAttribute(&type_model__MAttribute); +if (varonce171) { +var172 = varonce171; +} else { +var173 = "@"; +var174 = 1; +var175 = string__NativeString__to_s_with_length(var173, var174); +var172 = var175; +varonce171 = var172; +} +var176 = ((val* (*)(val*, val*))(var172->class->vft[COLOR_string__String___43d]))(var172, var_name) /* + on */; +var177 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__none_visibility]))(self) /* none_visibility on */; +((void (*)(val*, val*, val*, val*))(var170->class->vft[COLOR_model__MAttribute__init]))(var170, var_mclassdef, var176, var177) /* init on */; +var_mprop178 = var170; +var179 = NEW_model__MAttributeDef(&type_model__MAttributeDef); +var180 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; +((void (*)(val*, val*, val*, val*))(var179->class->vft[COLOR_model__MAttributeDef__init]))(var179, var_mclassdef, var_mprop178, var180) /* init on */; +var_mpropdef181 = var179; +/* isa nullable MPROPDEF */ +type_struct185 = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF]; +cltype183 = type_struct185->color; +idtype184 = type_struct185->id; +if(cltype183 >= var_mpropdef181->type->table_size) { +var182 = 0; +} else { +var182 = var_mpropdef181->type->type_table[cltype183] == idtype184; +} +if (!var182) { +var_class_name186 = var_mpropdef181 == NULL ? "null" : var_mpropdef181->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name186); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 640); +show_backtrace(1); +} +((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef181) /* mpropdef= on */; +var187 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; +((void (*)(val*, val*, val*))(var187->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var187, var_mpropdef181, self) /* []= on */; +var_readname188 = var_name; +var189 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid2, var_mclassdef, var_readname188) /* try_get_mproperty_by_name on */; +/* isa nullable MMethod */ +cltype191 = type_nullable_model__MMethod.color; +idtype192 = type_nullable_model__MMethod.id; +if(var189 == NULL) { +var190 = 1; +} else { +if(cltype191 >= var189->type->table_size) { +var190 = 0; +} else { +var190 = var189->type->type_table[cltype191] == idtype192; +} +} +if (!var190) { +var_class_name193 = var189 == NULL ? "null" : var189->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name193); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 644); +show_backtrace(1); +} +var_mreadprop194 = var189; +var195 = NULL; +if (var_mreadprop194 == NULL) { +var196 = 1; /* is null */ +} else { +var196 = 0; /* arg is null but recv is not */ +} +if (var196){ +var197 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on */; +var198 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var197) /* new_property_visibility on */; +var_mvisibility199 = var198; +var200 = NEW_model__MMethod(&type_model__MMethod); +((void (*)(val*, val*, val*, val*))(var200->class->vft[COLOR_model__MMethod__init]))(var200, var_mclassdef, var_readname188, var_mvisibility199) /* init on */; +var_mreadprop194 = var200; var201 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_kwredef]))(self) /* n_kwredef on */; -var202 = 1; -var203 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var201, var202, var_mreadprop190) /* check_redef_keyword on */; +var202 = 0; +var203 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var201, var202, var_mreadprop194) /* check_redef_keyword on */; var204 = !var203; if (var204){ goto RET_LABEL; } else { } -var205 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on */; -((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var205, var_mreadprop190) /* check_redef_property_visibility on */; -} -var206 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; -((void (*)(val*, val*, val*))(var206->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var206, var_mreadprop190, self) /* []= on */; -var207 = NEW_model__MMethodDef(&type_model__MMethodDef); -var208 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; -((void (*)(val*, val*, val*, val*))(var207->class->vft[COLOR_model__MMethodDef__init]))(var207, var_mclassdef, var_mreadprop190, var208) /* init on */; -CHECK_NEW_model__MMethodDef(var207); -var_mreadpropdef209 = var207; -((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mreadpropdef_61d]))(self, var_mreadpropdef209) /* mreadpropdef= on */; -var210 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; -((void (*)(val*, val*, val*))(var210->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var210, var_mreadpropdef209, self) /* []= on */; -if (varonce211) { -var212 = varonce211; } else { -var213 = "="; -var214 = 1; -var215 = string__NativeString__to_s_with_length(var213, var214); -var212 = var215; -varonce211 = var212; -} -var216 = ((val* (*)(val*, val*))(var_name->class->vft[COLOR_string__String___43d]))(var_name, var212) /* + on */; -var_writename217 = var216; -var218 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_writable]))(self) /* n_writable on */; -var_nwritable219 = var218; -var220 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid2, var_mclassdef, var_writename217) /* try_get_mproperty_by_name on */; -/* isa nullable MMethod */ -cltype222 = type_nullable_model__MMethod.color; -idtype223 = type_nullable_model__MMethod.id; -if(var220 == NULL) { -var221 = 1; -} else { -if(cltype222 >= var220->type->table_size) { -var221 = 0; +var205 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_kwredef]))(self) /* n_kwredef on */; +var206 = 1; +var207 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var205, var206, var_mreadprop194) /* check_redef_keyword on */; +var208 = !var207; +if (var208){ +goto RET_LABEL; } else { -var221 = var220->type->type_table[cltype222] == idtype223; } +var209 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_visibility]))(self) /* n_visibility on */; +((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var209, var_mreadprop194) /* check_redef_property_visibility on */; +} +var210 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; +((void (*)(val*, val*, val*))(var210->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var210, var_mreadprop194, self) /* []= on */; +var211 = NEW_model__MMethodDef(&type_model__MMethodDef); +var212 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; +((void (*)(val*, val*, val*, val*))(var211->class->vft[COLOR_model__MMethodDef__init]))(var211, var_mclassdef, var_mreadprop194, var212) /* init on */; +var_mreadpropdef213 = var211; +((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mreadpropdef_61d]))(self, var_mreadpropdef213) /* mreadpropdef= on */; +var214 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; +((void (*)(val*, val*, val*))(var214->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var214, var_mreadpropdef213, self) /* []= on */; +if (varonce215) { +var216 = varonce215; +} else { +var217 = "="; +var218 = 1; +var219 = string__NativeString__to_s_with_length(var217, var218); +var216 = var219; +varonce215 = var216; +} +var220 = ((val* (*)(val*, val*))(var_name->class->vft[COLOR_string__String___43d]))(var_name, var216) /* + on */; +var_writename221 = var220; +var222 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_writable]))(self) /* n_writable on */; +var_nwritable223 = var222; +var224 = ((val* (*)(val*, val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__try_get_mproperty_by_name]))(var_modelbuilder, var_nid2, var_mclassdef, var_writename221) /* try_get_mproperty_by_name on */; +/* isa nullable MMethod */ +cltype226 = type_nullable_model__MMethod.color; +idtype227 = type_nullable_model__MMethod.id; +if(var224 == NULL) { +var225 = 1; +} else { +if(cltype226 >= var224->type->table_size) { +var225 = 0; +} else { +var225 = var224->type->type_table[cltype226] == idtype227; +} +} +if (!var225) { +var_class_name228 = var224 == NULL ? "null" : var224->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name228); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 661); +show_backtrace(1); +} +var_mwriteprop229 = var224; +var230 = NULL; +var_nwkwredef = var230; +var231 = NULL; +if (var_nwritable223 == NULL) { +var232 = 0; /* is null */ +} else { +var232 = 1; /* arg is null and recv is not */ } -if (!var221) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 651); -exit(1); -} -var_mwriteprop224 = var220; -var225 = NULL; -var_nwkwredef = var225; -var226 = NULL; -if (var_nwritable219 == NULL) { -var227 = 0; /* is null */ +if (var232){ +var233 = ((val* (*)(val*))(var_nwritable223->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable223) /* n_kwredef on */; +var_nwkwredef = var233; } else { -var227 = 1; /* arg is null and recv is not */ } -if (var227){ -var228 = ((val* (*)(val*))(var_nwritable219->class->vft[COLOR_parser_nodes__AAble__n_kwredef]))(var_nwritable219) /* n_kwredef on */; -var_nwkwredef = var228; +var234 = NULL; +if (var_mwriteprop229 == NULL) { +var235 = 1; /* is null */ } else { +var235 = 0; /* arg is null but recv is not */ } -var229 = NULL; -if (var_mwriteprop224 == NULL) { -var230 = 1; /* is null */ +if (var235){ +var236 = NULL; +if (var_nwritable223 == NULL) { +var237 = 0; /* is null */ } else { -var230 = 0; /* arg is null but recv is not */ +var237 = 1; /* arg is null and recv is not */ } -if (var230){ -var231 = NULL; -if (var_nwritable219 == NULL) { -var232 = 0; /* is null */ +if (var237){ +var238 = ((val* (*)(val*))(var_nwritable223->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable223) /* n_visibility on */; +var239 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var238) /* new_property_visibility on */; +var_mvisibility240 = var239; } else { -var232 = 1; /* arg is null and recv is not */ +var241 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on */; +var_mvisibility240 = var241; } -if (var232){ -var233 = ((val* (*)(val*))(var_nwritable219->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable219) /* n_visibility on */; -var234 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__new_property_visibility]))(self, var_modelbuilder, var_nclassdef, var233) /* new_property_visibility on */; -var_mvisibility235 = var234; -} else { -var236 = ((val* (*)(val*))(self->class->vft[COLOR_model_base__Object__private_visibility]))(self) /* private_visibility on */; -var_mvisibility235 = var236; -} -var237 = NEW_model__MMethod(&type_model__MMethod); -((void (*)(val*, val*, val*, val*))(var237->class->vft[COLOR_model__MMethod__init]))(var237, var_mclassdef, var_writename217, var_mvisibility235) /* init on */; -CHECK_NEW_model__MMethod(var237); -var_mwriteprop224 = var237; -var238 = 0; -var239 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var_nwkwredef, var238, var_mwriteprop224) /* check_redef_keyword on */; -var240 = !var239; -if (var240){ +var242 = NEW_model__MMethod(&type_model__MMethod); +((void (*)(val*, val*, val*, val*))(var242->class->vft[COLOR_model__MMethod__init]))(var242, var_mclassdef, var_writename221, var_mvisibility240) /* init on */; +var_mwriteprop229 = var242; +var243 = 0; +var244 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var_nwkwredef, var243, var_mwriteprop229) /* check_redef_keyword on */; +var245 = !var244; +if (var245){ goto RET_LABEL; } else { } } else { -var241 = 1; -var242 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var_nwkwredef, var241, var_mwriteprop224) /* check_redef_keyword on */; -var243 = !var242; -if (var243){ +var246 = 1; +var247 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var_nwkwredef, var246, var_mwriteprop229) /* check_redef_keyword on */; +var248 = !var247; +if (var248){ goto RET_LABEL; } else { } -var244 = NULL; -if (var_nwritable219 == NULL) { -var245 = 0; /* is null */ +var249 = NULL; +if (var_nwritable223 == NULL) { +var250 = 0; /* is null */ } else { -var245 = 1; /* arg is null and recv is not */ +var250 = 1; /* arg is null and recv is not */ } -if (var245){ -var246 = ((val* (*)(val*))(var_nwritable219->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable219) /* n_visibility on */; -((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var246, var_mwriteprop224) /* check_redef_property_visibility on */; +if (var250){ +var251 = ((val* (*)(val*))(var_nwritable223->class->vft[COLOR_parser_nodes__AAble__n_visibility]))(var_nwritable223) /* n_visibility on */; +((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var251, var_mwriteprop229) /* check_redef_property_visibility on */; } else { } } -var247 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; -((void (*)(val*, val*, val*))(var247->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var247, var_mwriteprop224, self) /* []= on */; -var248 = NEW_model__MMethodDef(&type_model__MMethodDef); -var249 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; -((void (*)(val*, val*, val*, val*))(var248->class->vft[COLOR_model__MMethodDef__init]))(var248, var_mclassdef, var_mwriteprop224, var249) /* init on */; -CHECK_NEW_model__MMethodDef(var248); -var_mwritepropdef250 = var248; -((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef_61d]))(self, var_mwritepropdef250) /* mwritepropdef= on */; -var251 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; -((void (*)(val*, val*, val*))(var251->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var251, var_mwritepropdef250, self) /* []= on */; +var252 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; +((void (*)(val*, val*, val*))(var252->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var252, var_mwriteprop229, self) /* []= on */; +var253 = NEW_model__MMethodDef(&type_model__MMethodDef); +var254 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; +((void (*)(val*, val*, val*, val*))(var253->class->vft[COLOR_model__MMethodDef__init]))(var253, var_mclassdef, var_mwriteprop229, var254) /* init on */; +var_mwritepropdef255 = var253; +((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef_61d]))(self, var_mwritepropdef255) /* mwritepropdef= on */; +var256 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on */; +((void (*)(val*, val*, val*))(var256->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var256, var_mwritepropdef255, self) /* []= on */; } RET_LABEL:; } @@ -5305,6 +5471,7 @@ short int var132 /* : Bool */; short int var134 /* : Bool */; int cltype135; int idtype136; +const char* var_class_name; long var137 /* : Int */; short int var138 /* : Bool */; static val* varonce139; @@ -5635,7 +5802,6 @@ var108 = NEW_array__NativeArray(var107, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var108)->values[1] = (val*) var_mpropdef; ((struct instance_array__NativeArray*)var108)->values[2] = (val*) var102; ((void (*)(val*, val*, long))(var106->class->vft[COLOR_array__Array__with_native]))(var106, var108, var107) /* with_native on */; -CHECK_NEW_array__Array(var106); } var109 = ((val* (*)(val*))(var106->class->vft[COLOR_string__Object__to_s]))(var106) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var109) /* error on */; @@ -5663,7 +5829,6 @@ var117 = NEW_array__NativeArray(var116, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var117)->values[0] = (val*) var111; ((struct instance_array__NativeArray*)var117)->values[1] = (val*) var_mpropdef; ((void (*)(val*, val*, long))(var115->class->vft[COLOR_array__Array__with_native]))(var115, var117, var116) /* with_native on */; -CHECK_NEW_array__Array(var115); } var118 = ((val* (*)(val*))(var115->class->vft[COLOR_string__Object__to_s]))(var115) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var118) /* error on */; @@ -5676,8 +5841,9 @@ var120 = 0; /* is null */ var120 = 1; /* arg is null and recv is not */ } if (!var120) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/modelize_property.nit", 721); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 731); +show_backtrace(1); } /* isa ANewExpr */ cltype122 = type_parser_nodes__ANewExpr.color; @@ -5711,8 +5877,10 @@ var131 = 2; /* isa OTHER */ var134 = 1; /* easy isa OTHER*/ if (!var134) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -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", 266); +show_backtrace(1); } var137 = ((struct instance_kernel__Int*)var130)->value; /* autounbox from nullable Object to Int */; var138 = var137 >= var131; @@ -5763,9 +5931,7 @@ if (var148){ var149 = NEW_model__MSignature(&type_model__MSignature); var150 = NEW_array__Array(&type_array__Arraymodel__MParameter); ((void (*)(val*))(var150->class->vft[COLOR_array__Array__init]))(var150) /* init on */; -CHECK_NEW_array__Array(var150); ((void (*)(val*, val*, val*))(var149->class->vft[COLOR_model__MSignature__init]))(var149, var150, var_mtype) /* init on */; -CHECK_NEW_model__MSignature(var149); var_msignature = var149; ((void (*)(val*, val*))(var_mreadpropdef->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var_mreadpropdef, var_msignature) /* msignature= on */; } else { @@ -5790,8 +5956,9 @@ var157 = 1; /* arg is null and recv is not */ if (var157){ var158 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id]))(self) /* n_id on */; if (var158 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 744); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 754); +show_backtrace(1); } else { var159 = ((val* (*)(val*))(var158->class->vft[COLOR_parser_nodes__Token__text]))(var158) /* text on */; } @@ -5801,8 +5968,9 @@ var_name = var161; } else { var162 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_id2]))(self) /* n_id2 on */; if (var162 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 746); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 756); +show_backtrace(1); } else { var163 = ((val* (*)(val*))(var162->class->vft[COLOR_parser_nodes__Token__text]))(var162) /* text on */; } @@ -5811,23 +5979,21 @@ var_name = var163; var164 = NEW_model__MParameter(&type_model__MParameter); var165 = 0; ((void (*)(val*, val*, val*, short int))(var164->class->vft[COLOR_model__MParameter__init]))(var164, var_name, var_mtype, var165) /* init on */; -CHECK_NEW_model__MParameter(var164); var_mparameter = var164; var166 = NEW_model__MSignature(&type_model__MSignature); var167 = NEW_array__Array(&type_array__Arraymodel__MParameter); var168 = 1; ((void (*)(val*, long))(var167->class->vft[COLOR_array__Array__with_capacity]))(var167, var168) /* with_capacity on */; -CHECK_NEW_array__Array(var167); var_169 = var167; ((void (*)(val*, val*))(var_169->class->vft[COLOR_abstract_collection__Sequence__push]))(var_169, var_mparameter) /* push on */; var170 = NULL; ((void (*)(val*, val*, val*))(var166->class->vft[COLOR_model__MSignature__init]))(var166, var_169, var170) /* init on */; -CHECK_NEW_model__MSignature(var166); var_msignature171 = var166; var172 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AAttrPropdef__mwritepropdef]))(self) /* mwritepropdef on */; if (var172 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 750); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 760); +show_backtrace(1); } else { ((void (*)(val*, val*))(var172->class->vft[COLOR_model__MMethodDef__msignature_61d]))(var172, var_msignature171) /* msignature= on */; } @@ -5914,8 +6080,9 @@ var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_ty var_ntype = var5; var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; if (var6 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 760); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 770); +show_backtrace(1); } else { var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var6) /* static_mtype on */; } @@ -5950,8 +6117,9 @@ goto RET_LABEL; var17 = ((short int (*)(val*, val*))(var_mtype->class->vft[COLOR_kernel__Object___33d_61d]))(var_mtype, var_precursor_type) /* != on */; if (var17){ if (var_ntype == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 770); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 780); +show_backtrace(1); } if (varonce) { var18 = varonce; @@ -5990,7 +6158,6 @@ var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var34)->values[3] = (val*) var_precursor_type; ((struct instance_array__NativeArray*)var34)->values[4] = (val*) var28; ((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on */; -CHECK_NEW_array__Array(var32); } var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_ntype, var35) /* error on */; @@ -6117,6 +6284,7 @@ short int var70 /* : Bool */; short int var72 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var73 /* : Bool */; val* var74 /* : Range[Int] */; long var75 /* : Int */; @@ -6307,7 +6475,6 @@ var41 = BOX_kernel__Int(var31); /* autobox from Int to Object */ ((struct instance_array__NativeArray*)var39)->values[5] = (val*) var_mpropdef; ((struct instance_array__NativeArray*)var39)->values[6] = (val*) var_msignature; ((void (*)(val*, val*, long))(var37->class->vft[COLOR_array__Array__with_native]))(var37, var39, var38) /* with_native on */; -CHECK_NEW_array__Array(var37); } var42 = ((val* (*)(val*))(var37->class->vft[COLOR_string__Object__to_s]))(var37) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node, var42) /* error on */; @@ -6375,7 +6542,6 @@ var66 = NEW_array__NativeArray(var65, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var66)->values[1] = (val*) var58; ((struct instance_array__NativeArray*)var66)->values[2] = (val*) var60; ((void (*)(val*, val*, long))(var64->class->vft[COLOR_array__Array__with_native]))(var64, var66, var65) /* with_native on */; -CHECK_NEW_array__Array(var64); } var67 = ((val* (*)(val*))(var64->class->vft[COLOR_string__Object__to_s]))(var64) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node52, var67) /* error on */; @@ -6389,8 +6555,10 @@ var69 = 0; /* isa OTHER */ var72 = 1; /* easy isa OTHER*/ if (!var72) { -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); } var73 = var68 > var69; var70 = var73; @@ -6404,7 +6572,6 @@ var76 = ((long (*)(val*))(var_mysignature->class->vft[COLOR_model__MSignature__a var77 = BOX_kernel__Int(var75); /* autobox from Int to Discrete */ var78 = BOX_kernel__Int(var76); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var74->class->vft[COLOR_range__Range__without_last]))(var74, var77, var78) /* without_last on */; -CHECK_NEW_range__Range(var74); var79 = ((val* (*)(val*))(var74->class->vft[COLOR_abstract_collection__Collection__iterator]))(var74) /* iterator on */; for(;;) { var80 = ((short int (*)(val*))(var79->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var79) /* is_ok on */; @@ -6422,8 +6589,9 @@ var88 = ((val* (*)(val*))(var87->class->vft[COLOR_model__MParameter__mtype]))(va var_prt = var88; var90 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var90 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 815); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 825); +show_backtrace(1); } else { var91 = ((val* (*)(val*))(var90->class->vft[COLOR_model__MClassDef__bound_mtype]))(var90) /* bound_mtype on */; } @@ -6433,8 +6601,9 @@ var_94 = var93; if (var93){ var95 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var95 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 816); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 826); +show_backtrace(1); } else { var96 = ((val* (*)(val*))(var95->class->vft[COLOR_model__MClassDef__bound_mtype]))(var95) /* bound_mtype on */; } @@ -6507,7 +6676,6 @@ var127 = NEW_array__NativeArray(var126, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var127)->values[5] = (val*) var_prt; ((struct instance_array__NativeArray*)var127)->values[6] = (val*) var121; ((void (*)(val*, val*, long))(var125->class->vft[COLOR_array__Array__with_native]))(var125, var127, var126) /* with_native on */; -CHECK_NEW_array__Array(var125); } var128 = ((val* (*)(val*))(var125->class->vft[COLOR_string__Object__to_s]))(var125) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node101, var128) /* error on */; @@ -6537,8 +6705,9 @@ var_ret_type = var_precursor_ret_type; } else { var133 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var133 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 827); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 837); +show_backtrace(1); } else { var134 = ((val* (*)(val*))(var133->class->vft[COLOR_model__MClassDef__bound_mtype]))(var133) /* bound_mtype on */; } @@ -6593,7 +6762,6 @@ var157 = NEW_array__NativeArray(var156, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var157)->values[3] = (val*) var_precursor_ret_type; ((struct instance_array__NativeArray*)var157)->values[4] = (val*) var151; ((void (*)(val*, val*, long))(var155->class->vft[COLOR_array__Array__with_native]))(var155, var157, var156) /* with_native on */; -CHECK_NEW_array__Array(var155); } var158 = ((val* (*)(val*))(var155->class->vft[COLOR_string__Object__to_s]))(var155) /* to_s on */; ((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, var_node139, var158) /* error on */; @@ -6640,6 +6808,7 @@ short int var16 /* : Bool */; short int var18 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var19 /* : Bool */; short int var_ /* var : Bool */; char var20 /* : Char */; @@ -6647,43 +6816,46 @@ short int var21 /* : Bool */; short int var23 /* : Bool */; int cltype24; int idtype25; -short int var26 /* : Bool */; -val* var27 /* : TClassid */; +const char* var_class_name26; +short int var27 /* : Bool */; +val* var28 /* : TClassid */; static val* varonce; -val* var28 /* : String */; -char* var29 /* : NativeString */; -long var30 /* : Int */; -val* var31 /* : String */; -val* var32 /* : Array[Object] */; -long var33 /* : Int */; -val* var34 /* : NativeArray[Object] */; -val* var35 /* : String */; -val* var36 /* : nullable TKwredef */; -short int var37 /* : Bool */; +val* var29 /* : String */; +char* var30 /* : NativeString */; +long var31 /* : Int */; +val* var32 /* : String */; +val* var33 /* : Array[Object] */; +long var34 /* : Int */; +val* var35 /* : NativeArray[Object] */; +val* var36 /* : String */; +val* var37 /* : nullable TKwredef */; short int var38 /* : Bool */; short int var39 /* : Bool */; -val* var40 /* : nullable TKwredef */; -short int var41 /* : Bool */; +short int var40 /* : Bool */; +val* var41 /* : nullable TKwredef */; short int var42 /* : Bool */; short int var43 /* : Bool */; short int var44 /* : Bool */; -int cltype45; -int idtype46; -val* var47 /* : AVisibility */; -val* var48 /* : Map[MProperty, APropdef] */; -val* var49 /* : MVirtualTypeDef */; -val* var50 /* : Location */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +val* var48 /* : AVisibility */; +val* var49 /* : Map[MProperty, APropdef] */; +val* var50 /* : MVirtualTypeDef */; +val* var51 /* : Location */; val* var_mpropdef /* var mpropdef: MVirtualTypeDef */; -short int var51 /* : Bool */; -int cltype52; -int idtype53; +short int var52 /* : Bool */; +int cltype53; +int idtype54; const struct type* type_struct; +const char* var_class_name55; var_modelbuilder = p0; var_nclassdef = p1; var = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; if (var == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 842); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 852); +show_backtrace(1); } var_mclassdef = var; var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_id]))(self) /* n_id on */; @@ -6704,7 +6876,6 @@ var8 = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_modelize_prope var_mvisibility = var8; var9 = NEW_model__MVirtualTypeProp(&type_model__MVirtualTypeProp); ((void (*)(val*, val*, val*, val*))(var9->class->vft[COLOR_model__MVirtualTypeProp__init]))(var9, var_mclassdef, var_name, var_mvisibility) /* init on */; -CHECK_NEW_model__MVirtualTypeProp(var9); var_mprop = var9; var10 = ((val* (*)(val*))(var_name->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_name) /* iterator on */; for(;;) { @@ -6719,8 +6890,10 @@ var15 = 'a'; /* isa OTHER */ var18 = 1; /* easy isa OTHER*/ if (!var18) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456); -exit(1); +var_class_name = type_kernel__Char.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442); +show_backtrace(1); } var19 = var_c >= var15; var16 = var19; @@ -6735,11 +6908,13 @@ var20 = 'z'; /* isa OTHER */ var23 = 1; /* easy isa OTHER*/ if (!var23) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 454); -exit(1); +var_class_name26 = type_kernel__Char.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440); +show_backtrace(1); } -var26 = var_c <= var20; -var21 = var26; +var27 = var_c <= var20; +var21 = var27; goto RET_LABEL22; RET_LABEL22:(void)0; } @@ -6748,27 +6923,26 @@ var14 = var21; var14 = var_; } if (var14){ -var27 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_id]))(self) /* n_id on */; +var28 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_id]))(self) /* n_id on */; if (varonce) { -var28 = varonce; -} else { -var29 = "Warning: lowercase in the virtual type "; -var30 = 39; -var31 = string__NativeString__to_s_with_length(var29, var30); -var28 = var31; -varonce = var28; -} -var32 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var32 = array_instance Array[Object] */ -var33 = 2; -var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var34)->values[0] = (val*) var28; -((struct instance_array__NativeArray*)var34)->values[1] = (val*) var_name; -((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on */; -CHECK_NEW_array__Array(var32); -} -var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on */; -((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__warning]))(var_modelbuilder, var27, var35) /* warning on */; +var29 = varonce; +} else { +var30 = "Warning: lowercase in the virtual type "; +var31 = 39; +var32 = string__NativeString__to_s_with_length(var30, var31); +var29 = var32; +varonce = var29; +} +var33 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var33 = array_instance Array[Object] */ +var34 = 2; +var35 = NEW_array__NativeArray(var34, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var35)->values[0] = (val*) var29; +((struct instance_array__NativeArray*)var35)->values[1] = (val*) var_name; +((void (*)(val*, val*, long))(var33->class->vft[COLOR_array__Array__with_native]))(var33, var35, var34) /* with_native on */; +} +var36 = ((val* (*)(val*))(var33->class->vft[COLOR_string__Object__to_s]))(var33) /* to_s on */; +((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__warning]))(var_modelbuilder, var28, var36) /* warning on */; goto BREAK_label; } else { } @@ -6776,57 +6950,59 @@ CONTINUE_label: (void)0; ((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on */; } BREAK_label: (void)0; -var36 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_kwredef]))(self) /* n_kwredef on */; -var37 = 0; -var38 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var36, var37, var_mprop) /* check_redef_keyword on */; -var39 = !var38; -if (var39){ +var37 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_kwredef]))(self) /* n_kwredef on */; +var38 = 0; +var39 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var37, var38, var_mprop) /* check_redef_keyword on */; +var40 = !var39; +if (var40){ goto RET_LABEL; } else { } } else { -var40 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_kwredef]))(self) /* n_kwredef on */; -var41 = 1; -var42 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var40, var41, var_mprop) /* check_redef_keyword on */; -var43 = !var42; -if (var43){ +var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_kwredef]))(self) /* n_kwredef on */; +var42 = 1; +var43 = ((short int (*)(val*, val*, val*, val*, short int, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_keyword]))(self, var_modelbuilder, var_nclassdef, var41, var42, var_mprop) /* check_redef_keyword on */; +var44 = !var43; +if (var44){ goto RET_LABEL; } else { } /* isa MVirtualTypeProp */ -cltype45 = type_model__MVirtualTypeProp.color; -idtype46 = type_model__MVirtualTypeProp.id; -if(cltype45 >= var_mprop->type->table_size) { -var44 = 0; -} else { -var44 = var_mprop->type->type_table[cltype45] == idtype46; -} -if (!var44) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/modelize_property.nit", 855); -exit(1); -} -var47 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_visibility]))(self) /* n_visibility on */; -((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var47, var_mprop) /* check_redef_property_visibility on */; -} -var48 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; -((void (*)(val*, val*, val*))(var48->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var48, var_mprop, self) /* []= on */; -var49 = NEW_model__MVirtualTypeDef(&type_model__MVirtualTypeDef); -var50 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; -((void (*)(val*, val*, val*, val*))(var49->class->vft[COLOR_model__MVirtualTypeDef__init]))(var49, var_mclassdef, var_mprop, var50) /* init on */; -CHECK_NEW_model__MVirtualTypeDef(var49); -var_mpropdef = var49; +cltype46 = type_model__MVirtualTypeProp.color; +idtype47 = type_model__MVirtualTypeProp.id; +if(cltype46 >= var_mprop->type->table_size) { +var45 = 0; +} else { +var45 = var_mprop->type->type_table[cltype46] == idtype47; +} +if (!var45) { +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 865); +show_backtrace(1); +} +var48 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ATypePropdef__n_visibility]))(self) /* n_visibility on */; +((void (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__check_redef_property_visibility]))(self, var_modelbuilder, var_nclassdef, var48, var_mprop) /* check_redef_property_visibility on */; +} +var49 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_property__AClassdef__mprop2npropdef]))(var_nclassdef) /* mprop2npropdef on */; +((void (*)(val*, val*, val*))(var49->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var49, var_mprop, self) /* []= on */; +var50 = NEW_model__MVirtualTypeDef(&type_model__MVirtualTypeDef); +var51 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on */; +((void (*)(val*, val*, val*, val*))(var50->class->vft[COLOR_model__MVirtualTypeDef__init]))(var50, var_mclassdef, var_mprop, var51) /* init on */; +var_mpropdef = var50; /* isa nullable MPROPDEF */ -type_struct = self->type->resolution_table->types[COLOR_parser_nodes__APropdef_VTMPROPDEF]; -cltype52 = type_struct->color; -idtype53 = type_struct->id; -if(cltype52 >= var_mpropdef->type->table_size) { -var51 = 0; +type_struct = self->type->resolution_table->types[COLOR_nullable_parser_nodes__APropdef_VTMPROPDEF]; +cltype53 = type_struct->color; +idtype54 = type_struct->id; +if(cltype53 >= var_mpropdef->type->table_size) { +var52 = 0; } else { -var51 = var_mpropdef->type->type_table[cltype52] == idtype53; +var52 = var_mpropdef->type->type_table[cltype53] == idtype54; } -if (!var51) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/modelize_property.nit", 861); -exit(1); +if (!var52) { +var_class_name55 = var_mpropdef == NULL ? "null" : var_mpropdef->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MPROPDEF", var_class_name55); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 871); +show_backtrace(1); } ((void (*)(val*, val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef_61d]))(self, var_mpropdef) /* mpropdef= on */; RET_LABEL:; @@ -6900,155 +7076,173 @@ void modelize_property__ATypePropdef__check_signature(val* self, val* p0, val* p val* var_modelbuilder /* var modelbuilder: ModelBuilder */; val* var_nclassdef /* var nclassdef: AClassdef */; val* var /* : nullable MPropDef */; -val* var1 /* : nullable MType */; -val* var_bound /* var bound: nullable MType */; +val* var_mpropdef /* var mpropdef: nullable MVirtualTypeDef */; +val* var1 /* : null */; short int var2 /* : Bool */; +val* var3 /* : nullable MPropDef */; +val* var4 /* : nullable MType */; +val* var_bound /* var bound: nullable MType */; +short int var5 /* : Bool */; int cltype; int idtype; -short int var3 /* : Bool */; -val* var4 /* : nullable MClassDef */; -val* var5 /* : MModule */; +short int var6 /* : Bool */; +val* var7 /* : nullable MClassDef */; +val* var8 /* : MModule */; val* var_mmodule /* var mmodule: MModule */; -val* var6 /* : nullable MClassDef */; -val* var7 /* : MClassType */; +val* var9 /* : nullable MClassDef */; +val* var10 /* : MClassType */; val* var_anchor /* var anchor: MClassType */; -val* var8 /* : Array[MVirtualType] */; -long var9 /* : Int */; +val* var11 /* : Array[MVirtualType] */; +long var12 /* : Int */; val* var_ /* var : Array[MVirtualType] */; -val* var10 /* : nullable MPropDef */; -val* var11 /* : MProperty */; -val* var12 /* : MVirtualType */; +val* var13 /* : nullable MPropDef */; +val* var14 /* : MProperty */; +val* var15 /* : MVirtualType */; val* var_seen /* var seen: Array[MVirtualType] */; -short int var13 /* : Bool */; +short int var16 /* : Bool */; static val* varonce; -val* var14 /* : String */; -char* var15 /* : NativeString */; -long var16 /* : Int */; val* var17 /* : String */; -static val* varonce18; -val* var19 /* : String */; -char* var20 /* : NativeString */; -long var21 /* : Int */; +char* var18 /* : NativeString */; +long var19 /* : Int */; +val* var20 /* : String */; +static val* varonce21; val* var22 /* : String */; -val* var23 /* : String */; -val* var24 /* : Array[Object] */; -long var25 /* : Int */; -val* var26 /* : NativeArray[Object] */; -val* var27 /* : String */; -val* var28 /* : MType */; +char* var23 /* : NativeString */; +long var24 /* : Int */; +val* var25 /* : String */; +val* var26 /* : String */; +val* var27 /* : Array[Object] */; +long var28 /* : Int */; +val* var29 /* : NativeArray[Object] */; +val* var30 /* : String */; +val* var31 /* : MType */; val* var_next /* var next: MType */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; short int var32 /* : Bool */; +int cltype33; +int idtype34; +short int var35 /* : Bool */; var_modelbuilder = p0; var_nclassdef = p1; var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; -if (var == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 881); -exit(1); +var_mpropdef = var; +var1 = NULL; +if (var_mpropdef == NULL) { +var2 = 1; /* is null */ } else { -var1 = ((val* (*)(val*))(var->class->vft[COLOR_model__MVirtualTypeDef__bound]))(var) /* bound on */; +var2 = 0; /* arg is null but recv is not */ } -var_bound = var1; +if (var2){ +goto RET_LABEL; +} else { +} +var3 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; +if (var3 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 894); +show_backtrace(1); +} else { +var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MVirtualTypeDef__bound]))(var3) /* bound on */; +} +var_bound = var4; /* isa MVirtualType */ cltype = type_model__MVirtualType.color; idtype = type_model__MVirtualType.id; if(var_bound == NULL) { -var2 = 0; +var5 = 0; } else { if(cltype >= var_bound->type->table_size) { -var2 = 0; +var5 = 0; } else { -var2 = var_bound->type->type_table[cltype] == idtype; +var5 = var_bound->type->type_table[cltype] == idtype; } } -var3 = !var2; -if (var3){ +var6 = !var5; +if (var6){ goto RET_LABEL; } else { } -var4 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; -if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 886); -exit(1); -} else { -var5 = ((val* (*)(val*))(var4->class->vft[COLOR_model__MClassDef__mmodule]))(var4) /* mmodule on */; -} -var_mmodule = var5; -var6 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; -if (var6 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 887); -exit(1); -} else { -var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model__MClassDef__bound_mtype]))(var6) /* bound_mtype on */; -} -var_anchor = var7; -var8 = NEW_array__Array(&type_array__Arraymodel__MVirtualType); -var9 = 1; -((void (*)(val*, long))(var8->class->vft[COLOR_array__Array__with_capacity]))(var8, var9) /* with_capacity on */; -CHECK_NEW_array__Array(var8); -var_ = var8; -var10 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; -if (var10 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/modelize_property.nit", 890); -exit(1); -} else { -var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MPropDef__mproperty]))(var10) /* mproperty on */; -} -var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MVirtualTypeProp__mvirtualtype]))(var11) /* mvirtualtype on */; -((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var12) /* push on */; +var7 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; +if (var7 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 899); +show_backtrace(1); +} else { +var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MClassDef__mmodule]))(var7) /* mmodule on */; +} +var_mmodule = var8; +var9 = ((val* (*)(val*))(var_nclassdef->class->vft[COLOR_modelize_class__AClassdef__mclassdef]))(var_nclassdef) /* mclassdef on */; +if (var9 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 900); +show_backtrace(1); +} else { +var10 = ((val* (*)(val*))(var9->class->vft[COLOR_model__MClassDef__bound_mtype]))(var9) /* bound_mtype on */; +} +var_anchor = var10; +var11 = NEW_array__Array(&type_array__Arraymodel__MVirtualType); +var12 = 1; +((void (*)(val*, long))(var11->class->vft[COLOR_array__Array__with_capacity]))(var11, var12) /* with_capacity on */; +var_ = var11; +var13 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on */; +if (var13 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/modelize_property.nit", 903); +show_backtrace(1); +} else { +var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MPropDef__mproperty]))(var13) /* mproperty on */; +} +var15 = ((val* (*)(val*))(var14->class->vft[COLOR_model__MVirtualTypeProp__mvirtualtype]))(var14) /* mvirtualtype on */; +((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var15) /* push on */; var_seen = var_; for(;;) { -var13 = ((short int (*)(val*, val*))(var_seen->class->vft[COLOR_abstract_collection__Collection__has]))(var_seen, var_bound) /* has on */; -if (var13){ +var16 = ((short int (*)(val*, val*))(var_seen->class->vft[COLOR_abstract_collection__Collection__has]))(var_seen, var_bound) /* has on */; +if (var16){ ((void (*)(val*, val*))(var_seen->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_seen, var_bound) /* add on */; if (varonce) { -var14 = varonce; +var17 = varonce; } else { -var15 = "Error: circularity of virtual type definition: "; -var16 = 47; -var17 = string__NativeString__to_s_with_length(var15, var16); -var14 = var17; -varonce = var14; -} -if (varonce18) { -var19 = varonce18; -} else { -var20 = " -> "; -var21 = 4; -var22 = string__NativeString__to_s_with_length(var20, var21); -var19 = var22; -varonce18 = var19; -} -var23 = ((val* (*)(val*, val*))(var_seen->class->vft[COLOR_string__Collection__join]))(var_seen, var19) /* join on */; -var24 = NEW_array__Array(&type_array__Arraykernel__Object); -{ /* var24 = array_instance Array[Object] */ -var25 = 2; -var26 = NEW_array__NativeArray(var25, &type_array__NativeArraykernel__Object); -((struct instance_array__NativeArray*)var26)->values[0] = (val*) var14; -((struct instance_array__NativeArray*)var26)->values[1] = (val*) var23; -((void (*)(val*, val*, long))(var24->class->vft[COLOR_array__Array__with_native]))(var24, var26, var25) /* with_native on */; -CHECK_NEW_array__Array(var24); -} -var27 = ((val* (*)(val*))(var24->class->vft[COLOR_string__Object__to_s]))(var24) /* to_s on */; -((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var27) /* error on */; +var18 = "Error: circularity of virtual type definition: "; +var19 = 47; +var20 = string__NativeString__to_s_with_length(var18, var19); +var17 = var20; +varonce = var17; +} +if (varonce21) { +var22 = varonce21; +} else { +var23 = " -> "; +var24 = 4; +var25 = string__NativeString__to_s_with_length(var23, var24); +var22 = var25; +varonce21 = var22; +} +var26 = ((val* (*)(val*, val*))(var_seen->class->vft[COLOR_string__Collection__join]))(var_seen, var22) /* join on */; +var27 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var27 = array_instance Array[Object] */ +var28 = 2; +var29 = NEW_array__NativeArray(var28, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var29)->values[0] = (val*) var17; +((struct instance_array__NativeArray*)var29)->values[1] = (val*) var26; +((void (*)(val*, val*, long))(var27->class->vft[COLOR_array__Array__with_native]))(var27, var29, var28) /* with_native on */; +} +var30 = ((val* (*)(val*))(var27->class->vft[COLOR_string__Object__to_s]))(var27) /* to_s on */; +((void (*)(val*, val*, val*))(var_modelbuilder->class->vft[COLOR_modelbuilder__ModelBuilder__error]))(var_modelbuilder, self, var30) /* error on */; goto RET_LABEL; } else { } ((void (*)(val*, val*))(var_seen->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_seen, var_bound) /* add on */; -var28 = ((val* (*)(val*, val*, val*))(var_bound->class->vft[COLOR_model__MVirtualType__lookup_bound]))(var_bound, var_mmodule, var_anchor) /* lookup_bound on */; -var_next = var28; +var31 = ((val* (*)(val*, val*, val*))(var_bound->class->vft[COLOR_model__MVirtualType__lookup_bound]))(var_bound, var_mmodule, var_anchor) /* lookup_bound on */; +var_next = var31; /* isa MVirtualType */ -cltype30 = type_model__MVirtualType.color; -idtype31 = type_model__MVirtualType.id; -if(cltype30 >= var_next->type->table_size) { -var29 = 0; +cltype33 = type_model__MVirtualType.color; +idtype34 = type_model__MVirtualType.id; +if(cltype33 >= var_next->type->table_size) { +var32 = 0; } else { -var29 = var_next->type->type_table[cltype30] == idtype31; +var32 = var_next->type->type_table[cltype33] == idtype34; } -var32 = !var29; -if (var32){ +var35 = !var32; +if (var35){ goto RET_LABEL; } else { }