X-Git-Url: http://nitlanguage.org diff --git a/c_src/kernel.sep.1.c b/c_src/kernel.sep.1.c index 78bc01c..088d523 100644 --- a/c_src/kernel.sep.1.c +++ b/c_src/kernel.sep.1.c @@ -14,7 +14,7 @@ long VIRTUAL_kernel__Object__object_id(val* self) { long var /* : Int */; long var1 /* : Int */; long var3 /* : Int */; -{ /* Inline kernel#Object#object_id (self) */ +{ /* Inline kernel#Object#object_id (self) on */ var3 = (long)self; var1 = var3; goto RET_LABEL2; @@ -24,23 +24,23 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Object#is_same_type for (self: Object, Object): Bool */ -short int kernel__Object__is_same_type(val* self, val* p0) { +/* method kernel#Object#is_same_instance for (self: Object, nullable Object): Bool */ +short int kernel__Object__is_same_instance(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = (self == p0) || (self != NULL && p0 != NULL && self->class == p0->class); /* is_same_type_test */ +var1 = self == p0 || (p0 != NULL && self->class == p0->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)p0)->value))); var = var1; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Object#is_same_type for (self: Object, Object): Bool */ -short int VIRTUAL_kernel__Object__is_same_type(val* self, val* p0) { +/* method kernel#Object#is_same_instance for (self: Object, nullable Object): Bool */ +short int VIRTUAL_kernel__Object__is_same_instance(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; short int var3 /* : Bool */; -{ /* Inline kernel#Object#is_same_type (self,p0) */ -var3 = (self == p0) || (self != NULL && p0 != NULL && self->class == p0->class); /* is_same_type_test */ +{ /* Inline kernel#Object#is_same_instance (self,p0) on */ +var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)p0)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)p0)->value))); var1 = var3; goto RET_LABEL2; RET_LABEL2:(void)0; @@ -54,8 +54,16 @@ short int kernel__Object___61d_61d(val* self, val* p0) { short int var /* : Bool */; val* var_other /* var other: nullable Object */; short int var1 /* : Bool */; +short int var3 /* : Bool */; var_other = p0; -var1 = self == var_other || (var_other != NULL && self->class == var_other->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)var_other)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)var_other)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)var_other)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)var_other)->value))); +{ +{ /* Inline kernel#Object#is_same_instance (self,var_other) on */ +var3 = self == var_other || (var_other != NULL && self->class == var_other->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)var_other)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)var_other)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)var_other)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)var_other)->value))); +var1 = var3; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} +} var = var1; goto RET_LABEL; RET_LABEL:; @@ -65,7 +73,23 @@ return var; short int VIRTUAL_kernel__Object___61d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = kernel__Object___61d_61d(self, p0); +val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; +{ /* Inline kernel#Object#== (self,p0) on */ +var_other = p0; +{ +{ /* Inline kernel#Object#is_same_instance (self,var_other) on */ +var5 = self == var_other || (var_other != NULL && self->class == var_other->class && ((self->class->box_kind == 1 && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)var_other)->value) || (self->class->box_kind == 2 && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)var_other)->value) || (self->class->box_kind == 3 && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)var_other)->value) || (self->class->box_kind == 4 && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)var_other)->value) || (self->class->box_kind == 5 && ((struct instance_string__NativeString*)self)->value == ((struct instance_string__NativeString*)var_other)->value) || (self->class->box_kind == 6 && ((struct instance_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)var_other)->value))); +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +} +var1 = var3; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; @@ -76,10 +100,14 @@ short int var /* : Bool */; val* var_other /* var other: nullable Object */; short int var1 /* : Bool */; short int var2 /* : Bool */; +short int var3 /* : Bool */; var_other = p0; -var1 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object___61d_61d]))(self, var_other) /* == on */; -var2 = !var1; -var = var2; +{ +var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object___61d_61d]))(self, var_other) /* == on */; +var1 = var2; +} +var3 = !var1; +var = var3; goto RET_LABEL; RET_LABEL:; return var; @@ -88,54 +116,70 @@ return var; short int VIRTUAL_kernel__Object___33d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = kernel__Object___33d_61d(self, p0); +val* var_other /* var other: nullable Object */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +short int var5 /* : Bool */; +{ /* Inline kernel#Object#!= (self,p0) on */ +var_other = p0; +{ +var4 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object___61d_61d]))(self, var_other) /* == on */; +var3 = var4; +} +var5 = !var3; +var1 = var5; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method kernel#Object#output for (self: Object) */ -void kernel__Object__output(val* self) { -char var /* : Char */; +/* method kernel#Object#hash for (self: Object): Int */ +long kernel__Object__hash(val* self) { +long var /* : Int */; +long var1 /* : Int */; long var2 /* : Int */; -char var4 /* : Char */; -var = '<'; -{ /* Inline kernel#Char#output (var) */ -printf("%c", var); -RET_LABEL1:(void)0; -} -var2 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on */; -{ /* Inline kernel#Int#output (var2) */ -printf("%ld\n", var2); -RET_LABEL3:(void)0; +long var3 /* : Int */; +short int var5 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var6 /* : Int */; +{ +var1 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on */; } -var4 = '>'; -{ /* Inline kernel#Char#output (var4) */ -printf("%c", var4); -RET_LABEL5:(void)0; +var2 = 8; +{ +{ /* Inline kernel#Int#/ (var1,var2) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var5 = 1; /* easy isa OTHER*/ +if (unlikely(!var5)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379); +show_backtrace(1); } -RET_LABEL:; +var6 = var1 / var2; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; } -/* method kernel#Object#output for (self: Object) */ -void VIRTUAL_kernel__Object__output(val* self) { -kernel__Object__output(self); -RET_LABEL:; } -/* method kernel#Object#output_class_name for (self: Object) */ -void kernel__Object__output_class_name(val* self) { -const char* var_class_name; -var_class_name = self == NULL ? "null" : self->type->name; -printf("%s\n", var_class_name); +var = var3; +goto RET_LABEL; RET_LABEL:; +return var; } -/* method kernel#Object#output_class_name for (self: Object) */ -void VIRTUAL_kernel__Object__output_class_name(val* self) { -const char* var_class_name; -{ /* Inline kernel#Object#output_class_name (self) */ -var_class_name = self == NULL ? "null" : self->type->name; -printf("%s\n", var_class_name); -RET_LABEL1:(void)0; -} +/* method kernel#Object#hash for (self: Object): Int */ +long VIRTUAL_kernel__Object__hash(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = kernel__Object__hash(self); +var = var1; RET_LABEL:; +return var; } /* method kernel#Object#exit for (self: Object, Int) */ void kernel__Object__exit(val* self, long p0) { @@ -144,7 +188,7 @@ RET_LABEL:; } /* method kernel#Object#exit for (self: Object, Int) */ void VIRTUAL_kernel__Object__exit(val* self, long p0) { -{ /* Inline kernel#Object#exit (self,p0) */ +{ /* Inline kernel#Object#exit (self,p0) on */ exit(p0); RET_LABEL1:(void)0; } @@ -165,7 +209,7 @@ val* VIRTUAL_kernel__Object__sys(val* self) { val* var /* : Sys */; val* var1 /* : Sys */; val* var3 /* : Sys */; -{ /* Inline kernel#Object#sys (self) */ +{ /* Inline kernel#Object#sys (self) on */ var3 = glob_sys; var1 = var3; goto RET_LABEL2; @@ -175,84 +219,56 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Object#hash for (self: Object): Int */ -long kernel__Object__hash(val* self) { -long var /* : Int */; -long var1 /* : Int */; -long var2 /* : Int */; -long var3 /* : Int */; -long var5 /* : Int */; -var1 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on */; -var2 = 8; -{ /* Inline kernel#Int#/ (var1,var2) */ -var5 = var1 / var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -var = var3; -goto RET_LABEL; +/* method kernel#Object#init for (self: Object) */ +void kernel__Object__init(val* self) { RET_LABEL:; -return var; } -/* method kernel#Object#hash for (self: Object): Int */ -long VIRTUAL_kernel__Object__hash(val* self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = kernel__Object__hash(self); -var = var1; -RET_LABEL:; -return var; +/* method kernel#Object#init for (self: Object) */ +void VIRTUAL_kernel__Object__init(val* self) { +{ /* Inline kernel#Object#init (self) on */ +RET_LABEL1:(void)0; } -/* method kernel#Sys#main for (self: Sys) */ -void kernel__Sys__main(val* self) { RET_LABEL:; } -/* method kernel#Sys#main for (self: Object) */ -void VIRTUAL_kernel__Sys__main(val* self) { -kernel__Sys__main(self); -RET_LABEL:; +/* method kernel#Sys#run for (self: Sys) */ +void kernel__Sys__run(val* self) { +{ +abstract_compiler__Sys__main(self); /* Direct call abstract_compiler#Sys#main on */ } -/* method kernel#Sys#init for (self: Sys) */ -void kernel__Sys__init(val* self) { RET_LABEL:; } -/* method kernel#Sys#init for (self: Object) */ -void VIRTUAL_kernel__Sys__init(val* self) { -kernel__Sys__init(self); +/* method kernel#Sys#run for (self: Object) */ +void VIRTUAL_kernel__Sys__run(val* self) { +kernel__Sys__run(self); /* Direct call kernel#Sys#run on */ RET_LABEL:; } -/* method kernel#Comparable#< for (self: Comparable, Comparable): Bool */ -short int kernel__Comparable___60d(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -/* Covariant cast for argument 0 (other) isa OTHER */ -/* isa OTHER */ -type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 95); -exit(1); -} -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/kernel.nit", 95); -exit(1); +/* method kernel#Sys#errno for (self: Sys): Int */ +long kernel__Sys__errno(val* self) { +long var /* : Int */; +long var1 /* : Int */; +struct nitni_instance* var_for_c_0; +var_for_c_0 = nit_alloc(sizeof(struct nitni_instance)); +var_for_c_0->value = self; +var1 = kernel___Sys_errno___impl(var_for_c_0); +var = var1; +goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Comparable#< for (self: Object, Comparable): Bool */ -short int VIRTUAL_kernel__Comparable___60d(val* self, val* p0) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = kernel__Comparable___60d(self, p0); +/* method kernel#Sys#errno for (self: Object): Int */ +long VIRTUAL_kernel__Sys__errno(val* self) { +long var /* : Int */; +long var1 /* : Int */; +long var3 /* : Int */; +{ /* Inline kernel#Sys#errno (self) on */ +struct nitni_instance* var_for_c_0; +var_for_c_0 = nit_alloc(sizeof(struct nitni_instance)); +var_for_c_0->value = self; +var3 = kernel___Sys_errno___impl(var_for_c_0); +var1 = var3; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; @@ -264,6 +280,7 @@ short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_other /* var other: Comparable */; short int var2 /* : Bool */; short int var3 /* : Bool */; @@ -277,12 +294,16 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 98); -exit(1); +if (unlikely(!var1)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 117); +show_backtrace(1); } var_other = p0; +{ var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on */; +} var3 = !var2; var = var3; goto RET_LABEL; @@ -305,6 +326,7 @@ short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_other /* var other: Comparable */; short int var2 /* : Bool */; short int var3 /* : Bool */; @@ -318,12 +340,16 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 102); -exit(1); +if (unlikely(!var1)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 121); +show_backtrace(1); } var_other = p0; +{ var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on */; +} var3 = !var2; var = var3; goto RET_LABEL; @@ -346,6 +372,7 @@ short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_other /* var other: Comparable */; short int var2 /* : Bool */; /* Covariant cast for argument 0 (other) isa OTHER */ @@ -358,12 +385,16 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 106); -exit(1); +if (unlikely(!var1)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 125); +show_backtrace(1); } var_other = p0; +{ var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on */; +} var = var2; goto RET_LABEL; RET_LABEL:; @@ -385,6 +416,7 @@ short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; val* var_other /* var other: Comparable */; short int var2 /* : Bool */; long var3 /* : Int */; @@ -403,24 +435,32 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 109); -exit(1); +if (unlikely(!var1)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 128); +show_backtrace(1); } var_other = p0; +{ var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on */; +} if (var2){ var3 = 1; -{ /* Inline kernel#Int#unary - (var3) */ +{ +{ /* Inline kernel#Int#unary - (var3) on */ var6 = -var3; var4 = var6; goto RET_LABEL5; RET_LABEL5:(void)0; } +} var = var4; goto RET_LABEL; } else { +{ var7 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on */; +} if (var7){ var8 = 1; var = var8; @@ -443,425 +483,167 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Comparable#is_between for (self: Comparable, Comparable, Comparable): Bool */ -short int kernel__Comparable__is_between(val* self, val* p0, val* p1) { -short int var /* : Bool */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int var2 /* : Bool */; -int cltype3; -int idtype4; -const struct type* type_struct5; -val* var_c /* var c: Comparable */; -val* var_d /* var d: Comparable */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -short int var_ /* var : Bool */; -short int var8 /* : Bool */; -/* Covariant cast for argument 0 (c) isa OTHER */ -/* isa OTHER */ -type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 122); -exit(1); +/* method kernel#Bool#object_id for (self: Bool): Int */ +long kernel__Bool__object_id(short int self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = (long)self; +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; } -/* Covariant cast for argument 1 (d) isa OTHER */ -/* isa OTHER */ -type_struct5 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype3 = type_struct5->color; -idtype4 = type_struct5->id; -if(cltype3 >= p1->type->table_size) { -var2 = 0; -} else { -var2 = p1->type->type_table[cltype3] == idtype4; +/* method kernel#Bool#object_id for (self: Object): Int */ +long VIRTUAL_kernel__Bool__object_id(val* self) { +long var /* : Int */; +long var1 /* : Int */; +short int var3 /* : Bool */; +long var4 /* : Int */; +{ /* Inline kernel#Bool#object_id (self) on */ +var3 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */; +var4 = (long)var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } -if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 122); -exit(1); +var = var1; +RET_LABEL:; +return var; } -var_c = p0; -var_d = p1; -var7 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d_61d]))(var_c, self) /* <= on */; -var_ = var7; -if (var7){ -var8 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d_61d]))(self, var_d) /* <= on */; -var6 = var8; -} else { -var6 = var_; +/* method kernel#Bool#== for (self: Bool, nullable Object): Bool */ +short int kernel__Bool___61d_61d(short int self, val* p0) { +short int var /* : Bool */; +short int var1 /* : Bool */; +short int var2 /* : Bool */; +var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool); +if (var1) { +var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */; +var1 = (var2 == self); } -var = var6; +var = var1; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Comparable#is_between for (self: Object, Comparable, Comparable): Bool */ -short int VIRTUAL_kernel__Comparable__is_between(val* self, val* p0, val* p1) { +/* method kernel#Bool#== for (self: Object, nullable Object): Bool */ +short int VIRTUAL_kernel__Bool___61d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = kernel__Comparable__is_between(self, p0, p1); +short int var3 /* : Bool */; +{ /* Inline kernel#Bool#== (self,p0) on */ +var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value); +var1 = var3; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var; } -/* method kernel#Comparable#max for (self: Comparable, Comparable): Comparable */ -val* kernel__Comparable__max(val* self, val* p0) { -val* var /* : Comparable */; +/* method kernel#Bool#!= for (self: Bool, nullable Object): Bool */ +short int kernel__Bool___33d_61d(short int self, val* p0) { +short int var /* : Bool */; short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -val* var_other /* var other: Comparable */; short int var2 /* : Bool */; short int var3 /* : Bool */; -int cltype4; -int idtype5; -const struct type* type_struct6; -/* Covariant cast for argument 0 (other) isa OTHER */ -/* isa OTHER */ -type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 128); -exit(1); +var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool); +if (var1) { +var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */; +var1 = (var2 == self); } -var_other = p0; -var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on */; -if (var2){ -var = var_other; +var3 = !var1; +var = var3; goto RET_LABEL; -} else { -/* isa OTHER */ -type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype4 = type_struct6->color; -idtype5 = type_struct6->id; -if(cltype4 >= self->type->table_size) { -var3 = 0; -} else { -var3 = self->type->type_table[cltype4] == idtype5; -} -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 134); -exit(1); +RET_LABEL:; +return var; } -var = self; -goto RET_LABEL; +/* method kernel#Bool#!= for (self: Object, nullable Object): Bool */ +short int VIRTUAL_kernel__Bool___33d_61d(val* self, val* p0) { +short int var /* : Bool */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +{ /* Inline kernel#Bool#!= (self,p0) on */ +var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value); +var4 = !var3; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } +var = var1; RET_LABEL:; return var; } -/* method kernel#Comparable#max for (self: Object, Comparable): Comparable */ -val* VIRTUAL_kernel__Comparable__max(val* self, val* p0) { -val* var /* : Comparable */; -val* var1 /* : Comparable */; -var1 = kernel__Comparable__max(self, p0); +/* method kernel#Bool#hash for (self: Bool): Int */ +long kernel__Bool__hash(short int self) { +long var /* : Int */; +long var1 /* : Int */; +{ +var1 = kernel__Bool__to_i(self); +} var = var1; +goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Comparable#min for (self: Comparable, Comparable): Comparable */ -val* kernel__Comparable__min(val* self, val* p0) { -val* var /* : Comparable */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -val* var_c /* var c: Comparable */; +/* method kernel#Bool#hash for (self: Object): Int */ +long VIRTUAL_kernel__Bool__hash(val* self) { +long var /* : Int */; +long var1 /* : Int */; short int var2 /* : Bool */; -short int var3 /* : Bool */; -int cltype4; -int idtype5; -const struct type* type_struct6; -/* Covariant cast for argument 0 (c) isa OTHER */ -/* isa OTHER */ -type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 138); -exit(1); -} -var_c = p0; -var2 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d]))(var_c, self) /* < on */; -if (var2){ -var = var_c; -goto RET_LABEL; -} else { -/* isa OTHER */ -type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype4 = type_struct6->color; -idtype5 = type_struct6->id; -if(cltype4 >= self->type->table_size) { -var3 = 0; -} else { -var3 = self->type->type_table[cltype4] == idtype5; -} -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 144); -exit(1); -} -var = self; -goto RET_LABEL; -} -RET_LABEL:; -return var; -} -/* method kernel#Comparable#min for (self: Object, Comparable): Comparable */ -val* VIRTUAL_kernel__Comparable__min(val* self, val* p0) { -val* var /* : Comparable */; -val* var1 /* : Comparable */; -var1 = kernel__Comparable__min(self, p0); +var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */; +var1 = kernel__Bool__hash(var2); var = var1; RET_LABEL:; return var; } -/* method kernel#Discrete#succ for (self: Discrete): Discrete */ -val* kernel__Discrete__succ(val* self) { -val* var /* : Discrete */; +/* method kernel#Bool#to_i for (self: Bool): Int */ +long kernel__Bool__to_i(short int self) { +long var /* : Int */; long var1 /* : Int */; -val* var2 /* : Discrete */; +long var2 /* : Int */; +if (self){ var1 = 1; -var2 = ((val* (*)(val*, long))(self->class->vft[COLOR_kernel__Discrete___43d]))(self, var1) /* + on */; -var = var2; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Discrete#succ for (self: Object): Discrete */ -val* VIRTUAL_kernel__Discrete__succ(val* self) { -val* var /* : Discrete */; -val* var1 /* : Discrete */; -var1 = kernel__Discrete__succ(self); var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Discrete#prec for (self: Discrete): Discrete */ -val* kernel__Discrete__prec(val* self) { -val* var /* : Discrete */; -long var1 /* : Int */; -val* var2 /* : Discrete */; -var1 = 1; -var2 = ((val* (*)(val*, long))(self->class->vft[COLOR_kernel__Discrete___45d]))(self, var1) /* - on */; -var = var2; goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Discrete#prec for (self: Object): Discrete */ -val* VIRTUAL_kernel__Discrete__prec(val* self) { -val* var /* : Discrete */; -val* var1 /* : Discrete */; -var1 = kernel__Discrete__prec(self); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Discrete#+ for (self: Discrete, Int): Discrete */ -val* kernel__Discrete___43d(val* self, long p0) { -val* var /* : Discrete */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/kernel.nit", 161); -exit(1); -RET_LABEL:; -return var; -} -/* method kernel#Discrete#+ for (self: Object, Int): Discrete */ -val* VIRTUAL_kernel__Discrete___43d(val* self, long p0) { -val* var /* : Discrete */; -val* var1 /* : Discrete */; -var1 = kernel__Discrete___43d(self, p0); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Discrete#- for (self: Discrete, Int): Discrete */ -val* kernel__Discrete___45d(val* self, long p0) { -val* var /* : Discrete */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/kernel.nit", 164); -exit(1); -RET_LABEL:; -return var; -} -/* method kernel#Discrete#- for (self: Object, Int): Discrete */ -val* VIRTUAL_kernel__Discrete___45d(val* self, long p0) { -val* var /* : Discrete */; -val* var1 /* : Discrete */; -var1 = kernel__Discrete___45d(self, p0); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Discrete#distance for (self: Discrete, Discrete): Int */ -long kernel__Discrete__distance(val* self, val* p0) { -long var /* : Int */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -val* var_d /* var d: Discrete */; -short int var2 /* : Bool */; -short int var3 /* : Bool */; -int cltype4; -int idtype5; -const struct type* type_struct6; -val* var_cursor /* var cursor: Discrete */; -val* var_stop /* var stop: Discrete */; -short int var7 /* : Bool */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -const struct type* type_struct11; -long var12 /* : Int */; -long var13 /* : Int */; -long var_nb /* var nb: Int */; -short int var14 /* : Bool */; -val* var15 /* : Discrete */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -const struct type* type_struct19; -long var20 /* : Int */; -long var21 /* : Int */; -long var23 /* : Int */; -/* Covariant cast for argument 0 (d) isa OTHER */ -/* isa OTHER */ -type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 167); -exit(1); -} -var_d = p0; -var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_d) /* < on */; -if (var2){ -/* isa OTHER */ -type_struct6 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype4 = type_struct6->color; -idtype5 = type_struct6->id; -if(cltype4 >= self->type->table_size) { -var3 = 0; -} else { -var3 = self->type->type_table[cltype4] == idtype5; -} -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 176); -exit(1); -} -var_cursor = self; -var_stop = var_d; } else { -var7 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___62d]))(self, var_d) /* > on */; -if (var7){ -var_cursor = var_d; -/* isa OTHER */ -type_struct11 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype9 = type_struct11->color; -idtype10 = type_struct11->id; -if(cltype9 >= self->type->table_size) { -var8 = 0; -} else { -var8 = self->type->type_table[cltype9] == idtype10; -} -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 180); -exit(1); -} -var_stop = self; -} else { -var12 = 0; -var = var12; +var2 = 0; +var = var2; goto RET_LABEL; } -} -var13 = 0; -var_nb = var13; -for(;;) { -var14 = ((short int (*)(val*, val*))(var_cursor->class->vft[COLOR_kernel__Comparable___60d]))(var_cursor, var_stop) /* < on */; -if (!var14) break; -var15 = ((val* (*)(val*))(var_cursor->class->vft[COLOR_kernel__Discrete__succ]))(var_cursor) /* succ on */; -/* isa OTHER */ -type_struct19 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype17 = type_struct19->color; -idtype18 = type_struct19->id; -if(cltype17 >= var15->type->table_size) { -var16 = 0; -} else { -var16 = var15->type->type_table[cltype17] == idtype18; -} -if (!var16) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 187); -exit(1); -} -var_cursor = var15; -var20 = 1; -{ /* Inline kernel#Int#+ (var_nb,var20) */ -var23 = var_nb + var20; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; -} -var_nb = var21; -CONTINUE_label: (void)0; -} -BREAK_label: (void)0; -var = var_nb; -goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Discrete#distance for (self: Object, Discrete): Int */ -long VIRTUAL_kernel__Discrete__distance(val* self, val* p0) { +/* method kernel#Bool#to_i for (self: Object): Int */ +long VIRTUAL_kernel__Bool__to_i(val* self) { long var /* : Int */; long var1 /* : Int */; -var1 = kernel__Discrete__distance(self, p0); +short int var2 /* : Bool */; +var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */; +var1 = kernel__Bool__to_i(var2); var = var1; RET_LABEL:; return var; } -/* method kernel#Bool#object_id for (self: Bool): Int */ -long kernel__Bool__object_id(short int self) { +/* method kernel#Float#object_id for (self: Float): Int */ +long kernel__Float__object_id(double self) { long var /* : Int */; long var1 /* : Int */; -var1 = (long)self; +var1 = (double)self; var = var1; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Bool#object_id for (self: Object): Int */ -long VIRTUAL_kernel__Bool__object_id(val* self) { +/* method kernel#Float#object_id for (self: Object): Int */ +long VIRTUAL_kernel__Float__object_id(val* self) { long var /* : Int */; long var1 /* : Int */; -short int var3 /* : Bool */; +double var3 /* : Float */; long var4 /* : Int */; -{ /* Inline kernel#Bool#object_id (self) */ -var3 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */; -var4 = (long)var3; +{ /* Inline kernel#Float#object_id (self) on */ +var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var4 = (double)var3; var1 = var4; goto RET_LABEL2; RET_LABEL2:(void)0; @@ -870,14 +652,14 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Bool#== for (self: Bool, nullable Object): Bool */ -short int kernel__Bool___61d_61d(short int self, val* p0) { +/* method kernel#Float#== for (self: Float, nullable Object): Bool */ +short int kernel__Float___61d_61d(double self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -short int var2 /* : Bool */; -var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool); +double var2 /* : Float */; +var1 = (p0 != NULL) && (p0->class == &class_kernel__Float); if (var1) { -var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */; +var2 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from nullable Object to Float */; var1 = (var2 == self); } var = var1; @@ -885,13 +667,13 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Bool#== for (self: Object, nullable Object): Bool */ -short int VIRTUAL_kernel__Bool___61d_61d(val* self, val* p0) { +/* method kernel#Float#== for (self: Object, nullable Object): Bool */ +short int VIRTUAL_kernel__Float___61d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; short int var3 /* : Bool */; -{ /* Inline kernel#Bool#== (self,p0) */ -var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value); +{ /* Inline kernel#Float#== (self,p0) on */ +var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value); var1 = var3; goto RET_LABEL2; RET_LABEL2:(void)0; @@ -900,15 +682,15 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Bool#!= for (self: Bool, nullable Object): Bool */ -short int kernel__Bool___33d_61d(short int self, val* p0) { +/* method kernel#Float#!= for (self: Float, nullable Object): Bool */ +short int kernel__Float___33d_61d(double self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -short int var2 /* : Bool */; +double var2 /* : Float */; short int var3 /* : Bool */; -var1 = (p0 != NULL) && (p0->class == &class_kernel__Bool); +var1 = (p0 != NULL) && (p0->class == &class_kernel__Float); if (var1) { -var2 = ((struct instance_kernel__Bool*)p0)->value; /* autounbox from nullable Object to Bool */; +var2 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from nullable Object to Float */; var1 = (var2 == self); } var3 = !var1; @@ -917,14 +699,14 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Bool#!= for (self: Object, nullable Object): Bool */ -short int VIRTUAL_kernel__Bool___33d_61d(val* self, val* p0) { +/* method kernel#Float#!= for (self: Object, nullable Object): Bool */ +short int VIRTUAL_kernel__Float___33d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; short int var3 /* : Bool */; short int var4 /* : Bool */; -{ /* Inline kernel#Bool#!= (self,p0) */ -var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Bool*)self)->value == ((struct instance_kernel__Bool*)p0)->value); +{ /* Inline kernel#Float#!= (self,p0) on */ +var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Float*)self)->value == ((struct instance_kernel__Float*)p0)->value); var4 = !var3; var1 = var4; goto RET_LABEL2; @@ -934,111 +716,62 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Bool#output for (self: Bool) */ -void kernel__Bool__output(short int self) { -printf(self?"true\n":"false\n"); -RET_LABEL:; -} -/* method kernel#Bool#output for (self: Object) */ -void VIRTUAL_kernel__Bool__output(val* self) { -short int var /* : Bool */; -{ /* Inline kernel#Bool#output (self) */ -var = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */; -printf(var?"true\n":"false\n"); -RET_LABEL1:(void)0; -} -RET_LABEL:; -} -/* method kernel#Bool#hash for (self: Bool): Int */ -long kernel__Bool__hash(short int self) { -long var /* : Int */; -long var1 /* : Int */; -long var2 /* : Int */; -if (self){ -var1 = 1; -var = var1; -goto RET_LABEL; -} else { -var2 = 0; -var = var2; -goto RET_LABEL; -} -RET_LABEL:; -return var; -} -/* method kernel#Bool#hash for (self: Object): Int */ -long VIRTUAL_kernel__Bool__hash(val* self) { -long var /* : Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */; -var1 = kernel__Bool__hash(var2); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Float#object_id for (self: Float): Int */ -long kernel__Float__object_id(double self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = (double)self; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Float#object_id for (self: Object): Int */ -long VIRTUAL_kernel__Float__object_id(val* self) { -long var /* : Int */; -long var1 /* : Int */; -double var3 /* : Float */; -long var4 /* : Int */; -{ /* Inline kernel#Float#object_id (self) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = (double)var3; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Float#output for (self: Float) */ -void kernel__Float__output(double self) { -printf("%f\n", self); -RET_LABEL:; -} -/* method kernel#Float#output for (self: Object) */ -void VIRTUAL_kernel__Float__output(val* self) { -double var /* : Float */; -{ /* Inline kernel#Float#output (self) */ -var = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -printf("%f\n", var); -RET_LABEL1:(void)0; -} -RET_LABEL:; -} /* method kernel#Float#<= for (self: Float, Float): Bool */ short int kernel__Float___60d_61d(double self, double p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = self <= p0; -var = var1; +int cltype; +int idtype; +const char* var_class_name; +short int var2 /* : Bool */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 297); +show_backtrace(1); +} +var2 = self <= p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#<= for (self: Object, Float): Bool */ -short int VIRTUAL_kernel__Float___60d_61d(val* self, double p0) { +/* method kernel#Float#<= for (self: Object, Comparable): Bool */ +short int VIRTUAL_kernel__Float___60d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -double var3 /* : Float */; -short int var4 /* : Bool */; -{ /* Inline kernel#Float#<= (self,p0) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = var3 <= p0; -var1 = var4; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +double var4 /* : Float */; +double var5 /* : Float */; +short int var6 /* : Bool */; +{ /* Inline kernel#Float#<= (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 297); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */; +var6 = var4 <= var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } @@ -1050,22 +783,58 @@ return var; short int kernel__Float___60d(double self, double p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = self < p0; -var = var1; +int cltype; +int idtype; +const char* var_class_name; +short int var2 /* : Bool */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 298); +show_backtrace(1); +} +var2 = self < p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#< for (self: Object, Float): Bool */ -short int VIRTUAL_kernel__Float___60d(val* self, double p0) { +/* method kernel#Float#< for (self: Object, Comparable): Bool */ +short int VIRTUAL_kernel__Float___60d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -double var3 /* : Float */; -short int var4 /* : Bool */; -{ /* Inline kernel#Float#< (self,p0) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = var3 < p0; -var1 = var4; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +double var4 /* : Float */; +double var5 /* : Float */; +short int var6 /* : Bool */; +{ /* Inline kernel#Float#< (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 298); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */; +var6 = var4 < var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } @@ -1077,22 +846,58 @@ return var; short int kernel__Float___62d_61d(double self, double p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = self >= p0; -var = var1; +int cltype; +int idtype; +const char* var_class_name; +short int var2 /* : Bool */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 299); +show_backtrace(1); +} +var2 = self >= p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#>= for (self: Object, Float): Bool */ -short int VIRTUAL_kernel__Float___62d_61d(val* self, double p0) { +/* method kernel#Float#>= for (self: Object, Comparable): Bool */ +short int VIRTUAL_kernel__Float___62d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -double var3 /* : Float */; -short int var4 /* : Bool */; -{ /* Inline kernel#Float#>= (self,p0) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = var3 >= p0; -var1 = var4; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +double var4 /* : Float */; +double var5 /* : Float */; +short int var6 /* : Bool */; +{ /* Inline kernel#Float#>= (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 299); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */; +var6 = var4 >= var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } @@ -1104,22 +909,58 @@ return var; short int kernel__Float___62d(double self, double p0) { short int var /* : Bool */; short int var1 /* : Bool */; -var1 = self > p0; -var = var1; +int cltype; +int idtype; +const char* var_class_name; +short int var2 /* : Bool */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 300); +show_backtrace(1); +} +var2 = self > p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#> for (self: Object, Float): Bool */ -short int VIRTUAL_kernel__Float___62d(val* self, double p0) { +/* method kernel#Float#> for (self: Object, Comparable): Bool */ +short int VIRTUAL_kernel__Float___62d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; -double var3 /* : Float */; -short int var4 /* : Bool */; -{ /* Inline kernel#Float#> (self,p0) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = var3 > p0; -var1 = var4; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +double var4 /* : Float */; +double var5 /* : Float */; +short int var6 /* : Bool */; +{ /* Inline kernel#Float#> (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 300); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */; +var6 = var4 > var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } @@ -1130,27 +971,65 @@ return var; /* method kernel#Float#+ for (self: Float, Float): Float */ double kernel__Float___43d(double self, double p0) { double var /* : Float */; -double var1 /* : Float */; -var1 = self + p0; -var = var1; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +double var2 /* : Float */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 302); +show_backtrace(1); +} +var2 = self + p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#+ for (self: Object, Float): Float */ -double VIRTUAL_kernel__Float___43d(val* self, double p0) { -double var /* : Float */; +/* method kernel#Float#+ for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Float___43d(val* self, val* p0) { +val* var /* : Numeric */; double var1 /* : Float */; -double var3 /* : Float */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; double var4 /* : Float */; -{ /* Inline kernel#Float#+ (self,p0) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = var3 + p0; -var1 = var4; +double var5 /* : Float */; +double var6 /* : Float */; +val* var7 /* : Numeric */; +{ /* Inline kernel#Float#+ (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 302); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Numeric to Float */; +var6 = var4 + var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } -var = var1; +var7 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */ +var = var7; RET_LABEL:; return var; } @@ -1164,96 +1043,239 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#unary - for (self: Object): Float */ -double VIRTUAL_kernel__Float__unary_32d_45d(val* self) { -double var /* : Float */; +/* method kernel#Float#unary - for (self: Object): Numeric */ +val* VIRTUAL_kernel__Float__unary_32d_45d(val* self) { +val* var /* : Numeric */; double var1 /* : Float */; double var3 /* : Float */; double var4 /* : Float */; -{ /* Inline kernel#Float#unary - (self) */ +val* var5 /* : Numeric */; +{ /* Inline kernel#Float#unary - (self) on */ var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; var4 = -var3; var1 = var4; goto RET_LABEL2; RET_LABEL2:(void)0; } -var = var1; +var5 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */ +var = var5; RET_LABEL:; return var; } /* method kernel#Float#- for (self: Float, Float): Float */ double kernel__Float___45d(double self, double p0) { double var /* : Float */; -double var1 /* : Float */; -var1 = self - p0; -var = var1; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +double var2 /* : Float */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 304); +show_backtrace(1); +} +var2 = self - p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#- for (self: Object, Float): Float */ -double VIRTUAL_kernel__Float___45d(val* self, double p0) { -double var /* : Float */; +/* method kernel#Float#- for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Float___45d(val* self, val* p0) { +val* var /* : Numeric */; double var1 /* : Float */; -double var3 /* : Float */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; double var4 /* : Float */; -{ /* Inline kernel#Float#- (self,p0) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = var3 - p0; -var1 = var4; +double var5 /* : Float */; +double var6 /* : Float */; +val* var7 /* : Numeric */; +{ /* Inline kernel#Float#- (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 304); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Numeric to Float */; +var6 = var4 - var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } -var = var1; +var7 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */ +var = var7; RET_LABEL:; return var; } /* method kernel#Float#* for (self: Float, Float): Float */ double kernel__Float___42d(double self, double p0) { double var /* : Float */; -double var1 /* : Float */; -var1 = self * p0; -var = var1; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +double var2 /* : Float */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 305); +show_backtrace(1); +} +var2 = self * p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#* for (self: Object, Float): Float */ -double VIRTUAL_kernel__Float___42d(val* self, double p0) { -double var /* : Float */; +/* method kernel#Float#* for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Float___42d(val* self, val* p0) { +val* var /* : Numeric */; double var1 /* : Float */; -double var3 /* : Float */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; double var4 /* : Float */; -{ /* Inline kernel#Float#* (self,p0) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = var3 * p0; -var1 = var4; +double var5 /* : Float */; +double var6 /* : Float */; +val* var7 /* : Numeric */; +{ /* Inline kernel#Float#* (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 305); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Numeric to Float */; +var6 = var4 * var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } -var = var1; +var7 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */ +var = var7; RET_LABEL:; return var; } /* method kernel#Float#/ for (self: Float, Float): Float */ double kernel__Float___47d(double self, double p0) { double var /* : Float */; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +double var2 /* : Float */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 306); +show_backtrace(1); +} +var2 = self / p0; +var = var2; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method kernel#Float#/ for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Float___47d(val* self, val* p0) { +val* var /* : Numeric */; double var1 /* : Float */; -var1 = self / p0; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +double var4 /* : Float */; +double var5 /* : Float */; +double var6 /* : Float */; +val* var7 /* : Numeric */; +{ /* Inline kernel#Float#/ (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 306); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Numeric to Float */; +var6 = var4 / var5; +var1 = var6; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} +var7 = BOX_kernel__Float(var1); /* autobox from Float to Numeric */ +var = var7; +RET_LABEL:; +return var; +} +/* method kernel#Float#to_i for (self: Float): Int */ +long kernel__Float__to_i(double self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = (long)self; var = var1; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#/ for (self: Object, Float): Float */ -double VIRTUAL_kernel__Float___47d(val* self, double p0) { -double var /* : Float */; -double var1 /* : Float */; +/* method kernel#Float#to_i for (self: Object): Int */ +long VIRTUAL_kernel__Float__to_i(val* self) { +long var /* : Int */; +long var1 /* : Int */; double var3 /* : Float */; -double var4 /* : Float */; -{ /* Inline kernel#Float#/ (self,p0) */ +long var4 /* : Int */; +{ /* Inline kernel#Float#to_i (self) on */ var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = var3 / p0; +var4 = (long)var3; var1 = var4; goto RET_LABEL2; RET_LABEL2:(void)0; @@ -1262,30 +1284,176 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Float#to_i for (self: Float): Int */ -long kernel__Float__to_i(double self) { +/* method kernel#Float#to_f for (self: Float): Float */ +double kernel__Float__to_f(double self) { +double var /* : Float */; +var = self; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method kernel#Float#to_f for (self: Object): Float */ +double VIRTUAL_kernel__Float__to_f(val* self) { +double var /* : Float */; +double var1 /* : Float */; +double var2 /* : Float */; +var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var1 = kernel__Float__to_f(var2); +var = var1; +RET_LABEL:; +return var; +} +/* method kernel#Float#<=> for (self: Float, Float): Int */ +long kernel__Float___60d_61d_62d(double self, double p0) { +long var /* : Int */; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +double var_other /* var other: Float */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +const char* var_class_name7; +short int var8 /* : Bool */; +long var9 /* : Int */; +long var10 /* : Int */; +long var12 /* : Int */; +short int var13 /* : Bool */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +const char* var_class_name18; +short int var19 /* : Bool */; +long var20 /* : Int */; +long var21 /* : Int */; +/* Covariant cast for argument 0 (other) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 314); +show_backtrace(1); +} +var_other = p0; +{ +{ /* Inline kernel#Float#< (self,var_other) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var4 = 1; /* easy isa OTHER*/ +if (unlikely(!var4)) { +var_class_name7 = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 298); +show_backtrace(1); +} +var8 = self < var_other; +var2 = var8; +goto RET_LABEL3; +RET_LABEL3:(void)0; +} +} +if (var2){ +var9 = 1; +{ +{ /* Inline kernel#Int#unary - (var9) on */ +var12 = -var9; +var10 = var12; +goto RET_LABEL11; +RET_LABEL11:(void)0; +} +} +var = var10; +goto RET_LABEL; +} else { +{ +{ /* Inline kernel#Float#< (var_other,self) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var15 = 1; /* easy isa OTHER*/ +if (unlikely(!var15)) { +var_class_name18 = type_kernel__Float.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 298); +show_backtrace(1); +} +var19 = var_other < self; +var13 = var19; +goto RET_LABEL14; +RET_LABEL14:(void)0; +} +} +if (var13){ +var20 = 1; +var = var20; +goto RET_LABEL; +} else { +var21 = 0; +var = var21; +goto RET_LABEL; +} +} +RET_LABEL:; +return var; +} +/* method kernel#Float#<=> for (self: Object, Comparable): Int */ +long VIRTUAL_kernel__Float___60d_61d_62d(val* self, val* p0) { long var /* : Int */; long var1 /* : Int */; -var1 = (long)self; +double var2 /* : Float */; +double var3 /* : Float */; +var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; +var3 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */; +var1 = kernel__Float___60d_61d_62d(var2, var3); var = var1; -goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Float#to_i for (self: Object): Int */ -long VIRTUAL_kernel__Float__to_i(val* self) { +/* method kernel#Int#successor for (self: Int, Int): Int */ +long kernel__Int__successor(long self, long p0) { long var /* : Int */; +long var_i /* var i: Int */; long var1 /* : Int */; -double var3 /* : Float */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; long var4 /* : Int */; -{ /* Inline kernel#Float#to_i (self) */ -var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; -var4 = (long)var3; +var_i = p0; +{ +{ /* Inline kernel#Int#+ (self,var_i) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var3 = 1; /* easy isa OTHER*/ +if (unlikely(!var3)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var4 = self + var_i; var1 = var4; goto RET_LABEL2; RET_LABEL2:(void)0; } +} var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method kernel#Int#successor for (self: Object, Int): Discrete */ +val* VIRTUAL_kernel__Int__successor(val* self, long p0) { +val* var /* : Discrete */; +long var1 /* : Int */; +long var2 /* : Int */; +val* var3 /* : Discrete */; +var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; +var1 = kernel__Int__successor(var2, p0); +var3 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */ +var = var3; RET_LABEL:; return var; } @@ -1302,7 +1470,7 @@ long VIRTUAL_kernel__Int__object_id(val* self) { long var /* : Int */; long var1 /* : Int */; long var3 /* : Int */; -{ /* Inline kernel#Int#object_id (self) */ +{ /* Inline kernel#Int#object_id (self) on */ var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var1 = var3; goto RET_LABEL2; @@ -1351,7 +1519,7 @@ short int VIRTUAL_kernel__Int___61d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; short int var3 /* : Bool */; -{ /* Inline kernel#Int#== (self,p0) */ +{ /* Inline kernel#Int#== (self,p0) on */ var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value); var1 = var3; goto RET_LABEL2; @@ -1384,7 +1552,7 @@ short int var /* : Bool */; short int var1 /* : Bool */; short int var3 /* : Bool */; short int var4 /* : Bool */; -{ /* Inline kernel#Int#!= (self,p0) */ +{ /* Inline kernel#Int#!= (self,p0) on */ var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Int*)self)->value == ((struct instance_kernel__Int*)p0)->value); var4 = !var3; var1 = var4; @@ -1395,34 +1563,22 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Int#output for (self: Int) */ -void kernel__Int__output(long self) { -printf("%ld\n", self); -RET_LABEL:; -} -/* method kernel#Int#output for (self: Object) */ -void VIRTUAL_kernel__Int__output(val* self) { -long var /* : Int */; -{ /* Inline kernel#Int#output (self) */ -var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -printf("%ld\n", var); -RET_LABEL1:(void)0; -} -RET_LABEL:; -} /* method kernel#Int#<= for (self: Int, Int): Bool */ short int kernel__Int___60d_61d(long self, long p0) { short int var /* : Bool */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); } var2 = self <= p0; var = var2; @@ -1438,10 +1594,11 @@ short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; long var4 /* : Int */; long var5 /* : Int */; short int var6 /* : Bool */; -{ /* Inline kernel#Int#<= (self,p0) */ +{ /* Inline kernel#Int#<= (self,p0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; @@ -1452,9 +1609,11 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); } var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */; @@ -1473,13 +1632,16 @@ short int var /* : Bool */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } var2 = self < p0; var = var2; @@ -1495,10 +1657,11 @@ short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; long var4 /* : Int */; long var5 /* : Int */; short int var6 /* : Bool */; -{ /* Inline kernel#Int#< (self,p0) */ +{ /* Inline kernel#Int#< (self,p0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; @@ -1509,9 +1672,11 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */; @@ -1530,13 +1695,16 @@ short int var /* : Bool */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); } var2 = self >= p0; var = var2; @@ -1552,10 +1720,11 @@ short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; long var4 /* : Int */; long var5 /* : Int */; short int var6 /* : Bool */; -{ /* Inline kernel#Int#>= (self,p0) */ +{ /* Inline kernel#Int#>= (self,p0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; @@ -1566,9 +1735,11 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); } var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */; @@ -1587,13 +1758,16 @@ short int var /* : Bool */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); } var2 = self > p0; var = var2; @@ -1609,10 +1783,11 @@ short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; long var4 /* : Int */; long var5 /* : Int */; short int var6 /* : Bool */; -{ /* Inline kernel#Int#> (self,p0) */ +{ /* Inline kernel#Int#> (self,p0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; @@ -1623,9 +1798,11 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); } var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */; @@ -1641,29 +1818,65 @@ return var; /* method kernel#Int#+ for (self: Int, Int): Int */ long kernel__Int___43d(long self, long p0) { long var /* : Int */; -long var1 /* : Int */; -var1 = self + p0; -var = var1; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var2 /* : Int */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var2 = self + p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Int#+ for (self: Object, Int): Discrete */ -val* VIRTUAL_kernel__Int___43d(val* self, long p0) { -val* var /* : Discrete */; +/* method kernel#Int#+ for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Int___43d(val* self, val* p0) { +val* var /* : Numeric */; long var1 /* : Int */; -long var3 /* : Int */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; long var4 /* : Int */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Int#+ (self,p0) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3 + p0; -var1 = var4; +long var5 /* : Int */; +long var6 /* : Int */; +val* var7 /* : Numeric */; +{ /* Inline kernel#Int#+ (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; +var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Numeric to Int */; +var6 = var4 + var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } -var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */ -var = var5; +var7 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */ +var = var7; RET_LABEL:; return var; } @@ -1677,103 +1890,217 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Int#unary - for (self: Object): Int */ -long VIRTUAL_kernel__Int__unary_32d_45d(val* self) { -long var /* : Int */; +/* method kernel#Int#unary - for (self: Object): Numeric */ +val* VIRTUAL_kernel__Int__unary_32d_45d(val* self) { +val* var /* : Numeric */; long var1 /* : Int */; long var3 /* : Int */; long var4 /* : Int */; -{ /* Inline kernel#Int#unary - (self) */ +val* var5 /* : Numeric */; +{ /* Inline kernel#Int#unary - (self) on */ var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var4 = -var3; var1 = var4; goto RET_LABEL2; RET_LABEL2:(void)0; } -var = var1; +var5 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */ +var = var5; RET_LABEL:; return var; } /* method kernel#Int#- for (self: Int, Int): Int */ long kernel__Int___45d(long self, long p0) { long var /* : Int */; -long var1 /* : Int */; -var1 = self - p0; -var = var1; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var2 /* : Int */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var2 = self - p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Int#- for (self: Object, Int): Discrete */ -val* VIRTUAL_kernel__Int___45d(val* self, long p0) { -val* var /* : Discrete */; +/* method kernel#Int#- for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Int___45d(val* self, val* p0) { +val* var /* : Numeric */; long var1 /* : Int */; -long var3 /* : Int */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; long var4 /* : Int */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Int#- (self,p0) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3 - p0; -var1 = var4; +long var5 /* : Int */; +long var6 /* : Int */; +val* var7 /* : Numeric */; +{ /* Inline kernel#Int#- (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; +var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Numeric to Int */; +var6 = var4 - var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } -var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */ -var = var5; +var7 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */ +var = var7; RET_LABEL:; return var; } /* method kernel#Int#* for (self: Int, Int): Int */ long kernel__Int___42d(long self, long p0) { long var /* : Int */; -long var1 /* : Int */; -var1 = self * p0; -var = var1; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var2 /* : Int */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378); +show_backtrace(1); +} +var2 = self * p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Int#* for (self: Object, Int): Int */ -long VIRTUAL_kernel__Int___42d(val* self, long p0) { -long var /* : Int */; +/* method kernel#Int#* for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Int___42d(val* self, val* p0) { +val* var /* : Numeric */; long var1 /* : Int */; -long var3 /* : Int */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; long var4 /* : Int */; -{ /* Inline kernel#Int#* (self,p0) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3 * p0; -var1 = var4; +long var5 /* : Int */; +long var6 /* : Int */; +val* var7 /* : Numeric */; +{ /* Inline kernel#Int#* (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; +var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Numeric to Int */; +var6 = var4 * var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } -var = var1; +var7 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */ +var = var7; RET_LABEL:; return var; } /* method kernel#Int#/ for (self: Int, Int): Int */ long kernel__Int___47d(long self, long p0) { long var /* : Int */; -long var1 /* : Int */; -var1 = self / p0; -var = var1; +short int var1 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var2 /* : Int */; +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var1 = 1; /* easy isa OTHER*/ +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379); +show_backtrace(1); +} +var2 = self / p0; +var = var2; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Int#/ for (self: Object, Int): Int */ -long VIRTUAL_kernel__Int___47d(val* self, long p0) { -long var /* : Int */; +/* method kernel#Int#/ for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Int___47d(val* self, val* p0) { +val* var /* : Numeric */; long var1 /* : Int */; -long var3 /* : Int */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; long var4 /* : Int */; -{ /* Inline kernel#Int#/ (self,p0) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3 / p0; -var1 = var4; +long var5 /* : Int */; +long var6 /* : Int */; +val* var7 /* : Numeric */; +{ /* Inline kernel#Int#/ (self,p0) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var3 = 0; +} else { +var3 = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; +var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Numeric to Int */; +var6 = var4 / var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } -var = var1; +var7 = BOX_kernel__Int(var1); /* autobox from Int to Numeric */ +var = var7; RET_LABEL:; return var; } @@ -1793,7 +2120,7 @@ long var /* : Int */; long var1 /* : Int */; long var3 /* : Int */; long var4 /* : Int */; -{ /* Inline kernel#Int#% (self,p0) */ +{ /* Inline kernel#Int#% (self,p0) on */ var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var4 = var3 % p0; var1 = var4; @@ -1814,132 +2141,66 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Int#lshift for (self: Object, Int): Int */ -long VIRTUAL_kernel__Int__lshift(val* self, long p0) { -long var /* : Int */; -long var1 /* : Int */; -long var3 /* : Int */; -long var4 /* : Int */; -{ /* Inline kernel#Int#lshift (self,p0) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3 << p0; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Int#rshift for (self: Int, Int): Int */ -long kernel__Int__rshift(long self, long p0) { -long var /* : Int */; -long var1 /* : Int */; -var1 = self >> p0; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Int#rshift for (self: Object, Int): Int */ -long VIRTUAL_kernel__Int__rshift(val* self, long p0) { -long var /* : Int */; -long var1 /* : Int */; -long var3 /* : Int */; -long var4 /* : Int */; -{ /* Inline kernel#Int#rshift (self,p0) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3 >> p0; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Int#to_f for (self: Int): Float */ -double kernel__Int__to_f(long self) { -double var /* : Float */; -double var1 /* : Float */; -var1 = (double)self; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Int#to_f for (self: Object): Float */ -double VIRTUAL_kernel__Int__to_f(val* self) { -double var /* : Float */; -double var1 /* : Float */; -long var3 /* : Int */; -double var4 /* : Float */; -{ /* Inline kernel#Int#to_f (self) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = (double)var3; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Int#succ for (self: Int): Int */ -long kernel__Int__succ(long self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = self+1; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Int#succ for (self: Object): Discrete */ -val* VIRTUAL_kernel__Int__succ(val* self) { -val* var /* : Discrete */; +/* method kernel#Int#lshift for (self: Object, Int): Int */ +long VIRTUAL_kernel__Int__lshift(val* self, long p0) { +long var /* : Int */; long var1 /* : Int */; long var3 /* : Int */; long var4 /* : Int */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Int#succ (self) */ +{ /* Inline kernel#Int#lshift (self,p0) on */ var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3+1; +var4 = var3 << p0; var1 = var4; goto RET_LABEL2; RET_LABEL2:(void)0; } -var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */ -var = var5; +var = var1; RET_LABEL:; return var; } -/* method kernel#Int#prec for (self: Int): Int */ -long kernel__Int__prec(long self) { +/* method kernel#Int#to_i for (self: Int): Int */ +long kernel__Int__to_i(long self) { +long var /* : Int */; +var = self; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method kernel#Int#to_i for (self: Object): Int */ +long VIRTUAL_kernel__Int__to_i(val* self) { long var /* : Int */; long var1 /* : Int */; -var1 = self-1; +long var2 /* : Int */; +var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; +var1 = kernel__Int__to_i(var2); +var = var1; +RET_LABEL:; +return var; +} +/* method kernel#Int#to_f for (self: Int): Float */ +double kernel__Int__to_f(long self) { +double var /* : Float */; +double var1 /* : Float */; +var1 = (double)self; var = var1; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Int#prec for (self: Object): Discrete */ -val* VIRTUAL_kernel__Int__prec(val* self) { -val* var /* : Discrete */; -long var1 /* : Int */; +/* method kernel#Int#to_f for (self: Object): Float */ +double VIRTUAL_kernel__Int__to_f(val* self) { +double var /* : Float */; +double var1 /* : Float */; long var3 /* : Int */; -long var4 /* : Int */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Int#prec (self) */ +double var4 /* : Float */; +{ /* Inline kernel#Int#to_f (self) on */ var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3-1; +var4 = (double)var3; var1 = var4; goto RET_LABEL2; RET_LABEL2:(void)0; } -var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */ -var = var5; +var = var1; RET_LABEL:; return var; } @@ -1949,58 +2210,83 @@ long var /* : Int */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; long var_i /* var i: Int */; long var2 /* : Int */; -long var4 /* : Int */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +const char* var_class_name7; +long var8 /* : Int */; long var_d /* var d: Int */; -long var5 /* : Int */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -short int var11 /* : Bool */; -long var12 /* : Int */; -long var14 /* : Int */; +long var9 /* : Int */; +short int var10 /* : Bool */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +const char* var_class_name15; +short int var16 /* : Bool */; +long var17 /* : Int */; +long var19 /* : Int */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 285); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 398); +show_backtrace(1); } var_i = p0; -{ /* Inline kernel#Int#- (self,var_i) */ -var4 = self - var_i; -var2 = var4; +{ +{ /* Inline kernel#Int#- (self,var_i) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var4 = 1; /* easy isa OTHER*/ +if (unlikely(!var4)) { +var_class_name7 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var8 = self - var_i; +var2 = var8; goto RET_LABEL3; RET_LABEL3:(void)0; } +} var_d = var2; -var5 = 0; -{ /* Inline kernel#Int#>= (var_d,var5) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +var9 = 0; +{ +{ /* Inline kernel#Int#>= (var_d,var9) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var12 = 1; /* easy isa OTHER*/ +if (unlikely(!var12)) { +var_class_name15 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var16 = var_d >= var9; +var10 = var16; +goto RET_LABEL11; +RET_LABEL11:(void)0; } -var11 = var_d >= var5; -var6 = var11; -goto RET_LABEL7; -RET_LABEL7:(void)0; } -if (var6){ +if (var10){ var = var_d; goto RET_LABEL; } else { -{ /* Inline kernel#Int#unary - (var_d) */ -var14 = -var_d; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; +{ +{ /* Inline kernel#Int#unary - (var_d) on */ +var19 = -var_d; +var17 = var19; +goto RET_LABEL18; +RET_LABEL18:(void)0; } -var = var12; +} +var = var17; goto RET_LABEL; } RET_LABEL:; @@ -2025,74 +2311,89 @@ long var /* : Int */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; long var_other /* var other: Int */; short int var2 /* : Bool */; short int var4 /* : Bool */; int cltype5; int idtype6; -short int var7 /* : Bool */; -long var8 /* : Int */; +const char* var_class_name7; +short int var8 /* : Bool */; long var9 /* : Int */; -long var11 /* : Int */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -short int var17 /* : Bool */; -long var18 /* : Int */; -long var19 /* : Int */; +long var10 /* : Int */; +long var12 /* : Int */; +short int var13 /* : Bool */; +short int var15 /* : Bool */; +int cltype16; +int idtype17; +const char* var_class_name18; +short int var19 /* : Bool */; +long var20 /* : Int */; +long var21 /* : Int */; /* Covariant cast for argument 0 (other) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 295); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 408); +show_backtrace(1); } var_other = p0; -{ /* Inline kernel#Int#< (self,var_other) */ +{ +{ /* Inline kernel#Int#< (self,var_other) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var4 = 1; /* easy isa OTHER*/ -if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var7 = self < var_other; -var2 = var7; +if (unlikely(!var4)) { +var_class_name7 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var8 = self < var_other; +var2 = var8; goto RET_LABEL3; RET_LABEL3:(void)0; } +} if (var2){ -var8 = 1; -{ /* Inline kernel#Int#unary - (var8) */ -var11 = -var8; -var9 = var11; -goto RET_LABEL10; -RET_LABEL10:(void)0; +var9 = 1; +{ +{ /* Inline kernel#Int#unary - (var9) on */ +var12 = -var9; +var10 = var12; +goto RET_LABEL11; +RET_LABEL11:(void)0; } -var = var9; +} +var = var10; goto RET_LABEL; } else { -{ /* Inline kernel#Int#< (var_other,self) */ +{ +{ /* Inline kernel#Int#< (var_other,self) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var14 = 1; /* easy isa OTHER*/ -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); +var15 = 1; /* easy isa OTHER*/ +if (unlikely(!var15)) { +var_class_name18 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } -var17 = var_other < self; -var12 = var17; -goto RET_LABEL13; -RET_LABEL13:(void)0; +var19 = var_other < self; +var13 = var19; +goto RET_LABEL14; +RET_LABEL14:(void)0; } -if (var12){ -var18 = 1; -var = var18; +} +if (var13){ +var20 = 1; +var = var20; goto RET_LABEL; } else { -var19 = 0; -var = var19; +var21 = 0; +var = var21; goto RET_LABEL; } } @@ -2112,222 +2413,6 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Int#is_between for (self: Int, Int, Int): Bool */ -short int kernel__Int__is_between(long self, long p0, long p1) { -short int var /* : Bool */; -short int var1 /* : Bool */; -int cltype; -int idtype; -short int var2 /* : Bool */; -int cltype3; -int idtype4; -long var_c /* var c: Int */; -long var_d /* var d: Int */; -short int var5 /* : Bool */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -short int var11 /* : Bool */; -short int var_ /* var : Bool */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -short int var17 /* : Bool */; -short int var18 /* : Bool */; -short int var19 /* : Bool */; -/* Covariant cast for argument 0 (c) isa OTHER */ -/* isa OTHER */ -var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 306); -exit(1); -} -/* Covariant cast for argument 1 (d) isa OTHER */ -/* isa OTHER */ -var2 = 1; /* easy isa OTHER*/ -if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 306); -exit(1); -} -var_c = p0; -var_d = p1; -{ /* Inline kernel#Int#< (self,var_c) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var11 = self < var_c; -var6 = var11; -goto RET_LABEL7; -RET_LABEL7:(void)0; -} -var_ = var6; -if (var6){ -var5 = var_; -} else { -{ /* Inline kernel#Int#< (var_d,self) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var14 = 1; /* easy isa OTHER*/ -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var17 = var_d < self; -var12 = var17; -goto RET_LABEL13; -RET_LABEL13:(void)0; -} -var5 = var12; -} -if (var5){ -var18 = 0; -var = var18; -goto RET_LABEL; -} else { -var19 = 1; -var = var19; -goto RET_LABEL; -} -RET_LABEL:; -return var; -} -/* method kernel#Int#is_between for (self: Object, Comparable, Comparable): Bool */ -short int VIRTUAL_kernel__Int__is_between(val* self, val* p0, val* p1) { -short int var /* : Bool */; -short int var1 /* : Bool */; -long var2 /* : Int */; -long var3 /* : Int */; -long var4 /* : Int */; -var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */; -var4 = ((struct instance_kernel__Int*)p1)->value; /* autounbox from Comparable to Int */; -var1 = kernel__Int__is_between(var2, var3, var4); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Int#max for (self: Int, Int): Int */ -long kernel__Int__max(long self, long p0) { -long var /* : Int */; -short int var1 /* : Bool */; -int cltype; -int idtype; -long var_other /* var other: Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -short int var7 /* : Bool */; -/* Covariant cast for argument 0 (other) isa OTHER */ -/* isa OTHER */ -var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 315); -exit(1); -} -var_other = p0; -{ /* Inline kernel#Int#< (self,var_other) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var7 = self < var_other; -var2 = var7; -goto RET_LABEL3; -RET_LABEL3:(void)0; -} -if (var2){ -var = var_other; -goto RET_LABEL; -} else { -var = self; -goto RET_LABEL; -} -RET_LABEL:; -return var; -} -/* method kernel#Int#max for (self: Object, Comparable): Comparable */ -val* VIRTUAL_kernel__Int__max(val* self, val* p0) { -val* var /* : Comparable */; -long var1 /* : Int */; -long var2 /* : Int */; -long var3 /* : Int */; -val* var4 /* : Comparable */; -var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */; -var1 = kernel__Int__max(var2, var3); -var4 = BOX_kernel__Int(var1); /* autobox from Int to Comparable */ -var = var4; -RET_LABEL:; -return var; -} -/* method kernel#Int#min for (self: Int, Int): Int */ -long kernel__Int__min(long self, long p0) { -long var /* : Int */; -short int var1 /* : Bool */; -int cltype; -int idtype; -long var_c /* var c: Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -short int var7 /* : Bool */; -/* Covariant cast for argument 0 (c) isa OTHER */ -/* isa OTHER */ -var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 324); -exit(1); -} -var_c = p0; -{ /* Inline kernel#Int#< (var_c,self) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var7 = var_c < self; -var2 = var7; -goto RET_LABEL3; -RET_LABEL3:(void)0; -} -if (var2){ -var = var_c; -goto RET_LABEL; -} else { -var = self; -goto RET_LABEL; -} -RET_LABEL:; -return var; -} -/* method kernel#Int#min for (self: Object, Comparable): Comparable */ -val* VIRTUAL_kernel__Int__min(val* self, val* p0) { -val* var /* : Comparable */; -long var1 /* : Int */; -long var2 /* : Int */; -long var3 /* : Int */; -val* var4 /* : Comparable */; -var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var3 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */; -var1 = kernel__Int__min(var2, var3); -var4 = BOX_kernel__Int(var1); /* autobox from Int to Comparable */ -var = var4; -RET_LABEL:; -return var; -} /* method kernel#Int#ascii for (self: Int): Char */ char kernel__Int__ascii(long self) { char var /* : Char */; @@ -2344,7 +2429,7 @@ char var /* : Char */; char var1 /* : Char */; long var3 /* : Int */; char var4 /* : Char */; -{ /* Inline kernel#Int#ascii (self) */ +{ /* Inline kernel#Int#ascii (self) on */ var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var4 = var3; var1 = var4; @@ -2361,123 +2446,177 @@ long var /* : Int */; long var_b /* var b: Int */; long var1 /* : Int */; short int var2 /* : Bool */; -short int var4 /* : Bool */; -long var5 /* : Int */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; long var6 /* : Int */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; +long var7 /* : Int */; +short int var8 /* : Bool */; +short int var10 /* : Bool */; int cltype; int idtype; -short int var10 /* : Bool */; -long var11 /* : Int */; -long var_d /* var d: Int */; +const char* var_class_name; +short int var11 /* : Bool */; long var12 /* : Int */; -long var14 /* : Int */; -long var_n /* var n: Int */; +long var_d /* var d: Int */; +long var13 /* : Int */; long var15 /* : Int */; -short int var16 /* : Bool */; +long var_n /* var n: Int */; +long var16 /* : Int */; +short int var17 /* : Bool */; short int var18 /* : Bool */; -long var19 /* : Int */; -long var20 /* : Int */; +short int var20 /* : Bool */; long var21 /* : Int */; -short int var22 /* : Bool */; +long var22 /* : Int */; +long var23 /* : Int */; short int var24 /* : Bool */; -int cltype25; -int idtype26; -short int var27 /* : Bool */; -long var28 /* : Int */; -long var29 /* : Int */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const char* var_class_name29; +short int var30 /* : Bool */; long var31 /* : Int */; long var32 /* : Int */; -long var34 /* : Int */; +short int var34 /* : Bool */; +int cltype35; +int idtype36; +const char* var_class_name37; +long var38 /* : Int */; +long var39 /* : Int */; +short int var41 /* : Bool */; +int cltype42; +int idtype43; +const char* var_class_name44; +long var45 /* : Int */; var_b = p0; var1 = 10; -{ /* Inline kernel#Int#== (var_b,var1) */ -var4 = var_b == var1; -var2 = var4; -goto RET_LABEL3; -RET_LABEL3:(void)0; +{ +{ /* Inline kernel#Int#== (var_b,var1) on */ +var5 = var_b == var1; +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +var2 = var3; } if (var2){ -var5 = kernel__Int__digit_count_base_95d10(self); -var = var5; +{ +var6 = kernel__Int__digit_count_base_95d10(self); +} +var = var6; goto RET_LABEL; } else { } -var6 = 0; -{ /* Inline kernel#Int#< (self,var6) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var9 = 1; /* easy isa OTHER*/ -if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var10 = self < var6; -var7 = var10; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var7 = 0; +{ +{ /* Inline kernel#Int#< (self,var7) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var10 = 1; /* easy isa OTHER*/ +if (unlikely(!var10)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var11 = self < var7; +var8 = var11; +goto RET_LABEL9; +RET_LABEL9:(void)0; } -if (var7){ -var11 = 1; -var_d = var11; -{ /* Inline kernel#Int#unary - (self) */ -var14 = -self; -var12 = var14; -goto RET_LABEL13; -RET_LABEL13:(void)0; } -var_n = var12; +if (var8){ +var12 = 1; +var_d = var12; +{ +{ /* Inline kernel#Int#unary - (self) on */ +var15 = -self; +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; +} +} +var_n = var13; } else { -var15 = 0; -{ /* Inline kernel#Int#== (self,var15) */ -var18 = self == var15; -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; +var16 = 0; +{ +{ /* Inline kernel#Int#== (self,var16) on */ +var20 = self == var16; +var18 = var20; +goto RET_LABEL19; +RET_LABEL19:(void)0; } -if (var16){ -var19 = 1; -var = var19; +var17 = var18; +} +if (var17){ +var21 = 1; +var = var21; goto RET_LABEL; } else { -var20 = 0; -var_d = var20; +var22 = 0; +var_d = var22; var_n = self; } } for(;;) { -var21 = 0; -{ /* Inline kernel#Int#> (var_n,var21) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var24 = 1; /* easy isa OTHER*/ -if (!var24) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var27 = var_n > var21; -var22 = var27; -goto RET_LABEL23; -RET_LABEL23:(void)0; -} -if (!var22) break; -var28 = 1; -{ /* Inline kernel#Int#+ (var_d,var28) */ -var31 = var_d + var28; -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; -} -var_d = var29; -{ /* Inline kernel#Int#/ (var_n,var_b) */ -var34 = var_n / var_b; -var32 = var34; +var23 = 0; +{ +{ /* Inline kernel#Int#> (var_n,var23) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var26 = 1; /* easy isa OTHER*/ +if (unlikely(!var26)) { +var_class_name29 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); +show_backtrace(1); +} +var30 = var_n > var23; +var24 = var30; +goto RET_LABEL25; +RET_LABEL25:(void)0; +} +} +if (var24){ +var31 = 1; +{ +{ /* Inline kernel#Int#+ (var_d,var31) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var34 = 1; /* easy isa OTHER*/ +if (unlikely(!var34)) { +var_class_name37 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var38 = var_d + var31; +var32 = var38; goto RET_LABEL33; RET_LABEL33:(void)0; } -var_n = var32; -CONTINUE_label: (void)0; +} +var_d = var32; +{ +{ /* Inline kernel#Int#/ (var_n,var_b) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var41 = 1; /* easy isa OTHER*/ +if (unlikely(!var41)) { +var_class_name44 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379); +show_backtrace(1); +} +var45 = var_n / var_b; +var39 = var45; +goto RET_LABEL40; +RET_LABEL40:(void)0; +} +} +var_n = var39; +} else { +goto BREAK_label; +} } BREAK_label: (void)0; var = var_d; @@ -2504,6 +2643,7 @@ short int var2 /* : Bool */; short int var4 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var5 /* : Bool */; long var6 /* : Int */; long var_result /* var result: Int */; @@ -2516,63 +2656,93 @@ short int var12 /* : Bool */; short int var14 /* : Bool */; int cltype15; int idtype16; -short int var17 /* : Bool */; -long var18 /* : Int */; -short int var19 /* : Bool */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -short int var24 /* : Bool */; -long var25 /* : Int */; -long var26 /* : Int */; +const char* var_class_name17; +short int var18 /* : Bool */; +long var19 /* : Int */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +const char* var_class_name25; +short int var26 /* : Bool */; +long var27 /* : Int */; long var28 /* : Int */; -long var29 /* : Int */; short int var30 /* : Bool */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -short int var35 /* : Bool */; -long var36 /* : Int */; -long var37 /* : Int */; -long var39 /* : Int */; -long var40 /* : Int */; -short int var41 /* : Bool */; -short int var43 /* : Bool */; -int cltype44; -int idtype45; +int cltype31; +int idtype32; +const char* var_class_name33; +long var34 /* : Int */; +long var35 /* : Int */; +short int var36 /* : Bool */; +short int var38 /* : Bool */; +int cltype39; +int idtype40; +const char* var_class_name41; +short int var42 /* : Bool */; +long var43 /* : Int */; +long var44 /* : Int */; short int var46 /* : Bool */; -long var47 /* : Int */; -long var48 /* : Int */; +int cltype47; +int idtype48; +const char* var_class_name49; long var50 /* : Int */; long var51 /* : Int */; -long var52 /* : Int */; -long var54 /* : Int */; -long var55 /* : Int */; -long var56 /* : Int */; -long var58 /* : Int */; +short int var52 /* : Bool */; +short int var54 /* : Bool */; +int cltype55; +int idtype56; +const char* var_class_name57; +short int var58 /* : Bool */; +long var59 /* : Int */; +long var60 /* : Int */; +short int var62 /* : Bool */; +int cltype63; +int idtype64; +const char* var_class_name65; +long var66 /* : Int */; +long var67 /* : Int */; +long var68 /* : Int */; +short int var70 /* : Bool */; +int cltype71; +int idtype72; +const char* var_class_name73; +long var74 /* : Int */; +long var75 /* : Int */; +long var76 /* : Int */; +short int var78 /* : Bool */; +int cltype79; +int idtype80; +const char* var_class_name81; +long var82 /* : Int */; var1 = 0; -{ /* Inline kernel#Int#< (self,var1) */ +{ +{ /* Inline kernel#Int#< (self,var1) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var4 = 1; /* easy isa OTHER*/ -if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); +if (unlikely(!var4)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); } var5 = self < var1; var2 = var5; goto RET_LABEL3; RET_LABEL3:(void)0; } +} if (var2){ var6 = 2; var_result = var6; -{ /* Inline kernel#Int#unary - (self) */ +{ +{ /* Inline kernel#Int#unary - (self) on */ var9 = -self; var7 = var9; goto RET_LABEL8; RET_LABEL8:(void)0; } +} var_val = var7; } else { var10 = 1; @@ -2581,121 +2751,190 @@ var_val = self; } for(;;) { var11 = 10; -{ /* Inline kernel#Int#< (var_val,var11) */ +{ +{ /* Inline kernel#Int#< (var_val,var11) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var14 = 1; /* easy isa OTHER*/ -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var17 = var_val < var11; -var12 = var17; +if (unlikely(!var14)) { +var_class_name17 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var18 = var_val < var11; +var12 = var18; goto RET_LABEL13; RET_LABEL13:(void)0; } +} if (var12){ var = var_result; goto RET_LABEL; } else { } -var18 = 100; -{ /* Inline kernel#Int#< (var_val,var18) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var21 = 1; /* easy isa OTHER*/ -if (!var21) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var24 = var_val < var18; -var19 = var24; -goto RET_LABEL20; -RET_LABEL20:(void)0; -} -if (var19){ -var25 = 1; -{ /* Inline kernel#Int#+ (var_result,var25) */ -var28 = var_result + var25; -var26 = var28; -goto RET_LABEL27; -RET_LABEL27:(void)0; -} -var = var26; +var19 = 100; +{ +{ /* Inline kernel#Int#< (var_val,var19) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var22 = 1; /* easy isa OTHER*/ +if (unlikely(!var22)) { +var_class_name25 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var26 = var_val < var19; +var20 = var26; +goto RET_LABEL21; +RET_LABEL21:(void)0; +} +} +if (var20){ +var27 = 1; +{ +{ /* Inline kernel#Int#+ (var_result,var27) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var30 = 1; /* easy isa OTHER*/ +if (unlikely(!var30)) { +var_class_name33 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var34 = var_result + var27; +var28 = var34; +goto RET_LABEL29; +RET_LABEL29:(void)0; +} +} +var = var28; goto RET_LABEL; } else { } -var29 = 1000; -{ /* Inline kernel#Int#< (var_val,var29) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var32 = 1; /* easy isa OTHER*/ -if (!var32) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var35 = var_val < var29; -var30 = var35; -goto RET_LABEL31; -RET_LABEL31:(void)0; +var35 = 1000; +{ +{ /* Inline kernel#Int#< (var_val,var35) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var38 = 1; /* easy isa OTHER*/ +if (unlikely(!var38)) { +var_class_name41 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var42 = var_val < var35; +var36 = var42; +goto RET_LABEL37; +RET_LABEL37:(void)0; } -if (var30){ -var36 = 2; -{ /* Inline kernel#Int#+ (var_result,var36) */ -var39 = var_result + var36; -var37 = var39; -goto RET_LABEL38; -RET_LABEL38:(void)0; } -var = var37; -goto RET_LABEL; -} else { +if (var36){ +var43 = 2; +{ +{ /* Inline kernel#Int#+ (var_result,var43) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var46 = 1; /* easy isa OTHER*/ +if (unlikely(!var46)) { +var_class_name49 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var50 = var_result + var43; +var44 = var50; +goto RET_LABEL45; +RET_LABEL45:(void)0; } -var40 = 10000; -{ /* Inline kernel#Int#< (var_val,var40) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var43 = 1; /* easy isa OTHER*/ -if (!var43) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var46 = var_val < var40; -var41 = var46; -goto RET_LABEL42; -RET_LABEL42:(void)0; -} -if (var41){ -var47 = 3; -{ /* Inline kernel#Int#+ (var_result,var47) */ -var50 = var_result + var47; -var48 = var50; -goto RET_LABEL49; -RET_LABEL49:(void)0; -} -var = var48; +} +var = var44; goto RET_LABEL; } else { } var51 = 10000; -{ /* Inline kernel#Int#/ (var_val,var51) */ -var54 = var_val / var51; -var52 = var54; +{ +{ /* Inline kernel#Int#< (var_val,var51) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var54 = 1; /* easy isa OTHER*/ +if (unlikely(!var54)) { +var_class_name57 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var58 = var_val < var51; +var52 = var58; goto RET_LABEL53; RET_LABEL53:(void)0; } -var_val = var52; -var55 = 4; -{ /* Inline kernel#Int#+ (var_result,var55) */ -var58 = var_result + var55; -var56 = var58; -goto RET_LABEL57; -RET_LABEL57:(void)0; } -var_result = var56; -CONTINUE_label: (void)0; +if (var52){ +var59 = 3; +{ +{ /* Inline kernel#Int#+ (var_result,var59) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var62 = 1; /* easy isa OTHER*/ +if (unlikely(!var62)) { +var_class_name65 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var66 = var_result + var59; +var60 = var66; +goto RET_LABEL61; +RET_LABEL61:(void)0; +} +} +var = var60; +goto RET_LABEL; +} else { +} +var67 = 10000; +{ +{ /* Inline kernel#Int#/ (var_val,var67) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var70 = 1; /* easy isa OTHER*/ +if (unlikely(!var70)) { +var_class_name73 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379); +show_backtrace(1); +} +var74 = var_val / var67; +var68 = var74; +goto RET_LABEL69; +RET_LABEL69:(void)0; +} +} +var_val = var68; +var75 = 4; +{ +{ /* Inline kernel#Int#+ (var_result,var75) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var78 = 1; /* easy isa OTHER*/ +if (unlikely(!var78)) { +var_class_name81 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name81); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var82 = var_result + var75; +var76 = var82; +goto RET_LABEL77; +RET_LABEL77:(void)0; +} +} +var_result = var76; } -BREAK_label: (void)0; RET_LABEL:; return var; } @@ -2719,6 +2958,7 @@ short int var3 /* : Bool */; short int var5 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var6 /* : Bool */; short int var_ /* var : Bool */; long var7 /* : Int */; @@ -2726,132 +2966,200 @@ short int var8 /* : Bool */; short int var10 /* : Bool */; int cltype11; int idtype12; -short int var13 /* : Bool */; -long var14 /* : Int */; -short int var15 /* : Bool */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -short int var20 /* : Bool */; -char var21 /* : Char */; -long var22 /* : Int */; +const char* var_class_name13; +short int var14 /* : Bool */; +long var15 /* : Int */; +short int var16 /* : Bool */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const char* var_class_name21; +short int var22 /* : Bool */; +char var23 /* : Char */; long var24 /* : Int */; -long var25 /* : Int */; +long var26 /* : Int */; long var27 /* : Int */; -char var28 /* : Char */; -char var30 /* : Char */; -char var31 /* : Char */; -long var32 /* : Int */; -long var34 /* : Int */; -long var35 /* : Int */; -long var36 /* : Int */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +const char* var_class_name32; +long var33 /* : Int */; +char var34 /* : Char */; +char var36 /* : Char */; +char var37 /* : Char */; long var38 /* : Int */; -long var39 /* : Int */; +long var40 /* : Int */; long var41 /* : Int */; -char var42 /* : Char */; -char var44 /* : Char */; +long var42 /* : Int */; +short int var44 /* : Bool */; +int cltype45; +int idtype46; +const char* var_class_name47; +long var48 /* : Int */; +long var49 /* : Int */; +short int var51 /* : Bool */; +int cltype52; +int idtype53; +const char* var_class_name54; +long var55 /* : Int */; +char var56 /* : Char */; +char var58 /* : Char */; var2 = 0; -{ /* Inline kernel#Int#>= (self,var2) */ +{ +{ /* Inline kernel#Int#>= (self,var2) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var5 = 1; /* easy isa OTHER*/ -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +if (unlikely(!var5)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); } var6 = self >= var2; var3 = var6; goto RET_LABEL4; RET_LABEL4:(void)0; } +} var_ = var3; if (var3){ var7 = 36; -{ /* Inline kernel#Int#<= (self,var7) */ +{ +{ /* Inline kernel#Int#<= (self,var7) on */ /* 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 = self <= var7; -var8 = var13; +if (unlikely(!var10)) { +var_class_name13 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370); +show_backtrace(1); +} +var14 = self <= var7; +var8 = var14; goto RET_LABEL9; RET_LABEL9:(void)0; } +} var1 = var8; } else { var1 = var_; } -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/kernel.nit", 395); -exit(1); -} -var14 = 10; -{ /* Inline kernel#Int#< (self,var14) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var17 = 1; /* easy isa OTHER*/ -if (!var17) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var20 = self < var14; -var15 = var20; -goto RET_LABEL16; -RET_LABEL16:(void)0; +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 508); +show_backtrace(1); +} +var15 = 10; +{ +{ /* Inline kernel#Int#< (self,var15) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var18 = 1; /* easy isa OTHER*/ +if (unlikely(!var18)) { +var_class_name21 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var22 = self < var15; +var16 = var22; +goto RET_LABEL17; +RET_LABEL17:(void)0; } -if (var15){ -var21 = '0'; -{ /* Inline kernel#Char#ascii (var21) */ -var24 = (unsigned char)var21; -var22 = var24; -goto RET_LABEL23; -RET_LABEL23:(void)0; -} -{ /* Inline kernel#Int#+ (self,var22) */ -var27 = self + var22; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; -} -{ /* Inline kernel#Int#ascii (var25) */ -var30 = var25; -var28 = var30; -goto RET_LABEL29; -RET_LABEL29:(void)0; } -var = var28; +if (var16){ +var23 = '0'; +{ +{ /* Inline kernel#Char#ascii (var23) on */ +var26 = (unsigned char)var23; +var24 = var26; +goto RET_LABEL25; +RET_LABEL25:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (self,var24) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var29 = 1; /* easy isa OTHER*/ +if (unlikely(!var29)) { +var_class_name32 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var33 = self + var24; +var27 = var33; +goto RET_LABEL28; +RET_LABEL28:(void)0; +} +} +{ +{ /* Inline kernel#Int#ascii (var27) on */ +var36 = var27; +var34 = var36; +goto RET_LABEL35; +RET_LABEL35:(void)0; +} +} +var = var34; goto RET_LABEL; } else { -var31 = 'a'; -{ /* Inline kernel#Char#ascii (var31) */ -var34 = (unsigned char)var31; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +var37 = 'a'; +{ +{ /* Inline kernel#Char#ascii (var37) on */ +var40 = (unsigned char)var37; +var38 = var40; +goto RET_LABEL39; +RET_LABEL39:(void)0; +} +} +var41 = 10; +{ +{ /* Inline kernel#Int#- (var38,var41) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var44 = 1; /* easy isa OTHER*/ +if (unlikely(!var44)) { +var_class_name47 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var48 = var38 - var41; +var42 = var48; +goto RET_LABEL43; +RET_LABEL43:(void)0; } -var35 = 10; -{ /* Inline kernel#Int#- (var32,var35) */ -var38 = var32 - var35; -var36 = var38; -goto RET_LABEL37; -RET_LABEL37:(void)0; } -{ /* Inline kernel#Int#+ (self,var36) */ -var41 = self + var36; -var39 = var41; -goto RET_LABEL40; -RET_LABEL40:(void)0; +{ +{ /* Inline kernel#Int#+ (self,var42) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var51 = 1; /* easy isa OTHER*/ +if (unlikely(!var51)) { +var_class_name54 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); } -{ /* Inline kernel#Int#ascii (var39) */ -var44 = var39; -var42 = var44; -goto RET_LABEL43; -RET_LABEL43:(void)0; +var55 = self + var42; +var49 = var55; +goto RET_LABEL50; +RET_LABEL50:(void)0; } -var = var42; +} +{ +{ /* Inline kernel#Int#ascii (var49) on */ +var58 = var49; +var56 = var58; +goto RET_LABEL57; +RET_LABEL57:(void)0; +} +} +var = var56; goto RET_LABEL; } RET_LABEL:; @@ -2868,106 +3176,6 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Int#enumerate_to for (self: Int, Int) */ -void kernel__Int__enumerate_to(long self, long p0) { -long var_last /* var last: Int */; -long var_cur /* var cur: Int */; -short int var /* : Bool */; -short int var2 /* : Bool */; -int cltype; -int idtype; -short int var3 /* : Bool */; -long var4 /* : Int */; -long var5 /* : Int */; -long var7 /* : Int */; -var_last = p0; -var_cur = self; -for(;;) { -{ /* Inline kernel#Int#<= (var_cur,var_last) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var2 = 1; /* easy isa OTHER*/ -if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256); -exit(1); -} -var3 = var_cur <= var_last; -var = var3; -goto RET_LABEL1; -RET_LABEL1:(void)0; -} -if (!var) break; -printf("NOT YET IMPLEMENTED AClosureCallExpr:lib/standard/kernel.nit:409,4--12\n"); -var4 = 1; -{ /* Inline kernel#Int#+ (var_cur,var4) */ -var7 = var_cur + var4; -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; -} -var_cur = var5; -CONTINUE_label: (void)0; -} -BREAK_label: (void)0; -RET_LABEL:; -} -/* method kernel#Int#enumerate_to for (self: Object, Int) */ -void VIRTUAL_kernel__Int__enumerate_to(val* self, long p0) { -long var /* : Int */; -var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -kernel__Int__enumerate_to(var, p0); -RET_LABEL:; -} -/* method kernel#Int#enumerate_before for (self: Int, Int) */ -void kernel__Int__enumerate_before(long self, long p0) { -long var_after /* var after: Int */; -long var_cur /* var cur: Int */; -short int var /* : Bool */; -short int var2 /* : Bool */; -int cltype; -int idtype; -short int var3 /* : Bool */; -long var4 /* : Int */; -long var5 /* : Int */; -long var7 /* : Int */; -var_after = p0; -var_cur = self; -for(;;) { -{ /* Inline kernel#Int#< (var_cur,var_after) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var2 = 1; /* easy isa OTHER*/ -if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var3 = var_cur < var_after; -var = var3; -goto RET_LABEL1; -RET_LABEL1:(void)0; -} -if (!var) break; -printf("NOT YET IMPLEMENTED AClosureCallExpr:lib/standard/kernel.nit:420,4--12\n"); -var4 = 1; -{ /* Inline kernel#Int#+ (var_cur,var4) */ -var7 = var_cur + var4; -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; -} -var_cur = var5; -CONTINUE_label: (void)0; -} -BREAK_label: (void)0; -RET_LABEL:; -} -/* method kernel#Int#enumerate_before for (self: Object, Int) */ -void VIRTUAL_kernel__Int__enumerate_before(val* self, long p0) { -long var /* : Int */; -var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -kernel__Int__enumerate_before(var, p0); -RET_LABEL:; -} /* method kernel#Int#abs for (self: Int): Int */ long kernel__Int__abs(long self) { long var /* : Int */; @@ -2976,43 +3184,65 @@ short int var2 /* : Bool */; short int var4 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var5 /* : Bool */; long var6 /* : Int */; long var7 /* : Int */; long var9 /* : Int */; long var10 /* : Int */; -long var12 /* : Int */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +const char* var_class_name15; +long var16 /* : Int */; var1 = 0; -{ /* Inline kernel#Int#>= (self,var1) */ +{ +{ /* Inline kernel#Int#>= (self,var1) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var4 = 1; /* easy isa OTHER*/ -if (!var4) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +if (unlikely(!var4)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); } var5 = self >= var1; var2 = var5; goto RET_LABEL3; RET_LABEL3:(void)0; } +} if (var2){ var = self; goto RET_LABEL; } else { var6 = 1; -{ /* Inline kernel#Int#unary - (var6) */ +{ +{ /* Inline kernel#Int#unary - (var6) on */ var9 = -var6; var7 = var9; goto RET_LABEL8; RET_LABEL8:(void)0; } -{ /* Inline kernel#Int#* (var7,self) */ -var12 = var7 * self; -var10 = var12; +} +{ +{ /* Inline kernel#Int#* (var7,self) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var12 = 1; /* easy isa OTHER*/ +if (unlikely(!var12)) { +var_class_name15 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378); +show_backtrace(1); +} +var16 = var7 * self; +var10 = var16; goto RET_LABEL11; RET_LABEL11:(void)0; } +} var = var10; goto RET_LABEL; } @@ -3046,7 +3276,7 @@ long var /* : Int */; long var1 /* : Int */; char var3 /* : Char */; long var4 /* : Int */; -{ /* Inline kernel#Char#object_id (self) */ +{ /* Inline kernel#Char#object_id (self) on */ var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; var4 = (long)var3; var1 = var4; @@ -3062,12 +3292,14 @@ long kernel__Char__hash(char self) { long var /* : Int */; long var1 /* : Int */; long var3 /* : Int */; -{ /* Inline kernel#Char#ascii (self) */ +{ +{ /* Inline kernel#Char#ascii (self) on */ var3 = (unsigned char)self; var1 = var3; goto RET_LABEL2; RET_LABEL2:(void)0; } +} var = var1; goto RET_LABEL; RET_LABEL:; @@ -3104,7 +3336,7 @@ short int VIRTUAL_kernel__Char___61d_61d(val* self, val* p0) { short int var /* : Bool */; short int var1 /* : Bool */; short int var3 /* : Bool */; -{ /* Inline kernel#Char#== (self,p0) */ +{ /* Inline kernel#Char#== (self,p0) on */ var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value); var1 = var3; goto RET_LABEL2; @@ -3137,7 +3369,7 @@ short int var /* : Bool */; short int var1 /* : Bool */; short int var3 /* : Bool */; short int var4 /* : Bool */; -{ /* Inline kernel#Char#!= (self,p0) */ +{ /* Inline kernel#Char#!= (self,p0) on */ var3 = self == p0 || (p0 != NULL && self->class == p0->class && ((struct instance_kernel__Char*)self)->value == ((struct instance_kernel__Char*)p0)->value); var4 = !var3; var1 = var4; @@ -3148,34 +3380,22 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Char#output for (self: Char) */ -void kernel__Char__output(char self) { -printf("%c", self); -RET_LABEL:; -} -/* method kernel#Char#output for (self: Object) */ -void VIRTUAL_kernel__Char__output(val* self) { -char var /* : Char */; -{ /* Inline kernel#Char#output (self) */ -var = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -printf("%c", var); -RET_LABEL1:(void)0; -} -RET_LABEL:; -} /* method kernel#Char#<= for (self: Char, Char): Bool */ short int kernel__Char___60d_61d(char self, char p0) { short int var /* : Bool */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 454); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545); +show_backtrace(1); } var2 = self <= p0; var = var2; @@ -3191,10 +3411,11 @@ short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; char var4 /* : Char */; char var5 /* : Char */; short int var6 /* : Bool */; -{ /* Inline kernel#Char#<= (self,p0) */ +{ /* Inline kernel#Char#<= (self,p0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; @@ -3205,9 +3426,11 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 454); -exit(1); +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545); +show_backtrace(1); } var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */; @@ -3226,13 +3449,16 @@ short int var /* : Bool */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 455); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 546); +show_backtrace(1); } var2 = self < p0; var = var2; @@ -3248,10 +3474,11 @@ short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; char var4 /* : Char */; char var5 /* : Char */; short int var6 /* : Bool */; -{ /* Inline kernel#Char#< (self,p0) */ +{ /* Inline kernel#Char#< (self,p0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; @@ -3262,9 +3489,11 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 455); -exit(1); +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 546); +show_backtrace(1); } var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */; @@ -3283,13 +3512,16 @@ short int var /* : Bool */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547); +show_backtrace(1); } var2 = self >= p0; var = var2; @@ -3305,10 +3537,11 @@ short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; char var4 /* : Char */; char var5 /* : Char */; short int var6 /* : Bool */; -{ /* Inline kernel#Char#>= (self,p0) */ +{ /* Inline kernel#Char#>= (self,p0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; @@ -3319,9 +3552,11 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456); -exit(1); +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547); +show_backtrace(1); } var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */; @@ -3340,13 +3575,16 @@ short int var /* : Bool */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 457); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 548); +show_backtrace(1); } var2 = self > p0; var = var2; @@ -3362,10 +3600,11 @@ short int var3 /* : Bool */; int cltype; int idtype; const struct type* type_struct; +const char* var_class_name; char var4 /* : Char */; char var5 /* : Char */; short int var6 /* : Bool */; -{ /* Inline kernel#Char#> (self,p0) */ +{ /* Inline kernel#Char#> (self,p0) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; @@ -3376,70 +3615,43 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 457); -exit(1); -} -var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */; -var6 = var4 > var5; -var1 = var6; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Char#succ for (self: Char): Char */ -char kernel__Char__succ(char self) { -char var /* : Char */; -char var1 /* : Char */; -var1 = self+1; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Char#succ for (self: Object): Discrete */ -val* VIRTUAL_kernel__Char__succ(val* self) { -val* var /* : Discrete */; -char var1 /* : Char */; -char var3 /* : Char */; -char var4 /* : Char */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Char#succ (self) */ -var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var4 = var3+1; -var1 = var4; +if (unlikely(!var3)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 548); +show_backtrace(1); +} +var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; +var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */; +var6 = var4 > var5; +var1 = var6; goto RET_LABEL2; RET_LABEL2:(void)0; } -var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */ -var = var5; +var = var1; RET_LABEL:; return var; } -/* method kernel#Char#prec for (self: Char): Char */ -char kernel__Char__prec(char self) { +/* method kernel#Char#successor for (self: Char, Int): Char */ +char kernel__Char__successor(char self, long p0) { char var /* : Char */; char var1 /* : Char */; -var1 = self-1; +var1 = self + p0; var = var1; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Char#prec for (self: Object): Discrete */ -val* VIRTUAL_kernel__Char__prec(val* self) { +/* method kernel#Char#successor for (self: Object, Int): Discrete */ +val* VIRTUAL_kernel__Char__successor(val* self, long p0) { val* var /* : Discrete */; char var1 /* : Char */; char var3 /* : Char */; char var4 /* : Char */; val* var5 /* : Discrete */; -{ /* Inline kernel#Char#prec (self) */ +{ /* Inline kernel#Char#successor (self,p0) on */ var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var4 = var3-1; +var4 = var3 + p0; var1 = var4; goto RET_LABEL2; RET_LABEL2:(void)0; @@ -3455,74 +3667,103 @@ long var /* : Int */; short int var1 /* : Bool */; int cltype; int idtype; +const char* var_class_name; char var_c /* var c: Char */; long var2 /* : Int */; long var4 /* : Int */; long var5 /* : Int */; long var7 /* : Int */; long var8 /* : Int */; -long var10 /* : Int */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +const char* var_class_name13; +long var14 /* : Int */; long var_d /* var d: Int */; -long var11 /* : Int */; -short int var12 /* : Bool */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -short int var17 /* : Bool */; -long var18 /* : Int */; -long var20 /* : Int */; +long var15 /* : Int */; +short int var16 /* : Bool */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const char* var_class_name21; +short int var22 /* : Bool */; +long var23 /* : Int */; +long var25 /* : Int */; /* Covariant cast for argument 0 (c) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 462); -exit(1); +if (unlikely(!var1)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 553); +show_backtrace(1); } var_c = p0; -{ /* Inline kernel#Char#ascii (self) */ +{ +{ /* Inline kernel#Char#ascii (self) on */ var4 = (unsigned char)self; var2 = var4; goto RET_LABEL3; RET_LABEL3:(void)0; } -{ /* Inline kernel#Char#ascii (var_c) */ +} +{ +{ /* Inline kernel#Char#ascii (var_c) on */ var7 = (unsigned char)var_c; var5 = var7; goto RET_LABEL6; RET_LABEL6:(void)0; } -{ /* Inline kernel#Int#- (var2,var5) */ -var10 = var2 - var5; -var8 = var10; +} +{ +{ /* Inline kernel#Int#- (var2,var5) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var10 = 1; /* easy isa OTHER*/ +if (unlikely(!var10)) { +var_class_name13 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var14 = var2 - var5; +var8 = var14; goto RET_LABEL9; RET_LABEL9:(void)0; } +} var_d = var8; -var11 = 0; -{ /* Inline kernel#Int#>= (var_d,var11) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var14 = 1; /* easy isa OTHER*/ -if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +var15 = 0; +{ +{ /* Inline kernel#Int#>= (var_d,var15) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var18 = 1; /* easy isa OTHER*/ +if (unlikely(!var18)) { +var_class_name21 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var22 = var_d >= var15; +var16 = var22; +goto RET_LABEL17; +RET_LABEL17:(void)0; } -var17 = var_d >= var11; -var12 = var17; -goto RET_LABEL13; -RET_LABEL13:(void)0; } -if (var12){ +if (var16){ var = var_d; goto RET_LABEL; } else { -{ /* Inline kernel#Int#unary - (var_d) */ -var20 = -var_d; -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; +{ +{ /* Inline kernel#Int#unary - (var_d) on */ +var25 = -var_d; +var23 = var25; +goto RET_LABEL24; +RET_LABEL24:(void)0; } -var = var18; +} +var = var23; goto RET_LABEL; } RET_LABEL:; @@ -3546,99 +3787,162 @@ long kernel__Char__to_i(char self) { long var /* : Int */; char var1 /* : Char */; short int var2 /* : Bool */; -short int var4 /* : Bool */; -long var5 /* : Int */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; long var6 /* : Int */; -long var8 /* : Int */; -short int var9 /* : Bool */; -long var10 /* : Int */; -long var12 /* : Int */; -char var13 /* : Char */; -long var14 /* : Int */; -long var16 /* : Int */; +long var7 /* : Int */; +long var9 /* : Int */; +short int var10 /* : Bool */; +long var11 /* : Int */; +long var13 /* : Int */; +char var14 /* : Char */; +long var15 /* : Int */; long var17 /* : Int */; -long var19 /* : Int */; -char var20 /* : Char */; +long var18 /* : Int */; +short int var20 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; long var21 /* : Int */; +char var22 /* : Char */; long var23 /* : Int */; -char var24 /* : Char */; long var25 /* : Int */; +char var26 /* : Char */; long var27 /* : Int */; -long var28 /* : Int */; long var29 /* : Int */; -long var31 /* : Int */; -long var32 /* : Int */; -long var34 /* : Int */; +long var30 /* : Int */; +short int var32 /* : Bool */; +int cltype33; +int idtype34; +const char* var_class_name35; +long var36 /* : Int */; +long var37 /* : Int */; +long var38 /* : Int */; +short int var40 /* : Bool */; +int cltype41; +int idtype42; +const char* var_class_name43; +long var44 /* : Int */; var1 = '-'; -{ /* Inline kernel#Char#== (self,var1) */ -var4 = self == var1; -var2 = var4; -goto RET_LABEL3; -RET_LABEL3:(void)0; +{ +{ /* Inline kernel#Char#== (self,var1) on */ +var5 = self == var1; +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +var2 = var3; } if (var2){ -var5 = 1; -{ /* Inline kernel#Int#unary - (var5) */ -var8 = -var5; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var6 = 1; +{ +{ /* Inline kernel#Int#unary - (var6) on */ +var9 = -var6; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; } -var = var6; +} +var = var7; goto RET_LABEL; } else { -var9 = kernel__Char__is_digit(self); -if (var9){ -{ /* Inline kernel#Char#ascii (self) */ -var12 = (unsigned char)self; -var10 = var12; -goto RET_LABEL11; -RET_LABEL11:(void)0; +{ +var10 = kernel__Char__is_digit(self); } -var13 = '0'; -{ /* Inline kernel#Char#ascii (var13) */ -var16 = (unsigned char)var13; -var14 = var16; -goto RET_LABEL15; -RET_LABEL15:(void)0; +if (var10){ +{ +{ /* Inline kernel#Char#ascii (self) on */ +var13 = (unsigned char)self; +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; } -{ /* Inline kernel#Int#- (var10,var14) */ -var19 = var10 - var14; -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; } -var = var17; +var14 = '0'; +{ +{ /* Inline kernel#Char#ascii (var14) on */ +var17 = (unsigned char)var14; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +} +{ +{ /* Inline kernel#Int#- (var11,var15) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var20 = 1; /* easy isa OTHER*/ +if (unlikely(!var20)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var21 = var11 - var15; +var18 = var21; +goto RET_LABEL19; +RET_LABEL19:(void)0; +} +} +var = var18; goto RET_LABEL; } else { -var20 = kernel__Char__to_lower(self); -{ /* Inline kernel#Char#ascii (var20) */ -var23 = (unsigned char)var20; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; -} -var24 = 'a'; -{ /* Inline kernel#Char#ascii (var24) */ -var27 = (unsigned char)var24; -var25 = var27; -goto RET_LABEL26; -RET_LABEL26:(void)0; -} -var28 = 10; -{ /* Inline kernel#Int#+ (var25,var28) */ -var31 = var25 + var28; -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; -} -{ /* Inline kernel#Int#- (var21,var29) */ -var34 = var21 - var29; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +{ +var22 = kernel__Char__to_lower(self); +} +{ +{ /* Inline kernel#Char#ascii (var22) on */ +var25 = (unsigned char)var22; +var23 = var25; +goto RET_LABEL24; +RET_LABEL24:(void)0; +} +} +var26 = 'a'; +{ +{ /* Inline kernel#Char#ascii (var26) on */ +var29 = (unsigned char)var26; +var27 = var29; +goto RET_LABEL28; +RET_LABEL28:(void)0; +} +} +{ +{ /* Inline kernel#Int#- (var23,var27) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var32 = 1; /* easy isa OTHER*/ +if (unlikely(!var32)) { +var_class_name35 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var36 = var23 - var27; +var30 = var36; +goto RET_LABEL31; +RET_LABEL31:(void)0; +} } -var = var32; +var37 = 10; +{ +{ /* Inline kernel#Int#+ (var30,var37) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var40 = 1; /* easy isa OTHER*/ +if (unlikely(!var40)) { +var_class_name43 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var44 = var30 + var37; +var38 = var44; +goto RET_LABEL39; +RET_LABEL39:(void)0; +} +} +var = var38; goto RET_LABEL; } } @@ -3672,7 +3976,7 @@ long var /* : Int */; long var1 /* : Int */; char var3 /* : Char */; long var4 /* : Int */; -{ /* Inline kernel#Char#ascii (self) */ +{ /* Inline kernel#Char#ascii (self) on */ var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; var4 = (unsigned char)var3; var1 = var4; @@ -3683,64 +3987,6 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Char#+ for (self: Char, Int): Char */ -char kernel__Char___43d(char self, long p0) { -char var /* : Char */; -char var1 /* : Char */; -var1 = self + p0; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Char#+ for (self: Object, Int): Discrete */ -val* VIRTUAL_kernel__Char___43d(val* self, long p0) { -val* var /* : Discrete */; -char var1 /* : Char */; -char var3 /* : Char */; -char var4 /* : Char */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Char#+ (self,p0) */ -var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var4 = var3 + p0; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */ -var = var5; -RET_LABEL:; -return var; -} -/* method kernel#Char#- for (self: Char, Int): Char */ -char kernel__Char___45d(char self, long p0) { -char var /* : Char */; -char var1 /* : Char */; -var1 = self - p0; -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Char#- for (self: Object, Int): Discrete */ -val* VIRTUAL_kernel__Char___45d(val* self, long p0) { -val* var /* : Discrete */; -char var1 /* : Char */; -char var3 /* : Char */; -char var4 /* : Char */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Char#- (self,p0) */ -var3 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var4 = var3 - p0; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var5 = BOX_kernel__Char(var1); /* autobox from Char to Discrete */ -var = var5; -RET_LABEL:; -return var; -} /* method kernel#Char#to_lower for (self: Char): Char */ char kernel__Char__to_lower(char self) { char var /* : Char */; @@ -3751,33 +3997,56 @@ char var5 /* : Char */; char var6 /* : Char */; long var7 /* : Int */; long var8 /* : Int */; -long var10 /* : Int */; -char var11 /* : Char */; -char var13 /* : Char */; +short int var10 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var11 /* : Int */; +char var12 /* : Char */; +char var14 /* : Char */; +{ var1 = kernel__Char__is_upper(self); +} if (var1){ -{ /* Inline kernel#Char#ascii (self) */ +{ +{ /* Inline kernel#Char#ascii (self) on */ var4 = (unsigned char)self; var2 = var4; goto RET_LABEL3; RET_LABEL3:(void)0; } +} var5 = 'a'; var6 = 'A'; +{ var7 = kernel__Char__distance(var5, var6); -{ /* Inline kernel#Int#+ (var2,var7) */ -var10 = var2 + var7; -var8 = var10; +} +{ +{ /* Inline kernel#Int#+ (var2,var7) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var10 = 1; /* easy isa OTHER*/ +if (unlikely(!var10)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var11 = var2 + var7; +var8 = var11; goto RET_LABEL9; RET_LABEL9:(void)0; } -{ /* Inline kernel#Int#ascii (var8) */ -var13 = var8; -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; } -var = var11; +{ +{ /* Inline kernel#Int#ascii (var8) on */ +var14 = var8; +var12 = var14; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +} +var = var12; goto RET_LABEL; } else { var = self; @@ -3807,33 +4076,56 @@ char var5 /* : Char */; char var6 /* : Char */; long var7 /* : Int */; long var8 /* : Int */; -long var10 /* : Int */; -char var11 /* : Char */; -char var13 /* : Char */; +short int var10 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var11 /* : Int */; +char var12 /* : Char */; +char var14 /* : Char */; +{ var1 = kernel__Char__is_lower(self); +} if (var1){ -{ /* Inline kernel#Char#ascii (self) */ +{ +{ /* Inline kernel#Char#ascii (self) on */ var4 = (unsigned char)self; var2 = var4; goto RET_LABEL3; RET_LABEL3:(void)0; } +} var5 = 'a'; var6 = 'A'; +{ var7 = kernel__Char__distance(var5, var6); -{ /* Inline kernel#Int#- (var2,var7) */ -var10 = var2 - var7; -var8 = var10; +} +{ +{ /* Inline kernel#Int#- (var2,var7) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var10 = 1; /* easy isa OTHER*/ +if (unlikely(!var10)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); +show_backtrace(1); +} +var11 = var2 - var7; +var8 = var11; goto RET_LABEL9; RET_LABEL9:(void)0; } -{ /* Inline kernel#Int#ascii (var8) */ -var13 = var8; -var11 = var13; -goto RET_LABEL12; -RET_LABEL12:(void)0; } -var = var11; +{ +{ /* Inline kernel#Int#ascii (var8) on */ +var14 = var8; +var12 = var14; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +} +var = var12; goto RET_LABEL; } else { var = self; @@ -3862,6 +4154,7 @@ short int var3 /* : Bool */; short int var5 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var6 /* : Bool */; short int var_ /* var : Bool */; char var7 /* : Char */; @@ -3869,37 +4162,46 @@ short int var8 /* : Bool */; short int var10 /* : Bool */; int cltype11; int idtype12; -short int var13 /* : Bool */; +const char* var_class_name13; +short int var14 /* : Bool */; var2 = '0'; -{ /* Inline kernel#Char#>= (self,var2) */ +{ +{ /* Inline kernel#Char#>= (self,var2) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var5 = 1; /* easy isa OTHER*/ -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456); -exit(1); +if (unlikely(!var5)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547); +show_backtrace(1); } var6 = self >= var2; var3 = var6; goto RET_LABEL4; RET_LABEL4:(void)0; } +} var_ = var3; if (var3){ var7 = '9'; -{ /* Inline kernel#Char#<= (self,var7) */ +{ +{ /* Inline kernel#Char#<= (self,var7) on */ /* 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", 454); -exit(1); -} -var13 = self <= var7; -var8 = var13; +if (unlikely(!var10)) { +var_class_name13 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545); +show_backtrace(1); +} +var14 = self <= var7; +var8 = var14; goto RET_LABEL9; RET_LABEL9:(void)0; } +} var1 = var8; } else { var1 = var_; @@ -3929,6 +4231,7 @@ short int var3 /* : Bool */; short int var5 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var6 /* : Bool */; short int var_ /* var : Bool */; char var7 /* : Char */; @@ -3936,37 +4239,46 @@ short int var8 /* : Bool */; short int var10 /* : Bool */; int cltype11; int idtype12; -short int var13 /* : Bool */; +const char* var_class_name13; +short int var14 /* : Bool */; var2 = 'a'; -{ /* Inline kernel#Char#>= (self,var2) */ +{ +{ /* Inline kernel#Char#>= (self,var2) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var5 = 1; /* easy isa OTHER*/ -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456); -exit(1); +if (unlikely(!var5)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547); +show_backtrace(1); } var6 = self >= var2; var3 = var6; goto RET_LABEL4; RET_LABEL4:(void)0; } +} var_ = var3; if (var3){ var7 = 'z'; -{ /* Inline kernel#Char#<= (self,var7) */ +{ +{ /* Inline kernel#Char#<= (self,var7) on */ /* 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", 454); -exit(1); -} -var13 = self <= var7; -var8 = var13; +if (unlikely(!var10)) { +var_class_name13 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545); +show_backtrace(1); +} +var14 = self <= var7; +var8 = var14; goto RET_LABEL9; RET_LABEL9:(void)0; } +} var1 = var8; } else { var1 = var_; @@ -3996,6 +4308,7 @@ short int var3 /* : Bool */; short int var5 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var6 /* : Bool */; short int var_ /* var : Bool */; char var7 /* : Char */; @@ -4003,37 +4316,46 @@ short int var8 /* : Bool */; short int var10 /* : Bool */; int cltype11; int idtype12; -short int var13 /* : Bool */; +const char* var_class_name13; +short int var14 /* : Bool */; var2 = 'A'; -{ /* Inline kernel#Char#>= (self,var2) */ +{ +{ /* Inline kernel#Char#>= (self,var2) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var5 = 1; /* easy isa OTHER*/ -if (!var5) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 456); -exit(1); +if (unlikely(!var5)) { +var_class_name = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547); +show_backtrace(1); } var6 = self >= var2; var3 = var6; goto RET_LABEL4; RET_LABEL4:(void)0; } +} var_ = var3; if (var3){ var7 = 'Z'; -{ /* Inline kernel#Char#<= (self,var7) */ +{ +{ /* Inline kernel#Char#<= (self,var7) on */ /* 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", 454); -exit(1); -} -var13 = self <= var7; -var8 = var13; +if (unlikely(!var10)) { +var_class_name13 = type_kernel__Char.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545); +show_backtrace(1); +} +var14 = self <= var7; +var8 = var14; goto RET_LABEL9; RET_LABEL9:(void)0; } +} var1 = var8; } else { var1 = var_; @@ -4054,52 +4376,31 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Char#is_letter for (self: Char): Bool */ -short int kernel__Char__is_letter(char self) { +/* method kernel#Pointer#address_is_null for (self: Pointer): Bool */ +short int kernel__Pointer__address_is_null(val* self) { short int var /* : Bool */; -short int var1 /* : Bool */; -short int var2 /* : Bool */; -short int var_ /* var : Bool */; -short int var3 /* : Bool */; -var2 = kernel__Char__is_lower(self); -var_ = var2; -if (var2){ -var1 = var_; -} else { -var3 = kernel__Char__is_upper(self); -var1 = var3; -} +short int var1 /* : Bool for extern */; +void* var2 /* : Pointer for extern */; +var2 = ((struct instance_kernel__Pointer*)self)->value; /* unboxing Pointer */ +var1 = address_is_null(var2); var = var1; goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Char#is_letter for (self: Object): Bool */ -short int VIRTUAL_kernel__Char__is_letter(val* self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -char var2 /* : Char */; -var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var1 = kernel__Char__is_letter(var2); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Pointer#address_is_null for (self: Pointer): Bool */ -short int kernel__Pointer__address_is_null(void* self) { -short int var /* : Bool */; -fprintf(stderr, "NOT YET IMPLEMENTED nitni for kernel#Pointer#address_is_null at lib/standard/kernel.nit:572,2--573,53\n"); -exit(1); -RET_LABEL:; -return var; -} /* method kernel#Pointer#address_is_null for (self: Object): Bool */ short int VIRTUAL_kernel__Pointer__address_is_null(val* self) { short int var /* : Bool */; short int var1 /* : Bool */; -void* var2 /* : Pointer */; -var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to Pointer */; -var1 = kernel__Pointer__address_is_null(var2); +short int var3 /* : Bool for extern */; +void* var4 /* : Pointer for extern */; +{ /* Inline kernel#Pointer#address_is_null (self) on */ +var4 = ((struct instance_kernel__Pointer*)self)->value; /* unboxing Object */ +var3 = address_is_null(var4); +var1 = var3; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var;