X-Git-Url: http://nitlanguage.org diff --git a/c_src/sorter.sep.1.c b/c_src/sorter.sep.1.c index 1e1e33c..f4316ad 100644 --- a/c_src/sorter.sep.1.c +++ b/c_src/sorter.sep.1.c @@ -7,11 +7,14 @@ int cltype; int idtype; const struct type* type_struct; short int is_nullable; +const char* var_class_name; short int var2 /* : Bool */; int cltype3; int idtype4; const struct type* type_struct5; short int is_nullable6; +const char* var_class_name7; +const char* var_class_name8; /* Covariant cast for argument 0 (a) isa AbstractSorter#0 */ /* isa AbstractSorter#0 */ type_struct = self->type->resolution_table->types[COLOR_sorter__AbstractSorter_FT0]; @@ -28,8 +31,10 @@ var1 = p0->type->type_table[cltype] == idtype; } } if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 23); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 23); +show_backtrace(1); } /* Covariant cast for argument 1 (b) isa AbstractSorter#0 */ /* isa AbstractSorter#0 */ @@ -47,11 +52,15 @@ var2 = p1->type->type_table[cltype3] == idtype4; } } if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 23); -exit(1); -} -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/collection/sorter.nit", 23); -exit(1); +var_class_name7 = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name7); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 23); +show_backtrace(1); +} +var_class_name8 = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "compare", var_class_name8); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 23); +show_backtrace(1); RET_LABEL:; return var; } @@ -70,6 +79,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_array /* var array: Array[nullable Object] */; long var1 /* : Int */; long var2 /* : Int */; @@ -87,8 +97,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 30); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[AbstractSorter#0]", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 30); +show_backtrace(1); } var_array = p0; var1 = 0; @@ -114,6 +126,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_array /* var array: Array[nullable Object] */; long var_from /* var from: Int */; long var_to /* var to: Int */; @@ -121,15 +134,17 @@ short int var1 /* : Bool */; short int var3 /* : Bool */; int cltype4; int idtype5; -short int var6 /* : Bool */; -long var7 /* : Int */; +const char* var_class_name6; +short int var7 /* : Bool */; long var8 /* : Int */; -long var10 /* : Int */; -short int var11 /* : Bool */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -short int var16 /* : Bool */; +long var9 /* : Int */; +long var11 /* : Int */; +short int var12 /* : Bool */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const char* var_class_name17; +short int var18 /* : Bool */; /* Covariant cast for argument 0 (array) isa Array[AbstractSorter#0] */ /* isa Array[AbstractSorter#0] */ type_struct = self->type->resolution_table->types[COLOR_array__Arraysorter__AbstractSorter_FT0]; @@ -141,8 +156,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 33); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[AbstractSorter#0]", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 33); +show_backtrace(1); } var_array = p0; var_from = p1; @@ -152,38 +169,42 @@ var_to = p2; /* isa OTHER */ var3 = 1; /* easy isa OTHER*/ if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +var_class_name6 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); +show_backtrace(1); } -var6 = var_from >= var_to; -var1 = var6; +var7 = var_from >= var_to; +var1 = var7; goto RET_LABEL2; RET_LABEL2:(void)0; } if (var1){ goto RET_LABEL; } else { -var7 = 7; -{ /* Inline kernel#Int#+ (var_from,var7) */ -var10 = var_from + var7; -var8 = var10; -goto RET_LABEL9; -RET_LABEL9:(void)0; -} -{ /* Inline kernel#Int#< (var8,var_to) */ +var8 = 7; +{ /* Inline kernel#Int#+ (var_from,var8) */ +var11 = var_from + var8; +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +{ /* Inline kernel#Int#< (var9,var_to) */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var13 = 1; /* easy isa OTHER*/ -if (!var13) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var16 = var8 < var_to; -var11 = var16; -goto RET_LABEL12; -RET_LABEL12:(void)0; -} -if (var11){ +var14 = 1; /* easy isa OTHER*/ +if (!var14) { +var_class_name17 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +show_backtrace(1); +} +var18 = var9 < var_to; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +if (var12){ ((void (*)(val*, val*, long, long))(self->class->vft[COLOR_sorter__AbstractSorter__quick_sort]))(self, var_array, var_from, var_to) /* quick_sort on */; } else { ((void (*)(val*, val*, long, long))(self->class->vft[COLOR_sorter__AbstractSorter__bubble_sort]))(self, var_array, var_from, var_to) /* bubble_sort on */; @@ -202,6 +223,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_array /* var array: Array[nullable Object] */; long var_from /* var from: Int */; long var_to /* var to: Int */; @@ -213,61 +235,67 @@ short int var2 /* : Bool */; short int var4 /* : Bool */; int cltype5; int idtype6; -short int var7 /* : Bool */; +const char* var_class_name7; short int var8 /* : Bool */; short int var9 /* : Bool */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -short int var14 /* : Bool */; +short int var10 /* : Bool */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +const char* var_class_name15; +short int var16 /* : Bool */; short int var_ /* var : Bool */; -val* var15 /* : nullable Object */; -long var16 /* : Int */; -long var17 /* : Int */; -short int var18 /* : Bool */; +val* var17 /* : nullable Object */; +long var18 /* : Int */; +long var19 /* : Int */; short int var20 /* : Bool */; -int cltype21; -int idtype22; -short int var23 /* : Bool */; -long var24 /* : Int */; -long var25 /* : Int */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +const char* var_class_name25; +short int var26 /* : Bool */; long var27 /* : Int */; -short int var28 /* : Bool */; -short int var29 /* : Bool */; +long var28 /* : Int */; +long var30 /* : Int */; short int var31 /* : Bool */; -int cltype32; -int idtype33; +short int var32 /* : Bool */; short int var34 /* : Bool */; -short int var_35 /* var : Bool */; -val* var36 /* : nullable Object */; -long var37 /* : Int */; -long var38 /* : Int */; -short int var39 /* : Bool */; -short int var41 /* : Bool */; -int cltype42; -int idtype43; -short int var44 /* : Bool */; -long var45 /* : Int */; -long var46 /* : Int */; -long var48 /* : Int */; -short int var50 /* : Bool */; -short int var52 /* : Bool */; -int cltype53; -int idtype54; +int cltype35; +int idtype36; +const char* var_class_name37; +short int var38 /* : Bool */; +short int var_39 /* var : Bool */; +val* var40 /* : nullable Object */; +long var41 /* : Int */; +long var42 /* : Int */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +const char* var_class_name48; +short int var49 /* : Bool */; +long var50 /* : Int */; +long var51 /* : Int */; +long var53 /* : Int */; short int var55 /* : Bool */; -val* var56 /* : nullable Object */; +short int var57 /* : Bool */; +int cltype58; +int idtype59; +const char* var_class_name60; +short int var61 /* : Bool */; +val* var62 /* : nullable Object */; val* var_t /* var t: nullable Object */; -val* var57 /* : nullable Object */; -long var59 /* : Int */; -long var60 /* : Int */; -long var62 /* : Int */; val* var63 /* : nullable Object */; -long var64 /* : Int */; long var65 /* : Int */; -long var67 /* : Int */; +long var66 /* : Int */; long var68 /* : Int */; -long var69 /* : Int */; +val* var69 /* : nullable Object */; +long var70 /* : Int */; long var71 /* : Int */; +long var73 /* : Int */; +long var74 /* : Int */; +long var75 /* : Int */; +long var77 /* : Int */; /* Covariant cast for argument 0 (array) isa Array[AbstractSorter#0] */ /* isa Array[AbstractSorter#0] */ type_struct = self->type->resolution_table->types[COLOR_array__Arraysorter__AbstractSorter_FT0]; @@ -279,8 +307,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 45); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[AbstractSorter#0]", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 45); +show_backtrace(1); } var_array = p0; var_from = p1; @@ -295,11 +325,13 @@ for(;;) { /* isa OTHER */ var4 = 1; /* easy isa OTHER*/ if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +var_class_name7 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); } -var7 = var_j > var_i; -var2 = var7; +var8 = var_j > var_i; +var2 = var8; goto RET_LABEL3; RET_LABEL3:(void)0; } @@ -308,47 +340,51 @@ for(;;) { { /* Inline kernel#Int#<= (var_i,var_to) */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var11 = 1; /* easy isa OTHER*/ -if (!var11) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); -} -var14 = var_i <= var_to; -var9 = var14; -goto RET_LABEL10; -RET_LABEL10:(void)0; -} -var_ = var9; -if (var9){ -var15 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_i) /* [] on */; -var16 = ((long (*)(val*, val*, val*))(self->class->vft[COLOR_sorter__AbstractSorter__compare]))(self, var15, var_pivot) /* compare on */; -var17 = 0; -{ /* Inline kernel#Int#<= (var16,var17) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var20 = 1; /* easy isa OTHER*/ -if (!var20) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); -} -var23 = var16 <= var17; -var18 = var23; -goto RET_LABEL19; -RET_LABEL19:(void)0; -} -var8 = var18; +var12 = 1; /* easy isa OTHER*/ +if (!var12) { +var_class_name15 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +show_backtrace(1); +} +var16 = var_i <= var_to; +var10 = var16; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} +var_ = var10; +if (var10){ +var17 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_i) /* [] on */; +var18 = ((long (*)(val*, val*, val*))(self->class->vft[COLOR_sorter__AbstractSorter__compare]))(self, var17, var_pivot) /* compare on */; +var19 = 0; +{ /* Inline kernel#Int#<= (var18,var19) */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var22 = 1; /* easy isa OTHER*/ +if (!var22) { +var_class_name25 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +show_backtrace(1); +} +var26 = var18 <= var19; +var20 = var26; +goto RET_LABEL21; +RET_LABEL21:(void)0; +} +var9 = var20; } else { -var8 = var_; +var9 = var_; } -if (!var8) break; -var24 = 1; -{ /* Inline kernel#Int#+ (var_i,var24) */ -var27 = var_i + var24; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; +if (!var9) break; +var27 = 1; +{ /* Inline kernel#Int#+ (var_i,var27) */ +var30 = var_i + var27; +var28 = var30; +goto RET_LABEL29; +RET_LABEL29:(void)0; } -var_i = var25; +var_i = var28; CONTINUE_label: (void)0; } BREAK_label: (void)0; @@ -356,99 +392,105 @@ for(;;) { { /* Inline kernel#Int#> (var_j,var_i) */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var31 = 1; /* easy isa OTHER*/ -if (!var31) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var34 = var_j > var_i; -var29 = var34; -goto RET_LABEL30; -RET_LABEL30:(void)0; -} -var_35 = var29; -if (var29){ -var36 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_j) /* [] on */; -var37 = ((long (*)(val*, val*, val*))(self->class->vft[COLOR_sorter__AbstractSorter__compare]))(self, var36, var_pivot) /* compare on */; -var38 = 0; -{ /* Inline kernel#Int#>= (var37,var38) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var41 = 1; /* easy isa OTHER*/ -if (!var41) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); -} -var44 = var37 >= var38; -var39 = var44; -goto RET_LABEL40; -RET_LABEL40:(void)0; -} -var28 = var39; +var34 = 1; /* easy isa OTHER*/ +if (!var34) { +var_class_name37 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); +} +var38 = var_j > var_i; +var32 = var38; +goto RET_LABEL33; +RET_LABEL33:(void)0; +} +var_39 = var32; +if (var32){ +var40 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_j) /* [] on */; +var41 = ((long (*)(val*, val*, val*))(self->class->vft[COLOR_sorter__AbstractSorter__compare]))(self, var40, var_pivot) /* compare on */; +var42 = 0; +{ /* Inline kernel#Int#>= (var41,var42) */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var45 = 1; /* easy isa OTHER*/ +if (!var45) { +var_class_name48 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); +show_backtrace(1); +} +var49 = var41 >= var42; +var43 = var49; +goto RET_LABEL44; +RET_LABEL44:(void)0; +} +var31 = var43; } else { -var28 = var_35; +var31 = var_39; } -if (!var28) break; -var45 = 1; -{ /* Inline kernel#Int#- (var_j,var45) */ -var48 = var_j - var45; -var46 = var48; -goto RET_LABEL47; -RET_LABEL47:(void)0; +if (!var31) break; +var50 = 1; +{ /* Inline kernel#Int#- (var_j,var50) */ +var53 = var_j - var50; +var51 = var53; +goto RET_LABEL52; +RET_LABEL52:(void)0; } -var_j = var46; -CONTINUE_label49: (void)0; +var_j = var51; +CONTINUE_label54: (void)0; } -BREAK_label49: (void)0; +BREAK_label54: (void)0; { /* Inline kernel#Int#> (var_j,var_i) */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var52 = 1; /* easy isa OTHER*/ -if (!var52) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var55 = var_j > var_i; -var50 = var55; -goto RET_LABEL51; -RET_LABEL51:(void)0; -} -if (var50){ -var56 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_i) /* [] on */; -var_t = var56; -var57 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_j) /* [] on */; -((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var_i, var57) /* []= on */; +var57 = 1; /* easy isa OTHER*/ +if (!var57) { +var_class_name60 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); +} +var61 = var_j > var_i; +var55 = var61; +goto RET_LABEL56; +RET_LABEL56:(void)0; +} +if (var55){ +var62 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_i) /* [] on */; +var_t = var62; +var63 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_j) /* [] on */; +((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var_i, var63) /* []= on */; ((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var_j, var_t) /* []= on */; } else { } -CONTINUE_label58: (void)0; -} -BREAK_label58: (void)0; -var59 = 1; -{ /* Inline kernel#Int#- (var_i,var59) */ -var62 = var_i - var59; -var60 = var62; -goto RET_LABEL61; -RET_LABEL61:(void)0; -} -var63 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var60) /* [] on */; -((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var_from, var63) /* []= on */; -var64 = 1; -{ /* Inline kernel#Int#- (var_i,var64) */ -var67 = var_i - var64; -var65 = var67; -goto RET_LABEL66; -RET_LABEL66:(void)0; -} -((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var65, var_pivot) /* []= on */; -var68 = 2; -{ /* Inline kernel#Int#- (var_i,var68) */ -var71 = var_i - var68; -var69 = var71; -goto RET_LABEL70; -RET_LABEL70:(void)0; -} -((void (*)(val*, val*, long, long))(self->class->vft[COLOR_sorter__AbstractSorter__sub_sort]))(self, var_array, var_from, var69) /* sub_sort on */; +CONTINUE_label64: (void)0; +} +BREAK_label64: (void)0; +var65 = 1; +{ /* Inline kernel#Int#- (var_i,var65) */ +var68 = var_i - var65; +var66 = var68; +goto RET_LABEL67; +RET_LABEL67:(void)0; +} +var69 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var66) /* [] on */; +((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var_from, var69) /* []= on */; +var70 = 1; +{ /* Inline kernel#Int#- (var_i,var70) */ +var73 = var_i - var70; +var71 = var73; +goto RET_LABEL72; +RET_LABEL72:(void)0; +} +((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var71, var_pivot) /* []= on */; +var74 = 2; +{ /* Inline kernel#Int#- (var_i,var74) */ +var77 = var_i - var74; +var75 = var77; +goto RET_LABEL76; +RET_LABEL76:(void)0; +} +((void (*)(val*, val*, long, long))(self->class->vft[COLOR_sorter__AbstractSorter__sub_sort]))(self, var_array, var_from, var75) /* sub_sort on */; ((void (*)(val*, val*, long, long))(self->class->vft[COLOR_sorter__AbstractSorter__sub_sort]))(self, var_array, var_i, var_to) /* sub_sort on */; RET_LABEL:; } @@ -463,6 +505,7 @@ short int var /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_array /* var array: Array[nullable Object] */; long var_from /* var from: Int */; long var_to /* var to: Int */; @@ -471,35 +514,38 @@ short int var1 /* : Bool */; short int var3 /* : Bool */; int cltype4; int idtype5; -short int var6 /* : Bool */; +const char* var_class_name6; +short int var7 /* : Bool */; long var_min /* var min: Int */; -val* var7 /* : nullable Object */; +val* var8 /* : nullable Object */; val* var_min_v /* var min_v: nullable Object */; long var_j /* var j: Int */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -short int var13 /* : Bool */; -val* var14 /* : nullable Object */; -long var15 /* : Int */; -long var16 /* : Int */; -short int var17 /* : Bool */; +short int var9 /* : Bool */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const char* var_class_name14; +short int var15 /* : Bool */; +val* var16 /* : nullable Object */; +long var17 /* : Int */; +long var18 /* : Int */; short int var19 /* : Bool */; -int cltype20; -int idtype21; -short int var22 /* : Bool */; -val* var23 /* : nullable Object */; -long var24 /* : Int */; -long var25 /* : Int */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +const char* var_class_name24; +short int var25 /* : Bool */; +val* var26 /* : nullable Object */; long var27 /* : Int */; -short int var28 /* : Bool */; -short int var30 /* : Bool */; +long var28 /* : Int */; +long var30 /* : Int */; short int var31 /* : Bool */; -val* var32 /* : nullable Object */; -long var33 /* : Int */; -long var34 /* : Int */; +short int var33 /* : Bool */; +short int var34 /* : Bool */; +val* var35 /* : nullable Object */; long var36 /* : Int */; +long var37 /* : Int */; +long var39 /* : Int */; /* Covariant cast for argument 0 (array) isa Array[AbstractSorter#0] */ /* isa Array[AbstractSorter#0] */ type_struct = self->type->resolution_table->types[COLOR_array__Arraysorter__AbstractSorter_FT0]; @@ -511,8 +557,10 @@ var = 0; var = p0->type->type_table[cltype] == idtype; } if (!var) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 66); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[AbstractSorter#0]", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 66); +show_backtrace(1); } var_array = p0; var_from = p1; @@ -524,91 +572,97 @@ for(;;) { /* isa OTHER */ var3 = 1; /* easy isa OTHER*/ if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); +var_class_name6 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +show_backtrace(1); } -var6 = var_i < var_to; -var1 = var6; +var7 = var_i < var_to; +var1 = var7; goto RET_LABEL2; RET_LABEL2:(void)0; } if (!var1) break; var_min = var_i; -var7 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_i) /* [] on */; -var_min_v = var7; +var8 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_i) /* [] on */; +var_min_v = var8; var_j = var_i; for(;;) { { /* Inline kernel#Int#<= (var_j,var_to) */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var10 = 1; /* easy isa OTHER*/ -if (!var10) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); -} -var13 = var_j <= var_to; -var8 = var13; -goto RET_LABEL9; -RET_LABEL9:(void)0; -} -if (!var8) break; -var14 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_j) /* [] on */; -var15 = ((long (*)(val*, val*, val*))(self->class->vft[COLOR_sorter__AbstractSorter__compare]))(self, var_min_v, var14) /* compare on */; -var16 = 0; -{ /* Inline kernel#Int#> (var15,var16) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (!var19) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var22 = var15 > var16; -var17 = var22; -goto RET_LABEL18; -RET_LABEL18:(void)0; -} -if (var17){ +var11 = 1; /* easy isa OTHER*/ +if (!var11) { +var_class_name14 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +show_backtrace(1); +} +var15 = var_j <= var_to; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +if (!var9) break; +var16 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_j) /* [] on */; +var17 = ((long (*)(val*, val*, val*))(self->class->vft[COLOR_sorter__AbstractSorter__compare]))(self, var_min_v, var16) /* compare on */; +var18 = 0; +{ /* Inline kernel#Int#> (var17,var18) */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var21 = 1; /* easy isa OTHER*/ +if (!var21) { +var_class_name24 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); +} +var25 = var17 > var18; +var19 = var25; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} +if (var19){ var_min = var_j; -var23 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_j) /* [] on */; -var_min_v = var23; +var26 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_j) /* [] on */; +var_min_v = var26; } else { } -var24 = 1; -{ /* Inline kernel#Int#+ (var_j,var24) */ -var27 = var_j + var24; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; +var27 = 1; +{ /* Inline kernel#Int#+ (var_j,var27) */ +var30 = var_j + var27; +var28 = var30; +goto RET_LABEL29; +RET_LABEL29:(void)0; } -var_j = var25; +var_j = var28; CONTINUE_label: (void)0; } BREAK_label: (void)0; { /* Inline kernel#Int#!= (var_min,var_i) */ -var30 = var_min == var_i; -var31 = !var30; -var28 = var31; -goto RET_LABEL29; -RET_LABEL29:(void)0; -} -if (var28){ -var32 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_i) /* [] on */; -((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var_min, var32) /* []= on */; +var33 = var_min == var_i; +var34 = !var33; +var31 = var34; +goto RET_LABEL32; +RET_LABEL32:(void)0; +} +if (var31){ +var35 = ((val* (*)(val*, long))(var_array->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_array, var_i) /* [] on */; +((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var_min, var35) /* []= on */; ((void (*)(val*, long, val*))(var_array->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var_array, var_i, var_min_v) /* []= on */; } else { } -var33 = 1; -{ /* Inline kernel#Int#+ (var_i,var33) */ -var36 = var_i + var33; -var34 = var36; -goto RET_LABEL35; -RET_LABEL35:(void)0; +var36 = 1; +{ /* Inline kernel#Int#+ (var_i,var36) */ +var39 = var_i + var36; +var37 = var39; +goto RET_LABEL38; +RET_LABEL38:(void)0; } -var_i = var34; -CONTINUE_label37: (void)0; +var_i = var37; +CONTINUE_label40: (void)0; } -BREAK_label37: (void)0; +BREAK_label40: (void)0; RET_LABEL:; } /* method sorter#AbstractSorter#bubble_sort for (self: Object, Array[nullable Object], Int, Int) */ @@ -623,13 +677,15 @@ short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; short int var2 /* : Bool */; int cltype3; int idtype4; const struct type* type_struct5; +const char* var_class_name6; val* var_a /* var a: Comparable */; val* var_b /* var b: Comparable */; -long var6 /* : Int */; +long var7 /* : Int */; /* Covariant cast for argument 0 (a) isa AbstractSorter#0 */ /* isa AbstractSorter#0 */ type_struct = self->type->resolution_table->types[COLOR_sorter__AbstractSorter_FT0]; @@ -641,8 +697,10 @@ var1 = 0; var1 = p0->type->type_table[cltype] == idtype; } if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 94); -exit(1); +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 94); +show_backtrace(1); } /* Covariant cast for argument 1 (b) isa AbstractSorter#0 */ /* isa AbstractSorter#0 */ @@ -655,13 +713,15 @@ var2 = 0; var2 = p1->type->type_table[cltype3] == idtype4; } if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/sorter.nit", 94); -exit(1); +var_class_name6 = p1 == NULL ? "null" : p1->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter#0", var_class_name6); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/sorter.nit", 94); +show_backtrace(1); } var_a = p0; var_b = p1; -var6 = ((long (*)(val*, val*))(var_a->class->vft[COLOR_kernel__Comparable___60d_61d_62d]))(var_a, var_b) /* <=> on */; -var = var6; +var7 = ((long (*)(val*, val*))(var_a->class->vft[COLOR_kernel__Comparable___60d_61d_62d]))(var_a, var_b) /* <=> on */; +var = var7; goto RET_LABEL; RET_LABEL:; return var;