X-Git-Url: http://nitlanguage.org diff --git a/c_src/stream.sep.1.c b/c_src/stream.sep.1.c index 36803b0..7f6ac4a 100644 --- a/c_src/stream.sep.1.c +++ b/c_src/stream.sep.1.c @@ -1,8 +1,11 @@ #include "stream.sep.0.h" /* method stream#IOS#close for (self: IOS) */ void stream__IOS__close(val* self) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 20); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "close", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 27); +show_backtrace(1); RET_LABEL:; } /* method stream#IOS#close for (self: Object) */ @@ -13,8 +16,11 @@ RET_LABEL:; /* method stream#IStream#read_char for (self: IStream): Int */ long stream__IStream__read_char(val* self) { long var /* : Int */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 27); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "read_char", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 34); +show_backtrace(1); RET_LABEL:; return var; } @@ -39,6 +45,7 @@ short int var4 /* : Bool */; short int var6 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var7 /* : Bool */; short int var_ /* var : Bool */; short int var8 /* : Bool */; @@ -50,18 +57,18 @@ short int var12 /* : Bool */; short int var14 /* : Bool */; int cltype15; int idtype16; -short int var17 /* : Bool */; -char var18 /* : Char */; -char var20 /* : Char */; -val* var21 /* : nullable Object */; -long var22 /* : Int */; +const char* var_class_name17; +short int var18 /* : Bool */; +char var19 /* : Char */; +char var21 /* : Char */; +val* var22 /* : nullable Object */; long var23 /* : Int */; -long var25 /* : Int */; -val* var26 /* : String */; +long var24 /* : Int */; +long var26 /* : Int */; +val* var27 /* : String */; var_i = p0; var1 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var_i) /* with_capacity on */; -CHECK_NEW_string__Buffer(var1); var_s = var1; for(;;) { var3 = 0; @@ -70,8 +77,10 @@ var3 = 0; /* isa OTHER */ var6 = 1; /* easy isa OTHER*/ if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +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); +show_backtrace(1); } var7 = var_i > var3; var4 = var7; @@ -95,38 +104,40 @@ var11 = 0; /* isa OTHER */ var14 = 1; /* easy isa OTHER*/ if (!var14) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +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); +show_backtrace(1); } -var17 = var_c >= var11; -var12 = var17; +var18 = var_c >= var11; +var12 = var18; goto RET_LABEL13; RET_LABEL13:(void)0; } if (var12){ { /* Inline kernel#Int#ascii (var_c) */ -var20 = var_c; -var18 = var20; -goto RET_LABEL19; -RET_LABEL19:(void)0; -} -var21 = BOX_kernel__Char(var18); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var21) /* add on */; -var22 = 1; -{ /* Inline kernel#Int#- (var_i,var22) */ -var25 = var_i - var22; -var23 = var25; -goto RET_LABEL24; -RET_LABEL24:(void)0; -} -var_i = var23; +var21 = var_c; +var19 = var21; +goto RET_LABEL20; +RET_LABEL20:(void)0; +} +var22 = BOX_kernel__Char(var19); /* autobox from Char to nullable Object */ +((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var22) /* add on */; +var23 = 1; +{ /* Inline kernel#Int#- (var_i,var23) */ +var26 = var_i - var23; +var24 = var26; +goto RET_LABEL25; +RET_LABEL25:(void)0; +} +var_i = var24; } else { } CONTINUE_label: (void)0; } BREAK_label: (void)0; -var26 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var26; +var27 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; +var = var27; goto RET_LABEL; RET_LABEL:; return var; @@ -151,12 +162,12 @@ val* var4 /* : String */; var1 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/stream.nit", 47); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 54); +show_backtrace(1); } var3 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*))(var3->class->vft[COLOR_string__Buffer__init]))(var3) /* init on */; -CHECK_NEW_string__Buffer(var3); var_s = var3; ((void (*)(val*, val*))(self->class->vft[COLOR_stream__IStream__append_line_to]))(self, var_s) /* append_line_to on */; var4 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; @@ -188,6 +199,7 @@ short int var6 /* : Bool */; short int var8 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var9 /* : Bool */; char var10 /* : Char */; char var12 /* : Char */; @@ -195,7 +207,6 @@ val* var13 /* : nullable Object */; val* var14 /* : String */; var1 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on */; -CHECK_NEW_string__Buffer(var1); var_s = var1; for(;;) { var2 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on */; @@ -209,8 +220,10 @@ var5 = 0; /* isa OTHER */ var8 = 1; /* easy isa OTHER*/ if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +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); +show_backtrace(1); } var9 = var_c >= var5; var6 = var9; @@ -260,10 +273,11 @@ short int var8 /* : Bool */; char var9 /* : Char */; char var11 /* : Char */; char var_c /* var c: Char */; -val* var12 /* : nullable Object */; -char var13 /* : Char */; -short int var14 /* : Bool */; -short int var16 /* : Bool */; +val* var12 /* : StringCharView */; +val* var13 /* : nullable Object */; +char var14 /* : Char */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; var_s = p0; for(;;) { var = ((long (*)(val*))(self->class->vft[COLOR_stream__IStream__read_char]))(self) /* read_char on */; @@ -295,16 +309,17 @@ goto RET_LABEL10; RET_LABEL10:(void)0; } var_c = var9; -var12 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__Sequence__push]))(var_s, var12) /* push on */; -var13 = '\n'; -{ /* Inline kernel#Char#== (var_c,var13) */ -var16 = var_c == var13; -var14 = var16; -goto RET_LABEL15; -RET_LABEL15:(void)0; -} -if (var14){ +var12 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__AbstractString__chars]))(var_s) /* chars on */; +var13 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */ +((void (*)(val*, val*))(var12->class->vft[COLOR_abstract_collection__Sequence__push]))(var12, var13) /* push on */; +var14 = '\n'; +{ /* Inline kernel#Char#== (var_c,var14) */ +var17 = var_c == var14; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +if (var15){ goto RET_LABEL; } else { } @@ -322,8 +337,11 @@ RET_LABEL:; /* method stream#IStream#eof for (self: IStream): Bool */ short int stream__IStream__eof(val* self) { short int var /* : Bool */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 79); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "eof", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 86); +show_backtrace(1); RET_LABEL:; return var; } @@ -338,8 +356,11 @@ return var; } /* method stream#OStream#write for (self: OStream, String) */ void stream__OStream__write(val* self, val* p0) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 86); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "write", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 94); +show_backtrace(1); RET_LABEL:; } /* method stream#OStream#write for (self: Object, String) */ @@ -350,8 +371,11 @@ RET_LABEL:; /* method stream#OStream#is_writable for (self: OStream): Bool */ short int stream__OStream__is_writable(val* self) { short int var /* : Bool */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 89); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "is_writable", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 97); +show_backtrace(1); RET_LABEL:; return var; } @@ -364,6 +388,32 @@ var = var1; RET_LABEL:; return var; } +/* method stream#Streamable#write_to for (self: Streamable, OStream) */ +void stream__Streamable__write_to(val* self, val* p0) { +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "write_to", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 106); +show_backtrace(1); +RET_LABEL:; +} +/* method stream#Streamable#write_to for (self: Object, OStream) */ +void VIRTUAL_stream__Streamable__write_to(val* self, val* p0) { +stream__Streamable__write_to(self, p0); +RET_LABEL:; +} +/* method stream#String#write_to for (self: String, OStream) */ +void stream__String__write_to(val* self, val* p0) { +val* var_stream /* var stream: OStream */; +var_stream = p0; +((void (*)(val*, val*))(var_stream->class->vft[COLOR_stream__OStream__write]))(var_stream, self) /* write on */; +RET_LABEL:; +} +/* method stream#String#write_to for (self: Object, OStream) */ +void VIRTUAL_stream__String__write_to(val* self, val* p0) { +stream__String__write_to(self, p0); +RET_LABEL:; +} /* method stream#BufferedIStream#read_char for (self: BufferedIStream): Int */ long stream__BufferedIStream__read_char(val* self) { long var /* : Int */; @@ -376,6 +426,7 @@ short int var6 /* : Bool */; short int var8 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var9 /* : Bool */; long var10 /* : Int */; val* var11 /* : nullable Buffer */; @@ -384,33 +435,37 @@ short int var13 /* : Bool */; short int var15 /* : Bool */; int cltype16; int idtype17; -short int var18 /* : Bool */; -long var19 /* : Int */; +const char* var_class_name18; +short int var19 /* : Bool */; long var20 /* : Int */; -long var22 /* : Int */; -val* var23 /* : nullable Buffer */; -long var24 /* : Int */; -val* var25 /* : nullable Object */; -char var26 /* : Char */; +long var21 /* : Int */; +long var23 /* : Int */; +val* var24 /* : nullable Buffer */; +val* var25 /* : StringCharView */; +long var26 /* : Int */; +val* var27 /* : nullable Object */; +char var28 /* : Char */; char var_c /* var c: Char */; val* var_ /* var : BufferedIStream */; -long var27 /* : Int */; -long var28 /* : Int */; long var29 /* : Int */; +long var30 /* : Int */; long var31 /* : Int */; -long var32 /* : Int */; +long var33 /* : Int */; long var34 /* : Int */; +long var36 /* : Int */; var1 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on */; var2 = !var1; if (!var2) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/stream.nit", 98); -exit(1); +fprintf(stderr, "Runtime error: %s", "Assert failed"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 121); +show_backtrace(1); } var3 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ var4 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ if (var4 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 99); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 122); +show_backtrace(1); } else { var5 = ((long (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__length]))(var4) /* length on */; } @@ -419,8 +474,10 @@ var5 = ((long (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection_ /* isa OTHER */ var8 = 1; /* easy isa OTHER*/ if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +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); +show_backtrace(1); } var9 = var3 >= var5; var6 = var9; @@ -434,8 +491,9 @@ if (var6){ var10 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ var11 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ if (var11 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 102); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 125); +show_backtrace(1); } else { var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collection__length]))(var11) /* length on */; } @@ -444,53 +502,57 @@ var12 = ((long (*)(val*))(var11->class->vft[COLOR_abstract_collection__Collectio /* isa OTHER */ var15 = 1; /* easy isa OTHER*/ if (!var15) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +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", 266); +show_backtrace(1); } -var18 = var10 >= var12; -var13 = var18; +var19 = var10 >= var12; +var13 = var19; goto RET_LABEL14; RET_LABEL14:(void)0; } if (var13){ -var19 = 1; -{ /* Inline kernel#Int#unary - (var19) */ -var22 = -var19; -var20 = var22; -goto RET_LABEL21; -RET_LABEL21:(void)0; -} -var = var20; +var20 = 1; +{ /* Inline kernel#Int#unary - (var20) */ +var23 = -var20; +var21 = var23; +goto RET_LABEL22; +RET_LABEL22:(void)0; +} +var = var21; goto RET_LABEL; } else { } -var23 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ -var24 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ -if (var23 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 105); -exit(1); +var24 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ +if (var24 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 128); +show_backtrace(1); } else { -var25 = ((val* (*)(val*, long))(var23->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var23, var24) /* [] on */; +var25 = ((val* (*)(val*))(var24->class->vft[COLOR_string__AbstractString__chars]))(var24) /* chars on */; } -var26 = ((struct instance_kernel__Char*)var25)->value; /* autounbox from nullable Object to Char */; -var_c = var26; +var26 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ +var27 = ((val* (*)(val*, long))(var25->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var25, var26) /* [] on */; +var28 = ((struct instance_kernel__Char*)var27)->value; /* autounbox from nullable Object to Char */; +var_c = var28; var_ = self; -var27 = var_->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ -var28 = 1; -{ /* Inline kernel#Int#+ (var27,var28) */ -var31 = var27 + var28; -var29 = var31; -goto RET_LABEL30; -RET_LABEL30:(void)0; -} -var_->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var29; /* _buffer_pos on */ +var29 = var_->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ +var30 = 1; +{ /* Inline kernel#Int#+ (var29,var30) */ +var33 = var29 + var30; +var31 = var33; +goto RET_LABEL32; +RET_LABEL32:(void)0; +} +var_->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var31; /* _buffer_pos on */ { /* Inline kernel#Char#ascii (var_c) */ -var34 = (unsigned char)var_c; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +var36 = (unsigned char)var_c; +var34 = var36; +goto RET_LABEL35; +RET_LABEL35:(void)0; } -var = var32; +var = var34; goto RET_LABEL; RET_LABEL:; return var; @@ -520,50 +582,55 @@ short int var6 /* : Bool */; short int var8 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var9 /* : Bool */; short int var10 /* : Bool */; short int var12 /* : Bool */; int cltype13; int idtype14; -short int var15 /* : Bool */; +const char* var_class_name15; short int var16 /* : Bool */; -val* var17 /* : String */; -long var18 /* : Int */; -val* var19 /* : nullable Buffer */; -long var20 /* : Int */; -short int var21 /* : Bool */; +short int var17 /* : Bool */; +val* var18 /* : String */; +long var19 /* : Int */; +val* var20 /* : nullable Buffer */; +long var21 /* : Int */; short int var22 /* : Bool */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -short int var27 /* : Bool */; -short int var_ /* var : Bool */; -long var28 /* : Int */; +short int var23 /* : Bool */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +const char* var_class_name28; short int var29 /* : Bool */; +short int var_ /* var : Bool */; +long var30 /* : Int */; short int var31 /* : Bool */; -int cltype32; -int idtype33; -short int var34 /* : Bool */; -val* var35 /* : nullable Buffer */; -val* var36 /* : nullable Object */; -long var37 /* : Int */; -long var38 /* : Int */; -long var40 /* : Int */; +short int var33 /* : Bool */; +int cltype34; +int idtype35; +const char* var_class_name36; +short int var37 /* : Bool */; +val* var38 /* : nullable Buffer */; +val* var39 /* : StringCharView */; +val* var40 /* : nullable Object */; long var41 /* : Int */; long var42 /* : Int */; long var44 /* : Int */; -val* var46 /* : String */; +long var45 /* : Int */; +long var46 /* : Int */; +long var48 /* : Int */; +val* var50 /* : String */; var_i = p0; var1 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*, long))(var1->class->vft[COLOR_string__Buffer__with_capacity]))(var1, var_i) /* with_capacity on */; -CHECK_NEW_string__Buffer(var1); var_s = var1; var2 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ var_j = var2; var3 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ if (var3 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 114); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 137); +show_backtrace(1); } else { var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__length]))(var3) /* length on */; } @@ -575,8 +642,10 @@ var5 = 0; /* isa OTHER */ var8 = 1; /* easy isa OTHER*/ if (!var8) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); +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); +show_backtrace(1); } var9 = var_i > var5; var6 = var9; @@ -589,103 +658,112 @@ if (!var6) break; /* isa OTHER */ var12 = 1; /* easy isa OTHER*/ if (!var12) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +var_class_name15 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 266); +show_backtrace(1); } -var15 = var_j >= var_k; -var10 = var15; +var16 = var_j >= var_k; +var10 = var16; goto RET_LABEL11; RET_LABEL11:(void)0; } if (var10){ ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on */; -var16 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on */; -if (var16){ -var17 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var17; +var17 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on */; +if (var17){ +var18 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; +var = var18; goto RET_LABEL; } else { } -var18 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ -var_j = var18; -var19 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ -if (var19 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 120); -exit(1); +var19 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ +var_j = var19; +var20 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ +if (var20 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 143); +show_backtrace(1); } else { -var20 = ((long (*)(val*))(var19->class->vft[COLOR_abstract_collection__Collection__length]))(var19) /* length on */; +var21 = ((long (*)(val*))(var20->class->vft[COLOR_abstract_collection__Collection__length]))(var20) /* length on */; } -var_k = var20; +var_k = var21; } else { } for(;;) { { /* Inline kernel#Int#< (var_j,var_k) */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var24 = 1; /* easy isa OTHER*/ -if (!var24) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var27 = var_j < var_k; -var22 = var27; -goto RET_LABEL23; -RET_LABEL23:(void)0; +var25 = 1; /* easy isa OTHER*/ +if (!var25) { +var_class_name28 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +show_backtrace(1); +} +var29 = var_j < var_k; +var23 = var29; +goto RET_LABEL24; +RET_LABEL24:(void)0; } -var_ = var22; -if (var22){ -var28 = 0; -{ /* Inline kernel#Int#> (var_i,var28) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var31 = 1; /* easy isa OTHER*/ -if (!var31) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var34 = var_i > var28; -var29 = var34; -goto RET_LABEL30; -RET_LABEL30:(void)0; -} -var21 = var29; +var_ = var23; +if (var23){ +var30 = 0; +{ /* Inline kernel#Int#> (var_i,var30) */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var33 = 1; /* easy isa OTHER*/ +if (!var33) { +var_class_name36 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); +} +var37 = var_i > var30; +var31 = var37; +goto RET_LABEL32; +RET_LABEL32:(void)0; +} +var22 = var31; } else { -var21 = var_; -} -if (!var21) break; -var35 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ -if (var35 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 123); -exit(1); +var22 = var_; +} +if (!var22) break; +var38 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ +if (var38 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 146); +show_backtrace(1); } else { -var36 = ((val* (*)(val*, long))(var35->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var35, var_j) /* [] on */; +var39 = ((val* (*)(val*))(var38->class->vft[COLOR_string__AbstractString__chars]))(var38) /* chars on */; } -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var36) /* add on */; -var37 = 1; -{ /* Inline kernel#Int#+ (var_j,var37) */ -var40 = var_j + var37; -var38 = var40; -goto RET_LABEL39; -RET_LABEL39:(void)0; -} -var_j = var38; +var40 = ((val* (*)(val*, long))(var39->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var39, var_j) /* [] on */; +((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var40) /* add on */; var41 = 1; -{ /* Inline kernel#Int#- (var_i,var41) */ -var44 = var_i - var41; +{ /* Inline kernel#Int#+ (var_j,var41) */ +var44 = var_j + var41; var42 = var44; goto RET_LABEL43; RET_LABEL43:(void)0; } -var_i = var42; +var_j = var42; +var45 = 1; +{ /* Inline kernel#Int#- (var_i,var45) */ +var48 = var_i - var45; +var46 = var48; +goto RET_LABEL47; +RET_LABEL47:(void)0; +} +var_i = var46; CONTINUE_label: (void)0; } BREAK_label: (void)0; -CONTINUE_label45: (void)0; +CONTINUE_label49: (void)0; } -BREAK_label45: (void)0; +BREAK_label49: (void)0; self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_j; /* _buffer_pos on */ -var46 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var46; +var50 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; +var = var50; goto RET_LABEL; RET_LABEL:; return var; @@ -715,16 +793,17 @@ short int var7 /* : Bool */; short int var9 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var10 /* : Bool */; val* var11 /* : nullable Buffer */; -val* var12 /* : nullable Object */; -long var13 /* : Int */; +val* var12 /* : StringCharView */; +val* var13 /* : nullable Object */; long var14 /* : Int */; -long var16 /* : Int */; -val* var18 /* : String */; +long var15 /* : Int */; +long var17 /* : Int */; +val* var19 /* : String */; var1 = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*))(var1->class->vft[COLOR_string__Buffer__init]))(var1) /* init on */; -CHECK_NEW_string__Buffer(var1); var_s = var1; for(;;) { var2 = ((short int (*)(val*))(self->class->vft[COLOR_stream__IStream__eof]))(self) /* eof on */; @@ -734,8 +813,9 @@ var4 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos var_j = var4; var5 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ if (var5 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 137); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 160); +show_backtrace(1); } else { var6 = ((long (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__length]))(var5) /* length on */; } @@ -746,8 +826,10 @@ for(;;) { /* isa OTHER */ var9 = 1; /* easy isa OTHER*/ if (!var9) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); +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); +show_backtrace(1); } var10 = var_j < var_k; var7 = var10; @@ -757,30 +839,32 @@ RET_LABEL8:(void)0; if (!var7) break; var11 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ if (var11 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 139); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 162); +show_backtrace(1); } else { -var12 = ((val* (*)(val*, long))(var11->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var11, var_j) /* [] on */; +var12 = ((val* (*)(val*))(var11->class->vft[COLOR_string__AbstractString__chars]))(var11) /* chars on */; } -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var12) /* add on */; -var13 = 1; -{ /* Inline kernel#Int#+ (var_j,var13) */ -var16 = var_j + var13; -var14 = var16; -goto RET_LABEL15; -RET_LABEL15:(void)0; -} -var_j = var14; +var13 = ((val* (*)(val*, long))(var12->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var12, var_j) /* [] on */; +((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var13) /* add on */; +var14 = 1; +{ /* Inline kernel#Int#+ (var_j,var14) */ +var17 = var_j + var14; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +var_j = var15; CONTINUE_label: (void)0; } BREAK_label: (void)0; self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_j; /* _buffer_pos on */ ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on */; -CONTINUE_label17: (void)0; +CONTINUE_label18: (void)0; } -BREAK_label17: (void)0; -var18 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; -var = var18; +BREAK_label18: (void)0; +var19 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__Object__to_s]))(var_s) /* to_s on */; +var = var19; goto RET_LABEL; RET_LABEL:; return var; @@ -806,53 +890,59 @@ short int var4 /* : Bool */; short int var6 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var7 /* : Bool */; short int var_ /* var : Bool */; val* var8 /* : nullable Buffer */; -val* var9 /* : nullable Object */; -char var10 /* : Char */; -short int var11 /* : Bool */; -short int var13 /* : Bool */; -char var14 /* : Char */; -short int var15 /* : Bool */; -long var16 /* : Int */; +val* var9 /* : StringCharView */; +val* var10 /* : nullable Object */; +char var11 /* : Char */; +short int var12 /* : Bool */; +short int var14 /* : Bool */; +char var15 /* : Char */; +short int var16 /* : Bool */; long var17 /* : Int */; -long var19 /* : Int */; +long var18 /* : Int */; long var20 /* : Int */; -short int var21 /* : Bool */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -short int var26 /* : Bool */; -long var27 /* : Int */; -long var28 /* : Int */; +long var21 /* : Int */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +short int var28 /* : Bool */; +long var29 /* : Int */; long var30 /* : Int */; -long var31 /* : Int */; long var32 /* : Int */; +long var33 /* : Int */; long var34 /* : Int */; -long var35 /* : Int */; +long var36 /* : Int */; +long var37 /* : Int */; long var_j /* var j: Int */; -short int var36 /* : Bool */; short int var38 /* : Bool */; -int cltype39; -int idtype40; -short int var41 /* : Bool */; -val* var42 /* : nullable Buffer */; -val* var43 /* : nullable Object */; -long var44 /* : Int */; -long var45 /* : Int */; -long var47 /* : Int */; -val* var49 /* : nullable Buffer */; -long var50 /* : Int */; -short int var51 /* : Bool */; -short int var53 /* : Bool */; -int cltype54; -int idtype55; -short int var56 /* : Bool */; -long var57 /* : Int */; -long var58 /* : Int */; -long var60 /* : Int */; +short int var40 /* : Bool */; +int cltype41; +int idtype42; +const char* var_class_name43; +short int var44 /* : Bool */; +val* var45 /* : nullable Buffer */; +val* var46 /* : StringCharView */; +val* var47 /* : nullable Object */; +long var48 /* : Int */; +long var49 /* : Int */; +long var51 /* : Int */; +val* var53 /* : nullable Buffer */; +long var54 /* : Int */; +short int var55 /* : Bool */; +short int var57 /* : Bool */; +int cltype58; +int idtype59; +const char* var_class_name60; short int var61 /* : Bool */; +long var62 /* : Int */; +long var63 /* : Int */; +long var65 /* : Int */; +short int var66 /* : Bool */; var_s = p0; for(;;) { var = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ @@ -860,8 +950,9 @@ var_i = var; for(;;) { var2 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ if (var2 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 153); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 176); +show_backtrace(1); } else { var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on */; } @@ -870,8 +961,10 @@ var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection_ /* isa OTHER */ var6 = 1; /* easy isa OTHER*/ if (!var6) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); +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); +show_backtrace(1); } var7 = var_i < var3; var4 = var7; @@ -882,149 +975,160 @@ var_ = var4; if (var4){ var8 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ if (var8 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 153); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 176); +show_backtrace(1); } else { -var9 = ((val* (*)(val*, long))(var8->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var8, var_i) /* [] on */; -} -var10 = '\n'; -{ /* Inline kernel#Char#!= (var9,var10) */ -var13 = (var9 != NULL) && (var9->class == &class_kernel__Char); -if (var13) { -var14 = ((struct instance_kernel__Char*)var9)->value; /* autounbox from nullable Object to Char */; -var13 = (var14 == var10); -} -var15 = !var13; -var11 = var15; -goto RET_LABEL12; -RET_LABEL12:(void)0; +var9 = ((val* (*)(val*))(var8->class->vft[COLOR_string__AbstractString__chars]))(var8) /* chars on */; +} +var10 = ((val* (*)(val*, long))(var9->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var9, var_i) /* [] on */; +var11 = '\n'; +{ /* Inline kernel#Char#!= (var10,var11) */ +var14 = (var10 != NULL) && (var10->class == &class_kernel__Char); +if (var14) { +var15 = ((struct instance_kernel__Char*)var10)->value; /* autounbox from nullable Object to Char */; +var14 = (var15 == var11); +} +var16 = !var14; +var12 = var16; +goto RET_LABEL13; +RET_LABEL13:(void)0; } -var1 = var11; +var1 = var12; } else { var1 = var_; } if (!var1) break; -var16 = 1; -{ /* Inline kernel#Int#+ (var_i,var16) */ -var19 = var_i + var16; -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; -} -var_i = var17; +var17 = 1; +{ /* Inline kernel#Int#+ (var_i,var17) */ +var20 = var_i + var17; +var18 = var20; +goto RET_LABEL19; +RET_LABEL19:(void)0; +} +var_i = var18; CONTINUE_label: (void)0; } BREAK_label: (void)0; -var20 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ -{ /* Inline kernel#Int#> (var_i,var20) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var23 = 1; /* easy isa OTHER*/ -if (!var23) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259); -exit(1); -} -var26 = var_i > var20; -var21 = var26; -goto RET_LABEL22; -RET_LABEL22:(void)0; +var21 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ +{ /* Inline kernel#Int#> (var_i,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); +show_backtrace(1); } -if (var21){ -var27 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; -{ /* Inline kernel#Int#+ (var27,var_i) */ -var30 = var27 + var_i; -var28 = var30; -goto RET_LABEL29; -RET_LABEL29:(void)0; -} -var31 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ -{ /* Inline kernel#Int#- (var28,var31) */ -var34 = var28 - var31; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; -} -((void (*)(val*, long))(var_s->class->vft[COLOR_array__AbstractArray__enlarge]))(var_s, var32) /* enlarge on */; -var35 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ -var_j = var35; +var28 = var_i > var21; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; +} +if (var22){ +var29 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on */; +{ /* Inline kernel#Int#+ (var29,var_i) */ +var32 = var29 + var_i; +var30 = var32; +goto RET_LABEL31; +RET_LABEL31:(void)0; +} +var33 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ +{ /* Inline kernel#Int#- (var30,var33) */ +var36 = var30 - var33; +var34 = var36; +goto RET_LABEL35; +RET_LABEL35:(void)0; +} +((void (*)(val*, long))(var_s->class->vft[COLOR_array__AbstractArray__enlarge]))(var_s, var34) /* enlarge on */; +var37 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ +var_j = var37; for(;;) { { /* Inline kernel#Int#< (var_j,var_i) */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var38 = 1; /* easy isa OTHER*/ -if (!var38) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var41 = var_j < var_i; -var36 = var41; -goto RET_LABEL37; -RET_LABEL37:(void)0; -} -if (!var36) break; -var42 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ -if (var42 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 163); -exit(1); +var40 = 1; /* easy isa OTHER*/ +if (!var40) { +var_class_name43 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +show_backtrace(1); +} +var44 = var_j < var_i; +var38 = var44; +goto RET_LABEL39; +RET_LABEL39:(void)0; +} +if (!var38) break; +var45 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ +if (var45 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 186); +show_backtrace(1); } else { -var43 = ((val* (*)(val*, long))(var42->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var42, var_j) /* [] on */; +var46 = ((val* (*)(val*))(var45->class->vft[COLOR_string__AbstractString__chars]))(var45) /* chars on */; } -((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var43) /* add on */; -var44 = 1; -{ /* Inline kernel#Int#+ (var_j,var44) */ -var47 = var_j + var44; -var45 = var47; -goto RET_LABEL46; -RET_LABEL46:(void)0; +var47 = ((val* (*)(val*, long))(var46->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var46, var_j) /* [] on */; +((void (*)(val*, val*))(var_s->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_s, var47) /* add on */; +var48 = 1; +{ /* Inline kernel#Int#+ (var_j,var48) */ +var51 = var_j + var48; +var49 = var51; +goto RET_LABEL50; +RET_LABEL50:(void)0; } -var_j = var45; -CONTINUE_label48: (void)0; +var_j = var49; +CONTINUE_label52: (void)0; } -BREAK_label48: (void)0; +BREAK_label52: (void)0; } else { } -var49 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ -if (var49 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 168); -exit(1); +var53 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ +if (var53 == NULL) { +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 191); +show_backtrace(1); } else { -var50 = ((long (*)(val*))(var49->class->vft[COLOR_abstract_collection__Collection__length]))(var49) /* length on */; -} -{ /* Inline kernel#Int#< (var_i,var50) */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var53 = 1; /* easy isa OTHER*/ -if (!var53) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); -} -var56 = var_i < var50; -var51 = var56; -goto RET_LABEL52; -RET_LABEL52:(void)0; -} -if (var51){ -var57 = 1; -{ /* Inline kernel#Int#+ (var_i,var57) */ -var60 = var_i + var57; -var58 = var60; -goto RET_LABEL59; -RET_LABEL59:(void)0; -} -self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var58; /* _buffer_pos on */ +var54 = ((long (*)(val*))(var53->class->vft[COLOR_abstract_collection__Collection__length]))(var53) /* length on */; +} +{ /* Inline kernel#Int#< (var_i,var54) */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var57 = 1; /* easy isa OTHER*/ +if (!var57) { +var_class_name60 = type_kernel__Int.name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +show_backtrace(1); +} +var61 = var_i < var54; +var55 = var61; +goto RET_LABEL56; +RET_LABEL56:(void)0; +} +if (var55){ +var62 = 1; +{ /* Inline kernel#Int#+ (var_i,var62) */ +var65 = var_i + var62; +var63 = var65; +goto RET_LABEL64; +RET_LABEL64:(void)0; +} +self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var63; /* _buffer_pos on */ goto RET_LABEL; } else { self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var_i; /* _buffer_pos on */ -var61 = ((short int (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__end_reached]))(self) /* end_reached on */; -if (var61){ +var66 = ((short int (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__end_reached]))(self) /* end_reached on */; +if (var66){ goto RET_LABEL; } else { ((void (*)(val*))(self->class->vft[COLOR_stream__BufferedIStream__fill_buffer]))(self) /* fill_buffer on */; } } -CONTINUE_label62: (void)0; +CONTINUE_label67: (void)0; } -BREAK_label62: (void)0; +BREAK_label67: (void)0; RET_LABEL:; } /* method stream#BufferedIStream#append_line_to for (self: Object, Buffer) */ @@ -1043,14 +1147,16 @@ short int var5 /* : Bool */; short int var7 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var8 /* : Bool */; short int var_ /* var : Bool */; short int var9 /* : Bool */; var2 = self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l; /* _buffer_pos on */ var3 = self->attrs[COLOR_stream__BufferedIStream___buffer].val; /* _buffer on */ if (var3 == NULL) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/stream.nit", 184); -exit(1); +fprintf(stderr, "Runtime error: %s", "Receiver is null"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 207); +show_backtrace(1); } else { var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__length]))(var3) /* length on */; } @@ -1059,8 +1165,10 @@ var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection_ /* isa OTHER */ var7 = 1; /* easy isa OTHER*/ if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258); -exit(1); +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); +show_backtrace(1); } var8 = var2 >= var4; var5 = var8; @@ -1090,8 +1198,11 @@ return var; } /* method stream#BufferedIStream#fill_buffer for (self: BufferedIStream) */ void stream__BufferedIStream__fill_buffer(val* self) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 192); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "fill_buffer", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 215); +show_backtrace(1); RET_LABEL:; } /* method stream#BufferedIStream#fill_buffer for (self: Object) */ @@ -1102,8 +1213,11 @@ RET_LABEL:; /* method stream#BufferedIStream#end_reached for (self: BufferedIStream): Bool */ short int stream__BufferedIStream__end_reached(val* self) { short int var /* : Bool */; -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Deferred method called", "lib/standard/stream.nit", 195); -exit(1); +const char* var_class_name; +var_class_name = self == NULL ? "null" : self->type->name; +fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "end_reached", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 218); +show_backtrace(1); RET_LABEL:; return var; } @@ -1124,7 +1238,6 @@ long var1 /* : Int */; var_capacity = p0; var = NEW_string__Buffer(&type_string__Buffer); ((void (*)(val*, long))(var->class->vft[COLOR_string__Buffer__with_capacity]))(var, var_capacity) /* with_capacity on */; -CHECK_NEW_string__Buffer(var); self->attrs[COLOR_stream__BufferedIStream___buffer].val = var; /* _buffer on */ var1 = 0; self->attrs[COLOR_stream__BufferedIStream___buffer_pos].l = var1; /* _buffer_pos on */ @@ -1421,6 +1534,7 @@ short int var5 /* : Bool */; short int var7 /* : Bool */; int cltype; int idtype; +const char* var_class_name; short int var8 /* : Bool */; short int var9 /* : Bool */; var_s = p0; @@ -1435,8 +1549,10 @@ var4 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection /* isa OTHER */ var7 = 1; /* easy isa OTHER*/ if (!var7) { -fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257); -exit(1); +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); +show_backtrace(1); } var8 = var_nb < var4; var5 = var8; @@ -1521,15 +1637,12 @@ val* var19 /* : nullable Object */; var_streams = p0; var1 = NEW_array__Array(&type_array__Arraykernel__Int); ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on */; -CHECK_NEW_array__Array(var1); var_in_fds = var1; var2 = NEW_array__Array(&type_array__Arraykernel__Int); ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on */; -CHECK_NEW_array__Array(var2); var_out_fds = var2; var3 = NEW_hash_collection__HashMap(&type_hash_collection__HashMapkernel__Intstream__FDStream); ((void (*)(val*))(var3->class->vft[COLOR_hash_collection__HashMap__init]))(var3) /* init on */; -CHECK_NEW_hash_collection__HashMap(var3); var_fd_to_stream = var3; var4 = ((val* (*)(val*))(var_streams->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_streams) /* iterator on */; for(;;) { @@ -1603,11 +1716,84 @@ return var; /* method stream#Object#intern_poll for (self: Object, Array[Int], Array[Int]): nullable Int */ val* stream__Object__intern_poll(val* self, val* p0, val* p1) { val* var /* : nullable Int */; -fprintf(stderr, "NOT YET IMPLEMENTED nitni for stream#Object#intern_poll at lib/standard/stream.nit:297,2--171\n"); -exit(1); +val* var1 /* : nullable Int */; +struct nitni_instance* var_for_c_0; +var_for_c_0 = malloc(sizeof(struct nitni_instance)); +var_for_c_0->value = self; +struct nitni_instance* var_for_c_1; +var_for_c_1 = malloc(sizeof(struct nitni_instance)); +var_for_c_1->value = p0; +struct nitni_instance* var_for_c_2; +var_for_c_2 = malloc(sizeof(struct nitni_instance)); +var_for_c_2->value = p1; +struct nitni_instance* ret_var; +ret_var = stream___Object_intern_poll___impl(var_for_c_0, var_for_c_1, var_for_c_2); +var1 = ret_var->value; +var = var1; +goto RET_LABEL; RET_LABEL:; return var; } +#ifndef NIT_NULL_null_Int +#define NIT_NULL_null_Int +struct nitni_instance * stream___null_Int() { +struct nitni_instance* ret_for_c; +ret_for_c = malloc(sizeof(struct nitni_instance)); +ret_for_c->value = NULL; +return ret_for_c; +} +#endif +#ifndef NIT_NULL_null_Object +#define NIT_NULL_null_Object +struct nitni_instance * stream___null_Object() { +struct nitni_instance* ret_for_c; +ret_for_c = malloc(sizeof(struct nitni_instance)); +ret_for_c->value = NULL; +return ret_for_c; +} +#endif +/* nitni callback for standard::abstract_collection::Collection::length */ +int stream___Array_of_Int_length( struct nitni_instance * recv ) { +long var /* : Int */; +var = ((long (*)(val*))(recv->value->class->vft[COLOR_abstract_collection__Collection__length]))(recv->value) /* length on value:Array[Int]>*/; +return var; +} +/* nitni callback for standard::abstract_collection::SequenceRead::[] */ +int stream___Array_of_Int__index( struct nitni_instance * recv, int index ) { +val* var /* : nullable Object */; +long var1 /* : Int */; +var = ((val* (*)(val*, long))(recv->value->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(recv->value, index) /* [] on value:Array[Int]>*/; +var1 = ((struct instance_kernel__Int*)var)->value; /* autounbox from nullable Object to Int */; +return var1; +} +/* nitni check for Int to nullable Int */ +int stream___Int_is_a_nullable_Int(int from) { +short int var /* : Bool */; +int cltype; +int idtype; +/* value:Int> isa nullable Int */ +var = 1; /* easy value:Int> isa nullable Int*/ +return var; +} +/* nitni cast for Int to nullable Int */ +struct nitni_instance * stream___Int_as_nullable_Int(int from) { +short int var /* : Bool */; +int cltype; +int idtype; +val* var1 /* : nullable Int */; +/* isa nullable Int */ +var = 1; /* easy isa nullable Int*/ +if (!var) { +fprintf(stderr, "Runtime error: %s", "FFI cast failed"); +fprintf(stderr, "\n"); +show_backtrace(1); +} +var1 = BOX_kernel__Int(from); /* autobox from Int to nullable Int */ +struct nitni_instance* ret_for_c; +ret_for_c = malloc(sizeof(struct nitni_instance)); +ret_for_c->value = var1; +return ret_for_c; +} /* method stream#Object#intern_poll for (self: Object, Array[Int], Array[Int]): nullable Int */ val* VIRTUAL_stream__Object__intern_poll(val* self, val* p0, val* p1) { val* var /* : nullable Int */; @@ -1617,3 +1803,99 @@ var = var1; RET_LABEL:; return var; } +/* method stream#StringOStream#content for (self: StringOStream): Array[String] */ +val* stream__StringOStream__content(val* self) { +val* var /* : Array[String] */; +val* var1 /* : Array[String] */; +var1 = self->attrs[COLOR_stream__StringOStream___64dcontent].val; /* @content on */ +if (var1 == NULL) { +fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @content"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/stream.nit", 377); +show_backtrace(1); +} +var = var1; +RET_LABEL:; +return var; +} +/* method stream#StringOStream#content for (self: Object): Array[String] */ +val* VIRTUAL_stream__StringOStream__content(val* self) { +val* var /* : Array[String] */; +val* var1 /* : Array[String] */; +var1 = stream__StringOStream__content(self); +var = var1; +RET_LABEL:; +return var; +} +/* method stream#StringOStream#content= for (self: StringOStream, Array[String]) */ +void stream__StringOStream__content_61d(val* self, val* p0) { +self->attrs[COLOR_stream__StringOStream___64dcontent].val = p0; /* @content on */ +RET_LABEL:; +} +/* method stream#StringOStream#content= for (self: Object, Array[String]) */ +void VIRTUAL_stream__StringOStream__content_61d(val* self, val* p0) { +stream__StringOStream__content_61d(self, p0); +RET_LABEL:; +} +/* method stream#StringOStream#to_s for (self: StringOStream): String */ +val* stream__StringOStream__to_s(val* self) { +val* var /* : String */; +val* var1 /* : Array[String] */; +val* var2 /* : String */; +var1 = ((val* (*)(val*))(self->class->vft[COLOR_stream__StringOStream__content]))(self) /* content on */; +var2 = ((val* (*)(val*))(var1->class->vft[COLOR_string__Object__to_s]))(var1) /* to_s on */; +var = var2; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method stream#StringOStream#to_s for (self: Object): String */ +val* VIRTUAL_stream__StringOStream__to_s(val* self) { +val* var /* : String */; +val* var1 /* : String */; +var1 = stream__StringOStream__to_s(self); +var = var1; +RET_LABEL:; +return var; +} +/* method stream#StringOStream#is_writable for (self: StringOStream): Bool */ +short int stream__StringOStream__is_writable(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = 1; +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method stream#StringOStream#is_writable for (self: Object): Bool */ +short int VIRTUAL_stream__StringOStream__is_writable(val* self) { +short int var /* : Bool */; +short int var1 /* : Bool */; +var1 = stream__StringOStream__is_writable(self); +var = var1; +RET_LABEL:; +return var; +} +/* method stream#StringOStream#write for (self: StringOStream, String) */ +void stream__StringOStream__write(val* self, val* p0) { +val* var_str /* var str: String */; +val* var /* : Array[String] */; +var_str = p0; +var = ((val* (*)(val*))(self->class->vft[COLOR_stream__StringOStream__content]))(self) /* content on */; +((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, var_str) /* add on */; +RET_LABEL:; +} +/* method stream#StringOStream#write for (self: Object, String) */ +void VIRTUAL_stream__StringOStream__write(val* self, val* p0) { +stream__StringOStream__write(self, p0); +RET_LABEL:; +} +/* method stream#StringOStream#init for (self: StringOStream) */ +void stream__StringOStream__init(val* self) { +RET_LABEL:; +} +/* method stream#StringOStream#init for (self: Object) */ +void VIRTUAL_stream__StringOStream__init(val* self) { +stream__StringOStream__init(self); +RET_LABEL:; +}