+/* method string#Buffer#[]= for (self: Object, Int, nullable Object) */
+void VIRTUAL_string__Buffer___91d_93d_61d(val* self, long p0, val* p1) {
+char var /* : Char */;
+var = ((struct instance_kernel__Char*)p1)->value; /* autounbox from nullable Object to Char */;
+string__Buffer___91d_93d_61d(self, p0, var);
+RET_LABEL:;
+}
+/* method string#Buffer#add for (self: Buffer, Char) */
+void string__Buffer__add(val* self, char p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+char var_c /* var c: Char */;
+long var1 /* : Int */;
+long var2 /* : Int */;
+short int var3 /* : Bool */;
+short int var5 /* : Bool */;
+int cltype6;
+int idtype7;
+const char* var_class_name8;
+short int var9 /* : Bool */;
+long var10 /* : Int */;
+long var11 /* : Int */;
+long var12 /* : Int */;
+long var14 /* : Int */;
+char* var15 /* : NativeString */;
+long var16 /* : Int */;
+val* var_ /* var : Buffer */;
+long var18 /* : Int */;
+long var19 /* : Int */;
+long var20 /* : Int */;
+long var22 /* : Int */;
+/* Covariant cast for argument 0 (c) <p0:Char> isa SimpleCollection#0 */
+/* <p0:Char> isa SimpleCollection#0 */
+var = 1; /* easy <p0:Char> isa SimpleCollection#0*/
+if (!var) {
+var_class_name = type_kernel__Char.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SimpleCollection#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 775);
+show_backtrace(1);
+}
+var_c = p0;
+var1 = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on <self:Buffer> */
+var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+{ /* Inline kernel#Int#<= (var1,var2) */
+/* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
+/* <var2:Int> isa OTHER */
+var5 = 1; /* easy <var2:Int> isa OTHER*/
+if (!var5) {
+var_class_name8 = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
+show_backtrace(1);
+}
+var9 = var1 <= var2;
+var3 = var9;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
+}
+if (var3){
+var10 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+var11 = 5;
+{ /* Inline kernel#Int#+ (var10,var11) */
+var14 = var10 + var11;
+var12 = var14;
+goto RET_LABEL13;
+RET_LABEL13:(void)0;
+}
+((void (*)(val*, long))(self->class->vft[COLOR_array__AbstractArray__enlarge]))(self, var12) /* enlarge on <self:Buffer>*/;
+} else {
+}
+var15 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on <self:Buffer> */
+var16 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+{ /* Inline string#NativeString#[]= (var15,var16,var_c) */
+var15[var16]=var_c;
+RET_LABEL17:(void)0;
+}
+var_ = self;
+var18 = var_->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_:Buffer> */
+var19 = 1;
+{ /* Inline kernel#Int#+ (var18,var19) */
+var22 = var18 + var19;
+var20 = var22;
+goto RET_LABEL21;
+RET_LABEL21:(void)0;
+}
+var_->attrs[COLOR_array__AbstractArrayRead___length].l = var20; /* _length on <var_:Buffer> */
+RET_LABEL:;
+}
+/* method string#Buffer#add for (self: Object, nullable Object) */
+void VIRTUAL_string__Buffer__add(val* self, val* p0) {
+char var /* : Char */;
+var = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
+string__Buffer__add(self, var);
+RET_LABEL:;
+}
+/* method string#Buffer#enlarge for (self: Buffer, Int) */
+void string__Buffer__enlarge(val* self, long p0) {
+long var_cap /* var cap: Int */;
+long var /* : Int */;
+long var_c /* var c: Int */;
+short int var1 /* : Bool */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+short int var4 /* : Bool */;
+short int var5 /* : Bool */;
+short int var7 /* : Bool */;
+int cltype8;
+int idtype9;
+const char* var_class_name10;
+short int var11 /* : Bool */;
+long var12 /* : Int */;
+long var13 /* : Int */;
+long var15 /* : Int */;
+long var16 /* : Int */;
+long var17 /* : Int */;
+long var19 /* : Int */;
+long var20 /* : Int */;
+long var21 /* : Int */;
+long var23 /* : Int */;
+char* var24 /* : NativeString */;
+char* var_a /* var a: NativeString */;
+char* var25 /* : NativeString */;
+long var26 /* : Int */;
+long var27 /* : Int */;
+long var28 /* : Int */;
+var_cap = p0;
+var = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on <self:Buffer> */
+var_c = var;
+{ /* Inline kernel#Int#<= (var_cap,var_c) */
+/* Covariant cast for argument 0 (i) <var_c:Int> isa OTHER */
+/* <var_c:Int> isa OTHER */
+var3 = 1; /* easy <var_c:Int> isa OTHER*/
+if (!var3) {
+var_class_name = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
+show_backtrace(1);
+}
+var4 = var_cap <= var_c;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+if (var1){
+goto RET_LABEL;
+} else {
+}
+for(;;) {
+{ /* Inline kernel#Int#<= (var_c,var_cap) */
+/* Covariant cast for argument 0 (i) <var_cap:Int> isa OTHER */
+/* <var_cap:Int> isa OTHER */
+var7 = 1; /* easy <var_cap:Int> isa OTHER*/
+if (!var7) {
+var_class_name10 = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
+show_backtrace(1);
+}
+var11 = var_c <= var_cap;
+var5 = var11;
+goto RET_LABEL6;
+RET_LABEL6:(void)0;
+}
+if (!var5) break;
+var12 = 2;
+{ /* Inline kernel#Int#* (var_c,var12) */
+var15 = var_c * var12;
+var13 = var15;
+goto RET_LABEL14;
+RET_LABEL14:(void)0;
+}
+var16 = 2;
+{ /* Inline kernel#Int#+ (var13,var16) */
+var19 = var13 + var16;
+var17 = var19;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
+}
+var_c = var17;
+CONTINUE_label: (void)0;
+}
+BREAK_label: (void)0;
+var20 = 1;
+{ /* Inline kernel#Int#+ (var_c,var20) */
+var23 = var_c + var20;
+var21 = var23;
+goto RET_LABEL22;
+RET_LABEL22:(void)0;
+}
+var24 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var21) /* calloc_string on <self:Buffer>*/;
+var_a = var24;
+var25 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on <self:Buffer> */
+var26 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+var27 = 0;
+var28 = 0;
+{ /* Inline string#NativeString#copy_to (var25,var_a,var26,var27,var28) */
+memcpy(var_a+var28,var25+var27,var26);
+RET_LABEL29:(void)0;
+}
+self->attrs[COLOR_string__AbstractString___items].str = var_a; /* _items on <self:Buffer> */
+self->attrs[COLOR_string__Buffer___capacity].l = var_c; /* _capacity on <self:Buffer> */
+RET_LABEL:;
+}
+/* method string#Buffer#enlarge for (self: Object, Int) */
+void VIRTUAL_string__Buffer__enlarge(val* self, long p0) {
+string__Buffer__enlarge(self, p0);
+RET_LABEL:;
+}
+/* method string#Buffer#append for (self: Buffer, Collection[Char]) */
+void string__Buffer__append(val* self, val* p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+val* var_s /* var s: Collection[Char] */;
+short int var1 /* : Bool */;
+int cltype2;
+int idtype3;
+long var4 /* : Int */;
+long var_sl /* var sl: Int */;
+long var5 /* : Int */;
+long var6 /* : Int */;
+long var7 /* : Int */;
+long var9 /* : Int */;
+short int var10 /* : Bool */;
+short int var12 /* : Bool */;
+int cltype13;
+int idtype14;
+const char* var_class_name15;
+short int var16 /* : Bool */;
+long var17 /* : Int */;
+long var18 /* : Int */;
+long var20 /* : Int */;
+char* var21 /* : NativeString */;
+char* var22 /* : NativeString */;
+long var23 /* : Int */;
+long var24 /* : Int */;
+val* var_ /* var : Buffer */;
+long var26 /* : Int */;
+long var27 /* : Int */;
+long var29 /* : Int */;
+/* Covariant cast for argument 0 (s) <p0:Collection[Char]> isa Collection[Sequence#0] */
+/* <p0:Collection[Char]> isa Collection[Sequence#0] */
+var = 1; /* easy <p0:Collection[Char]> isa Collection[Sequence#0]*/
+if (!var) {
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Sequence#0]", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 793);
+show_backtrace(1);
+}
+var_s = p0;
+/* <var_s:Collection[Char]> isa String */
+cltype2 = type_string__String.color;
+idtype3 = type_string__String.id;
+if(cltype2 >= var_s->type->table_size) {
+var1 = 0;
+} else {
+var1 = var_s->type->type_table[cltype2] == idtype3;
+}
+if (var1){
+var4 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:Collection[Char](String)>*/;
+var_sl = var4;
+var5 = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on <self:Buffer> */
+var6 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <self:Buffer> */
+{ /* Inline kernel#Int#+ (var6,var_sl) */
+var9 = var6 + var_sl;
+var7 = var9;
+goto RET_LABEL8;
+RET_LABEL8:(void)0;
+}
+{ /* Inline kernel#Int#< (var5,var7) */
+/* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
+/* <var7:Int> isa OTHER */
+var12 = 1; /* easy <var7:Int> isa OTHER*/
+if (!var12) {
+var_class_name15 = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
+}
+var16 = var5 < var7;
+var10 = var16;
+goto RET_LABEL11;
+RET_LABEL11:(void)0;
+}
+if (var10){
+var17 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <self:Buffer> */
+{ /* Inline kernel#Int#+ (var17,var_sl) */
+var20 = var17 + var_sl;
+var18 = var20;
+goto RET_LABEL19;
+RET_LABEL19:(void)0;
+}
+((void (*)(val*, long))(self->class->vft[COLOR_array__AbstractArray__enlarge]))(self, var18) /* enlarge on <self:Buffer>*/;
+} else {
+}
+var21 = ((char* (*)(val*))(var_s->class->vft[COLOR_string__AbstractString__items]))(var_s) /* items on <var_s:Collection[Char](String)>*/;
+var22 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on <self:Buffer> */
+var23 = var_s->attrs[COLOR_string__String___index_from].l; /* _index_from on <var_s:Collection[Char](String)> */
+var24 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <self:Buffer> */
+{ /* Inline string#NativeString#copy_to (var21,var22,var_sl,var23,var24) */
+memcpy(var22+var24,var21+var23,var_sl);
+RET_LABEL25:(void)0;
+}
+var_ = self;
+var26 = var_->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <var_:Buffer> */
+{ /* Inline kernel#Int#+ (var26,var_sl) */
+var29 = var26 + var_sl;
+var27 = var29;
+goto RET_LABEL28;
+RET_LABEL28:(void)0;
+}
+var_->attrs[COLOR_array__AbstractArrayRead___length].l = var27; /* _length on <var_:Buffer> */
+} else {
+((void (*)(val*, val*))(self->class->vft[COLOR_string__Buffer__append]))(self, p0) /* append on <self:Buffer>*/;
+}
+RET_LABEL:;
+}
+/* method string#Buffer#append for (self: Object, Collection[nullable Object]) */
+void VIRTUAL_string__Buffer__append(val* self, val* p0) {
+string__Buffer__append(self, p0);
+RET_LABEL:;
+}
+/* method string#Buffer#to_s for (self: Buffer): String */
+val* string__Buffer__to_s(val* self) {
+val* var /* : String */;
+long var1 /* : Int */;
+long var_l /* var l: Int */;
+long var2 /* : Int */;
+long var3 /* : Int */;
+long var5 /* : Int */;
+char* var6 /* : NativeString */;
+char* var_a /* var a: NativeString */;
+char* var7 /* : NativeString */;
+long var8 /* : Int */;
+long var9 /* : Int */;
+long var11 /* : Int */;
+char var12 /* : Char */;
+long var14 /* : Int */;
+val* var15 /* : String */;
+var1 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+var_l = var1;
+var2 = 1;
+{ /* Inline kernel#Int#+ (var_l,var2) */
+var5 = var_l + var2;
+var3 = var5;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
+}
+var6 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var3) /* calloc_string on <self:Buffer>*/;
+var_a = var6;
+var7 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on <self:Buffer> */
+var8 = 0;
+var9 = 0;
+{ /* Inline string#NativeString#copy_to (var7,var_a,var_l,var8,var9) */
+memcpy(var_a+var9,var7+var8,var_l);
+RET_LABEL10:(void)0;
+}
+var11 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+var12 = '\0';
+{ /* Inline string#NativeString#[]= (var_a,var11,var12) */
+var_a[var11]=var12;
+RET_LABEL13:(void)0;
+}
+var14 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+var15 = string__NativeString__to_s_with_length(var_a, var14);
+var = var15;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method string#Buffer#to_s for (self: Object): String */
+val* VIRTUAL_string__Buffer__to_s(val* self) {
+val* var /* : String */;
+val* var1 /* : String */;
+var1 = string__Buffer__to_s(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method string#Buffer#< for (self: Buffer, String): Bool */
+short int string__Buffer___60d(val* self, val* p0) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+const struct type* type_struct;
+const char* var_class_name;
+val* var_s /* var s: String */;
+long var2 /* : Int */;
+long var_i /* var i: Int */;
+long var3 /* : Int */;
+long var_l1 /* var l1: Int */;
+long var4 /* : Int */;
+long var_l2 /* var l2: Int */;
+short int var5 /* : Bool */;
+short int var6 /* : Bool */;
+short int var8 /* : Bool */;
+int cltype9;
+int idtype10;
+const char* var_class_name11;
+short int var12 /* : Bool */;
+short int var_ /* var : Bool */;
+short int var13 /* : Bool */;
+short int var15 /* : Bool */;
+int cltype16;
+int idtype17;
+const char* var_class_name18;
+short int var19 /* : Bool */;
+val* var20 /* : StringCharView */;
+val* var21 /* : nullable Object */;
+long var22 /* : Int */;
+char var24 /* : Char */;
+long var25 /* : Int */;
+long var_c1 /* var c1: Int */;
+val* var26 /* : StringCharView */;
+val* var27 /* : nullable Object */;
+long var28 /* : Int */;
+char var30 /* : Char */;
+long var31 /* : Int */;
+long var_c2 /* var c2: Int */;
+short int var32 /* : Bool */;
+short int var34 /* : Bool */;
+int cltype35;
+int idtype36;
+const char* var_class_name37;
+short int var38 /* : Bool */;
+short int var39 /* : Bool */;
+short int var40 /* : Bool */;
+short int var42 /* : Bool */;
+int cltype43;
+int idtype44;
+const char* var_class_name45;
+short int var46 /* : Bool */;
+short int var47 /* : Bool */;
+long var48 /* : Int */;
+long var49 /* : Int */;
+long var51 /* : Int */;
+short int var52 /* : Bool */;
+short int var54 /* : Bool */;
+int cltype55;
+int idtype56;
+const char* var_class_name57;
+short int var58 /* : Bool */;
+short int var59 /* : Bool */;
+short int var60 /* : Bool */;
+/* Covariant cast for argument 0 (s) <p0:String> isa OTHER */
+/* <p0:String> isa OTHER */
+type_struct = self->type->resolution_table->types[COLOR_kernel__Comparable_VTOTHER];
+cltype = type_struct->color;
+idtype = type_struct->id;
+if(cltype >= p0->type->table_size) {
+var1 = 0;
+} else {
+var1 = p0->type->type_table[cltype] == idtype;
+}
+if (!var1) {
+var_class_name = p0 == NULL ? "null" : p0->type->name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 817);
+show_backtrace(1);
+}
+var_s = p0;
+var2 = 0;
+var_i = var2;
+var3 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+var_l1 = var3;
+var4 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:String>*/;
+var_l2 = var4;
+for(;;) {
+{ /* Inline kernel#Int#< (var_i,var_l1) */
+/* Covariant cast for argument 0 (i) <var_l1:Int> isa OTHER */
+/* <var_l1:Int> isa OTHER */
+var8 = 1; /* easy <var_l1: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", 265);
+show_backtrace(1);
+}
+var12 = var_i < var_l1;
+var6 = var12;
+goto RET_LABEL7;
+RET_LABEL7:(void)0;
+}
+var_ = var6;
+if (var6){
+{ /* Inline kernel#Int#< (var_i,var_l2) */
+/* Covariant cast for argument 0 (i) <var_l2:Int> isa OTHER */
+/* <var_l2:Int> isa OTHER */
+var15 = 1; /* easy <var_l2: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", 265);
+show_backtrace(1);
+}
+var19 = var_i < var_l2;
+var13 = var19;
+goto RET_LABEL14;
+RET_LABEL14:(void)0;
+}
+var5 = var13;
+} else {
+var5 = var_;
+}
+if (!var5) break;
+var20 = ((val* (*)(val*))(self->class->vft[COLOR_string__AbstractString__chars]))(self) /* chars on <self:Buffer>*/;
+var21 = ((val* (*)(val*, long))(var20->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var20, var_i) /* [] on <var20:StringCharView(BufferCharView)>*/;
+{ /* Inline kernel#Char#ascii (var21) */
+var24 = ((struct instance_kernel__Char*)var21)->value; /* autounbox from nullable Object to Char */;
+var25 = (unsigned char)var24;
+var22 = var25;
+goto RET_LABEL23;
+RET_LABEL23:(void)0;
+}
+var_c1 = var22;
+var26 = ((val* (*)(val*))(var_s->class->vft[COLOR_string__AbstractString__chars]))(var_s) /* chars on <var_s:String>*/;
+var27 = ((val* (*)(val*, long))(var26->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var26, var_i) /* [] on <var26:StringCharView>*/;
+{ /* Inline kernel#Char#ascii (var27) */
+var30 = ((struct instance_kernel__Char*)var27)->value; /* autounbox from nullable Object to Char */;
+var31 = (unsigned char)var30;
+var28 = var31;
+goto RET_LABEL29;
+RET_LABEL29:(void)0;
+}
+var_c2 = var28;
+{ /* Inline kernel#Int#< (var_c1,var_c2) */
+/* Covariant cast for argument 0 (i) <var_c2:Int> isa OTHER */
+/* <var_c2:Int> isa OTHER */
+var34 = 1; /* easy <var_c2: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", 265);
+show_backtrace(1);
+}
+var38 = var_c1 < var_c2;
+var32 = var38;
+goto RET_LABEL33;
+RET_LABEL33:(void)0;
+}
+if (var32){
+var39 = 1;
+var = var39;
+goto RET_LABEL;
+} else {
+{ /* Inline kernel#Int#< (var_c2,var_c1) */
+/* Covariant cast for argument 0 (i) <var_c1:Int> isa OTHER */
+/* <var_c1:Int> isa OTHER */
+var42 = 1; /* easy <var_c1:Int> isa OTHER*/
+if (!var42) {
+var_class_name45 = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
+}
+var46 = var_c2 < var_c1;
+var40 = var46;
+goto RET_LABEL41;
+RET_LABEL41:(void)0;
+}
+if (var40){
+var47 = 0;
+var = var47;
+goto RET_LABEL;
+} else {
+}
+}
+var48 = 1;
+{ /* Inline kernel#Int#+ (var_i,var48) */
+var51 = var_i + var48;
+var49 = var51;
+goto RET_LABEL50;
+RET_LABEL50:(void)0;
+}
+var_i = var49;
+CONTINUE_label: (void)0;
+}
+BREAK_label: (void)0;
+{ /* Inline kernel#Int#< (var_l1,var_l2) */
+/* Covariant cast for argument 0 (i) <var_l2:Int> isa OTHER */
+/* <var_l2:Int> isa OTHER */
+var54 = 1; /* easy <var_l2:Int> isa OTHER*/
+if (!var54) {
+var_class_name57 = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
+show_backtrace(1);
+}
+var58 = var_l1 < var_l2;
+var52 = var58;
+goto RET_LABEL53;
+RET_LABEL53:(void)0;
+}
+if (var52){
+var59 = 1;
+var = var59;
+goto RET_LABEL;
+} else {
+var60 = 0;
+var = var60;
+goto RET_LABEL;
+}
+RET_LABEL:;
+return var;
+}
+/* method string#Buffer#< for (self: Object, Comparable): Bool */
+short int VIRTUAL_string__Buffer___60d(val* self, val* p0) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = string__Buffer___60d(self, p0);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method string#Buffer#init for (self: Buffer) */
+void string__Buffer__init(val* self) {
+long var /* : Int */;
+var = 5;
+((void (*)(val*, long))(self->class->vft[COLOR_string__Buffer__with_capacity]))(self, var) /* with_capacity on <self:Buffer>*/;
+RET_LABEL:;
+}
+/* method string#Buffer#init for (self: Object) */
+void VIRTUAL_string__Buffer__init(val* self) {
+string__Buffer__init(self);
+RET_LABEL:;
+}
+/* method string#Buffer#from for (self: Buffer, String) */
+void string__Buffer__from(val* self, val* p0) {
+val* var_s /* var s: String */;
+long var /* : Int */;
+long var1 /* : Int */;
+long var2 /* : Int */;
+long var4 /* : Int */;
+long var5 /* : Int */;
+long var6 /* : Int */;
+char* var7 /* : NativeString */;
+char* var8 /* : NativeString */;
+char* var9 /* : NativeString */;
+long var10 /* : Int */;
+long var11 /* : Int */;
+long var12 /* : Int */;
+var_s = p0;
+((void (*)(val*))(self->class->vft[COLOR_string__AbstractString__init]))(self) /* init on <self:Buffer>*/;
+((void (*)(val*))(self->class->vft[COLOR_array__AbstractArray__init]))(self) /* init on <self:Buffer>*/;
+var = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:String>*/;
+var1 = 1;
+{ /* Inline kernel#Int#+ (var,var1) */
+var4 = var + var1;
+var2 = var4;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+self->attrs[COLOR_string__Buffer___capacity].l = var2; /* _capacity on <self:Buffer> */
+var5 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:String>*/;
+self->attrs[COLOR_array__AbstractArrayRead___length].l = var5; /* _length on <self:Buffer> */
+var6 = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on <self:Buffer> */
+var7 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var6) /* calloc_string on <self:Buffer>*/;
+self->attrs[COLOR_string__AbstractString___items].str = var7; /* _items on <self:Buffer> */
+var8 = ((char* (*)(val*))(var_s->class->vft[COLOR_string__AbstractString__items]))(var_s) /* items on <var_s:String>*/;
+var9 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on <self:Buffer> */
+var10 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <self:Buffer> */
+var11 = var_s->attrs[COLOR_string__String___index_from].l; /* _index_from on <var_s:String> */
+var12 = 0;
+{ /* Inline string#NativeString#copy_to (var8,var9,var10,var11,var12) */
+memcpy(var9+var12,var8+var11,var10);
+RET_LABEL13:(void)0;
+}
+RET_LABEL:;
+}
+/* method string#Buffer#from for (self: Object, String) */
+void VIRTUAL_string__Buffer__from(val* self, val* p0) {
+string__Buffer__from(self, p0);
+RET_LABEL:;
+}
+/* method string#Buffer#with_capacity for (self: Buffer, Int) */
+void string__Buffer__with_capacity(val* self, long p0) {
+long var_cap /* var cap: Int */;
+long var /* : Int */;
+short int var1 /* : Bool */;
+short int var3 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+short int var4 /* : Bool */;
+long var5 /* : Int */;
+long var6 /* : Int */;
+long var8 /* : Int */;
+char* var9 /* : NativeString */;
+long var10 /* : Int */;
+var_cap = p0;
+((void (*)(val*))(self->class->vft[COLOR_string__AbstractString__init]))(self) /* init on <self:Buffer>*/;
+((void (*)(val*))(self->class->vft[COLOR_array__AbstractArray__init]))(self) /* init on <self:Buffer>*/;
+var = 0;
+{ /* Inline kernel#Int#>= (var_cap,var) */
+/* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
+/* <var:Int> isa OTHER */
+var3 = 1; /* easy <var:Int> isa OTHER*/
+if (!var3) {
+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);
+}
+var4 = var_cap >= var;
+var1 = var4;
+goto RET_LABEL2;
+RET_LABEL2:(void)0;
+}
+if (!var1) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 856);
+show_backtrace(1);
+}
+var5 = 1;
+{ /* Inline kernel#Int#+ (var_cap,var5) */
+var8 = var_cap + var5;
+var6 = var8;
+goto RET_LABEL7;
+RET_LABEL7:(void)0;
+}
+var9 = ((char* (*)(val*, long))(self->class->vft[COLOR_string__StringCapable__calloc_string]))(self, var6) /* calloc_string on <self:Buffer>*/;
+self->attrs[COLOR_string__AbstractString___items].str = var9; /* _items on <self:Buffer> */
+self->attrs[COLOR_string__Buffer___capacity].l = var_cap; /* _capacity on <self:Buffer> */
+var10 = 0;
+self->attrs[COLOR_array__AbstractArrayRead___length].l = var10; /* _length on <self:Buffer> */
+RET_LABEL:;
+}
+/* method string#Buffer#with_capacity for (self: Object, Int) */
+void VIRTUAL_string__Buffer__with_capacity(val* self, long p0) {
+string__Buffer__with_capacity(self, p0);
+RET_LABEL:;
+}
+/* method string#Buffer#== for (self: Buffer, nullable Object): Bool */
+short int string__Buffer___61d_61d(val* self, val* p0) {
+short int var /* : Bool */;
+val* var_o /* var o: nullable Object */;
+short int var1 /* : Bool */;
+int cltype;
+int idtype;
+short int var2 /* : Bool */;
+short int var3 /* : Bool */;
+long var4 /* : Int */;
+long var_l /* var l: Int */;
+long var5 /* : Int */;
+short int var6 /* : Bool */;
+short int var8 /* : Bool */;
+short int var9 /* : Bool */;
+short int var10 /* : Bool */;
+long var11 /* : Int */;
+long var_i /* var i: Int */;
+char* var12 /* : NativeString */;
+char* var_it /* var it: NativeString */;
+char* var13 /* : NativeString */;
+char* var_oit /* var oit: NativeString */;
+short int var14 /* : Bool */;
+short int var16 /* : Bool */;
+int cltype17;
+int idtype18;
+const char* var_class_name;
+short int var19 /* : Bool */;
+char var20 /* : Char */;
+char var22 /* : Char */;
+char var23 /* : Char */;
+char var25 /* : Char */;
+short int var26 /* : Bool */;
+short int var28 /* : Bool */;
+short int var29 /* : Bool */;
+short int var30 /* : Bool */;
+long var31 /* : Int */;
+long var32 /* : Int */;
+long var34 /* : Int */;
+short int var35 /* : Bool */;
+var_o = p0;
+/* <var_o:nullable Object> isa Buffer */
+cltype = type_string__Buffer.color;
+idtype = type_string__Buffer.id;
+if(var_o == NULL) {
+var1 = 0;
+} else {
+if(cltype >= var_o->type->table_size) {
+var1 = 0;
+} else {
+var1 = var_o->type->type_table[cltype] == idtype;
+}
+}
+var2 = !var1;
+if (var2){
+var3 = 0;
+var = var3;
+goto RET_LABEL;
+} else {
+}
+var4 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:Buffer>*/;
+var_l = var4;
+var5 = ((long (*)(val*))(var_o->class->vft[COLOR_abstract_collection__Collection__length]))(var_o) /* length on <var_o:nullable Object(Buffer)>*/;
+{ /* Inline kernel#Int#!= (var5,var_l) */
+var8 = var5 == var_l;
+var9 = !var8;
+var6 = var9;
+goto RET_LABEL7;
+RET_LABEL7:(void)0;
+}
+if (var6){
+var10 = 0;
+var = var10;
+goto RET_LABEL;
+} else {
+}
+var11 = 0;
+var_i = var11;
+var12 = self->attrs[COLOR_string__AbstractString___items].str; /* _items on <self:Buffer> */
+var_it = var12;
+var13 = var_o->attrs[COLOR_string__AbstractString___items].str; /* _items on <var_o:nullable Object(Buffer)> */
+var_oit = var13;
+for(;;) {
+{ /* Inline kernel#Int#< (var_i,var_l) */
+/* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
+/* <var_l:Int> isa OTHER */
+var16 = 1; /* easy <var_l:Int> isa OTHER*/
+if (!var16) {
+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);
+}
+var19 = var_i < var_l;
+var14 = var19;
+goto RET_LABEL15;
+RET_LABEL15:(void)0;
+}
+if (!var14) break;
+{ /* Inline string#NativeString#[] (var_it,var_i) */
+var22 = var_it[var_i];
+var20 = var22;
+goto RET_LABEL21;
+RET_LABEL21:(void)0;
+}
+{ /* Inline string#NativeString#[] (var_oit,var_i) */
+var25 = var_oit[var_i];
+var23 = var25;
+goto RET_LABEL24;
+RET_LABEL24:(void)0;
+}
+{ /* Inline kernel#Char#!= (var20,var23) */
+var28 = var20 == var23;
+var29 = !var28;
+var26 = var29;
+goto RET_LABEL27;
+RET_LABEL27:(void)0;
+}
+if (var26){
+var30 = 0;
+var = var30;
+goto RET_LABEL;
+} else {
+}
+var31 = 1;
+{ /* Inline kernel#Int#+ (var_i,var31) */
+var34 = var_i + var31;
+var32 = var34;
+goto RET_LABEL33;
+RET_LABEL33:(void)0;
+}
+var_i = var32;
+CONTINUE_label: (void)0;
+}
+BREAK_label: (void)0;
+var35 = 1;
+var = var35;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method string#Buffer#== for (self: Object, nullable Object): Bool */
+short int VIRTUAL_string__Buffer___61d_61d(val* self, val* p0) {
+short int var /* : Bool */;
+short int var1 /* : Bool */;
+var1 = string__Buffer___61d_61d(self, p0);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method string#Buffer#capacity for (self: Buffer): Int */
+long string__Buffer__capacity(val* self) {
+long var /* : Int */;
+long var1 /* : Int */;
+var1 = self->attrs[COLOR_string__Buffer___capacity].l; /* _capacity on <self:Buffer> */
+var = var1;