X-Git-Url: http://nitlanguage.org diff --git a/c_src/separate_compiler.sep.3.c b/c_src/separate_compiler.sep.3.c index eeb1695..06f8668 100644 --- a/c_src/separate_compiler.sep.3.c +++ b/c_src/separate_compiler.sep.3.c @@ -170,7 +170,6 @@ var_nclass = var6; var7 = NEW_array__Array(&type_array__Arraykernel__Object); var8 = 5; ((void (*)(val*, long))(var7->class->vft[COLOR_array__Array__with_capacity]))(var7, var8) /* with_capacity on */; -CHECK_NEW_array__Array(var7); var_ = var7; if (varonce9) { var10 = varonce9; @@ -182,7 +181,7 @@ var10 = var13; varonce9 = var10; } ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var10) /* add on */; -var14 = ((val* (*)(val*))(var_nclass->class->vft[COLOR_abstract_compiler__MClass__c_name]))(var_nclass) /* c_name on */; +var14 = ((val* (*)(val*))(var_nclass->class->vft[COLOR_separate_compiler__MClass__c_instance_name]))(var_nclass) /* c_instance_name on */; ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var14) /* add on */; if (varonce15) { var16 = varonce15; @@ -249,12 +248,12 @@ var48 = NEW_array__NativeArray(var47, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var48)->values[2] = (val*) var40; ((struct instance_array__NativeArray*)var48)->values[3] = (val*) var42; ((void (*)(val*, val*, long))(var46->class->vft[COLOR_array__Array__with_native]))(var46, var48, var47) /* with_native on */; -CHECK_NEW_array__Array(var46); } var49 = ((val* (*)(val*))(var46->class->vft[COLOR_string__Object__to_s]))(var46) /* to_s on */; if (var_ret_type == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1567); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1623); +show_backtrace(1); } var50 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(self, var49, var_ret_type) /* new_expr on */; ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(self, var50) /* ret on */; @@ -313,7 +312,6 @@ var78 = NEW_array__NativeArray(var77, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var78)->values[4] = (val*) var70; ((struct instance_array__NativeArray*)var78)->values[5] = (val*) var72; ((void (*)(val*, val*, long))(var76->class->vft[COLOR_array__Array__with_native]))(var76, var78, var77) /* with_native on */; -CHECK_NEW_array__Array(var76); } var79 = ((val* (*)(val*))(var76->class->vft[COLOR_string__Object__to_s]))(var76) /* to_s on */; ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var79) /* add on */; @@ -333,7 +331,6 @@ if (var85){ var86 = NEW_array__Array(&type_array__Arraykernel__Object); var87 = 5; ((void (*)(val*, long))(var86->class->vft[COLOR_array__Array__with_capacity]))(var86, var87) /* with_capacity on */; -CHECK_NEW_array__Array(var86); var_88 = var86; if (varonce89) { var90 = varonce89; @@ -345,7 +342,7 @@ var90 = var93; varonce89 = var90; } ((void (*)(val*, val*))(var_88->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_88, var90) /* add on */; -var94 = ((val* (*)(val*))(var_nclass->class->vft[COLOR_abstract_compiler__MClass__c_name]))(var_nclass) /* c_name on */; +var94 = ((val* (*)(val*))(var_nclass->class->vft[COLOR_separate_compiler__MClass__c_instance_name]))(var_nclass) /* c_instance_name on */; ((void (*)(val*, val*))(var_88->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_88, var94) /* add on */; if (varonce95) { var96 = varonce95; @@ -434,7 +431,6 @@ var138 = NEW_array__NativeArray(var137, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var138)->values[7] = (val*) var130; ((struct instance_array__NativeArray*)var138)->values[8] = (val*) var132; ((void (*)(val*, val*, long))(var136->class->vft[COLOR_array__Array__with_native]))(var136, var138, var137) /* with_native on */; -CHECK_NEW_array__Array(var136); } var139 = ((val* (*)(val*))(var136->class->vft[COLOR_string__Object__to_s]))(var136) /* to_s on */; ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var139) /* add on */; @@ -467,6 +463,7 @@ val* var7 /* : nullable Object */; short int var8 /* : Bool */; int cltype; int idtype; +const char* var_class_name; val* var_ft /* var ft: MParameterType */; long var9 /* : Int */; val* var10 /* : nullable Object */; @@ -497,8 +494,10 @@ var8 = 0; var8 = var7->type->type_table[cltype] == idtype; } if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1582); -exit(1); +var_class_name = var7 == NULL ? "null" : var7->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MParameterType", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1638); +show_backtrace(1); } var_ft = var7; var9 = 1; @@ -540,16 +539,18 @@ var_mclassdef = p0; var_mtype = p1; var = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on */; if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/separate_compiler.nit", 1588); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1644); +show_backtrace(1); } var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(self) /* compiler on */; var_compiler = var1; var2 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types]))(var_compiler) /* live_unresolved_types on */; var3 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(self) /* frame on */; if (var3 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_compiler.nit", 1590); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1646); +show_backtrace(1); } else { var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_compiler__Frame__mpropdef]))(var3) /* mpropdef on */; } @@ -560,23 +561,24 @@ if (var7){ var8 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types]))(var_compiler) /* live_unresolved_types on */; var9 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(self) /* frame on */; if (var9 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_compiler.nit", 1591); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1647); +show_backtrace(1); } else { var10 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_compiler__Frame__mpropdef]))(var9) /* mpropdef on */; } var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MPropDef__mclassdef]))(var10) /* mclassdef on */; var12 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType); ((void (*)(val*))(var12->class->vft[COLOR_hash_collection__HashSet__init]))(var12) /* init on */; -CHECK_NEW_hash_collection__HashSet(var12); ((void (*)(val*, val*, val*))(var8->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var8, var11, var12) /* []= on */; } else { } var13 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types]))(var_compiler) /* live_unresolved_types on */; var14 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(self) /* frame on */; if (var14 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_compiler.nit", 1593); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1649); +show_backtrace(1); } else { var15 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_compiler__Frame__mpropdef]))(var14) /* mpropdef on */; } @@ -609,7 +611,6 @@ var3 = 0; /* arg is null but recv is not */ if (var3){ var4 = NEW_separate_compiler__SeparateRuntimeFunction(&type_separate_compiler__SeparateRuntimeFunction); ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__init]))(var4, self) /* init on */; -CHECK_NEW_separate_compiler__SeparateRuntimeFunction(var4); var_res = var4; ((void (*)(val*, val*))(self->class->vft[COLOR_separate_compiler__MMethodDef__separate_runtime_function_cache_61d]))(self, var_res) /* separate_runtime_function_cache= on */; } else { @@ -675,7 +676,6 @@ var3 = 0; /* arg is null but recv is not */ if (var3){ var4 = NEW_separate_compiler__VirtualRuntimeFunction(&type_separate_compiler__VirtualRuntimeFunction); ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__init]))(var4, self) /* init on */; -CHECK_NEW_separate_compiler__VirtualRuntimeFunction(var4); var_res = var4; ((void (*)(val*, val*))(self->class->vft[COLOR_separate_compiler__MMethodDef__virtual_runtime_function_cache_61d]))(self, var_res) /* virtual_runtime_function_cache= on */; } else { @@ -744,7 +744,6 @@ val* var14 /* : String */; var1 = NEW_array__Array(&type_array__Arraykernel__Object); var2 = 3; ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -CHECK_NEW_array__Array(var1); var_ = var1; if (varonce) { var3 = varonce; @@ -811,6 +810,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_compiler /* var compiler: AbstractCompiler */; val* var1 /* : MMethodDef */; val* var_mmethoddef /* var mmethoddef: MMethodDef */; @@ -1081,6 +1081,60 @@ val* var252 /* : String */; char* var253 /* : NativeString */; long var254 /* : Int */; val* var255 /* : String */; +val* var256 /* : String */; +static val* varonce257; +val* var258 /* : String */; +char* var259 /* : NativeString */; +long var260 /* : Int */; +val* var261 /* : String */; +long var262 /* : Int */; +short int var263 /* : Bool */; +short int var264 /* : Bool */; +val* var265 /* : HashMap[String, String] */; +val* var266 /* : String */; +val* var267 /* : MClassDef */; +val* var268 /* : MModule */; +val* var269 /* : String */; +static val* varonce270; +val* var271 /* : String */; +char* var272 /* : NativeString */; +long var273 /* : Int */; +val* var274 /* : String */; +val* var275 /* : MClassDef */; +val* var276 /* : MClass */; +val* var277 /* : String */; +static val* varonce278; +val* var279 /* : String */; +char* var280 /* : NativeString */; +long var281 /* : Int */; +val* var282 /* : String */; +val* var283 /* : MProperty */; +val* var284 /* : String */; +static val* varonce285; +val* var286 /* : String */; +char* var287 /* : NativeString */; +long var288 /* : Int */; +val* var289 /* : String */; +val* var290 /* : Location */; +val* var291 /* : nullable SourceFile */; +val* var292 /* : String */; +static val* varonce293; +val* var294 /* : String */; +char* var295 /* : NativeString */; +long var296 /* : Int */; +val* var297 /* : String */; +val* var298 /* : Location */; +long var299 /* : Int */; +static val* varonce300; +val* var301 /* : String */; +char* var302 /* : NativeString */; +long var303 /* : Int */; +val* var304 /* : String */; +val* var305 /* : Array[Object] */; +long var306 /* : Int */; +val* var307 /* : NativeArray[Object] */; +val* var308 /* : Object */; +val* var309 /* : String */; /* Covariant cast for argument 0 (compiler) isa COMPILER */ /* isa COMPILER */ type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER]; @@ -1092,8 +1146,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1629); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1685); +show_backtrace(1); } var_compiler = p0; var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef]))(self) /* mmethoddef on */; @@ -1115,15 +1171,12 @@ var7 = var10; varonce = var7; } ((void (*)(val*, val*, val*, val*))(var6->class->vft[COLOR_abstract_compiler__RuntimeVariable__init]))(var6, var7, var_recv, var_recv) /* init on */; -CHECK_NEW_abstract_compiler__RuntimeVariable(var6); var_selfvar = var6; var11 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable); ((void (*)(val*))(var11->class->vft[COLOR_array__Array__init]))(var11) /* init on */; -CHECK_NEW_array__Array(var11); var_arguments = var11; var12 = NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame); ((void (*)(val*, val*, val*, val*, val*))(var12->class->vft[COLOR_abstract_compiler__Frame__init]))(var12, var_v, var_mmethoddef, var_recv, var_arguments) /* init on */; -CHECK_NEW_abstract_compiler__Frame(var12); var_frame = var12; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_frame) /* frame= on */; var13 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mmethoddef) /* msignature on */; @@ -1135,19 +1188,18 @@ var18 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__mcla var19 = ((val* (*)(val*))(var18->class->vft[COLOR_model__MClassDef__mmodule]))(var18) /* mmodule on */; var20 = 1; if (var13 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_compiler.nit", 1640); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1696); +show_backtrace(1); } else { var21 = ((val* (*)(val*, val*, val*, val*, short int))(var13->class->vft[COLOR_model__MType__resolve_for]))(var13, var15, var17, var19, var20) /* resolve_for on */; } var_msignature = var21; var22 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*))(var22->class->vft[COLOR_string__Buffer__init]))(var22) /* init on */; -CHECK_NEW_string__Buffer(var22); var_sig = var22; var23 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*))(var23->class->vft[COLOR_string__Buffer__init]))(var23) /* init on */; -CHECK_NEW_string__Buffer(var23); var_comment = var23; var24 = ((val* (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__return_mtype]))(var_msignature) /* return_mtype on */; var_ret = var24; @@ -1175,7 +1227,6 @@ var35 = NEW_array__NativeArray(var34, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var35)->values[0] = (val*) var27; ((struct instance_array__NativeArray*)var35)->values[1] = (val*) var29; ((void (*)(val*, val*, long))(var33->class->vft[COLOR_array__Array__with_native]))(var33, var35, var34) /* with_native on */; -CHECK_NEW_array__Array(var33); } var36 = ((val* (*)(val*))(var33->class->vft[COLOR_string__Object__to_s]))(var33) /* to_s on */; ((void (*)(val*, val*))(var_sig->class->vft[COLOR_abstract_collection__Sequence__append]))(var_sig, var36) /* append on */; @@ -1201,7 +1252,6 @@ var47 = NEW_array__NativeArray(var46, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var47)->values[0] = (val*) var39; ((struct instance_array__NativeArray*)var47)->values[1] = (val*) var41; ((void (*)(val*, val*, long))(var45->class->vft[COLOR_array__Array__with_native]))(var45, var47, var46) /* with_native on */; -CHECK_NEW_array__Array(var45); } var48 = ((val* (*)(val*))(var45->class->vft[COLOR_string__Object__to_s]))(var45) /* to_s on */; ((void (*)(val*, val*))(var_sig->class->vft[COLOR_abstract_collection__Sequence__append]))(var_sig, var48) /* append on */; @@ -1249,7 +1299,6 @@ var69 = NEW_array__NativeArray(var68, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var69)->values[2] = (val*) var63; ((struct instance_array__NativeArray*)var69)->values[3] = (val*) var_selfvar; ((void (*)(val*, val*, long))(var67->class->vft[COLOR_array__Array__with_native]))(var67, var69, var68) /* with_native on */; -CHECK_NEW_array__Array(var67); } var70 = ((val* (*)(val*))(var67->class->vft[COLOR_string__Object__to_s]))(var67) /* to_s on */; ((void (*)(val*, val*))(var_sig->class->vft[COLOR_abstract_collection__Sequence__append]))(var_sig, var70) /* append on */; @@ -1281,7 +1330,6 @@ var84 = NEW_array__NativeArray(var83, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var84)->values[2] = (val*) var77; ((struct instance_array__NativeArray*)var84)->values[3] = (val*) var81; ((void (*)(val*, val*, long))(var82->class->vft[COLOR_array__Array__with_native]))(var82, var84, var83) /* with_native on */; -CHECK_NEW_array__Array(var82); } var85 = ((val* (*)(val*))(var82->class->vft[COLOR_string__Object__to_s]))(var82) /* to_s on */; ((void (*)(val*, val*))(var_comment->class->vft[COLOR_abstract_collection__Sequence__append]))(var_comment, var85) /* append on */; @@ -1292,7 +1340,6 @@ var88 = ((long (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__ar var89 = BOX_kernel__Int(var87); /* autobox from Int to Discrete */ var90 = BOX_kernel__Int(var88); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var86->class->vft[COLOR_range__Range__without_last]))(var86, var89, var90) /* without_last on */; -CHECK_NEW_range__Range(var86); var91 = ((val* (*)(val*))(var86->class->vft[COLOR_abstract_collection__Collection__iterator]))(var86) /* iterator on */; for(;;) { var92 = ((short int (*)(val*))(var91->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var91) /* is_ok on */; @@ -1328,7 +1375,6 @@ var109 = 1; var110 = NEW_array__NativeArray(var109, &type_array__NativeArraymodel__MType); ((struct instance_array__NativeArray*)var110)->values[0] = (val*) var_mtype; ((void (*)(val*, val*, long))(var108->class->vft[COLOR_array__Array__with_native]))(var108, var110, var109) /* with_native on */; -CHECK_NEW_array__Array(var108); } var111 = ((val* (*)(val*, val*))(var107->class->vft[COLOR_model__MClass__get_mtype]))(var107, var108) /* get_mtype on */; var_mtype = var111; @@ -1350,7 +1396,6 @@ var119 = NEW_array__NativeArray(var118, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var119)->values[0] = (val*) var113; ((struct instance_array__NativeArray*)var119)->values[1] = (val*) var_mtype; ((void (*)(val*, val*, long))(var117->class->vft[COLOR_array__Array__with_native]))(var117, var119, var118) /* with_native on */; -CHECK_NEW_array__Array(var117); } var120 = ((val* (*)(val*))(var117->class->vft[COLOR_string__Object__to_s]))(var117) /* to_s on */; ((void (*)(val*, val*))(var_comment->class->vft[COLOR_abstract_collection__Sequence__append]))(var_comment, var120) /* append on */; @@ -1383,7 +1428,6 @@ var134 = NEW_array__NativeArray(var133, &type_array__NativeArraykernel__Object); var135 = BOX_kernel__Int(var_i); /* autobox from Int to Object */ ((struct instance_array__NativeArray*)var134)->values[3] = (val*) var135; ((void (*)(val*, val*, long))(var132->class->vft[COLOR_array__Array__with_native]))(var132, var134, var133) /* with_native on */; -CHECK_NEW_array__Array(var132); } var136 = ((val* (*)(val*))(var132->class->vft[COLOR_string__Object__to_s]))(var132) /* to_s on */; ((void (*)(val*, val*))(var_sig->class->vft[COLOR_abstract_collection__Sequence__append]))(var_sig, var136) /* append on */; @@ -1391,7 +1435,6 @@ var137 = NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__Runtime var138 = NEW_array__Array(&type_array__Arraykernel__Object); var139 = 3; ((void (*)(val*, long))(var138->class->vft[COLOR_array__Array__with_capacity]))(var138, var139) /* with_capacity on */; -CHECK_NEW_array__Array(var138); var_ = var138; if (varonce140) { var141 = varonce140; @@ -1417,7 +1460,6 @@ varonce146 = var147; ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var147) /* add on */; var151 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on */; ((void (*)(val*, val*, val*, val*))(var137->class->vft[COLOR_abstract_compiler__RuntimeVariable__init]))(var137, var151, var_mtype, var_mtype) /* init on */; -CHECK_NEW_abstract_compiler__RuntimeVariable(var137); var_argvar = var137; ((void (*)(val*, val*))(var_arguments->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_arguments, var_argvar) /* add on */; CONTINUE_label: (void)0; @@ -1467,7 +1509,6 @@ var171 = NEW_array__NativeArray(var170, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var171)->values[0] = (val*) var165; ((struct instance_array__NativeArray*)var171)->values[1] = (val*) var_ret; ((void (*)(val*, val*, long))(var169->class->vft[COLOR_array__Array__with_native]))(var169, var171, var170) /* with_native on */; -CHECK_NEW_array__Array(var169); } var172 = ((val* (*)(val*))(var169->class->vft[COLOR_string__Object__to_s]))(var169) /* to_s on */; ((void (*)(val*, val*))(var_comment->class->vft[COLOR_abstract_collection__Sequence__append]))(var_comment, var172) /* append on */; @@ -1490,7 +1531,6 @@ var181 = NEW_array__NativeArray(var180, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var181)->values[0] = (val*) var_sig; ((struct instance_array__NativeArray*)var181)->values[1] = (val*) var175; ((void (*)(val*, val*, long))(var179->class->vft[COLOR_array__Array__with_native]))(var179, var181, var180) /* with_native on */; -CHECK_NEW_array__Array(var179); } var182 = ((val* (*)(val*))(var179->class->vft[COLOR_string__Object__to_s]))(var179) /* to_s on */; ((void (*)(val*, val*, val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__provide_declaration]))(var_compiler, var173, var182) /* provide_declaration on */; @@ -1531,7 +1571,6 @@ var200 = NEW_array__NativeArray(var199, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var200)->values[3] = (val*) var_comment; ((struct instance_array__NativeArray*)var200)->values[4] = (val*) var194; ((void (*)(val*, val*, long))(var198->class->vft[COLOR_array__Array__with_native]))(var198, var200, var199) /* with_native on */; -CHECK_NEW_array__Array(var198); } var201 = ((val* (*)(val*))(var198->class->vft[COLOR_string__Object__to_s]))(var198) /* to_s on */; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(var_v, var201) /* add_decl on */; @@ -1551,7 +1590,6 @@ var209 = NEW_array__NativeArray(var208, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var209)->values[0] = (val*) var_sig; ((struct instance_array__NativeArray*)var209)->values[1] = (val*) var203; ((void (*)(val*, val*, long))(var207->class->vft[COLOR_array__Array__with_native]))(var207, var209, var208) /* with_native on */; -CHECK_NEW_array__Array(var207); } var210 = ((val* (*)(val*))(var207->class->vft[COLOR_string__Object__to_s]))(var207) /* to_s on */; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(var_v, var210) /* add_decl on */; @@ -1587,8 +1625,9 @@ var223 = ((val* (*)(val*, val*, val*))(var_mmethoddef->class->vft[COLOR_abstract var223; var224 = ((val* (*)(val*))(var_frame->class->vft[COLOR_abstract_compiler__Frame__returnlabel]))(var_frame) /* returnlabel on */; if (var224 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1686); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1742); +show_backtrace(1); } if (varonce225) { var226 = varonce225; @@ -1606,7 +1645,6 @@ var232 = NEW_array__NativeArray(var231, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var232)->values[0] = (val*) var224; ((struct instance_array__NativeArray*)var232)->values[1] = (val*) var226; ((void (*)(val*, val*, long))(var230->class->vft[COLOR_array__Array__with_native]))(var230, var232, var231) /* with_native on */; -CHECK_NEW_array__Array(var230); } var233 = ((val* (*)(val*))(var230->class->vft[COLOR_string__Object__to_s]))(var230) /* to_s on */; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var233) /* add on */; @@ -1628,8 +1666,9 @@ varonce236 = var237; } var241 = ((val* (*)(val*))(var_frame->class->vft[COLOR_abstract_compiler__Frame__returnvar]))(var_frame) /* returnvar on */; if (var241 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1688); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1744); +show_backtrace(1); } if (varonce242) { var243 = varonce242; @@ -1648,7 +1687,6 @@ var249 = NEW_array__NativeArray(var248, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var249)->values[1] = (val*) var241; ((struct instance_array__NativeArray*)var249)->values[2] = (val*) var243; ((void (*)(val*, val*, long))(var247->class->vft[COLOR_array__Array__with_native]))(var247, var249, var248) /* with_native on */; -CHECK_NEW_array__Array(var247); } var250 = ((val* (*)(val*))(var247->class->vft[COLOR_string__Object__to_s]))(var247) /* to_s on */; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var250) /* add on */; @@ -1664,6 +1702,107 @@ var252 = var255; varonce251 = var252; } ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var252) /* add on */; +var256 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name]))(self) /* c_name on */; +if (varonce257) { +var258 = varonce257; +} else { +var259 = "VIRTUAL"; +var260 = 7; +var261 = string__NativeString__to_s_with_length(var259, var260); +var258 = var261; +varonce257 = var258; +} +var262 = 0; +var263 = ((short int (*)(val*, val*, long))(var256->class->vft[COLOR_string__AbstractString__has_substring]))(var256, var258, var262) /* has_substring on */; +var264 = !var263; +if (var264){ +var265 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__names]))(var_compiler) /* names on */; +var266 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name]))(self) /* c_name on */; +var267 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mmethoddef) /* mclassdef on */; +var268 = ((val* (*)(val*))(var267->class->vft[COLOR_model__MClassDef__mmodule]))(var267) /* mmodule on */; +var269 = ((val* (*)(val*))(var268->class->vft[COLOR_mmodule__MModule__name]))(var268) /* name on */; +if (varonce270) { +var271 = varonce270; +} else { +var272 = "::"; +var273 = 2; +var274 = string__NativeString__to_s_with_length(var272, var273); +var271 = var274; +varonce270 = var271; +} +var275 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mmethoddef) /* mclassdef on */; +var276 = ((val* (*)(val*))(var275->class->vft[COLOR_model__MClassDef__mclass]))(var275) /* mclass on */; +var277 = ((val* (*)(val*))(var276->class->vft[COLOR_model__MClass__name]))(var276) /* name on */; +if (varonce278) { +var279 = varonce278; +} else { +var280 = "::"; +var281 = 2; +var282 = string__NativeString__to_s_with_length(var280, var281); +var279 = var282; +varonce278 = var279; +} +var283 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mmethoddef) /* mproperty on */; +var284 = ((val* (*)(val*))(var283->class->vft[COLOR_model__MProperty__name]))(var283) /* name on */; +if (varonce285) { +var286 = varonce285; +} else { +var287 = " ("; +var288 = 2; +var289 = string__NativeString__to_s_with_length(var287, var288); +var286 = var289; +varonce285 = var286; +} +var290 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__location]))(var_mmethoddef) /* location on */; +var291 = ((val* (*)(val*))(var290->class->vft[COLOR_location__Location__file]))(var290) /* file on */; +if (var291 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1747); +show_backtrace(1); +} else { +var292 = ((val* (*)(val*))(var291->class->vft[COLOR_location__SourceFile__filename]))(var291) /* filename on */; +} +if (varonce293) { +var294 = varonce293; +} else { +var295 = ":"; +var296 = 1; +var297 = string__NativeString__to_s_with_length(var295, var296); +var294 = var297; +varonce293 = var294; +} +var298 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__location]))(var_mmethoddef) /* location on */; +var299 = ((long (*)(val*))(var298->class->vft[COLOR_location__Location__line_start]))(var298) /* line_start on */; +if (varonce300) { +var301 = varonce300; +} else { +var302 = ")"; +var303 = 1; +var304 = string__NativeString__to_s_with_length(var302, var303); +var301 = var304; +varonce300 = var301; +} +var305 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var305 = array_instance Array[Object] */ +var306 = 10; +var307 = NEW_array__NativeArray(var306, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var307)->values[0] = (val*) var269; +((struct instance_array__NativeArray*)var307)->values[1] = (val*) var271; +((struct instance_array__NativeArray*)var307)->values[2] = (val*) var277; +((struct instance_array__NativeArray*)var307)->values[3] = (val*) var279; +((struct instance_array__NativeArray*)var307)->values[4] = (val*) var284; +((struct instance_array__NativeArray*)var307)->values[5] = (val*) var286; +((struct instance_array__NativeArray*)var307)->values[6] = (val*) var292; +((struct instance_array__NativeArray*)var307)->values[7] = (val*) var294; +var308 = BOX_kernel__Int(var299); /* autobox from Int to Object */ +((struct instance_array__NativeArray*)var307)->values[8] = (val*) var308; +((struct instance_array__NativeArray*)var307)->values[9] = (val*) var301; +((void (*)(val*, val*, long))(var305->class->vft[COLOR_array__Array__with_native]))(var305, var307, var306) /* with_native on */; +} +var309 = ((val* (*)(val*))(var305->class->vft[COLOR_string__Object__to_s]))(var305) /* to_s on */; +((void (*)(val*, val*, val*))(var265->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var265, var266, var309) /* []= on */; +} else { +} RET_LABEL:; } /* method separate_compiler#SeparateRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */ @@ -1693,7 +1832,6 @@ val* var14 /* : String */; var1 = NEW_array__Array(&type_array__Arraykernel__Object); var2 = 3; ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -CHECK_NEW_array__Array(var1); var_ = var1; if (varonce) { var3 = varonce; @@ -1760,6 +1898,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_compiler /* var compiler: AbstractCompiler */; val* var1 /* : MMethodDef */; val* var_mmethoddef /* var mmethoddef: MMethodDef */; @@ -2038,6 +2177,60 @@ val* var258 /* : String */; char* var259 /* : NativeString */; long var260 /* : Int */; val* var261 /* : String */; +val* var262 /* : String */; +static val* varonce263; +val* var264 /* : String */; +char* var265 /* : NativeString */; +long var266 /* : Int */; +val* var267 /* : String */; +long var268 /* : Int */; +short int var269 /* : Bool */; +short int var270 /* : Bool */; +val* var271 /* : HashMap[String, String] */; +val* var272 /* : String */; +val* var273 /* : MClassDef */; +val* var274 /* : MModule */; +val* var275 /* : String */; +static val* varonce276; +val* var277 /* : String */; +char* var278 /* : NativeString */; +long var279 /* : Int */; +val* var280 /* : String */; +val* var281 /* : MClassDef */; +val* var282 /* : MClass */; +val* var283 /* : String */; +static val* varonce284; +val* var285 /* : String */; +char* var286 /* : NativeString */; +long var287 /* : Int */; +val* var288 /* : String */; +val* var289 /* : MProperty */; +val* var290 /* : String */; +static val* varonce291; +val* var292 /* : String */; +char* var293 /* : NativeString */; +long var294 /* : Int */; +val* var295 /* : String */; +val* var296 /* : Location */; +val* var297 /* : nullable SourceFile */; +val* var298 /* : String */; +static val* varonce299; +val* var300 /* : String */; +char* var301 /* : NativeString */; +long var302 /* : Int */; +val* var303 /* : String */; +val* var304 /* : Location */; +long var305 /* : Int */; +static val* varonce306; +val* var307 /* : String */; +char* var308 /* : NativeString */; +long var309 /* : Int */; +val* var310 /* : String */; +val* var311 /* : Array[Object] */; +long var312 /* : Int */; +val* var313 /* : NativeArray[Object] */; +val* var314 /* : Object */; +val* var315 /* : String */; /* Covariant cast for argument 0 (compiler) isa COMPILER */ /* isa COMPILER */ type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER]; @@ -2049,8 +2242,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1703); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1760); +show_backtrace(1); } var_compiler = p0; var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef]))(self) /* mmethoddef on */; @@ -2073,24 +2268,19 @@ varonce = var7; } var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__object_type]))(var_v) /* object_type on */; ((void (*)(val*, val*, val*, val*))(var6->class->vft[COLOR_abstract_compiler__RuntimeVariable__init]))(var6, var7, var11, var_recv) /* init on */; -CHECK_NEW_abstract_compiler__RuntimeVariable(var6); var_selfvar = var6; var12 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable); ((void (*)(val*))(var12->class->vft[COLOR_array__Array__init]))(var12) /* init on */; -CHECK_NEW_array__Array(var12); var_arguments = var12; var13 = NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame); ((void (*)(val*, val*, val*, val*, val*))(var13->class->vft[COLOR_abstract_compiler__Frame__init]))(var13, var_v, var_mmethoddef, var_recv, var_arguments) /* init on */; -CHECK_NEW_abstract_compiler__Frame(var13); var_frame = var13; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_frame) /* frame= on */; var14 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*))(var14->class->vft[COLOR_string__Buffer__init]))(var14) /* init on */; -CHECK_NEW_string__Buffer(var14); var_sig = var14; var15 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*))(var15->class->vft[COLOR_string__Buffer__init]))(var15) /* init on */; -CHECK_NEW_string__Buffer(var15); var_comment = var15; var16 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef]))(self) /* mmethoddef on */; var17 = ((val* (*)(val*))(var16->class->vft[COLOR_model__MPropDef__mproperty]))(var16) /* mproperty on */; @@ -2105,8 +2295,9 @@ var24 = ((val* (*)(val*))(var_intromclassdef->class->vft[COLOR_model__MClassDef_ var25 = ((val* (*)(val*))(var_intromclassdef->class->vft[COLOR_model__MClassDef__mmodule]))(var_intromclassdef) /* mmodule on */; var26 = 1; if (var22 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/separate_compiler.nit", 1719); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1776); +show_backtrace(1); } else { var27 = ((val* (*)(val*, val*, val*, val*, short int))(var22->class->vft[COLOR_model__MType__resolve_for]))(var22, var23, var24, var25, var26) /* resolve_for on */; } @@ -2137,7 +2328,6 @@ var39 = NEW_array__NativeArray(var38, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var39)->values[0] = (val*) var31; ((struct instance_array__NativeArray*)var39)->values[1] = (val*) var33; ((void (*)(val*, val*, long))(var37->class->vft[COLOR_array__Array__with_native]))(var37, var39, var38) /* with_native on */; -CHECK_NEW_array__Array(var37); } var40 = ((val* (*)(val*))(var37->class->vft[COLOR_string__Object__to_s]))(var37) /* to_s on */; ((void (*)(val*, val*))(var_sig->class->vft[COLOR_abstract_collection__Sequence__append]))(var_sig, var40) /* append on */; @@ -2163,7 +2353,6 @@ var51 = NEW_array__NativeArray(var50, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var51)->values[0] = (val*) var43; ((struct instance_array__NativeArray*)var51)->values[1] = (val*) var45; ((void (*)(val*, val*, long))(var49->class->vft[COLOR_array__Array__with_native]))(var49, var51, var50) /* with_native on */; -CHECK_NEW_array__Array(var49); } var52 = ((val* (*)(val*))(var49->class->vft[COLOR_string__Object__to_s]))(var49) /* to_s on */; ((void (*)(val*, val*))(var_sig->class->vft[COLOR_abstract_collection__Sequence__append]))(var_sig, var52) /* append on */; @@ -2211,7 +2400,6 @@ var73 = NEW_array__NativeArray(var72, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var73)->values[2] = (val*) var67; ((struct instance_array__NativeArray*)var73)->values[3] = (val*) var_selfvar; ((void (*)(val*, val*, long))(var71->class->vft[COLOR_array__Array__with_native]))(var71, var73, var72) /* with_native on */; -CHECK_NEW_array__Array(var71); } var74 = ((val* (*)(val*))(var71->class->vft[COLOR_string__Object__to_s]))(var71) /* to_s on */; ((void (*)(val*, val*))(var_sig->class->vft[COLOR_abstract_collection__Sequence__append]))(var_sig, var74) /* append on */; @@ -2243,7 +2431,6 @@ var88 = NEW_array__NativeArray(var87, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var88)->values[2] = (val*) var81; ((struct instance_array__NativeArray*)var88)->values[3] = (val*) var85; ((void (*)(val*, val*, long))(var86->class->vft[COLOR_array__Array__with_native]))(var86, var88, var87) /* with_native on */; -CHECK_NEW_array__Array(var86); } var89 = ((val* (*)(val*))(var86->class->vft[COLOR_string__Object__to_s]))(var86) /* to_s on */; ((void (*)(val*, val*))(var_comment->class->vft[COLOR_abstract_collection__Sequence__append]))(var_comment, var89) /* append on */; @@ -2254,7 +2441,6 @@ var92 = ((long (*)(val*))(var_msignature->class->vft[COLOR_model__MSignature__ar var93 = BOX_kernel__Int(var91); /* autobox from Int to Discrete */ var94 = BOX_kernel__Int(var92); /* autobox from Int to Discrete */ ((void (*)(val*, val*, val*))(var90->class->vft[COLOR_range__Range__without_last]))(var90, var93, var94) /* without_last on */; -CHECK_NEW_range__Range(var90); var95 = ((val* (*)(val*))(var90->class->vft[COLOR_abstract_collection__Collection__iterator]))(var90) /* iterator on */; for(;;) { var96 = ((short int (*)(val*))(var95->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var95) /* is_ok on */; @@ -2290,7 +2476,6 @@ var113 = 1; var114 = NEW_array__NativeArray(var113, &type_array__NativeArraymodel__MType); ((struct instance_array__NativeArray*)var114)->values[0] = (val*) var_mtype; ((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*, val*))(var111->class->vft[COLOR_model__MClass__get_mtype]))(var111, var112) /* get_mtype on */; var_mtype = var115; @@ -2312,7 +2497,6 @@ var123 = NEW_array__NativeArray(var122, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var123)->values[0] = (val*) var117; ((struct instance_array__NativeArray*)var123)->values[1] = (val*) var_mtype; ((void (*)(val*, val*, long))(var121->class->vft[COLOR_array__Array__with_native]))(var121, var123, var122) /* with_native on */; -CHECK_NEW_array__Array(var121); } var124 = ((val* (*)(val*))(var121->class->vft[COLOR_string__Object__to_s]))(var121) /* to_s on */; ((void (*)(val*, val*))(var_comment->class->vft[COLOR_abstract_collection__Sequence__append]))(var_comment, var124) /* append on */; @@ -2345,7 +2529,6 @@ var138 = NEW_array__NativeArray(var137, &type_array__NativeArraykernel__Object); var139 = BOX_kernel__Int(var_i); /* autobox from Int to Object */ ((struct instance_array__NativeArray*)var138)->values[3] = (val*) var139; ((void (*)(val*, val*, long))(var136->class->vft[COLOR_array__Array__with_native]))(var136, var138, var137) /* with_native on */; -CHECK_NEW_array__Array(var136); } var140 = ((val* (*)(val*))(var136->class->vft[COLOR_string__Object__to_s]))(var136) /* to_s on */; ((void (*)(val*, val*))(var_sig->class->vft[COLOR_abstract_collection__Sequence__append]))(var_sig, var140) /* append on */; @@ -2353,7 +2536,6 @@ var141 = NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__Runtime var142 = NEW_array__Array(&type_array__Arraykernel__Object); var143 = 3; ((void (*)(val*, long))(var142->class->vft[COLOR_array__Array__with_capacity]))(var142, var143) /* with_capacity on */; -CHECK_NEW_array__Array(var142); var_ = var142; if (varonce144) { var145 = varonce144; @@ -2379,7 +2561,6 @@ varonce150 = var151; ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var151) /* add on */; var155 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on */; ((void (*)(val*, val*, val*, val*))(var141->class->vft[COLOR_abstract_compiler__RuntimeVariable__init]))(var141, var155, var_mtype, var_mtype) /* init on */; -CHECK_NEW_abstract_compiler__RuntimeVariable(var141); var_argvar = var141; ((void (*)(val*, val*))(var_arguments->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_arguments, var_argvar) /* add on */; CONTINUE_label: (void)0; @@ -2429,7 +2610,6 @@ var175 = NEW_array__NativeArray(var174, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var175)->values[0] = (val*) var169; ((struct instance_array__NativeArray*)var175)->values[1] = (val*) var_ret; ((void (*)(val*, val*, long))(var173->class->vft[COLOR_array__Array__with_native]))(var173, var175, var174) /* with_native on */; -CHECK_NEW_array__Array(var173); } var176 = ((val* (*)(val*))(var173->class->vft[COLOR_string__Object__to_s]))(var173) /* to_s on */; ((void (*)(val*, val*))(var_comment->class->vft[COLOR_abstract_collection__Sequence__append]))(var_comment, var176) /* append on */; @@ -2452,7 +2632,6 @@ var185 = NEW_array__NativeArray(var184, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var185)->values[0] = (val*) var_sig; ((struct instance_array__NativeArray*)var185)->values[1] = (val*) var179; ((void (*)(val*, val*, long))(var183->class->vft[COLOR_array__Array__with_native]))(var183, var185, var184) /* with_native on */; -CHECK_NEW_array__Array(var183); } var186 = ((val* (*)(val*))(var183->class->vft[COLOR_string__Object__to_s]))(var183) /* to_s on */; ((void (*)(val*, val*, val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__provide_declaration]))(var_compiler, var177, var186) /* provide_declaration on */; @@ -2493,7 +2672,6 @@ var204 = NEW_array__NativeArray(var203, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var204)->values[3] = (val*) var_comment; ((struct instance_array__NativeArray*)var204)->values[4] = (val*) var198; ((void (*)(val*, val*, long))(var202->class->vft[COLOR_array__Array__with_native]))(var202, var204, var203) /* with_native on */; -CHECK_NEW_array__Array(var202); } var205 = ((val* (*)(val*))(var202->class->vft[COLOR_string__Object__to_s]))(var202) /* to_s on */; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(var_v, var205) /* add_decl on */; @@ -2513,7 +2691,6 @@ var213 = NEW_array__NativeArray(var212, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var213)->values[0] = (val*) var_sig; ((struct instance_array__NativeArray*)var213)->values[1] = (val*) var207; ((void (*)(val*, val*, long))(var211->class->vft[COLOR_array__Array__with_native]))(var211, var213, var212) /* with_native on */; -CHECK_NEW_array__Array(var211); } var214 = ((val* (*)(val*))(var211->class->vft[COLOR_string__Object__to_s]))(var211) /* to_s on */; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(var_v, var214) /* add_decl on */; @@ -2555,21 +2732,24 @@ var228 = 0; /* is null */ var228 = 1; /* arg is null and recv is not */ } if (!var228) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/separate_compiler.nit", 1759); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1816); +show_backtrace(1); } var229 = ((val* (*)(val*))(var_frame->class->vft[COLOR_abstract_compiler__Frame__returnvar]))(var_frame) /* returnvar on */; if (var229 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1760); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1817); +show_backtrace(1); } ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var229, var_subret) /* assign on */; } else { } var230 = ((val* (*)(val*))(var_frame->class->vft[COLOR_abstract_compiler__Frame__returnlabel]))(var_frame) /* returnlabel on */; if (var230 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1763); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1820); +show_backtrace(1); } if (varonce231) { var232 = varonce231; @@ -2587,7 +2767,6 @@ var238 = NEW_array__NativeArray(var237, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var238)->values[0] = (val*) var230; ((struct instance_array__NativeArray*)var238)->values[1] = (val*) var232; ((void (*)(val*, val*, long))(var236->class->vft[COLOR_array__Array__with_native]))(var236, var238, var237) /* with_native on */; -CHECK_NEW_array__Array(var236); } var239 = ((val* (*)(val*))(var236->class->vft[COLOR_string__Object__to_s]))(var236) /* to_s on */; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var239) /* add on */; @@ -2609,8 +2788,9 @@ varonce242 = var243; } var247 = ((val* (*)(val*))(var_frame->class->vft[COLOR_abstract_compiler__Frame__returnvar]))(var_frame) /* returnvar on */; if (var247 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1765); -exit(1); +fprintf(stderr, "Runtime error: %s", "Cast failed"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1822); +show_backtrace(1); } if (varonce248) { var249 = varonce248; @@ -2629,7 +2809,6 @@ var255 = NEW_array__NativeArray(var254, &type_array__NativeArraykernel__Object); ((struct instance_array__NativeArray*)var255)->values[1] = (val*) var247; ((struct instance_array__NativeArray*)var255)->values[2] = (val*) var249; ((void (*)(val*, val*, long))(var253->class->vft[COLOR_array__Array__with_native]))(var253, var255, var254) /* with_native on */; -CHECK_NEW_array__Array(var253); } var256 = ((val* (*)(val*))(var253->class->vft[COLOR_string__Object__to_s]))(var253) /* to_s on */; ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var256) /* add on */; @@ -2645,6 +2824,107 @@ var258 = var261; varonce257 = var258; } ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var258) /* add on */; +var262 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name]))(self) /* c_name on */; +if (varonce263) { +var264 = varonce263; +} else { +var265 = "VIRTUAL"; +var266 = 7; +var267 = string__NativeString__to_s_with_length(var265, var266); +var264 = var267; +varonce263 = var264; +} +var268 = 0; +var269 = ((short int (*)(val*, val*, long))(var262->class->vft[COLOR_string__AbstractString__has_substring]))(var262, var264, var268) /* has_substring on */; +var270 = !var269; +if (var270){ +var271 = ((val* (*)(val*))(var_compiler->class->vft[COLOR_abstract_compiler__AbstractCompiler__names]))(var_compiler) /* names on */; +var272 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name]))(self) /* c_name on */; +var273 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mmethoddef) /* mclassdef on */; +var274 = ((val* (*)(val*))(var273->class->vft[COLOR_model__MClassDef__mmodule]))(var273) /* mmodule on */; +var275 = ((val* (*)(val*))(var274->class->vft[COLOR_mmodule__MModule__name]))(var274) /* name on */; +if (varonce276) { +var277 = varonce276; +} else { +var278 = "::"; +var279 = 2; +var280 = string__NativeString__to_s_with_length(var278, var279); +var277 = var280; +varonce276 = var277; +} +var281 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mmethoddef) /* mclassdef on */; +var282 = ((val* (*)(val*))(var281->class->vft[COLOR_model__MClassDef__mclass]))(var281) /* mclass on */; +var283 = ((val* (*)(val*))(var282->class->vft[COLOR_model__MClass__name]))(var282) /* name on */; +if (varonce284) { +var285 = varonce284; +} else { +var286 = "::"; +var287 = 2; +var288 = string__NativeString__to_s_with_length(var286, var287); +var285 = var288; +varonce284 = var285; +} +var289 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mmethoddef) /* mproperty on */; +var290 = ((val* (*)(val*))(var289->class->vft[COLOR_model__MProperty__name]))(var289) /* name on */; +if (varonce291) { +var292 = varonce291; +} else { +var293 = " ("; +var294 = 2; +var295 = string__NativeString__to_s_with_length(var293, var294); +var292 = var295; +varonce291 = var292; +} +var296 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__location]))(var_mmethoddef) /* location on */; +var297 = ((val* (*)(val*))(var296->class->vft[COLOR_location__Location__file]))(var296) /* file on */; +if (var297 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1825); +show_backtrace(1); +} else { +var298 = ((val* (*)(val*))(var297->class->vft[COLOR_location__SourceFile__filename]))(var297) /* filename on */; +} +if (varonce299) { +var300 = varonce299; +} else { +var301 = "--"; +var302 = 2; +var303 = string__NativeString__to_s_with_length(var301, var302); +var300 = var303; +varonce299 = var300; +} +var304 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MPropDef__location]))(var_mmethoddef) /* location on */; +var305 = ((long (*)(val*))(var304->class->vft[COLOR_location__Location__line_start]))(var304) /* line_start on */; +if (varonce306) { +var307 = varonce306; +} else { +var308 = ")"; +var309 = 1; +var310 = string__NativeString__to_s_with_length(var308, var309); +var307 = var310; +varonce306 = var307; +} +var311 = NEW_array__Array(&type_array__Arraykernel__Object); +{ /* var311 = array_instance Array[Object] */ +var312 = 10; +var313 = NEW_array__NativeArray(var312, &type_array__NativeArraykernel__Object); +((struct instance_array__NativeArray*)var313)->values[0] = (val*) var275; +((struct instance_array__NativeArray*)var313)->values[1] = (val*) var277; +((struct instance_array__NativeArray*)var313)->values[2] = (val*) var283; +((struct instance_array__NativeArray*)var313)->values[3] = (val*) var285; +((struct instance_array__NativeArray*)var313)->values[4] = (val*) var290; +((struct instance_array__NativeArray*)var313)->values[5] = (val*) var292; +((struct instance_array__NativeArray*)var313)->values[6] = (val*) var298; +((struct instance_array__NativeArray*)var313)->values[7] = (val*) var300; +var314 = BOX_kernel__Int(var305); /* autobox from Int to Object */ +((struct instance_array__NativeArray*)var313)->values[8] = (val*) var314; +((struct instance_array__NativeArray*)var313)->values[9] = (val*) var307; +((void (*)(val*, val*, long))(var311->class->vft[COLOR_array__Array__with_native]))(var311, var313, var312) /* with_native on */; +} +var315 = ((val* (*)(val*))(var311->class->vft[COLOR_string__Object__to_s]))(var311) /* to_s on */; +((void (*)(val*, val*, val*))(var271->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var271, var272, var315) /* []= on */; +} else { +} RET_LABEL:; } /* method separate_compiler#VirtualRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */ @@ -2659,6 +2939,7 @@ short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_v /* var v: AbstractCompilerVisitor */; val* var_arguments /* var arguments: Array[RuntimeVariable] */; /* Covariant cast for argument 0 (v) isa VISITOR */ @@ -2672,13 +2953,16 @@ var1 = 0; var1 = p0->type->type_table[cltype] == idtype; } if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/separate_compiler.nit", 1770); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1828); +show_backtrace(1); } var_v = p0; var_arguments = p1; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/separate_compiler.nit", 1771); -exit(1); +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "src/separate_compiler.nit", 1829); +show_backtrace(1); RET_LABEL:; return var; } @@ -2712,7 +2996,6 @@ val* var13 /* : String */; var1 = NEW_array__Array(&type_array__Arraykernel__Object); var2 = 3; ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -CHECK_NEW_array__Array(var1); var_ = var1; if (varonce) { var3 = varonce; @@ -2751,6 +3034,90 @@ var = var1; RET_LABEL:; return var; } +/* method separate_compiler#MType#c_instance_name for (self: MType): String */ +val* separate_compiler__MType__c_instance_name(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name]))(self) /* c_name on */; +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method separate_compiler#MType#c_instance_name for (self: Object): String */ +val* VIRTUAL_separate_compiler__MType__c_instance_name(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = separate_compiler__MType__c_instance_name(self); +var = var1; +RET_LABEL:; +return var; +} +/* method separate_compiler#MClassType#c_instance_name for (self: MClassType): String */ +val* separate_compiler__MClassType__c_instance_name(val* self) { +val* var /* : String */; +val* var1 /* : MClass */; +val* var2 /* : String */; +var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on */; +var2 = ((val* (*)(val*))(var1->class->vft[COLOR_separate_compiler__MClass__c_instance_name]))(var1) /* c_instance_name on */; +var = var2; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method separate_compiler#MClassType#c_instance_name for (self: Object): String */ +val* VIRTUAL_separate_compiler__MClassType__c_instance_name(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = separate_compiler__MClassType__c_instance_name(self); +var = var1; +RET_LABEL:; +return var; +} +/* method separate_compiler#MClass#c_instance_name for (self: MClass): String */ +val* separate_compiler__MClass__c_instance_name(val* self) { +val* var /* : String */; +val* var1 /* : MClassKind */; +val* var2 /* : MClassKind */; +short int var3 /* : Bool */; +static val* varonce; +val* var4 /* : String */; +char* var5 /* : NativeString */; +long var6 /* : Int */; +val* var7 /* : String */; +val* var8 /* : String */; +var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__kind]))(self) /* kind on */; +var2 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on */; +var3 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var2) /* == on */; +if (var3){ +if (varonce) { +var4 = varonce; +} else { +var5 = "kernel__Pointer"; +var6 = 15; +var7 = string__NativeString__to_s_with_length(var5, var6); +var4 = var7; +varonce = var4; +} +var = var4; +goto RET_LABEL; +} else { +var8 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MClass__c_name]))(self) /* c_name on */; +var = var8; +goto RET_LABEL; +} +RET_LABEL:; +return var; +} +/* method separate_compiler#MClass#c_instance_name for (self: Object): String */ +val* VIRTUAL_separate_compiler__MClass__c_instance_name(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = separate_compiler__MClass__c_instance_name(self); +var = var1; +RET_LABEL:; +return var; +} /* method separate_compiler#MProperty#const_color for (self: MProperty): String */ val* separate_compiler__MProperty__const_color(val* self) { val* var /* : String */; @@ -2772,7 +3139,6 @@ val* var13 /* : String */; var1 = NEW_array__Array(&type_array__Arraykernel__Object); var2 = 3; ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -CHECK_NEW_array__Array(var1); var_ = var1; if (varonce) { var3 = varonce; @@ -2832,7 +3198,6 @@ val* var13 /* : String */; var1 = NEW_array__Array(&type_array__Arraykernel__Object); var2 = 3; ((void (*)(val*, long))(var1->class->vft[COLOR_array__Array__with_capacity]))(var1, var2) /* with_capacity on */; -CHECK_NEW_array__Array(var1); var_ = var1; if (varonce) { var3 = varonce;