+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
+fatal_exit(1);
+}
+var11 = var_p >= var_st;
+var8 = var11;
+goto RET_LABEL9;
+RET_LABEL9:(void)0;
+}
+}
+var_ = var8;
+if (var8){
+{
+var12 = core___core__Char___ascii('.');
+}
+{
+{ /* Inline kernel$Byte$!= (var_c,var12) on <var_c:Byte> */
+var15 = var_c == var12;
+var16 = !var15;
+var13 = var16;
+goto RET_LABEL14;
+RET_LABEL14:(void)0;
+}
+}
+var7 = var13;
+} else {
+var7 = var_;
+}
+if (var7){
+{
+{ /* Inline kernel$Int$- (var_p,1l) on <var_p:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var19 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var19)) {
+var_class_name22 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+fatal_exit(1);
+}
+var23 = var_p - 1l;
+var17 = var23;
+goto RET_LABEL18;
+RET_LABEL18:(void)0;
+}
+}
+var_p = var17;
+{
+{ /* Inline native$CString$[] (var_its,var_p) on <var_its:CString> */
+var26 = (unsigned char)((int)var_its[var_p]);
+var24 = var26;
+goto RET_LABEL25;
+RET_LABEL25:(void)0;
+}
+}
+var_c = var24;
+} else {
+goto BREAK_label;
+}
+}
+BREAK_label: (void)0;
+{
+{ /* Inline kernel$Int$<= (var_p,var_st) on <var_p:Int> */
+/* Covariant cast for argument 0 (i) <var_st:Int> isa OTHER */
+/* <var_st:Int> isa OTHER */
+var29 = 1; /* easy <var_st:Int> isa OTHER*/
+if (unlikely(!var29)) {
+var_class_name32 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
+fatal_exit(1);
+}
+var33 = var_p <= var_st;
+var27 = var33;
+goto RET_LABEL28;
+RET_LABEL28:(void)0;
+}
+}
+if (var27){
+var = ((val*)NULL);
+goto RET_LABEL;
+} else {
+}
+{
+var34 = core__flat___FlatText___last_byte(self);
+}
+var_ls = var34;
+if (likely(varoncenew_guard)) {
+var35 = varoncenew;
+} else {
+var36 = NEW_core__FlatString(&type_core__FlatString);
+var35 = var36;
+varoncenew = var35;
+varoncenew_guard = 1;
+}
+{
+{ /* Inline kernel$Int$- (var_ls,var_p) on <var_ls:Int> */
+/* Covariant cast for argument 0 (i) <var_p:Int> isa OTHER */
+/* <var_p:Int> isa OTHER */
+var39 = 1; /* easy <var_p:Int> isa OTHER*/
+if (unlikely(!var39)) {
+var_class_name42 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+fatal_exit(1);
+}
+var43 = var_ls - var_p;
+var37 = var43;
+goto RET_LABEL38;
+RET_LABEL38:(void)0;
+}
+}
+{
+{ /* Inline kernel$Int$+ (var_p,1l) on <var_p:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var46 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var46)) {
+var_class_name49 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
+fatal_exit(1);
+}
+var50 = var_p + 1l;
+var44 = var50;
+goto RET_LABEL45;
+RET_LABEL45:(void)0;
+}
+}
+{
+var51 = core___core__FlatString___with_infos(var35, var_its, var37, var44);
+}
+var = var51;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method file$FlatString$basename for (self: FlatString, nullable String): String */
+val* core__file___FlatString___String__basename(val* self, val* p0) {
+val* var /* : String */;
+val* var_extension /* var extension: nullable String */;
+val* var1 /* : Sys */;
+short int var2 /* : Bool */;
+short int var4 /* : Bool */;
+long var5 /* : Int */;
+long var_l /* var l: Int */;
+char* var6 /* : CString */;
+char* var_its /* var its: CString */;
+long var7 /* : Int */;
+long var_min /* var min: Int */;
+unsigned char var8 /* : Byte */;
+unsigned char var_sl /* var sl: Byte */;
+unsigned char var9 /* : Byte */;
+unsigned char var_ls /* var ls: Byte */;
+short int var10 /* : Bool */;
+short int var11 /* : Bool */;
+short int var13 /* : Bool */;
+int cltype;
+int idtype;
+const char* var_class_name;
+short int var14 /* : Bool */;
+short int var_ /* var : Bool */;
+short int var15 /* : Bool */;
+unsigned char var16 /* : Byte */;
+unsigned char var18 /* : Byte */;
+short int var19 /* : Bool */;
+short int var21 /* : Bool */;
+short int var_22 /* var : Bool */;
+unsigned char var23 /* : Byte */;
+unsigned char var25 /* : Byte */;
+short int var26 /* : Bool */;
+short int var28 /* : Bool */;
+long var29 /* : Int */;
+short int var31 /* : Bool */;
+int cltype32;
+int idtype33;
+const char* var_class_name34;
+long var35 /* : Int */;
+short int var36 /* : Bool */;
+short int var38 /* : Bool */;
+static val* varonce;
+val* var39 /* : String */;
+char* var40 /* : CString */;
+val* var41 /* : String */;
+val* var42 /* : nullable Int */;
+val* var43 /* : nullable Int */;
+val* var44 /* : nullable Bool */;
+val* var45 /* : nullable Bool */;
+long var_ns /* var ns: Int */;
+short int var46 /* : Bool */;
+short int var47 /* : Bool */;
+short int var48 /* : Bool */;
+short int var50 /* : Bool */;
+int cltype51;
+int idtype52;
+const char* var_class_name53;
+short int var54 /* : Bool */;
+short int var_55 /* var : Bool */;
+unsigned char var56 /* : Byte */;
+unsigned char var58 /* : Byte */;
+short int var59 /* : Bool */;
+short int var61 /* : Bool */;
+short int var62 /* : Bool */;
+short int var_63 /* var : Bool */;
+unsigned char var64 /* : Byte */;
+unsigned char var66 /* : Byte */;
+short int var67 /* : Bool */;
+short int var69 /* : Bool */;
+short int var70 /* : Bool */;
+long var71 /* : Int */;
+short int var73 /* : Bool */;
+int cltype74;
+int idtype75;
+const char* var_class_name76;
+long var77 /* : Int */;
+static val* varoncenew;
+static int varoncenew_guard;
+val* var79 /* : FlatString */;
+val* var80 /* : FlatString */;
+long var81 /* : Int */;
+short int var83 /* : Bool */;
+int cltype84;
+int idtype85;
+const char* var_class_name86;
+long var87 /* : Int */;
+long var88 /* : Int */;
+short int var90 /* : Bool */;
+int cltype91;
+int idtype92;
+const char* var_class_name93;
+long var94 /* : Int */;
+val* var95 /* : FlatString */;
+val* var_bname /* var bname: nullable Object */;
+long var96 /* : Int */;
+long var_l97 /* var l: Int */;
+char* var98 /* : CString */;
+char* var_its99 /* var its: CString */;
+long var100 /* : Int */;
+long var_min101 /* var min: Int */;
+unsigned char var102 /* : Byte */;
+unsigned char var_sl103 /* var sl: Byte */;
+short int var104 /* : Bool */;
+short int var105 /* : Bool */;
+short int var107 /* : Bool */;
+int cltype108;
+int idtype109;
+const char* var_class_name110;
+short int var111 /* : Bool */;
+short int var_112 /* var : Bool */;
+unsigned char var113 /* : Byte */;
+unsigned char var115 /* : Byte */;
+short int var116 /* : Bool */;
+short int var118 /* : Bool */;
+long var119 /* : Int */;
+short int var121 /* : Bool */;
+int cltype122;
+int idtype123;
+const char* var_class_name124;
+long var125 /* : Int */;
+short int var127 /* : Bool */;
+short int var129 /* : Bool */;
+static val* varonce130;
+val* var131 /* : String */;
+char* var132 /* : CString */;
+val* var133 /* : String */;
+val* var134 /* : nullable Int */;
+val* var135 /* : nullable Int */;
+val* var136 /* : nullable Bool */;
+val* var137 /* : nullable Bool */;
+long var_ns138 /* var ns: Int */;
+short int var139 /* : Bool */;
+short int var140 /* : Bool */;
+short int var142 /* : Bool */;
+int cltype143;
+int idtype144;
+const char* var_class_name145;
+short int var146 /* : Bool */;
+short int var_147 /* var : Bool */;
+unsigned char var148 /* : Byte */;
+unsigned char var150 /* : Byte */;
+short int var151 /* : Bool */;
+short int var153 /* : Bool */;
+short int var154 /* : Bool */;
+long var155 /* : Int */;
+short int var157 /* : Bool */;
+int cltype158;
+int idtype159;
+const char* var_class_name160;
+long var161 /* : Int */;
+static val* varoncenew163;
+static int varoncenew163_guard;
+val* var164 /* : FlatString */;
+val* var165 /* : FlatString */;
+long var166 /* : Int */;
+short int var168 /* : Bool */;
+int cltype169;
+int idtype170;
+const char* var_class_name171;
+long var172 /* : Int */;
+long var173 /* : Int */;
+short int var175 /* : Bool */;
+int cltype176;
+int idtype177;
+const char* var_class_name178;
+long var179 /* : Int */;
+val* var180 /* : FlatString */;
+val* var181 /* : String */;
+short int var182 /* : Bool */;
+short int var183 /* : Bool */;
+val* var_other /* var other: nullable Object */;
+short int var185 /* : Bool */;
+short int var186 /* : Bool */;
+val* var187 /* : String */;
+var_extension = p0;
+var1 = glob_sys;
+{
+{ /* Inline kernel$Sys$is_windows (var1) on <var1:Sys> */
+struct nitni_instance* var_for_c_0;
+var_for_c_0 = nit_alloc(sizeof(struct nitni_instance));
+var_for_c_0->value = var1;
+var4 = core__kernel___Sys_is_windows___impl(var_for_c_0);
+var2 = var4;
+goto RET_LABEL3;
+RET_LABEL3:(void)0;
+}
+}
+if (var2){
+{
+var5 = core__flat___FlatText___last_byte(self);
+}
+var_l = var5;
+var6 = self->attrs[COLOR_core__abstract_text__FlatText___items].str; /* _items on <self:FlatString> */
+var_its = var6;
+var7 = self->attrs[COLOR_core__flat__FlatString___first_byte].l; /* _first_byte on <self:FlatString> */
+var_min = var7;
+{
+var8 = core___core__Char___ascii('/');
+}
+var_sl = var8;
+{
+var9 = core___core__Char___ascii('\\');
+}
+var_ls = var9;
+for(;;) {
+{
+{ /* Inline kernel$Int$> (var_l,var_min) on <var_l:Int> */
+/* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
+/* <var_min:Int> isa OTHER */
+var13 = 1; /* easy <var_min:Int> isa OTHER*/
+if (unlikely(!var13)) {
+var_class_name = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
+fatal_exit(1);
+}
+var14 = var_l > var_min;
+var11 = var14;
+goto RET_LABEL12;
+RET_LABEL12:(void)0;
+}
+}
+var_ = var11;
+if (var11){
+{
+{ /* Inline native$CString$[] (var_its,var_l) on <var_its:CString> */
+var18 = (unsigned char)((int)var_its[var_l]);
+var16 = var18;
+goto RET_LABEL17;
+RET_LABEL17:(void)0;
+}
+}
+{
+{ /* Inline kernel$Byte$== (var16,var_sl) on <var16:Byte> */
+var21 = var16 == var_sl;
+var19 = var21;
+goto RET_LABEL20;
+RET_LABEL20:(void)0;
+}
+}
+var_22 = var19;
+if (var19){
+var15 = var_22;
+} else {
+{
+{ /* Inline native$CString$[] (var_its,var_l) on <var_its:CString> */
+var25 = (unsigned char)((int)var_its[var_l]);
+var23 = var25;
+goto RET_LABEL24;
+RET_LABEL24:(void)0;
+}
+}
+{
+{ /* Inline kernel$Byte$== (var23,var_ls) on <var23:Byte> */
+var28 = var23 == var_ls;
+var26 = var28;
+goto RET_LABEL27;
+RET_LABEL27:(void)0;
+}
+}
+var15 = var26;
+}
+var10 = var15;
+} else {
+var10 = var_;
+}
+if (var10){
+{
+{ /* Inline kernel$Int$- (var_l,1l) on <var_l:Int> */
+/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
+/* <1l:Int> isa OTHER */
+var31 = 1; /* easy <1l:Int> isa OTHER*/
+if (unlikely(!var31)) {
+var_class_name34 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
+fatal_exit(1);
+}
+var35 = var_l - 1l;
+var29 = var35;
+goto RET_LABEL30;
+RET_LABEL30:(void)0;
+}
+}
+var_l = var29;
+} else {
+goto BREAK_label;
+}
+}
+BREAK_label: (void)0;
+{
+{ /* Inline kernel$Int$== (var_l,var_min) on <var_l:Int> */
+var38 = var_l == var_min;
+var36 = var38;
+goto RET_LABEL37;
+RET_LABEL37:(void)0;
+}
+}
+if (var36){
+if (likely(varonce!=NULL)) {
+var39 = varonce;
+} else {
+var40 = "\\";
+var42 = (val*)(1l<<2|1);
+var43 = (val*)(1l<<2|1);
+var44 = (val*)((long)(0)<<2|3);
+var45 = (val*)((long)(0)<<2|3);
+var41 = core__flat___CString___to_s_unsafe(var40, var42, var43, var44, var45);
+var39 = var41;
+varonce = var39;
+}
+var = var39;
+goto RET_LABEL;
+} else {
+}
+var_ns = var_l;
+for(;;) {
+{
+{ /* Inline kernel$Int$>= (var_ns,var_min) on <var_ns:Int> */
+/* Covariant cast for argument 0 (i) <var_min:Int> isa OTHER */
+/* <var_min:Int> isa OTHER */
+var50 = 1; /* easy <var_min:Int> isa OTHER*/
+if (unlikely(!var50)) {
+var_class_name53 = type_core__Int.name;
+PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
+PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);