model_utils: extract mclasses and mclassdefs from MProject and Mgroup
[nit.git] / c_src / kernel.sep.1.c
index 3010993..7e8675c 100644 (file)
@@ -270,12 +270,12 @@ 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);
-exit(1);
+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);
-exit(1);
+show_backtrace(1);
 RET_LABEL:;
 return var;
 }
@@ -313,7 +313,7 @@ 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", 102);
-exit(1);
+show_backtrace(1);
 }
 var_other = p0;
 var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
@@ -357,7 +357,7 @@ 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", 106);
-exit(1);
+show_backtrace(1);
 }
 var_other = p0;
 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
@@ -400,7 +400,7 @@ 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", 110);
-exit(1);
+show_backtrace(1);
 }
 var_other = p0;
 var2 = ((short int (*)(val*, val*))(var_other->class->vft[COLOR_kernel__Comparable___60d]))(var_other, self) /* < on <var_other:Comparable>*/;
@@ -448,7 +448,7 @@ 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", 113);
-exit(1);
+show_backtrace(1);
 }
 var_other = p0;
 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
@@ -519,7 +519,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 /* Covariant cast for argument 1 (d) <p1:Comparable> isa OTHER */
 /* <p1:Comparable> isa OTHER */
@@ -535,7 +535,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var_c = p0;
 var_d = p1;
@@ -590,7 +590,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var_other = p0;
 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_other) /* < on <self:Comparable>*/;
@@ -611,7 +611,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var = self;
 goto RET_LABEL;
@@ -657,7 +657,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var_c = p0;
 var2 = ((short int (*)(val*, val*))(var_c->class->vft[COLOR_kernel__Comparable___60d]))(var_c, self) /* < on <var_c:Comparable>*/;
@@ -678,7 +678,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var = self;
 goto RET_LABEL;
@@ -744,7 +744,7 @@ 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);
-exit(1);
+show_backtrace(1);
 RET_LABEL:;
 return var;
 }
@@ -764,7 +764,7 @@ 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);
-exit(1);
+show_backtrace(1);
 RET_LABEL:;
 return var;
 }
@@ -827,7 +827,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var_d = p0;
 var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_kernel__Comparable___60d]))(self, var_d) /* < on <self:Discrete>*/;
@@ -845,7 +845,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var_cursor = self;
 var_stop = var_d;
@@ -866,7 +866,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var_stop = self;
 } else {
@@ -894,7 +894,7 @@ 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);
-exit(1);
+show_backtrace(1);
 }
 var_cursor = var17;
 var23 = 1;
@@ -1102,22 +1102,58 @@ RET_LABEL:;
 short int kernel__Float___60d_61d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-var1 = self <= p0;
-var = var1;
+int cltype;
+int idtype;
+const char* var_class_name;
+short int var2 /* : Bool */;
+/* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
+/* <p0:Float> isa OTHER */
+var1 = 1; /* easy <p0:Float> isa OTHER*/
+if (!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);
+show_backtrace(1);
+}
+var2 = self <= p0;
+var = var2;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#<= for (self: Object, Float): Bool */
-short int VIRTUAL_kernel__Float___60d_61d(val* self, double p0) {
+/* method kernel#Float#<= for (self: Object, Comparable): Bool */
+short int VIRTUAL_kernel__Float___60d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-double var3 /* : Float */;
-short int var4 /* : Bool */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+double var4 /* : Float */;
+double var5 /* : Float */;
+short int var6 /* : Bool */;
 { /* Inline kernel#Float#<= (self,p0) */
-var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var4 = var3 <= p0;
-var1 = var4;
+/* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
+/* <p0:Comparable> 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 (!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);
+show_backtrace(1);
+}
+var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
+var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var6 = var4 <= var5;
+var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
@@ -1129,22 +1165,58 @@ return var;
 short int kernel__Float___60d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-var1 = self < p0;
-var = var1;
+int cltype;
+int idtype;
+const char* var_class_name;
+short int var2 /* : Bool */;
+/* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
+/* <p0:Float> isa OTHER */
+var1 = 1; /* easy <p0:Float> isa OTHER*/
+if (!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);
+show_backtrace(1);
+}
+var2 = self < p0;
+var = var2;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#< for (self: Object, Float): Bool */
-short int VIRTUAL_kernel__Float___60d(val* self, double p0) {
+/* method kernel#Float#< for (self: Object, Comparable): Bool */
+short int VIRTUAL_kernel__Float___60d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-double var3 /* : Float */;
-short int var4 /* : Bool */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+double var4 /* : Float */;
+double var5 /* : Float */;
+short int var6 /* : Bool */;
 { /* Inline kernel#Float#< (self,p0) */
-var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var4 = var3 < p0;
-var1 = var4;
+/* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
+/* <p0:Comparable> 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 (!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);
+show_backtrace(1);
+}
+var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
+var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var6 = var4 < var5;
+var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
@@ -1156,22 +1228,58 @@ return var;
 short int kernel__Float___62d_61d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-var1 = self >= p0;
-var = var1;
+int cltype;
+int idtype;
+const char* var_class_name;
+short int var2 /* : Bool */;
+/* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
+/* <p0:Float> isa OTHER */
+var1 = 1; /* easy <p0:Float> isa OTHER*/
+if (!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);
+show_backtrace(1);
+}
+var2 = self >= p0;
+var = var2;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#>= for (self: Object, Float): Bool */
-short int VIRTUAL_kernel__Float___62d_61d(val* self, double p0) {
+/* method kernel#Float#>= for (self: Object, Comparable): Bool */
+short int VIRTUAL_kernel__Float___62d_61d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-double var3 /* : Float */;
-short int var4 /* : Bool */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+double var4 /* : Float */;
+double var5 /* : Float */;
+short int var6 /* : Bool */;
 { /* Inline kernel#Float#>= (self,p0) */
-var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var4 = var3 >= p0;
-var1 = var4;
+/* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
+/* <p0:Comparable> 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 (!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);
+show_backtrace(1);
+}
+var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
+var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var6 = var4 >= var5;
+var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
@@ -1183,22 +1291,58 @@ return var;
 short int kernel__Float___62d(double self, double p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-var1 = self > p0;
-var = var1;
+int cltype;
+int idtype;
+const char* var_class_name;
+short int var2 /* : Bool */;
+/* Covariant cast for argument 0 (i) <p0:Float> isa OTHER */
+/* <p0:Float> isa OTHER */
+var1 = 1; /* easy <p0:Float> isa OTHER*/
+if (!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);
+show_backtrace(1);
+}
+var2 = self > p0;
+var = var2;
 goto RET_LABEL;
 RET_LABEL:;
 return var;
 }
-/* method kernel#Float#> for (self: Object, Float): Bool */
-short int VIRTUAL_kernel__Float___62d(val* self, double p0) {
+/* method kernel#Float#> for (self: Object, Comparable): Bool */
+short int VIRTUAL_kernel__Float___62d(val* self, val* p0) {
 short int var /* : Bool */;
 short int var1 /* : Bool */;
-double var3 /* : Float */;
-short int var4 /* : Bool */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+double var4 /* : Float */;
+double var5 /* : Float */;
+short int var6 /* : Bool */;
 { /* Inline kernel#Float#> (self,p0) */
-var3 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
-var4 = var3 > p0;
-var1 = var4;
+/* Covariant cast for argument 0 (i) <p0:Comparable> isa OTHER */
+/* <p0:Comparable> 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 (!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);
+show_backtrace(1);
+}
+var4 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
+var5 = ((struct instance_kernel__Float*)p0)->value; /* autounbox from Comparable to Float */;
+var6 = var4 > var5;
+var1 = var6;
 goto RET_LABEL2;
 RET_LABEL2:(void)0;
 }
@@ -1503,8 +1647,8 @@ var1 = 1; /* easy <p0:Int> 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", 260);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
+show_backtrace(1);
 }
 var2 = self <= p0;
 var = var2;
@@ -1538,8 +1682,8 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (!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", 260);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
+show_backtrace(1);
 }
 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
@@ -1566,8 +1710,8 @@ var1 = 1; /* easy <p0:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var2 = self < p0;
 var = var2;
@@ -1601,8 +1745,8 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (!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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
@@ -1629,8 +1773,8 @@ var1 = 1; /* easy <p0:Int> 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", 262);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
+show_backtrace(1);
 }
 var2 = self >= p0;
 var = var2;
@@ -1664,8 +1808,8 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (!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", 262);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
+show_backtrace(1);
 }
 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
@@ -1692,8 +1836,8 @@ var1 = 1; /* easy <p0:Int> 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", 263);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
+show_backtrace(1);
 }
 var2 = self > p0;
 var = var2;
@@ -1727,8 +1871,8 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (!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", 263);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
+show_backtrace(1);
 }
 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
 var5 = ((struct instance_kernel__Int*)p0)->value; /* autounbox from Comparable to Int */;
@@ -2072,8 +2216,8 @@ var1 = 1; /* easy <p0:Int> 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", 289);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 293);
+show_backtrace(1);
 }
 var_i = p0;
 { /* Inline kernel#Int#- (self,var_i) */
@@ -2091,8 +2235,8 @@ var8 = 1; /* easy <var5:Int> 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", 262);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
+show_backtrace(1);
 }
 var12 = var_d >= var5;
 var6 = var12;
@@ -2159,8 +2303,8 @@ var1 = 1; /* easy <p0:Int> 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", 299);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 303);
+show_backtrace(1);
 }
 var_other = p0;
 { /* Inline kernel#Int#< (self,var_other) */
@@ -2170,8 +2314,8 @@ var4 = 1; /* easy <var_other:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var8 = self < var_other;
 var2 = var8;
@@ -2196,8 +2340,8 @@ var15 = 1; /* easy <self:Int> isa OTHER*/
 if (!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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var19 = var_other < self;
 var13 = var19;
@@ -2265,8 +2409,8 @@ var1 = 1; /* easy <p0:Int> 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", 310);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 314);
+show_backtrace(1);
 }
 /* Covariant cast for argument 1 (d) <p1:Int> isa OTHER */
 /* <p1:Int> isa OTHER */
@@ -2274,8 +2418,8 @@ var2 = 1; /* easy <p1:Int> 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", 310);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 314);
+show_backtrace(1);
 }
 var_c = p0;
 var_d = p1;
@@ -2286,8 +2430,8 @@ var9 = 1; /* easy <var_c:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var13 = self < var_c;
 var7 = var13;
@@ -2305,8 +2449,8 @@ var16 = 1; /* easy <self:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var20 = var_d < self;
 var14 = var20;
@@ -2362,8 +2506,8 @@ var1 = 1; /* easy <p0:Int> 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", 319);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 323);
+show_backtrace(1);
 }
 var_other = p0;
 { /* Inline kernel#Int#< (self,var_other) */
@@ -2373,8 +2517,8 @@ var4 = 1; /* easy <var_other:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var8 = self < var_other;
 var2 = var8;
@@ -2426,8 +2570,8 @@ var1 = 1; /* easy <p0:Int> 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", 328);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 332);
+show_backtrace(1);
 }
 var_c = p0;
 { /* Inline kernel#Int#< (var_c,self) */
@@ -2437,8 +2581,8 @@ var4 = 1; /* easy <self:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var8 = var_c < self;
 var2 = var8;
@@ -2556,8 +2700,8 @@ var9 = 1; /* easy <var6:Int> isa OTHER*/
 if (!var9) {
 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var10 = self < var6;
 var7 = var10;
@@ -2601,8 +2745,8 @@ var24 = 1; /* easy <var21:Int> 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", 263);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267);
+show_backtrace(1);
 }
 var28 = var_n > var21;
 var22 = var28;
@@ -2711,8 +2855,8 @@ var4 = 1; /* easy <var1:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var5 = self < var1;
 var2 = var5;
@@ -2743,8 +2887,8 @@ var14 = 1; /* easy <var11:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var18 = var_val < var11;
 var12 = var18;
@@ -2764,8 +2908,8 @@ var22 = 1; /* easy <var19:Int> isa OTHER*/
 if (!var22) {
 var_class_name25 = type_kernel__Int.name;
 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
-fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var26 = var_val < var19;
 var20 = var26;
@@ -2792,8 +2936,8 @@ var34 = 1; /* easy <var31:Int> 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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var38 = var_val < var31;
 var32 = var38;
@@ -2820,8 +2964,8 @@ var46 = 1; /* easy <var43:Int> isa OTHER*/
 if (!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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var50 = var_val < var43;
 var44 = var50;
@@ -2924,8 +3068,8 @@ var5 = 1; /* easy <var2:Int> isa OTHER*/
 if (!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", 262);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
+show_backtrace(1);
 }
 var6 = self >= var2;
 var3 = var6;
@@ -2942,8 +3086,8 @@ var10 = 1; /* easy <var7:Int> isa OTHER*/
 if (!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", 260);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
+show_backtrace(1);
 }
 var14 = self <= var7;
 var8 = var14;
@@ -2956,8 +3100,8 @@ var1 = var_;
 }
 if (!var1) {
 fprintf(stderr, "Runtime error: %s", "Assert failed");
-fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 399);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 403);
+show_backtrace(1);
 }
 var15 = 10;
 { /* Inline kernel#Int#< (self,var15) */
@@ -2967,8 +3111,8 @@ var18 = 1; /* easy <var15:Int> isa OTHER*/
 if (!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", 261);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
 }
 var22 = self < var15;
 var16 = var22;
@@ -3064,8 +3208,8 @@ var4 = 1; /* easy <var1:Int> 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", 262);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
+show_backtrace(1);
 }
 var5 = self >= var1;
 var2 = var5;
@@ -3253,8 +3397,8 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (!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", 436);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
+show_backtrace(1);
 }
 var2 = self <= p0;
 var = var2;
@@ -3288,8 +3432,8 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (!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", 436);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
+show_backtrace(1);
 }
 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
@@ -3316,8 +3460,8 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (!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", 437);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 441);
+show_backtrace(1);
 }
 var2 = self < p0;
 var = var2;
@@ -3351,8 +3495,8 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (!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", 437);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 441);
+show_backtrace(1);
 }
 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
@@ -3379,8 +3523,8 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (!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", 438);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
+show_backtrace(1);
 }
 var2 = self >= p0;
 var = var2;
@@ -3414,8 +3558,8 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (!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", 438);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
+show_backtrace(1);
 }
 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
@@ -3442,8 +3586,8 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (!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", 439);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 443);
+show_backtrace(1);
 }
 var2 = self > p0;
 var = var2;
@@ -3477,8 +3621,8 @@ var3 = p0->type->type_table[cltype] == idtype;
 if (!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", 439);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 443);
+show_backtrace(1);
 }
 var4 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
 var5 = ((struct instance_kernel__Char*)p0)->value; /* autounbox from Comparable to Char */;
@@ -3579,8 +3723,8 @@ var1 = 1; /* easy <p0:Char> isa OTHER*/
 if (!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", 444);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 448);
+show_backtrace(1);
 }
 var_c = p0;
 { /* Inline kernel#Char#ascii (self) */
@@ -3610,8 +3754,8 @@ var14 = 1; /* easy <var11:Int> 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", 262);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266);
+show_backtrace(1);
 }
 var18 = var_d >= var11;
 var12 = var18;
@@ -3671,7 +3815,7 @@ char var24 /* : Char */;
 long var25 /* : Int */;
 long var27 /* : Int */;
 long var28 /* : Int */;
-long var29 /* : Int */;
+long var30 /* : Int */;
 long var31 /* : Int */;
 long var32 /* : Int */;
 long var34 /* : Int */;
@@ -3731,15 +3875,15 @@ var25 = var27;
 goto RET_LABEL26;
 RET_LABEL26:(void)0;
 }
-var28 = 10;
-{ /* Inline kernel#Int#+ (var25,var28) */
-var31 = var25 + var28;
-var29 = var31;
-goto RET_LABEL30;
-RET_LABEL30:(void)0;
+{ /* Inline kernel#Int#- (var21,var25) */
+var30 = var21 - var25;
+var28 = var30;
+goto RET_LABEL29;
+RET_LABEL29:(void)0;
 }
-{ /* Inline kernel#Int#- (var21,var29) */
-var34 = var21 - var29;
+var31 = 10;
+{ /* Inline kernel#Int#+ (var28,var31) */
+var34 = var28 + var31;
 var32 = var34;
 goto RET_LABEL33;
 RET_LABEL33:(void)0;
@@ -3986,8 +4130,8 @@ var5 = 1; /* easy <var2:Char> 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", 438);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
+show_backtrace(1);
 }
 var6 = self >= var2;
 var3 = var6;
@@ -4004,8 +4148,8 @@ var10 = 1; /* easy <var7:Char> 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", 436);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
+show_backtrace(1);
 }
 var14 = self <= var7;
 var8 = var14;
@@ -4059,8 +4203,8 @@ var5 = 1; /* easy <var2:Char> 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", 438);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
+show_backtrace(1);
 }
 var6 = self >= var2;
 var3 = var6;
@@ -4077,8 +4221,8 @@ var10 = 1; /* easy <var7:Char> 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", 436);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
+show_backtrace(1);
 }
 var14 = self <= var7;
 var8 = var14;
@@ -4132,8 +4276,8 @@ var5 = 1; /* easy <var2:Char> 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", 438);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 442);
+show_backtrace(1);
 }
 var6 = self >= var2;
 var3 = var6;
@@ -4150,8 +4294,8 @@ var10 = 1; /* easy <var7:Char> 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", 436);
-exit(1);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 440);
+show_backtrace(1);
 }
 var14 = self <= var7;
 var8 = var14;
@@ -4212,8 +4356,10 @@ return var;
 /* method kernel#Pointer#address_is_null for (self: Pointer): Bool */
 short int kernel__Pointer__address_is_null(void* self) {
 short int var /* : Bool */;
-fprintf(stderr, "NOT YET IMPLEMENTED nitni for kernel#Pointer#address_is_null at lib/standard/kernel.nit:554,2--555,53\n");
-exit(1);
+short int var1 /* : Bool */;
+var1 = kernel___Pointer_address_is_null___impl(self);
+var = var1;
+goto RET_LABEL;
 RET_LABEL:;
 return var;
 }