X-Git-Url: http://nitlanguage.org diff --git a/c_src/kernel.sep.1.c b/c_src/kernel.sep.1.c index 7e8675c..63a56f2 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,36 +24,11 @@ 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) { -short int var /* : Bool */; -short int var1 /* : Bool */; -var1 = (self == p0) || (self != NULL && p0 != NULL && self->class == p0->class); /* is_same_type_test */ -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) { -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 */ -var1 = var3; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var = var1; -RET_LABEL:; -return var; -} /* 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 || (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 = 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_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)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:; @@ -64,8 +39,8 @@ 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_instance (self,p0) */ -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))); +{ /* 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_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)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; @@ -79,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 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Object__is_same_instance]))(self, var_other) /* is_same_instance on */; +{ +{ /* 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_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)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:; @@ -90,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_kernel__Pointer*)self)->value == ((struct instance_kernel__Pointer*)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; @@ -101,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; @@ -113,54 +116,24 @@ 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); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Object#output for (self: Object) */ -void kernel__Object__output(val* self) { -char var /* : Char */; -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; -} -var4 = '>'; -{ /* Inline kernel#Char#output (var4) */ -printf("%c", var4); -RET_LABEL5:(void)0; -} -RET_LABEL:; -} -/* 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); -RET_LABEL:; +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; } -/* 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; +var5 = !var3; +var1 = var5; +goto RET_LABEL2; +RET_LABEL2:(void)0; } +var = var1; RET_LABEL:; +return var; } /* method kernel#Object#exit for (self: Object, Int) */ void kernel__Object__exit(val* self, long p0) { @@ -169,7 +142,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; } @@ -190,7 +163,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; @@ -206,15 +179,32 @@ long var /* : Int */; long var1 /* : Int */; long var2 /* : Int */; long var3 /* : Int */; -long var5 /* : 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 */; +} var2 = 8; -{ /* Inline kernel#Int#/ (var1,var2) */ -var5 = var1 / var2; -var3 = var5; +{ +{ /* 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", 333); +show_backtrace(1); +} +var6 = var1 / var2; +var3 = var6; goto RET_LABEL4; RET_LABEL4:(void)0; } +} var = var3; goto RET_LABEL; RET_LABEL:; @@ -229,14 +219,36 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Sys#main for (self: Sys) */ -void kernel__Sys__main(val* self) { +/* 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#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; } -/* method kernel#Sys#main for (self: Object) */ -void VIRTUAL_kernel__Sys__main(val* self) { -kernel__Sys__main(self); +var = var1; RET_LABEL:; +return var; } /* method kernel#Sys#init for (self: Sys) */ void kernel__Sys__init(val* self) { @@ -244,49 +256,10 @@ RET_LABEL:; } /* method kernel#Sys#init for (self: Object) */ void VIRTUAL_kernel__Sys__init(val* self) { -kernel__Sys__init(self); -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; -const char* var_class_name; -const char* var_class_name2; -/* 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) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 99); -show_backtrace(1); -} -var_class_name2 = self == NULL ? "null" : self->type->name; -fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "<", var_class_name2); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 99); -show_backtrace(1); -RET_LABEL:; -return var; +{ /* Inline kernel#Sys#init (self) on */ +RET_LABEL1:(void)0; } -/* 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); -var = var1; RET_LABEL:; -return var; } /* method kernel#Comparable#<= for (self: Comparable, Comparable): Bool */ short int kernel__Comparable___60d_61d(val* self, val* p0) { @@ -309,14 +282,16 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { +if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 102); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 111); 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; @@ -353,14 +328,16 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { +if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 106); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 115); 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; @@ -396,14 +373,16 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { +if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 110); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 119); 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:; @@ -444,26 +423,32 @@ var1 = 0; } else { var1 = p0->type->type_table[cltype] == idtype; } -if (!var1) { +if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 113); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 122); 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; @@ -486,550 +471,122 @@ 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; -const char* var_class_name; -short int var2 /* : Bool */; -int cltype3; -int idtype4; -const struct type* type_struct5; -const char* var_class_name6; -val* var_c /* var c: Comparable */; -val* var_d /* var d: Comparable */; -short int var7 /* : Bool */; -short int var8 /* : Bool */; -short int var_ /* var : Bool */; -short int var9 /* : 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) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 126); -show_backtrace(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) { -var_class_name6 = p1 == NULL ? "null" : p1->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 126); -show_backtrace(1); +var = var1; +RET_LABEL:; +return var; } -var_c = p0; -var_d = p1; -var8 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d_61d]))(var_c, self) /* <= on */; -var_ = var8; -if (var8){ -var9 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d_61d]))(self, var_d) /* <= on */; -var7 = var9; -} else { -var7 = 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 = var7; +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; -const char* var_class_name; -val* var_other /* var other: Comparable */; short int var2 /* : Bool */; short int var3 /* : Bool */; -int cltype4; -int idtype5; -const struct type* type_struct6; -const char* var_class_name7; -/* 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) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 132); -show_backtrace(1); -} -var_other = p0; -var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on */; -if (var2){ -var = var_other; -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) { -var_class_name7 = self == NULL ? "null" : self->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 138); -show_backtrace(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 = self; +var3 = !var1; +var = var3; goto RET_LABEL; -} -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); -var = var1; RET_LABEL:; return var; } -/* method kernel#Comparable#min for (self: Comparable, Comparable): Comparable */ -val* kernel__Comparable__min(val* self, val* p0) { -val* var /* : Comparable */; +/* 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 */; -int cltype; -int idtype; -const struct type* type_struct; -const char* var_class_name; -val* var_c /* var c: Comparable */; -short int var2 /* : Bool */; short int var3 /* : Bool */; -int cltype4; -int idtype5; -const struct type* type_struct6; -const char* var_class_name7; -/* 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) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 142); -show_backtrace(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) { -var_class_name7 = self == NULL ? "null" : self->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 148); -show_backtrace(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); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Discrete#succ for (self: Discrete): Discrete */ -val* kernel__Discrete__succ(val* self) { -val* var /* : Discrete */; -long var1 /* : Int */; -val* var2 /* : Discrete */; -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 */; -const char* var_class_name; -var_class_name = self == NULL ? "null" : self->type->name; -fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "+", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 165); -show_backtrace(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 */; -const char* var_class_name; -var_class_name = self == NULL ? "null" : self->type->name; -fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "-", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 168); -show_backtrace(1); -RET_LABEL:; -return var; +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; } -/* 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; -const char* var_class_name; -val* var_d /* var d: Discrete */; -short int var2 /* : Bool */; -short int var3 /* : Bool */; -int cltype4; -int idtype5; -const struct type* type_struct6; -const char* var_class_name7; -val* var_cursor /* var cursor: Discrete */; -val* var_stop /* var stop: Discrete */; -short int var8 /* : Bool */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -const struct type* type_struct12; -const char* var_class_name13; -long var14 /* : Int */; -long var15 /* : Int */; -long var_nb /* var nb: Int */; -short int var16 /* : Bool */; -val* var17 /* : Discrete */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -const struct type* type_struct21; -const char* var_class_name22; -long var23 /* : Int */; -long var24 /* : Int */; -long var26 /* : 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) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 171); -show_backtrace(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) { -var_class_name7 = self == NULL ? "null" : self->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 180); -show_backtrace(1); -} -var_cursor = self; -var_stop = var_d; -} else { -var8 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___62d]))(self, var_d) /* > on */; -if (var8){ -var_cursor = var_d; -/* isa OTHER */ -type_struct12 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype10 = type_struct12->color; -idtype11 = type_struct12->id; -if(cltype10 >= self->type->table_size) { -var9 = 0; -} else { -var9 = self->type->type_table[cltype10] == idtype11; -} -if (!var9) { -var_class_name13 = self == NULL ? "null" : self->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 184); -show_backtrace(1); -} -var_stop = self; -} else { -var14 = 0; -var = var14; -goto RET_LABEL; -} -} -var15 = 0; -var_nb = var15; -for(;;) { -var16 = ((short int (*)(val*, val*))(var_cursor->class->vft[COLOR_kernel__Comparable___60d]))(var_cursor, var_stop) /* < on */; -if (!var16) break; -var17 = ((val* (*)(val*))(var_cursor->class->vft[COLOR_kernel__Discrete__succ]))(var_cursor) /* succ on */; -/* isa OTHER */ -type_struct21 = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER]; -cltype19 = type_struct21->color; -idtype20 = type_struct21->id; -if(cltype19 >= var17->type->table_size) { -var18 = 0; -} else { -var18 = var17->type->type_table[cltype19] == idtype20; -} -if (!var18) { -var_class_name22 = var17 == NULL ? "null" : var17->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 191); -show_backtrace(1); -} -var_cursor = var17; -var23 = 1; -{ /* Inline kernel#Int#+ (var_nb,var23) */ -var26 = var_nb + var23; -var24 = var26; -goto RET_LABEL25; -RET_LABEL25:(void)0; -} -var_nb = var24; -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#hash for (self: Bool): Int */ +long kernel__Bool__hash(short int self) { long var /* : Int */; long var1 /* : Int */; -var1 = kernel__Discrete__distance(self, p0); -var = var1; -RET_LABEL:; -return var; +{ +var1 = kernel__Bool__to_i(self); } -/* 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; } -/* method kernel#Bool#object_id for (self: Object): Int */ -long VIRTUAL_kernel__Bool__object_id(val* self) { +/* method kernel#Bool#hash for (self: Object): Int */ +long VIRTUAL_kernel__Bool__hash(val* self) { long var /* : Int */; long var1 /* : Int */; -short int var3 /* : Bool */; -long var4 /* : Int */; -{ /* Inline kernel#Bool#object_id (self) */ -var3 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */; -var4 = (long)var3; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -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) { -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 = var1; -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) { -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); -var1 = var3; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -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) { -short int var /* : Bool */; -short int var1 /* : Bool */; short int var2 /* : Bool */; -short int var3 /* : 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); -} -var3 = !var1; -var = var3; -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) { -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); -var4 = !var3; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} +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#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) { +/* method kernel#Bool#to_i for (self: Bool): Int */ +long kernel__Bool__to_i(short int self) { long var /* : Int */; long var1 /* : Int */; long var2 /* : Int */; @@ -1045,13 +602,13 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method kernel#Bool#hash for (self: Object): Int */ -long VIRTUAL_kernel__Bool__hash(val* self) { +/* method kernel#Bool#to_i for (self: Object): Int */ +long VIRTUAL_kernel__Bool__to_i(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); +var1 = kernel__Bool__to_i(var2); var = var1; RET_LABEL:; return var; @@ -1072,7 +629,7 @@ long var /* : Int */; long var1 /* : Int */; double var3 /* : Float */; long var4 /* : Int */; -{ /* Inline kernel#Float#object_id (self) */ +{ /* Inline kernel#Float#object_id (self) on */ var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; var4 = (double)var3; var1 = var4; @@ -1083,21 +640,6 @@ 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 */; @@ -1109,10 +651,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Float.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 232); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 289); show_backtrace(1); } var2 = self <= p0; @@ -1133,7 +675,7 @@ const char* var_class_name; double var4 /* : Float */; double var5 /* : Float */; short int var6 /* : Bool */; -{ /* Inline kernel#Float#<= (self,p0) */ +{ /* 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]; @@ -1144,10 +686,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 232); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 289); show_backtrace(1); } var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; @@ -1172,10 +714,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Float.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 233); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 290); show_backtrace(1); } var2 = self < p0; @@ -1196,7 +738,7 @@ const char* var_class_name; double var4 /* : Float */; double var5 /* : Float */; short int var6 /* : Bool */; -{ /* Inline kernel#Float#< (self,p0) */ +{ /* 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]; @@ -1207,10 +749,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 233); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 290); show_backtrace(1); } var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; @@ -1235,10 +777,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Float.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 234); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 291); show_backtrace(1); } var2 = self >= p0; @@ -1259,7 +801,7 @@ const char* var_class_name; double var4 /* : Float */; double var5 /* : Float */; short int var6 /* : Bool */; -{ /* Inline kernel#Float#>= (self,p0) */ +{ /* 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]; @@ -1270,10 +812,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 234); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 291); show_backtrace(1); } var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; @@ -1298,10 +840,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Float.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 235); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 292); show_backtrace(1); } var2 = self > p0; @@ -1322,7 +864,7 @@ const char* var_class_name; double var4 /* : Float */; double var5 /* : Float */; short int var6 /* : Bool */; -{ /* Inline kernel#Float#> (self,p0) */ +{ /* 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]; @@ -1333,10 +875,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 235); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 292); show_backtrace(1); } var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; @@ -1353,27 +895,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; -goto RET_LABEL; +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", 294); +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", 294); +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; } @@ -1387,101 +967,217 @@ 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", 296); +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", 296); +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", 297); +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", 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 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 */; -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", 298); +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___47d(val* self, double p0) { -double var /* : Float */; +/* method kernel#Float#/ for (self: Object, Numeric): Numeric */ +val* VIRTUAL_kernel__Float___47d(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", 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 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; } @@ -1501,7 +1197,7 @@ long var /* : Int */; long var1 /* : Int */; double var3 /* : Float */; long var4 /* : Int */; -{ /* Inline kernel#Float#to_i (self) */ +{ /* Inline kernel#Float#to_i (self) on */ var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */; var4 = (long)var3; var1 = var4; @@ -1512,6 +1208,117 @@ var = var1; RET_LABEL:; return var; } +/* 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#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 */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var4 /* : Int */; +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", 328); +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; +} +/* method kernel#Int#predecessor for (self: Int, Int): Int */ +long kernel__Int__predecessor(long self, long p0) { +long var /* : Int */; +long var_i /* var i: Int */; +long var1 /* : Int */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var4 /* : Int */; +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", 331); +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#predecessor for (self: Object, Int): Discrete */ +val* VIRTUAL_kernel__Int__predecessor(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__predecessor(var2, p0); +var3 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */ +var = var3; +RET_LABEL:; +return var; +} /* method kernel#Int#object_id for (self: Int): Int */ long kernel__Int__object_id(long self) { long var /* : Int */; @@ -1525,7 +1332,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; @@ -1574,7 +1381,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; @@ -1607,7 +1414,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; @@ -1618,21 +1425,6 @@ 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 */; @@ -1644,10 +1436,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324); show_backtrace(1); } var2 = self <= p0; @@ -1668,7 +1460,7 @@ 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]; @@ -1679,10 +1471,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324); show_backtrace(1); } var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; @@ -1707,10 +1499,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } var2 = self < p0; @@ -1731,7 +1523,7 @@ 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]; @@ -1742,10 +1534,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; @@ -1770,10 +1562,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326); show_backtrace(1); } var2 = self >= p0; @@ -1794,7 +1586,7 @@ 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]; @@ -1805,10 +1597,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326); show_backtrace(1); } var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; @@ -1833,10 +1625,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); show_backtrace(1); } var2 = self > p0; @@ -1857,7 +1649,7 @@ 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]; @@ -1868,10 +1660,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); show_backtrace(1); } var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; @@ -1888,29 +1680,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", 328); +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 */; -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; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +long var4 /* : Int */; +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", 328); +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; } @@ -1924,103 +1752,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", 331); +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", 331); +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", 332); +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", 332); +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", 333); +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", 333); +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; } @@ -2040,7 +1982,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; @@ -2067,7 +2009,7 @@ long var /* : Int */; long var1 /* : Int */; long var3 /* : Int */; long var4 /* : Int */; -{ /* Inline kernel#Int#lshift (self,p0) */ +{ /* Inline kernel#Int#lshift (self,p0) on */ var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var4 = var3 << p0; var1 = var4; @@ -2078,29 +2020,21 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Int#rshift for (self: Int, Int): Int */ -long kernel__Int__rshift(long self, long p0) { +/* method kernel#Int#to_i for (self: Int): Int */ +long kernel__Int__to_i(long self) { long var /* : Int */; -long var1 /* : Int */; -var1 = self >> p0; -var = var1; +var = self; 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) { +/* method kernel#Int#to_i for (self: Object): Int */ +long VIRTUAL_kernel__Int__to_i(val* self) { 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; -} +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; @@ -2121,7 +2055,7 @@ double var /* : Float */; double var1 /* : Float */; long var3 /* : Int */; double var4 /* : Float */; -{ /* Inline kernel#Int#to_f (self) */ +{ /* Inline kernel#Int#to_f (self) on */ var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; var4 = (double)var3; var1 = var4; @@ -2132,64 +2066,6 @@ 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 */; -long var1 /* : Int */; -long var3 /* : Int */; -long var4 /* : Int */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Int#succ (self) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3+1; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */ -var = var5; -RET_LABEL:; -return var; -} -/* method kernel#Int#prec for (self: Int): Int */ -long kernel__Int__prec(long self) { -long var /* : Int */; -long var1 /* : Int */; -var1 = self-1; -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 */; -long var3 /* : Int */; -long var4 /* : Int */; -val* var5 /* : Discrete */; -{ /* Inline kernel#Int#prec (self) */ -var3 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var4 = var3-1; -var1 = var4; -goto RET_LABEL2; -RET_LABEL2:(void)0; -} -var5 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */ -var = var5; -RET_LABEL:; -return var; -} /* method kernel#Int#distance for (self: Int, Int): Int */ long kernel__Int__distance(long self, long p0) { long var /* : Int */; @@ -2199,61 +2075,80 @@ 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; -const char* var_class_name11; +long var9 /* : Int */; +short int var10 /* : Bool */; short int var12 /* : Bool */; -long var13 /* : Int */; -long var15 /* : Int */; +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) { +if (unlikely(!var1)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 293); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 352); 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", 331); +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) { -var_class_name11 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); -show_backtrace(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", 326); +show_backtrace(1); +} +var16 = var_d >= var9; +var10 = var16; +goto RET_LABEL11; +RET_LABEL11:(void)0; } -var12 = var_d >= var5; -var6 = var12; -goto RET_LABEL7; -RET_LABEL7:(void)0; } -if (var6){ +if (var10){ var = var_d; goto RET_LABEL; } else { -{ /* Inline kernel#Int#unary - (var_d) */ -var15 = -var_d; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; +{ +{ /* Inline kernel#Int#unary - (var_d) on */ +var19 = -var_d; +var17 = var19; +goto RET_LABEL18; +RET_LABEL18:(void)0; +} } -var = var13; +var = var17; goto RET_LABEL; } RET_LABEL:; @@ -2300,21 +2195,22 @@ long var21 /* : Int */; /* Covariant cast for argument 0 (other) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 303); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 362); 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) { +if (unlikely(!var4)) { var_class_name7 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } var8 = self < var_other; @@ -2322,25 +2218,29 @@ var2 = var8; goto RET_LABEL3; RET_LABEL3:(void)0; } +} if (var2){ var9 = 1; -{ /* Inline kernel#Int#unary - (var9) */ +{ +{ /* 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#Int#< (var_other,self) */ +{ +{ /* Inline kernel#Int#< (var_other,self) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var15 = 1; /* easy isa OTHER*/ -if (!var15) { +if (unlikely(!var15)) { var_class_name18 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } var19 = var_other < self; @@ -2348,6 +2248,7 @@ var13 = var19; goto RET_LABEL14; RET_LABEL14:(void)0; } +} if (var13){ var20 = 1; var = var20; @@ -2374,246 +2275,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; -const char* var_class_name; -short int var2 /* : Bool */; -int cltype3; -int idtype4; -const char* var_class_name5; -long var_c /* var c: Int */; -long var_d /* var d: Int */; -short int var6 /* : Bool */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -int cltype10; -int idtype11; -const char* var_class_name12; -short int var13 /* : Bool */; -short int var_ /* var : Bool */; -short int var14 /* : Bool */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -const char* var_class_name19; -short int var20 /* : Bool */; -short int var21 /* : Bool */; -short int var22 /* : Bool */; -/* Covariant cast for argument 0 (c) isa OTHER */ -/* isa OTHER */ -var1 = 1; /* easy isa OTHER*/ -if (!var1) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 314); -show_backtrace(1); -} -/* Covariant cast for argument 1 (d) isa OTHER */ -/* isa OTHER */ -var2 = 1; /* easy isa OTHER*/ -if (!var2) { -var_class_name5 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name5); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 314); -show_backtrace(1); -} -var_c = p0; -var_d = p1; -{ /* Inline kernel#Int#< (self,var_c) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var9 = 1; /* easy isa OTHER*/ -if (!var9) { -var_class_name12 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); -show_backtrace(1); -} -var13 = self < var_c; -var7 = var13; -goto RET_LABEL8; -RET_LABEL8:(void)0; -} -var_ = var7; -if (var7){ -var6 = var_; -} else { -{ /* Inline kernel#Int#< (var_d,self) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var16 = 1; /* easy isa OTHER*/ -if (!var16) { -var_class_name19 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); -show_backtrace(1); -} -var20 = var_d < self; -var14 = var20; -goto RET_LABEL15; -RET_LABEL15:(void)0; -} -var6 = var14; -} -if (var6){ -var21 = 0; -var = var21; -goto RET_LABEL; -} else { -var22 = 1; -var = var22; -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; -const char* var_class_name; -long var_other /* var other: Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -const char* var_class_name7; -short int var8 /* : Bool */; -/* Covariant cast for argument 0 (other) isa OTHER */ -/* isa OTHER */ -var1 = 1; /* easy isa OTHER*/ -if (!var1) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 323); -show_backtrace(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) { -var_class_name7 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); -show_backtrace(1); -} -var8 = self < var_other; -var2 = var8; -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; -const char* var_class_name; -long var_c /* var c: Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -const char* var_class_name7; -short int var8 /* : Bool */; -/* Covariant cast for argument 0 (c) isa OTHER */ -/* isa OTHER */ -var1 = 1; /* easy isa OTHER*/ -if (!var1) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 332); -show_backtrace(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) { -var_class_name7 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); -show_backtrace(1); -} -var8 = var_c < self; -var2 = var8; -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 */; @@ -2630,7 +2291,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; @@ -2647,128 +2308,174 @@ 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; const char* var_class_name; -short int var10 /* : Bool */; -long var11 /* : Int */; -long var_d /* var d: Int */; +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; -const char* var_class_name27; -short int var28 /* : Bool */; -long var29 /* : Int */; -long var30 /* : 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 var33 /* : Int */; -long var35 /* : 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) { +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; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } -var10 = self < var6; -var7 = var10; -goto RET_LABEL8; -RET_LABEL8:(void)0; +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; -} else { -var15 = 0; -{ /* Inline kernel#Int#== (self,var15) */ -var18 = self == var15; -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; +if (var8){ +var12 = 1; +var_d = var12; +{ +{ /* Inline kernel#Int#unary - (self) on */ +var15 = -self; +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; } -if (var16){ -var19 = 1; -var = var19; +} +var_n = var13; +} else { +var16 = 0; +{ +{ /* Inline kernel#Int#== (self,var16) on */ +var20 = self == var16; +var18 = var20; +goto RET_LABEL19; +RET_LABEL19:(void)0; +} +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) { -var_class_name27 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +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", 327); +show_backtrace(1); +} +var30 = var_n > var23; +var24 = var30; +goto RET_LABEL25; +RET_LABEL25:(void)0; +} +} +if (!var24) break; +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", 328); show_backtrace(1); } -var28 = var_n > var21; -var22 = var28; -goto RET_LABEL23; -RET_LABEL23:(void)0; +var38 = var_d + var31; +var32 = var38; +goto RET_LABEL33; +RET_LABEL33:(void)0; } -if (!var22) break; -var29 = 1; -{ /* Inline kernel#Int#+ (var_d,var29) */ -var32 = var_d + var29; -var30 = var32; -goto RET_LABEL31; -RET_LABEL31:(void)0; } -var_d = var30; -{ /* Inline kernel#Int#/ (var_n,var_b) */ -var35 = var_n / var_b; -var33 = var35; -goto RET_LABEL34; -RET_LABEL34:(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", 333); +show_backtrace(1); +} +var45 = var_n / var_b; +var39 = var45; +goto RET_LABEL40; +RET_LABEL40:(void)0; } -var_n = var33; +} +var_n = var39; CONTINUE_label: (void)0; } BREAK_label: (void)0; @@ -2820,42 +2527,63 @@ const char* var_class_name25; short int var26 /* : Bool */; long var27 /* : Int */; long var28 /* : Int */; -long var30 /* : Int */; -long var31 /* : Int */; -short int var32 /* : Bool */; -short int var34 /* : Bool */; -int cltype35; -int idtype36; -const char* var_class_name37; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +const char* var_class_name33; +long var34 /* : Int */; +long var35 /* : Int */; +short int var36 /* : Bool */; short int var38 /* : Bool */; -long var39 /* : Int */; -long var40 /* : Int */; -long var42 /* : Int */; +int cltype39; +int idtype40; +const char* var_class_name41; +short int var42 /* : Bool */; long var43 /* : Int */; -short int var44 /* : Bool */; +long var44 /* : Int */; short int var46 /* : Bool */; int cltype47; int idtype48; const char* var_class_name49; -short int var50 /* : Bool */; +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 */; -long var62 /* : 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) { +if (unlikely(!var4)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } var5 = self < var1; @@ -2863,15 +2591,18 @@ 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; @@ -2880,14 +2611,15 @@ 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) { +if (unlikely(!var14)) { var_class_name17 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } var18 = var_val < var11; @@ -2895,20 +2627,22 @@ var12 = var18; goto RET_LABEL13; RET_LABEL13:(void)0; } +} if (var12){ var = var_result; goto RET_LABEL; } else { } var19 = 100; -{ /* Inline kernel#Int#< (var_val,var19) */ +{ +{ /* Inline kernel#Int#< (var_val,var19) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var22 = 1; /* easy isa OTHER*/ -if (!var22) { +if (unlikely(!var22)) { var_class_name25 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } var26 = var_val < var19; @@ -2916,90 +2650,150 @@ var20 = var26; goto RET_LABEL21; RET_LABEL21:(void)0; } +} if (var20){ var27 = 1; -{ /* Inline kernel#Int#+ (var_result,var27) */ -var30 = var_result + var27; -var28 = var30; +{ +{ /* 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", 328); +show_backtrace(1); +} +var34 = var_result + var27; +var28 = var34; goto RET_LABEL29; RET_LABEL29:(void)0; } +} var = var28; goto RET_LABEL; } else { } -var31 = 1000; -{ /* Inline kernel#Int#< (var_val,var31) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var34 = 1; /* easy isa OTHER*/ -if (!var34) { -var_class_name37 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +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", 325); show_backtrace(1); } -var38 = var_val < var31; -var32 = var38; -goto RET_LABEL33; -RET_LABEL33:(void)0; -} -if (var32){ -var39 = 2; -{ /* Inline kernel#Int#+ (var_result,var39) */ -var42 = var_result + var39; -var40 = var42; -goto RET_LABEL41; -RET_LABEL41:(void)0; +var42 = var_val < var35; +var36 = var42; +goto RET_LABEL37; +RET_LABEL37:(void)0; } -var = var40; -goto RET_LABEL; -} else { } -var43 = 10000; -{ /* Inline kernel#Int#< (var_val,var43) */ +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 (!var46) { +if (unlikely(!var46)) { var_class_name49 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); show_backtrace(1); } -var50 = var_val < var43; +var50 = var_result + var43; var44 = var50; goto RET_LABEL45; RET_LABEL45:(void)0; } -if (var44){ -var51 = 3; -{ /* Inline kernel#Int#+ (var_result,var51) */ -var54 = var_result + var51; -var52 = var54; -goto RET_LABEL53; -RET_LABEL53:(void)0; } -var = var52; +var = var44; goto RET_LABEL; } else { } -var55 = 10000; -{ /* Inline kernel#Int#/ (var_val,var55) */ -var58 = var_val / var55; -var56 = var58; -goto RET_LABEL57; -RET_LABEL57:(void)0; +var51 = 10000; +{ +{ /* 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", 325); +show_backtrace(1); +} +var58 = var_val < var51; +var52 = var58; +goto RET_LABEL53; +RET_LABEL53:(void)0; } -var_val = var56; -var59 = 4; -{ /* Inline kernel#Int#+ (var_result,var59) */ -var62 = var_result + var59; -var60 = var62; +} +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", 328); +show_backtrace(1); +} +var66 = var_result + var59; +var60 = var66; goto RET_LABEL61; RET_LABEL61:(void)0; } -var_result = var60; +} +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", 333); +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", 328); +show_backtrace(1); +} +var82 = var_result + var75; +var76 = var82; +goto RET_LABEL77; +RET_LABEL77:(void)0; +} +} +var_result = var76; CONTINUE_label: (void)0; } BREAK_label: (void)0; @@ -3047,28 +2841,41 @@ char var23 /* : Char */; long var24 /* : Int */; long var26 /* : Int */; long var27 /* : Int */; -long var29 /* : Int */; -char var30 /* : Char */; -char var32 /* : Char */; -char var33 /* : Char */; -long var34 /* : Int */; -long var36 /* : Int */; -long var37 /* : 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 var40 /* : Int */; long var41 /* : Int */; -long var43 /* : Int */; -char var44 /* : Char */; -char var46 /* : 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) { +if (unlikely(!var5)) { var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326); show_backtrace(1); } var6 = self >= var2; @@ -3076,17 +2883,19 @@ 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) { +if (unlikely(!var10)) { var_class_name13 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 324); show_backtrace(1); } var14 = self <= var7; @@ -3094,24 +2903,26 @@ var8 = var14; goto RET_LABEL9; RET_LABEL9:(void)0; } +} var1 = var8; } else { var1 = var_; } -if (!var1) { -fprintf(stderr, "Runtime error: %s", "Assert failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 403); +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 462); show_backtrace(1); } var15 = 10; -{ /* Inline kernel#Int#< (self,var15) */ +{ +{ /* Inline kernel#Int#< (self,var15) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var18 = 1; /* easy isa OTHER*/ -if (!var18) { +if (unlikely(!var18)) { var_class_name21 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); show_backtrace(1); } var22 = self < var15; @@ -3119,133 +2930,110 @@ var16 = var22; goto RET_LABEL17; RET_LABEL17:(void)0; } +} if (var16){ var23 = '0'; -{ /* Inline kernel#Char#ascii (var23) */ +{ +{ /* Inline kernel#Char#ascii (var23) on */ var26 = (unsigned char)var23; var24 = var26; goto RET_LABEL25; RET_LABEL25:(void)0; } -{ /* Inline kernel#Int#+ (self,var24) */ -var29 = self + var24; -var27 = var29; +} +{ +{ /* 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", 328); +show_backtrace(1); +} +var33 = self + var24; +var27 = var33; goto RET_LABEL28; RET_LABEL28:(void)0; } -{ /* Inline kernel#Int#ascii (var27) */ -var32 = var27; -var30 = var32; -goto RET_LABEL31; -RET_LABEL31:(void)0; } -var = var30; -goto RET_LABEL; -} else { -var33 = 'a'; -{ /* Inline kernel#Char#ascii (var33) */ -var36 = (unsigned char)var33; +{ +{ /* Inline kernel#Int#ascii (var27) on */ +var36 = var27; var34 = var36; goto RET_LABEL35; RET_LABEL35:(void)0; } -var37 = 10; -{ /* Inline kernel#Int#- (var34,var37) */ -var40 = var34 - var37; +} +var = var34; +goto RET_LABEL; +} else { +var37 = 'a'; +{ +{ /* Inline kernel#Char#ascii (var37) on */ +var40 = (unsigned char)var37; var38 = var40; goto RET_LABEL39; RET_LABEL39:(void)0; } -{ /* Inline kernel#Int#+ (self,var38) */ -var43 = self + var38; -var41 = var43; -goto RET_LABEL42; -RET_LABEL42:(void)0; } -{ /* Inline kernel#Int#ascii (var41) */ -var46 = var41; -var44 = var46; -goto RET_LABEL45; -RET_LABEL45:(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", 331); +show_backtrace(1); } -var = var44; -goto RET_LABEL; +var48 = var38 - var41; +var42 = var48; +goto RET_LABEL43; +RET_LABEL43:(void)0; } -RET_LABEL:; -return var; } -/* method kernel#Int#to_c for (self: Object): Char */ -char VIRTUAL_kernel__Int__to_c(val* self) { -char var /* : Char */; -char var1 /* : Char */; -long var2 /* : Int */; -var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var1 = kernel__Int__to_c(var2); -var = var1; -RET_LABEL:; -return var; -} -/* method kernel#Int#abs for (self: Int): Int */ -long kernel__Int__abs(long self) { -long var /* : Int */; -long var1 /* : Int */; -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 */; -var1 = 0; -{ /* Inline kernel#Int#>= (self,var1) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (!var4) { -var_class_name = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); +{ +{ /* 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", 328); show_backtrace(1); } -var5 = self >= var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var55 = self + var42; +var49 = var55; +goto RET_LABEL50; +RET_LABEL50:(void)0; } -if (var2){ -var = self; -goto RET_LABEL; -} else { -var6 = 1; -{ /* Inline kernel#Int#unary - (var6) */ -var9 = -var6; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; } -{ /* Inline kernel#Int#* (var7,self) */ -var12 = var7 * self; -var10 = var12; -goto RET_LABEL11; -RET_LABEL11:(void)0; +{ +{ /* Inline kernel#Int#ascii (var49) on */ +var58 = var49; +var56 = var58; +goto RET_LABEL57; +RET_LABEL57:(void)0; } -var = var10; +} +var = var56; goto RET_LABEL; } RET_LABEL:; return var; } -/* method kernel#Int#abs for (self: Object): Int */ -long VIRTUAL_kernel__Int__abs(val* self) { -long var /* : Int */; -long var1 /* : Int */; +/* method kernel#Int#to_c for (self: Object): Char */ +char VIRTUAL_kernel__Int__to_c(val* self) { +char var /* : Char */; +char var1 /* : Char */; long var2 /* : Int */; var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */; -var1 = kernel__Int__abs(var2); +var1 = kernel__Int__to_c(var2); var = var1; RET_LABEL:; return var; @@ -3266,7 +3054,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; @@ -3282,12 +3070,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:; @@ -3324,7 +3114,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; @@ -3357,7 +3147,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; @@ -3368,21 +3158,6 @@ 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 */; @@ -3394,10 +3169,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 499); show_backtrace(1); } var2 = self <= p0; @@ -3418,7 +3193,7 @@ 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]; @@ -3429,10 +3204,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 499); show_backtrace(1); } var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; @@ -3457,10 +3232,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 441); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 500); show_backtrace(1); } var2 = self < p0; @@ -3481,7 +3256,7 @@ 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]; @@ -3492,10 +3267,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 441); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 500); show_backtrace(1); } var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; @@ -3520,10 +3295,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 501); show_backtrace(1); } var2 = self >= p0; @@ -3544,7 +3319,7 @@ 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]; @@ -3555,10 +3330,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 501); show_backtrace(1); } var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; @@ -3583,10 +3358,10 @@ short int var2 /* : Bool */; /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ var1 = 1; /* easy isa OTHER*/ -if (!var1) { +if (unlikely(!var1)) { var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 443); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 502); show_backtrace(1); } var2 = self > p0; @@ -3607,7 +3382,7 @@ 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]; @@ -3618,10 +3393,10 @@ var3 = 0; } else { var3 = p0->type->type_table[cltype] == idtype; } -if (!var3) { +if (unlikely(!var3)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 443); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 502); show_backtrace(1); } var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; @@ -3635,26 +3410,26 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Char#succ for (self: Char): Char */ -char kernel__Char__succ(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#succ for (self: Object): Discrete */ -val* VIRTUAL_kernel__Char__succ(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#succ (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; @@ -3664,26 +3439,26 @@ var = var5; RET_LABEL:; return var; } -/* method kernel#Char#prec for (self: Char): Char */ -char kernel__Char__prec(char self) { +/* method kernel#Char#predecessor for (self: Char, Int): Char */ +char kernel__Char__predecessor(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#predecessor for (self: Object, Int): Discrete */ +val* VIRTUAL_kernel__Char__predecessor(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#predecessor (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; @@ -3706,73 +3481,96 @@ 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; -const char* var_class_name17; +long var15 /* : Int */; +short int var16 /* : Bool */; short int var18 /* : Bool */; -long var19 /* : Int */; -long var21 /* : Int */; +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) { +if (unlikely(!var1)) { var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 448); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 507); 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", 331); +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) { -var_class_name17 = type_kernel__Int.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); +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", 326); show_backtrace(1); } -var18 = var_d >= var11; -var12 = var18; -goto RET_LABEL13; -RET_LABEL13:(void)0; +var22 = var_d >= var15; +var16 = var22; +goto RET_LABEL17; +RET_LABEL17:(void)0; } -if (var12){ +} +if (var16){ var = var_d; goto RET_LABEL; } else { -{ /* Inline kernel#Int#unary - (var_d) */ -var21 = -var_d; -var19 = var21; -goto RET_LABEL20; -RET_LABEL20:(void)0; +{ +{ /* Inline kernel#Int#unary - (var_d) on */ +var25 = -var_d; +var23 = var25; +goto RET_LABEL24; +RET_LABEL24:(void)0; } -var = var19; +} +var = var23; goto RET_LABEL; } RET_LABEL:; @@ -3796,99 +3594,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 var30 /* : Int */; -long var31 /* : Int */; -long var32 /* : Int */; -long var34 /* : Int */; -var1 = '-'; -{ /* Inline kernel#Char#== (self,var1) */ -var4 = self == var1; -var2 = var4; -goto RET_LABEL3; -RET_LABEL3:(void)0; +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) 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", 331); +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; -} -{ /* Inline kernel#Int#- (var21,var25) */ -var30 = var21 - var25; -var28 = var30; -goto RET_LABEL29; -RET_LABEL29:(void)0; +{ +var22 = kernel__Char__to_lower(self); } -var31 = 10; -{ /* Inline kernel#Int#+ (var28,var31) */ -var34 = var28 + var31; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +{ +{ /* 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", 331); +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", 328); +show_backtrace(1); +} +var44 = var30 + var37; +var38 = var44; +goto RET_LABEL39; +RET_LABEL39:(void)0; +} +} +var = var38; goto RET_LABEL; } } @@ -3922,7 +3783,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; @@ -3933,64 +3794,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 */; @@ -4001,33 +3804,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", 328); +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; @@ -4047,62 +3873,6 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Char#to_upper for (self: Char): Char */ -char kernel__Char__to_upper(char self) { -char var /* : Char */; -short int var1 /* : Bool */; -long var2 /* : Int */; -long var4 /* : Int */; -char var5 /* : Char */; -char var6 /* : Char */; -long var7 /* : Int */; -long var8 /* : Int */; -long var10 /* : Int */; -char var11 /* : Char */; -char var13 /* : Char */; -var1 = kernel__Char__is_lower(self); -if (var1){ -{ /* Inline kernel#Char#ascii (self) */ -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; -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; -goto RET_LABEL; -} else { -var = self; -goto RET_LABEL; -} -RET_LABEL:; -return var; -} -/* method kernel#Char#to_upper for (self: Object): Char */ -char VIRTUAL_kernel__Char__to_upper(val* self) { -char var /* : Char */; -char var1 /* : Char */; -char var2 /* : Char */; -var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */; -var1 = kernel__Char__to_upper(var2); -var = var1; -RET_LABEL:; -return var; -} /* method kernel#Char#is_digit for (self: Char): Bool */ short int kernel__Char__is_digit(char self) { short int var /* : Bool */; @@ -4123,14 +3893,15 @@ int idtype12; 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) { +if (unlikely(!var5)) { var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 501); show_backtrace(1); } var6 = self >= var2; @@ -4138,17 +3909,19 @@ 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) { +if (unlikely(!var10)) { var_class_name13 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 499); show_backtrace(1); } var14 = self <= var7; @@ -4156,6 +3929,7 @@ var8 = var14; goto RET_LABEL9; RET_LABEL9:(void)0; } +} var1 = var8; } else { var1 = var_; @@ -4176,79 +3950,6 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Char#is_lower for (self: Char): Bool */ -short int kernel__Char__is_lower(char self) { -short int var /* : Bool */; -short int var1 /* : Bool */; -char var2 /* : Char */; -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 */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -const char* var_class_name13; -short int var14 /* : Bool */; -var2 = 'a'; -{ /* Inline kernel#Char#>= (self,var2) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (!var5) { -var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442); -show_backtrace(1); -} -var6 = self >= var2; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; -} -var_ = var3; -if (var3){ -var7 = 'z'; -{ /* Inline kernel#Char#<= (self,var7) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var10 = 1; /* easy isa OTHER*/ -if (!var10) { -var_class_name13 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440); -show_backtrace(1); -} -var14 = self <= var7; -var8 = var14; -goto RET_LABEL9; -RET_LABEL9:(void)0; -} -var1 = var8; -} else { -var1 = var_; -} -var = var1; -goto RET_LABEL; -RET_LABEL:; -return var; -} -/* method kernel#Char#is_lower for (self: Object): Bool */ -short int VIRTUAL_kernel__Char__is_lower(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_lower(var2); -var = var1; -RET_LABEL:; -return var; -} /* method kernel#Char#is_upper for (self: Char): Bool */ short int kernel__Char__is_upper(char self) { short int var /* : Bool */; @@ -4269,14 +3970,15 @@ int idtype12; 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) { +if (unlikely(!var5)) { var_class_name = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 501); show_backtrace(1); } var6 = self >= var2; @@ -4284,17 +3986,19 @@ 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) { +if (unlikely(!var10)) { var_class_name13 = type_kernel__Char.name; -fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 499); show_backtrace(1); } var14 = self <= var7; @@ -4302,6 +4006,7 @@ var8 = var14; goto RET_LABEL9; RET_LABEL9:(void)0; } +} var1 = var8; } else { var1 = var_; @@ -4322,42 +4027,11 @@ var = var1; RET_LABEL:; return var; } -/* method kernel#Char#is_letter for (self: Char): Bool */ -short int kernel__Char__is_letter(char 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; -} -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 */; short int var1 /* : Bool */; -var1 = kernel___Pointer_address_is_null___impl(self); +var1 = address_is_null(self); var = var1; goto RET_LABEL; RET_LABEL:; @@ -4367,9 +4041,15 @@ return var; 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 */; +void* var4 /* : Pointer */; +{ /* Inline kernel#Pointer#address_is_null (self) on */ +var4 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to Pointer */; +var3 = address_is_null(var4); +var1 = var3; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} var = var1; RET_LABEL:; return var;