+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;
+RET_LABEL:;
+return var;
+}
+/* method string#Buffer#capacity for (self: Object): Int */
+long VIRTUAL_string__Buffer__capacity(val* self) {
+long var /* : Int */;
+long var1 /* : Int */;
+var1 = string__Buffer__capacity(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method string#FlatBufferCharView#[] for (self: FlatBufferCharView, Int): Char */
+char string__FlatBufferCharView___91d_93d(val* self, long p0) {
+char var /* : Char */;
+long var_index /* var index: Int */;
+val* var1 /* : AbstractString */;
+char* var2 /* : NativeString */;
+char var3 /* : Char */;
+char var5 /* : Char */;
+var_index = p0;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+var2 = var1->attrs[COLOR_string__AbstractString___items].str; /* _items on <var1:AbstractString(Buffer)> */
+{ /* Inline string#NativeString#[] (var2,var_index) */
+var5 = var2[var_index];
+var3 = var5;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
+}
+var = var3;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method string#FlatBufferCharView#[] for (self: Object, Int): nullable Object */
+val* VIRTUAL_string__FlatBufferCharView___91d_93d(val* self, long p0) {
+val* var /* : nullable Object */;
+char var1 /* : Char */;
+val* var2 /* : nullable Object */;
+var1 = string__FlatBufferCharView___91d_93d(self, p0);
+var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */
+var = var2;
+RET_LABEL:;
+return var;
+}
+/* method string#FlatBufferCharView#[]= for (self: FlatBufferCharView, Int, Char) */
+void string__FlatBufferCharView___91d_93d_61d(val* self, long p0, char p1) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+long var_index /* var index: Int */;
+char var_item /* var item: Char */;
+short int var1 /* : Bool */;
+long var2 /* : Int */;
+short int var3 /* : Bool */;
+short int var5 /* : Bool */;
+int cltype6;
+int idtype7;
+const char* var_class_name8;
+short int var9 /* : Bool */;
+short int var_ /* var : Bool */;
+long var10 /* : Int */;
+short int var11 /* : Bool */;
+short int var13 /* : Bool */;
+int cltype14;
+int idtype15;
+const char* var_class_name16;
+short int var17 /* : Bool */;
+long var18 /* : Int */;
+short int var19 /* : Bool */;
+short int var21 /* : Bool */;
+val* var22 /* : nullable Object */;
+val* var23 /* : AbstractString */;
+char* var24 /* : NativeString */;
+/* Covariant cast for argument 1 (item) <p1:Char> isa Sequence#0 */
+/* <p1:Char> isa Sequence#0 */
+var = 1; /* easy <p1:Char> isa Sequence#0*/
+if (!var) {
+var_class_name = type_kernel__Char.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 889);
+show_backtrace(1);
+}
+var_index = p0;
+var_item = p1;
+var2 = 0;
+{ /* Inline kernel#Int#>= (var_index,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", 266);
+show_backtrace(1);
+}
+var9 = var_index >= var2;
+var3 = var9;
+goto RET_LABEL4;
+RET_LABEL4:(void)0;
+}
+var_ = var3;
+if (var3){
+var10 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:FlatBufferCharView>*/;
+{ /* Inline kernel#Int#<= (var_index,var10) */
+/* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
+/* <var10:Int> isa OTHER */
+var13 = 1; /* easy <var10:Int> isa OTHER*/
+if (!var13) {
+var_class_name16 = type_kernel__Int.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 264);
+show_backtrace(1);
+}
+var17 = var_index <= var10;
+var11 = var17;
+goto RET_LABEL12;
+RET_LABEL12:(void)0;
+}
+var1 = var11;
+} else {
+var1 = var_;
+}
+if (!var1) {
+fprintf(stderr, "Runtime error: %s", "Assert failed");
+fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 891);
+show_backtrace(1);
+}
+var18 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on <self:FlatBufferCharView>*/;
+{ /* Inline kernel#Int#== (var_index,var18) */
+var21 = var_index == var18;
+var19 = var21;
+goto RET_LABEL20;
+RET_LABEL20:(void)0;
+}
+if (var19){
+var22 = BOX_kernel__Char(var_item); /* autobox from Char to nullable Object */
+((void (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(self, var22) /* add on <self:FlatBufferCharView>*/;
+goto RET_LABEL;
+} else {
+}
+var23 = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+var24 = var23->attrs[COLOR_string__AbstractString___items].str; /* _items on <var23:AbstractString(Buffer)> */
+{ /* Inline string#NativeString#[]= (var24,var_index,var_item) */
+var24[var_index]=var_item;
+RET_LABEL25:(void)0;
+}
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#[]= for (self: Object, Int, nullable Object) */
+void VIRTUAL_string__FlatBufferCharView___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__FlatBufferCharView___91d_93d_61d(self, p0, var);
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#push for (self: FlatBufferCharView, Char) */
+void string__FlatBufferCharView__push(val* self, char p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+char var_c /* var c: Char */;
+val* var1 /* : AbstractString */;
+val* var2 /* : nullable Object */;
+/* Covariant cast for argument 0 (c) <p0:Char> isa Sequence#0 */
+/* <p0:Char> isa Sequence#0 */
+var = 1; /* easy <p0:Char> isa Sequence#0*/
+if (!var) {
+var_class_name = type_kernel__Char.name;
+fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name);
+fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 899);
+show_backtrace(1);
+}
+var_c = p0;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+var2 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */
+((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var1, var2) /* add on <var1:AbstractString(Buffer)>*/;
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#push for (self: Object, nullable Object) */
+void VIRTUAL_string__FlatBufferCharView__push(val* self, val* p0) {
+char var /* : Char */;
+var = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
+string__FlatBufferCharView__push(self, var);
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#add for (self: FlatBufferCharView, Char) */
+void string__FlatBufferCharView__add(val* self, char p0) {
+short int var /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+char var_c /* var c: Char */;
+val* var1 /* : AbstractString */;
+val* var2 /* : nullable Object */;
+/* 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", 904);
+show_backtrace(1);
+}
+var_c = p0;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+var2 = BOX_kernel__Char(var_c); /* autobox from Char to nullable Object */
+((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var1, var2) /* add on <var1:AbstractString(Buffer)>*/;
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#add for (self: Object, nullable Object) */
+void VIRTUAL_string__FlatBufferCharView__add(val* self, val* p0) {
+char var /* : Char */;
+var = ((struct instance_kernel__Char*)p0)->value; /* autounbox from nullable Object to Char */;
+string__FlatBufferCharView__add(self, var);
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#enlarge for (self: FlatBufferCharView, Int) */
+void string__FlatBufferCharView__enlarge(val* self, long p0) {
+long var_cap /* var cap: Int */;
+val* var /* : AbstractString */;
+var_cap = p0;
+var = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+((void (*)(val*, long))(var->class->vft[COLOR_array__AbstractArray__enlarge]))(var, var_cap) /* enlarge on <var:AbstractString(Buffer)>*/;
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#enlarge for (self: Object, Int) */
+void VIRTUAL_string__FlatBufferCharView__enlarge(val* self, long p0) {
+string__FlatBufferCharView__enlarge(self, p0);
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#append for (self: FlatBufferCharView, Collection[Char]) */
+void string__FlatBufferCharView__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] */;
+val* var1 /* : AbstractString */;
+char* var2 /* : NativeString */;
+char* var_my_items /* var my_items: NativeString */;
+long var3 /* : Int */;
+long var_s_length /* var s_length: Int */;
+val* var4 /* : AbstractString */;
+long var5 /* : Int */;
+long var6 /* : Int */;
+short int var7 /* : Bool */;
+short int var9 /* : Bool */;
+int cltype10;
+int idtype11;
+const char* var_class_name12;
+short int var13 /* : Bool */;
+val* var14 /* : AbstractString */;
+long var15 /* : Int */;
+long var16 /* : Int */;
+long var18 /* : 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", 914);
+show_backtrace(1);
+}
+var_s = p0;
+var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+var2 = ((char* (*)(val*))(var1->class->vft[COLOR_string__AbstractString__items]))(var1) /* items on <var1:AbstractString(Buffer)>*/;
+var_my_items = var2;
+var3 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:Collection[Char]>*/;
+var_s_length = var3;
+var4 = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+var5 = ((long (*)(val*))(var4->class->vft[COLOR_string__Buffer__capacity]))(var4) /* capacity on <var4:AbstractString(Buffer)>*/;
+var6 = ((long (*)(val*))(var_s->class->vft[COLOR_abstract_collection__Collection__length]))(var_s) /* length on <var_s:Collection[Char]>*/;
+{ /* Inline kernel#Int#< (var5,var6) */
+/* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
+/* <var6:Int> isa OTHER */
+var9 = 1; /* easy <var6: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", 265);
+show_backtrace(1);
+}
+var13 = var5 < var6;
+var7 = var13;
+goto RET_LABEL8;
+RET_LABEL8:(void)0;
+}
+if (var7){
+var14 = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+var15 = ((long (*)(val*))(var14->class->vft[COLOR_abstract_collection__Collection__length]))(var14) /* length on <var14:AbstractString(Buffer)>*/;
+{ /* Inline kernel#Int#+ (var_s_length,var15) */
+var18 = var_s_length + var15;
+var16 = var18;
+goto RET_LABEL17;
+RET_LABEL17:(void)0;
+}
+((void (*)(val*, long))(self->class->vft[COLOR_string__FlatBufferCharView__enlarge]))(self, var16) /* enlarge on <self:FlatBufferCharView>*/;
+} else {
+}
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#append for (self: Object, Collection[nullable Object]) */
+void VIRTUAL_string__FlatBufferCharView__append(val* self, val* p0) {
+string__FlatBufferCharView__append(self, p0);
+RET_LABEL:;
+}
+/* method string#FlatBufferCharView#iterator for (self: FlatBufferCharView): IndexedIterator[Char] */
+val* string__FlatBufferCharView__iterator(val* self) {
+val* var /* : IndexedIterator[Char] */;
+val* var1 /* : FlatBufferIterator */;
+val* var2 /* : AbstractString */;
+long var3 /* : Int */;
+var1 = NEW_string__FlatBufferIterator(&type_string__FlatBufferIterator);
+var2 = ((val* (*)(val*))(self->class->vft[COLOR_string__StringCharView__target]))(self) /* target on <self:FlatBufferCharView>*/;
+var3 = 0;
+((void (*)(val*, val*, long))(var1->class->vft[COLOR_string__FlatBufferIterator__with_pos]))(var1, var2, var3) /* with_pos on <var1:FlatBufferIterator>*/;
+var = var1;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method string#FlatBufferCharView#iterator for (self: Object): Iterator[nullable Object] */
+val* VIRTUAL_string__FlatBufferCharView__iterator(val* self) {
+val* var /* : Iterator[nullable Object] */;
+val* var1 /* : IndexedIterator[Char] */;
+var1 = string__FlatBufferCharView__iterator(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method string#FlatBufferIterator#target for (self: FlatBufferIterator): Buffer */
+val* string__FlatBufferIterator__target(val* self) {
+val* var /* : Buffer */;
+val* var1 /* : Buffer */;
+var1 = self->attrs[COLOR_string__FlatBufferIterator___64dtarget].val; /* @target on <self:FlatBufferIterator> */
+if (var1 == NULL) {
+fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @target");
+fprintf(stderr, " (%s:%d)\n", "lib/standard/string.nit", 928);
+show_backtrace(1);
+}
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method string#FlatBufferIterator#target for (self: Object): Buffer */
+val* VIRTUAL_string__FlatBufferIterator__target(val* self) {
+val* var /* : Buffer */;
+val* var1 /* : Buffer */;
+var1 = string__FlatBufferIterator__target(self);
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method string#FlatBufferIterator#target= for (self: FlatBufferIterator, Buffer) */
+void string__FlatBufferIterator__target_61d(val* self, val* p0) {
+self->attrs[COLOR_string__FlatBufferIterator___64dtarget].val = p0; /* @target on <self:FlatBufferIterator> */
+RET_LABEL:;
+}
+/* method string#FlatBufferIterator#target= for (self: Object, Buffer) */
+void VIRTUAL_string__FlatBufferIterator__target_61d(val* self, val* p0) {
+string__FlatBufferIterator__target_61d(self, p0);
+RET_LABEL:;
+}
+/* method string#FlatBufferIterator#target_items for (self: FlatBufferIterator): NativeString */
+char* string__FlatBufferIterator__target_items(val* self) {
+char* var /* : NativeString */;
+char* var1 /* : NativeString */;
+var1 = self->attrs[COLOR_string__FlatBufferIterator___64dtarget_items].str; /* @target_items on <self:FlatBufferIterator> */
+var = var1;
+RET_LABEL:;
+return var;
+}
+/* method string#FlatBufferIterator#target_items for (self: Object): NativeString */
+char* VIRTUAL_string__FlatBufferIterator__target_items(val* self) {
+char* var /* : NativeString */;
+char* var1 /* : NativeString */;
+var1 = string__FlatBufferIterator__target_items(self);
+var = var1;
+RET_LABEL:;
+return var;