X-Git-Url: http://nitlanguage.org diff --git a/c_src/standard__string_search.sep.1.c b/c_src/standard__string_search.sep.1.c index 2546b90..7302b65 100644 --- a/c_src/standard__string_search.sep.1.c +++ b/c_src/standard__string_search.sep.1.c @@ -5,168 +5,162 @@ val* var /* : Array[Match] */; val* var_s /* var s: Text */; val* var1 /* : Array[Match] */; val* var_res /* var res: Array[Match] */; -long var2 /* : Int */; long var_i /* var i: Int */; -long var3 /* : Int */; -val* var4 /* : nullable Match */; +val* var2 /* : nullable Match */; val* var_match /* var match: nullable Match */; -val* var5 /* : null */; +short int var3 /* : Bool */; +short int var4 /* : Bool */; +val* var_other /* var other: nullable Object */; short int var6 /* : Bool */; short int var7 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var9 /* : Bool */; -short int var10 /* : Bool */; +long var8 /* : Int */; +long var10 /* : Int */; long var11 /* : Int */; -long var13 /* : Int */; -long var14 /* : Int */; -short int var16 /* : Bool */; +short int var13 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var17 /* : Int */; +long var14 /* : Int */; long var_len /* var len: Int */; -val* var18 /* : Match */; -val* var19 /* : String */; -long var20 /* : Int */; -val* var21 /* : nullable Match */; -val* var22 /* : Match */; -val* var23 /* : String */; -long var24 /* : Int */; -long var25 /* : Int */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -const char* var_class_name30; -long var31 /* : Int */; +val* var15 /* : Match */; +val* var16 /* : String */; +long var17 /* : Int */; +val* var18 /* : nullable Match */; +val* var19 /* : Match */; +val* var20 /* : String */; +long var21 /* : Int */; +long var22 /* : Int */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +long var28 /* : Int */; var_s = p0; var1 = NEW_standard__Array(&type_standard__Array__standard__Match); { standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on */ } var_res = var1; -var2 = 0; -var_i = var2; -var3 = 0; +var_i = 0l; { -var4 = ((val* (*)(val* self, val* p0, long p1))(self->class->vft[COLOR_standard__string_search__Pattern__search_in]))(self, var_s, var3) /* search_in on */; +var2 = ((val*(*)(val* self, val* p0, long p1))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__string_search__Pattern__search_in]))(self, var_s, 0l); /* search_in on */ } -var_match = var4; +var_match = var2; for(;;) { -var5 = NULL; if (var_match == NULL) { -var6 = 0; /* is null */ +var3 = 0; /* is null */ } else { -var6 = 1; /* arg is null and recv is not */ +var3 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_match,var5) on */ -var_other = var5; +{ /* Inline kernel#Object#!= (var_match,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var9 = ((short int (*)(val* self, val* p0))(var_match->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_match, var_other) /* == on */; +var6 = ((short int(*)(val* self, val* p0))(var_match->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_match, var_other); /* == on */ } -var10 = !var9; -var7 = var10; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var6 = var7; +var3 = var4; } -if (var6){ +if (var3){ { { /* Inline string_search#Match#from (var_match) on */ -var13 = var_match->attrs[COLOR_standard__string_search__Match___from].l; /* _from on */ -var11 = var13; -RET_LABEL12:(void)0; +var10 = var_match->attrs[COLOR_standard__string_search__Match___from].l; /* _from on */ +var8 = var10; +RET_LABEL9:(void)0; } } { -{ /* Inline kernel#Int#- (var11,var_i) on */ +{ /* Inline kernel#Int#- (var8,var_i) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var16 = 1; /* easy isa OTHER*/ -if (unlikely(!var16)) { +var13 = 1; /* easy isa OTHER*/ +if (unlikely(!var13)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var17 = var11 - var_i; -var14 = var17; -goto RET_LABEL15; -RET_LABEL15:(void)0; +var14 = var8 - var_i; +var11 = var14; +goto RET_LABEL12; +RET_LABEL12:(void)0; } } -var_len = var14; -var18 = NEW_standard__Match(&type_standard__Match); +var_len = var11; +var15 = NEW_standard__Match(&type_standard__Match); { -var19 = ((val* (*)(val* self))(var_s->class->vft[COLOR_standard__string__Object__to_s]))(var_s) /* to_s on */; +var16 = ((val*(*)(val* self))(var_s->class->vft[COLOR_standard__string__Object__to_s]))(var_s); /* to_s on */ } { -((void (*)(val* self, val* p0))(var18->class->vft[COLOR_standard__string_search__Match__string_61d]))(var18, var19) /* string= on */; +((void(*)(val* self, val* p0))(var15->class->vft[COLOR_standard__string_search__Match__string_61d]))(var15, var16); /* string= on */ } { -((void (*)(val* self, long p0))(var18->class->vft[COLOR_standard__string_search__Match__from_61d]))(var18, var_i) /* from= on */; +((void(*)(val* self, long p0))(var15->class->vft[COLOR_standard__string_search__Match__from_61d]))(var15, var_i); /* from= on */ } { -((void (*)(val* self, long p0))(var18->class->vft[COLOR_standard__string_search__Match__length_61d]))(var18, var_len) /* length= on */; +((void(*)(val* self, long p0))(var15->class->vft[COLOR_standard__string_search__Match__length_61d]))(var15, var_len); /* length= on */ } { -((void (*)(val* self))(var18->class->vft[COLOR_standard__kernel__Object__init]))(var18) /* init on */; +((void(*)(val* self))(var15->class->vft[COLOR_standard__kernel__Object__init]))(var15); /* init on */ } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var18); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var15); /* Direct call array#Array#add on */ } { -var20 = standard___standard__Match___after(var_match); +var17 = standard___standard__Match___after(var_match); } -var_i = var20; +var_i = var17; { -var21 = ((val* (*)(val* self, val* p0, long p1))(self->class->vft[COLOR_standard__string_search__Pattern__search_in]))(self, var_s, var_i) /* search_in on */; +var18 = ((val*(*)(val* self, val* p0, long p1))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__string_search__Pattern__search_in]))(self, var_s, var_i); /* search_in on */ } -var_match = var21; +var_match = var18; } else { goto BREAK_label; } } BREAK_label: (void)0; -var22 = NEW_standard__Match(&type_standard__Match); +var19 = NEW_standard__Match(&type_standard__Match); { -var23 = ((val* (*)(val* self))(var_s->class->vft[COLOR_standard__string__Object__to_s]))(var_s) /* to_s on */; +var20 = ((val*(*)(val* self))(var_s->class->vft[COLOR_standard__string__Object__to_s]))(var_s); /* to_s on */ } { -var24 = ((long (*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s) /* length on */; +var21 = ((long(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s); /* length on */ } { -{ /* Inline kernel#Int#- (var24,var_i) on */ +{ /* Inline kernel#Int#- (var21,var_i) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var27 = 1; /* easy isa OTHER*/ -if (unlikely(!var27)) { -var_class_name30 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); -} -var31 = var24 - var_i; -var25 = var31; -goto RET_LABEL26; -RET_LABEL26:(void)0; +var24 = 1; /* easy isa OTHER*/ +if (unlikely(!var24)) { +var_class_name27 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); +} +var28 = var21 - var_i; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; } } { -((void (*)(val* self, val* p0))(var22->class->vft[COLOR_standard__string_search__Match__string_61d]))(var22, var23) /* string= on */; +((void(*)(val* self, val* p0))(var19->class->vft[COLOR_standard__string_search__Match__string_61d]))(var19, var20); /* string= on */ } { -((void (*)(val* self, long p0))(var22->class->vft[COLOR_standard__string_search__Match__from_61d]))(var22, var_i) /* from= on */; +((void(*)(val* self, long p0))(var19->class->vft[COLOR_standard__string_search__Match__from_61d]))(var19, var_i); /* from= on */ } { -((void (*)(val* self, long p0))(var22->class->vft[COLOR_standard__string_search__Match__length_61d]))(var22, var25) /* length= on */; +((void(*)(val* self, long p0))(var19->class->vft[COLOR_standard__string_search__Match__length_61d]))(var19, var22); /* length= on */ } { -((void (*)(val* self))(var22->class->vft[COLOR_standard__kernel__Object__init]))(var22) /* init on */; +((void(*)(val* self))(var19->class->vft[COLOR_standard__kernel__Object__init]))(var19); /* init on */ } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var22); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var19); /* Direct call array#Array#add on */ } var = var_res; goto RET_LABEL; @@ -181,7 +175,7 @@ var1 = self->attrs[COLOR_standard__string_search__Match___string].val; /* _strin if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 239); -show_backtrace(1); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -255,8 +249,8 @@ var9 = 1; /* easy isa OTHER*/ if (unlikely(!var9)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } var10 = var1 + var4; var7 = var10; @@ -285,7 +279,7 @@ var3 = self->attrs[COLOR_standard__string_search__Match___string].val; /* _strin if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 239); -show_backtrace(1); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -306,7 +300,7 @@ RET_LABEL8:(void)0; } } { -var10 = ((val* (*)(val* self, long p0, long p1))(var1->class->vft[COLOR_standard__string__Text__substring]))(var1, var4, var7) /* substring on */; +var10 = ((val*(*)(val* self, long p0, long p1))(var1->class->vft[COLOR_standard__string__Text__substring]))(var1, var4, var7); /* substring on */ } var = var10; goto RET_LABEL; @@ -317,41 +311,39 @@ return var; void standard___standard__Match___standard__kernel__Object__init(val* self) { long var /* : Int */; long var2 /* : Int */; -long var3 /* : Int */; -short int var4 /* : Bool */; -short int var6 /* : Bool */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var7 /* : Bool */; -long var8 /* : Int */; -long var10 /* : Int */; -long var11 /* : Int */; +short int var6 /* : Bool */; +long var7 /* : Int */; +long var9 /* : Int */; +short int var10 /* : Bool */; short int var12 /* : Bool */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -const char* var_class_name17; -short int var18 /* : Bool */; +int cltype13; +int idtype14; +const char* var_class_name15; +short int var16 /* : Bool */; +long var17 /* : Int */; long var19 /* : Int */; -long var21 /* : Int */; +long var20 /* : Int */; long var22 /* : Int */; -long var24 /* : Int */; -long var25 /* : Int */; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -const char* var_class_name30; -long var31 /* : Int */; +long var23 /* : Int */; +short int var25 /* : Bool */; +int cltype26; +int idtype27; +const char* var_class_name28; +long var29 /* : Int */; +val* var30 /* : String */; val* var32 /* : String */; -val* var34 /* : String */; -long var35 /* : Int */; +long var33 /* : Int */; +short int var34 /* : Bool */; short int var36 /* : Bool */; -short int var38 /* : Bool */; -int cltype39; -int idtype40; -const char* var_class_name41; -short int var42 /* : Bool */; +int cltype37; +int idtype38; +const char* var_class_name39; +short int var40 /* : Bool */; { { /* Inline string_search#Match#length (self) on */ var2 = self->attrs[COLOR_standard__string_search__Match___length].l; /* _length on */ @@ -359,131 +351,129 @@ var = var2; RET_LABEL1:(void)0; } } -var3 = 0; { -{ /* Inline kernel#Int#>= (var,var3) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var6 = 1; /* easy isa OTHER*/ -if (unlikely(!var6)) { +{ /* Inline kernel#Int#>= (var,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var5 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var5)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var7 = var >= var3; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var6 = var >= 0l; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; } } -if (unlikely(!var4)) { +if (unlikely(!var3)) { PRINT_ERROR("Runtime error: %s", "Assert \'positive_length\' failed"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 257); -show_backtrace(1); +fatal_exit(1); } { { /* Inline string_search#Match#from (self) on */ -var10 = self->attrs[COLOR_standard__string_search__Match___from].l; /* _from on */ -var8 = var10; -RET_LABEL9:(void)0; +var9 = self->attrs[COLOR_standard__string_search__Match___from].l; /* _from on */ +var7 = var9; +RET_LABEL8:(void)0; } } -var11 = 0; { -{ /* Inline kernel#Int#>= (var8,var11) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var14 = 1; /* easy isa OTHER*/ -if (unlikely(!var14)) { -var_class_name17 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411); -show_backtrace(1); -} -var18 = var8 >= var11; -var12 = var18; -goto RET_LABEL13; -RET_LABEL13:(void)0; +{ /* Inline kernel#Int#>= (var7,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var12 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var12)) { +var_class_name15 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); +} +var16 = var7 >= 0l; +var10 = var16; +goto RET_LABEL11; +RET_LABEL11:(void)0; } } -if (unlikely(!var12)) { +if (unlikely(!var10)) { PRINT_ERROR("Runtime error: %s", "Assert \'valid_from\' failed"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 258); -show_backtrace(1); +fatal_exit(1); } { { /* Inline string_search#Match#from (self) on */ -var21 = self->attrs[COLOR_standard__string_search__Match___from].l; /* _from on */ -var19 = var21; -RET_LABEL20:(void)0; +var19 = self->attrs[COLOR_standard__string_search__Match___from].l; /* _from on */ +var17 = var19; +RET_LABEL18:(void)0; } } { { /* Inline string_search#Match#length (self) on */ -var24 = self->attrs[COLOR_standard__string_search__Match___length].l; /* _length on */ -var22 = var24; -RET_LABEL23:(void)0; +var22 = self->attrs[COLOR_standard__string_search__Match___length].l; /* _length on */ +var20 = var22; +RET_LABEL21:(void)0; } } { -{ /* Inline kernel#Int#+ (var19,var22) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var27 = 1; /* easy isa OTHER*/ -if (unlikely(!var27)) { -var_class_name30 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var17,var20) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var25 = 1; /* easy isa OTHER*/ +if (unlikely(!var25)) { +var_class_name28 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var31 = var19 + var22; -var25 = var31; -goto RET_LABEL26; -RET_LABEL26:(void)0; +var29 = var17 + var20; +var23 = var29; +goto RET_LABEL24; +RET_LABEL24:(void)0; } } { { /* Inline string_search#Match#string (self) on */ -var34 = self->attrs[COLOR_standard__string_search__Match___string].val; /* _string on */ -if (unlikely(var34 == NULL)) { +var32 = self->attrs[COLOR_standard__string_search__Match___string].val; /* _string on */ +if (unlikely(var32 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _string"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 239); -show_backtrace(1); +fatal_exit(1); } -var32 = var34; -RET_LABEL33:(void)0; +var30 = var32; +RET_LABEL31:(void)0; } } { -var35 = ((long (*)(val* self))(var32->class->vft[COLOR_standard__string__Text__length]))(var32) /* length on */; +var33 = ((long(*)(val* self))(var30->class->vft[COLOR_standard__string__Text__length]))(var30); /* length on */ } { -{ /* Inline kernel#Int#<= (var25,var35) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var38 = 1; /* easy isa OTHER*/ -if (unlikely(!var38)) { -var_class_name41 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409); -show_backtrace(1); +{ /* Inline kernel#Int#<= (var23,var33) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var36 = 1; /* easy isa OTHER*/ +if (unlikely(!var36)) { +var_class_name39 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } -var42 = var25 <= var35; -var36 = var42; -goto RET_LABEL37; -RET_LABEL37:(void)0; +var40 = var23 <= var33; +var34 = var40; +goto RET_LABEL35; +RET_LABEL35:(void)0; } } -if (unlikely(!var36)) { +if (unlikely(!var34)) { PRINT_ERROR("Runtime error: %s", "Assert \'valid_after\' failed"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 259); -show_backtrace(1); +fatal_exit(1); } RET_LABEL:; } /* method string_search#Char#search_index_in for (self: Char, Text, Int): Int */ -long standard__string_search___Char___Pattern__search_index_in(char self, val* p0, long p1) { +long standard__string_search___Char___Pattern__search_index_in(uint32_t self, val* p0, long p1) { long var /* : Int */; val* var_s /* var s: Text */; long var_from /* var from: Int */; @@ -499,21 +489,19 @@ val* var6 /* : SequenceRead[Char] */; val* var7 /* : nullable Object */; short int var8 /* : Bool */; short int var10 /* : Bool */; -char var11 /* : Char */; +uint32_t var11 /* : Char */; long var12 /* : Int */; -long var13 /* : Int */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -const char* var_class_name18; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const char* var_class_name17; +long var18 /* : Int */; long var19 /* : Int */; -long var20 /* : Int */; long var21 /* : Int */; -long var23 /* : Int */; var_s = p0; var_from = p1; { -var1 = ((long (*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s) /* length on */; +var1 = ((long(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s); /* length on */ } var_stop = var1; for(;;) { @@ -525,8 +513,8 @@ var4 = 1; /* easy isa OTHER*/ if (unlikely(!var4)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } var5 = var_from < var_stop; var2 = var5; @@ -536,18 +524,15 @@ RET_LABEL3:(void)0; } if (var2){ { -var6 = ((val* (*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__chars]))(var_s) /* chars on */; +var6 = ((val*(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__chars]))(var_s); /* chars on */ } { -var7 = ((val* (*)(val* self, long p0))(var6->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var6, var_from) /* [] on */; +var7 = ((val*(*)(val* self, long p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var6, var_from); /* [] on */ } { { /* Inline kernel#Char#== (var7,self) on */ -var10 = (var7 != NULL) && (var7->class == &class_standard__Char); -if (var10) { -var11 = ((struct instance_standard__Char*)var7)->value; /* autounbox from nullable Object to Char */; -var10 = (var11 == self); -} +var11 = (uint32_t)((long)(var7)>>2); +var10 = (var7 != NULL) && (var11 == self); var8 = var10; goto RET_LABEL9; RET_LABEL9:(void)0; @@ -558,40 +543,38 @@ var = var_from; goto RET_LABEL; } else { } -var12 = 1; { -{ /* Inline kernel#Int#+ (var_from,var12) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var15 = 1; /* easy isa OTHER*/ -if (unlikely(!var15)) { -var_class_name18 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_from,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var14 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var14)) { +var_class_name17 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var19 = var_from + var12; -var13 = var19; -goto RET_LABEL14; -RET_LABEL14:(void)0; +var18 = var_from + 1l; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; } } -var_from = var13; +var_from = var12; } else { goto BREAK_label; } } BREAK_label: (void)0; -var20 = 1; { -{ /* Inline kernel#Int#unary - (var20) on */ -var23 = -var20; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; +{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */ +var21 = -1l; +var19 = var21; +goto RET_LABEL20; +RET_LABEL20:(void)0; } } -var = var21; +var = var19; goto RET_LABEL; RET_LABEL:; return var; @@ -600,78 +583,72 @@ return var; long VIRTUAL_standard__string_search___Char___Pattern__search_index_in(val* self, val* p0, long p1) { long var /* : Int */; long var1 /* : Int */; -char var2 /* : Char */; -var2 = ((struct instance_standard__Char*)self)->value; /* autounbox from Pattern to Char */; +uint32_t var2 /* : Char */; +var2 = (uint32_t)((long)(self)>>2); var1 = standard__string_search___Char___Pattern__search_index_in(var2, p0, p1); var = var1; RET_LABEL:; return var; } /* method string_search#Char#search_in for (self: Char, Text, Int): nullable Match */ -val* standard__string_search___Char___Pattern__search_in(char self, val* p0, long p1) { +val* standard__string_search___Char___Pattern__search_in(uint32_t self, val* p0, long p1) { val* var /* : nullable Match */; val* var_s /* var s: Text */; long var_from /* var from: Int */; long var1 /* : Int */; long var_pos /* var pos: Int */; -long var2 /* : Int */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var6 /* : Bool */; -val* var7 /* : null */; -val* var8 /* : Match */; -val* var9 /* : String */; -long var10 /* : Int */; +short int var5 /* : Bool */; +val* var6 /* : Match */; +val* var7 /* : String */; var_s = p0; var_from = p1; { var1 = standard__string_search___Char___Pattern__search_index_in(self, var_s, var_from); } var_pos = var1; -var2 = 0; { -{ /* Inline kernel#Int#< (var_pos,var2) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (unlikely(!var5)) { +{ /* Inline kernel#Int#< (var_pos,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var4 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var4)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var6 = var_pos < var2; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var5 = var_pos < 0l; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -if (var3){ -var7 = NULL; -var = var7; +if (var2){ +var = ((val*)NULL); goto RET_LABEL; } else { -var8 = NEW_standard__Match(&type_standard__Match); +var6 = NEW_standard__Match(&type_standard__Match); { -var9 = ((val* (*)(val* self))(var_s->class->vft[COLOR_standard__string__Object__to_s]))(var_s) /* to_s on */; +var7 = ((val*(*)(val* self))(var_s->class->vft[COLOR_standard__string__Object__to_s]))(var_s); /* to_s on */ } -var10 = 1; { -((void (*)(val* self, val* p0))(var8->class->vft[COLOR_standard__string_search__Match__string_61d]))(var8, var9) /* string= on */; +((void(*)(val* self, val* p0))(var6->class->vft[COLOR_standard__string_search__Match__string_61d]))(var6, var7); /* string= on */ } { -((void (*)(val* self, long p0))(var8->class->vft[COLOR_standard__string_search__Match__from_61d]))(var8, var_pos) /* from= on */; +((void(*)(val* self, long p0))(var6->class->vft[COLOR_standard__string_search__Match__from_61d]))(var6, var_pos); /* from= on */ } { -((void (*)(val* self, long p0))(var8->class->vft[COLOR_standard__string_search__Match__length_61d]))(var8, var10) /* length= on */; +((void(*)(val* self, long p0))(var6->class->vft[COLOR_standard__string_search__Match__length_61d]))(var6, 1l); /* length= on */ } { -((void (*)(val* self))(var8->class->vft[COLOR_standard__kernel__Object__init]))(var8) /* init on */; +((void(*)(val* self))(var6->class->vft[COLOR_standard__kernel__Object__init]))(var6); /* init on */ } -var = var8; +var = var6; goto RET_LABEL; } RET_LABEL:; @@ -681,8 +658,8 @@ return var; val* VIRTUAL_standard__string_search___Char___Pattern__search_in(val* self, val* p0, long p1) { val* var /* : nullable Match */; val* var1 /* : nullable Match */; -char var2 /* : Char */; -var2 = ((struct instance_standard__Char*)self)->value; /* autounbox from Pattern to Char */; +uint32_t var2 /* : Char */; +var2 = (uint32_t)((long)(self)>>2); var1 = standard__string_search___Char___Pattern__search_in(var2, p0, p1); var = var1; RET_LABEL:; @@ -693,341 +670,325 @@ long standard__string_search___Text___Pattern__search_index_in(val* self, val* p long var /* : Int */; val* var_s /* var s: Text */; long var_from /* var from: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var5 /* : Bool */; +short int var4 /* : Bool */; +long var5 /* : Int */; long var6 /* : Int */; long var7 /* : Int */; -long var8 /* : Int */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -const char* var_class_name13; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +const char* var_class_name12; +long var13 /* : Int */; long var14 /* : Int */; -long var15 /* : Int */; -long var16 /* : Int */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -const char* var_class_name21; -long var22 /* : Int */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +const char* var_class_name19; +long var20 /* : Int */; long var_stop /* var stop: Int */; +short int var21 /* : Bool */; short int var23 /* : Bool */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -const char* var_class_name28; -short int var29 /* : Bool */; -long var30 /* : Int */; -long var31 /* : Int */; -long var32 /* : Int */; -short int var34 /* : Bool */; -int cltype35; -int idtype36; -const char* var_class_name37; -long var38 /* : Int */; +int cltype24; +int idtype25; +const char* var_class_name26; +short int var27 /* : Bool */; +long var28 /* : Int */; +long var29 /* : Int */; +short int var31 /* : Bool */; +int cltype32; +int idtype33; +const char* var_class_name34; +long var35 /* : Int */; long var_i /* var i: Int */; +short int var36 /* : Bool */; +short int var37 /* : Bool */; short int var39 /* : Bool */; -long var40 /* : Int */; -short int var41 /* : Bool */; +int cltype40; +int idtype41; +const char* var_class_name42; short int var43 /* : Bool */; -int cltype44; -int idtype45; -const char* var_class_name46; -short int var47 /* : Bool */; short int var_ /* var : Bool */; -val* var48 /* : SequenceRead[Char] */; -val* var49 /* : nullable Object */; -val* var50 /* : SequenceRead[Char] */; -long var51 /* : Int */; -short int var53 /* : Bool */; -int cltype54; -int idtype55; -const char* var_class_name56; -long var57 /* : Int */; -val* var58 /* : nullable Object */; -short int var59 /* : Bool */; -short int var61 /* : Bool */; -long var62 /* : Int */; -long var63 /* : Int */; +val* var44 /* : SequenceRead[Char] */; +val* var45 /* : nullable Object */; +val* var46 /* : SequenceRead[Char] */; +long var47 /* : Int */; +short int var49 /* : Bool */; +int cltype50; +int idtype51; +const char* var_class_name52; +long var53 /* : Int */; +val* var54 /* : nullable Object */; +short int var55 /* : Bool */; +short int var57 /* : Bool */; +long var58 /* : Int */; +short int var60 /* : Bool */; +int cltype61; +int idtype62; +const char* var_class_name63; +long var64 /* : Int */; short int var65 /* : Bool */; -int cltype66; -int idtype67; -const char* var_class_name68; -long var69 /* : Int */; -long var70 /* : Int */; +short int var67 /* : Bool */; +int cltype68; +int idtype69; +const char* var_class_name70; short int var71 /* : Bool */; -short int var73 /* : Bool */; -int cltype74; -int idtype75; -const char* var_class_name76; -short int var77 /* : Bool */; +long var72 /* : Int */; +short int var74 /* : Bool */; +int cltype75; +int idtype76; +const char* var_class_name77; long var78 /* : Int */; -long var79 /* : Int */; -short int var81 /* : Bool */; -int cltype82; -int idtype83; -const char* var_class_name84; -long var85 /* : Int */; -long var87 /* : Int */; -long var88 /* : Int */; -long var90 /* : Int */; +long var80 /* : Int */; +long var82 /* : Int */; var_s = p0; var_from = p1; -var1 = 0; { -{ /* Inline kernel#Int#>= (var_from,var1) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (unlikely(!var4)) { +{ /* Inline kernel#Int#>= (var_from,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var3 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var3)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var5 = var_from >= var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var4 = var_from >= 0l; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } } -if (unlikely(!var2)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 292); -show_backtrace(1); +fatal_exit(1); } { -var6 = ((long (*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s) /* length on */; +var5 = ((long(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__length]))(var_s); /* length on */ } { -var7 = ((long (*)(val* self))(self->class->vft[COLOR_standard__string__Text__length]))(self) /* length on */; +var6 = ((long(*)(val* self))(self->class->vft[COLOR_standard__string__Text__length]))(self); /* length on */ } { -{ /* Inline kernel#Int#- (var6,var7) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var10 = 1; /* easy isa OTHER*/ -if (unlikely(!var10)) { -var_class_name13 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var5,var6) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var9 = 1; /* easy isa OTHER*/ +if (unlikely(!var9)) { +var_class_name12 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var14 = var6 - var7; -var8 = var14; -goto RET_LABEL9; -RET_LABEL9:(void)0; +var13 = var5 - var6; +var7 = var13; +goto RET_LABEL8; +RET_LABEL8:(void)0; } } -var15 = 1; { -{ /* Inline kernel#Int#+ (var8,var15) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var18 = 1; /* easy isa OTHER*/ -if (unlikely(!var18)) { -var_class_name21 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var7,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var16 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var16)) { +var_class_name19 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var22 = var8 + var15; -var16 = var22; -goto RET_LABEL17; -RET_LABEL17:(void)0; +var20 = var7 + 1l; +var14 = var20; +goto RET_LABEL15; +RET_LABEL15:(void)0; } } -var_stop = var16; +var_stop = var14; for(;;) { { { /* Inline kernel#Int#< (var_from,var_stop) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var25 = 1; /* easy isa OTHER*/ -if (unlikely(!var25)) { -var_class_name28 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); -} -var29 = var_from < var_stop; -var23 = var29; -goto RET_LABEL24; -RET_LABEL24:(void)0; +var23 = 1; /* easy isa OTHER*/ +if (unlikely(!var23)) { +var_class_name26 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); +} +var27 = var_from < var_stop; +var21 = var27; +goto RET_LABEL22; +RET_LABEL22:(void)0; } } -if (var23){ +if (var21){ { -var30 = ((long (*)(val* self))(self->class->vft[COLOR_standard__string__Text__length]))(self) /* length on */; +var28 = ((long(*)(val* self))(self->class->vft[COLOR_standard__string__Text__length]))(self); /* length on */ } -var31 = 1; { -{ /* Inline kernel#Int#- (var30,var31) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var34 = 1; /* easy isa OTHER*/ -if (unlikely(!var34)) { -var_class_name37 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var28,1l) on */ +/* 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_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var38 = var30 - var31; -var32 = var38; -goto RET_LABEL33; -RET_LABEL33:(void)0; +var35 = var28 - 1l; +var29 = var35; +goto RET_LABEL30; +RET_LABEL30:(void)0; } } -var_i = var32; +var_i = var29; for(;;) { -var40 = 0; { -{ /* Inline kernel#Int#>= (var_i,var40) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var43 = 1; /* easy isa OTHER*/ -if (unlikely(!var43)) { -var_class_name46 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name46); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411); -show_backtrace(1); +{ /* Inline kernel#Int#>= (var_i,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var39 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var39)) { +var_class_name42 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name42); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var47 = var_i >= var40; -var41 = var47; -goto RET_LABEL42; -RET_LABEL42:(void)0; +var43 = var_i >= 0l; +var37 = var43; +goto RET_LABEL38; +RET_LABEL38:(void)0; } } -var_ = var41; -if (var41){ +var_ = var37; +if (var37){ { -var48 = ((val* (*)(val* self))(self->class->vft[COLOR_standard__string__Text__chars]))(self) /* chars on */; +var44 = ((val*(*)(val* self))(self->class->vft[COLOR_standard__string__Text__chars]))(self); /* chars on */ } { -var49 = ((val* (*)(val* self, long p0))(var48->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var48, var_i) /* [] on */; +var45 = ((val*(*)(val* self, long p0))((((long)var44&3)?class_info[((long)var44&3)]:var44->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var44, var_i); /* [] on */ } { -var50 = ((val* (*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__chars]))(var_s) /* chars on */; +var46 = ((val*(*)(val* self))(var_s->class->vft[COLOR_standard__string__Text__chars]))(var_s); /* chars on */ } { { /* Inline kernel#Int#+ (var_i,var_from) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var53 = 1; /* easy isa OTHER*/ -if (unlikely(!var53)) { -var_class_name56 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +var49 = 1; /* easy isa OTHER*/ +if (unlikely(!var49)) { +var_class_name52 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var57 = var_i + var_from; -var51 = var57; -goto RET_LABEL52; -RET_LABEL52:(void)0; +var53 = var_i + var_from; +var47 = var53; +goto RET_LABEL48; +RET_LABEL48:(void)0; } } { -var58 = ((val* (*)(val* self, long p0))(var50->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var50, var51) /* [] on */; +var54 = ((val*(*)(val* self, long p0))((((long)var46&3)?class_info[((long)var46&3)]:var46->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var46, var47); /* [] on */ } { -{ /* Inline kernel#Char#== (var49,var58) on */ -var61 = var49 == var58 || (((struct instance_standard__Char*)var49)->value == ((struct instance_standard__Char*)var58)->value); -var59 = var61; -goto RET_LABEL60; -RET_LABEL60:(void)0; +{ /* Inline kernel#Char#== (var45,var54) on */ +var57 = var45 == var54; +var55 = var57; +goto RET_LABEL56; +RET_LABEL56:(void)0; } } -var39 = var59; +var36 = var55; } else { -var39 = var_; +var36 = var_; } -if (var39){ -var62 = 1; +if (var36){ { -{ /* Inline kernel#Int#- (var_i,var62) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var65 = 1; /* easy isa OTHER*/ -if (unlikely(!var65)) { -var_class_name68 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var60 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var60)) { +var_class_name63 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name63); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var69 = var_i - var62; -var63 = var69; -goto RET_LABEL64; -RET_LABEL64:(void)0; +var64 = var_i - 1l; +var58 = var64; +goto RET_LABEL59; +RET_LABEL59:(void)0; } } -var_i = var63; +var_i = var58; } else { goto BREAK_label; } } BREAK_label: (void)0; -var70 = 0; { -{ /* Inline kernel#Int#< (var_i,var70) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var73 = 1; /* easy isa OTHER*/ -if (unlikely(!var73)) { -var_class_name76 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +{ /* Inline kernel#Int#< (var_i,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var67 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var67)) { +var_class_name70 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var77 = var_i < var70; -var71 = var77; -goto RET_LABEL72; -RET_LABEL72:(void)0; +var71 = var_i < 0l; +var65 = var71; +goto RET_LABEL66; +RET_LABEL66:(void)0; } } -if (var71){ +if (var65){ var = var_from; goto RET_LABEL; } else { } -var78 = 1; { -{ /* Inline kernel#Int#+ (var_from,var78) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var81 = 1; /* easy isa OTHER*/ -if (unlikely(!var81)) { -var_class_name84 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_from,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var74 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var74)) { +var_class_name77 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var85 = var_from + var78; -var79 = var85; -goto RET_LABEL80; -RET_LABEL80:(void)0; +var78 = var_from + 1l; +var72 = var78; +goto RET_LABEL73; +RET_LABEL73:(void)0; } } -var_from = var79; +var_from = var72; } else { -goto BREAK_label86; +goto BREAK_label79; } } -BREAK_label86: (void)0; -var87 = 1; +BREAK_label79: (void)0; { -{ /* Inline kernel#Int#unary - (var87) on */ -var90 = -var87; -var88 = var90; -goto RET_LABEL89; -RET_LABEL89:(void)0; +{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */ +var82 = -1l; +var80 = var82; +goto RET_LABEL81; +RET_LABEL81:(void)0; } } -var = var88; +var = var80; goto RET_LABEL; RET_LABEL:; return var; @@ -1039,66 +1000,62 @@ val* var_s /* var s: Text */; long var_from /* var from: Int */; long var1 /* : Int */; long var_pos /* var pos: Int */; -long var2 /* : Int */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var6 /* : Bool */; -val* var7 /* : null */; -val* var8 /* : Match */; -val* var9 /* : String */; -long var10 /* : Int */; +short int var5 /* : Bool */; +val* var6 /* : Match */; +val* var7 /* : String */; +long var8 /* : Int */; var_s = p0; var_from = p1; { var1 = standard__string_search___Text___Pattern__search_index_in(self, var_s, var_from); } var_pos = var1; -var2 = 0; { -{ /* Inline kernel#Int#< (var_pos,var2) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (unlikely(!var5)) { +{ /* Inline kernel#Int#< (var_pos,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var4 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var4)) { var_class_name = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var6 = var_pos < var2; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var5 = var_pos < 0l; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -if (var3){ -var7 = NULL; -var = var7; +if (var2){ +var = ((val*)NULL); goto RET_LABEL; } else { -var8 = NEW_standard__Match(&type_standard__Match); +var6 = NEW_standard__Match(&type_standard__Match); { -var9 = ((val* (*)(val* self))(var_s->class->vft[COLOR_standard__string__Object__to_s]))(var_s) /* to_s on */; +var7 = ((val*(*)(val* self))(var_s->class->vft[COLOR_standard__string__Object__to_s]))(var_s); /* to_s on */ } { -var10 = ((long (*)(val* self))(self->class->vft[COLOR_standard__string__Text__length]))(self) /* length on */; +var8 = ((long(*)(val* self))(self->class->vft[COLOR_standard__string__Text__length]))(self); /* length on */ } { -((void (*)(val* self, val* p0))(var8->class->vft[COLOR_standard__string_search__Match__string_61d]))(var8, var9) /* string= on */; +((void(*)(val* self, val* p0))(var6->class->vft[COLOR_standard__string_search__Match__string_61d]))(var6, var7); /* string= on */ } { -((void (*)(val* self, long p0))(var8->class->vft[COLOR_standard__string_search__Match__from_61d]))(var8, var_pos) /* from= on */; +((void(*)(val* self, long p0))(var6->class->vft[COLOR_standard__string_search__Match__from_61d]))(var6, var_pos); /* from= on */ } { -((void (*)(val* self, long p0))(var8->class->vft[COLOR_standard__string_search__Match__length_61d]))(var8, var10) /* length= on */; +((void(*)(val* self, long p0))(var6->class->vft[COLOR_standard__string_search__Match__length_61d]))(var6, var8); /* length= on */ } { -((void (*)(val* self))(var8->class->vft[COLOR_standard__kernel__Object__init]))(var8) /* init on */; +((void(*)(val* self))(var6->class->vft[COLOR_standard__kernel__Object__init]))(var6); /* init on */ } -var = var8; +var = var6; goto RET_LABEL; } RET_LABEL:; @@ -1167,9 +1124,7 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_7) on */ -RET_LABEL11:(void)0; -} +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_7); /* Direct call array#ArrayIterator#finish on */ } var = var_res; goto RET_LABEL; @@ -1194,103 +1149,101 @@ return var; val* standard__string_search___Text___split_once_on(val* self, val* p0) { val* var /* : Array[Text] */; val* var_p /* var p: Pattern */; -long var1 /* : Int */; -val* var2 /* : nullable Match */; +val* var1 /* : nullable Match */; val* var_m /* var m: nullable Match */; -val* var3 /* : null */; +val* var2 /* : Array[Text] */; +val* var_res /* var res: Array[Text] */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; +short int var6 /* : Bool */; +short int var8 /* : Bool */; short int var9 /* : Bool */; -val* var10 /* : Array[Text] */; -long var11 /* : Int */; -val* var_ /* var : Array[Text] */; -val* var12 /* : Array[Text] */; -long var13 /* : Int */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +long var10 /* : Int */; +long var12 /* : Int */; +val* var13 /* : Text */; long var14 /* : Int */; -long var16 /* : Int */; -val* var17 /* : Text */; -long var18 /* : Int */; -val* var19 /* : Text */; -val* var20 /* : Array[nullable Object] */; -long var21 /* : Int */; -val* var22 /* : NativeArray[nullable Object] */; +val* var15 /* : Text */; var_p = p0; -var1 = 0; { -var2 = ((val* (*)(val* self, val* p0, long p1))(var_p->class->vft[COLOR_standard__string_search__Pattern__search_in]))(var_p, self, var1) /* search_in on */; +var1 = ((val*(*)(val* self, val* p0, long p1))((((long)var_p&3)?class_info[((long)var_p&3)]:var_p->class)->vft[COLOR_standard__string_search__Pattern__search_in]))(var_p, self, 0l); /* search_in on */ +} +var_m = var1; +var2 = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__string__Text__SELFTYPE]); +{ +standard___standard__Array___standard__kernel__Object__init(var2); /* Direct call array#Array#init on */ } -var_m = var2; -var3 = NULL; +var_res = var2; if (var_m == NULL) { -var4 = 1; /* is null */ +var3 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_m,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#== (var_m,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_m,var_other) on */ -var9 = var_m == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var8 = var_m == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var4 = var5; +var3 = var4; } -if (var4){ -var10 = NEW_standard__Array(&type_standard__Array__standard__Text); -var11 = 1; -{ -standard___standard__Array___with_capacity(var10, var11); /* Direct call array#Array#with_capacity on */ +if (var3){ +/* isa SELFTYPE */ +type_struct = self->type->resolution_table->types[COLOR_standard__string__Text__SELFTYPE]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= self->type->table_size) { +var9 = 0; +} else { +var9 = self->type->type_table[cltype] == idtype; +} +if (unlikely(!var9)) { +var_class_name = self == NULL ? "null" : self->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 393); +fatal_exit(1); } -var_ = var10; { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, self); /* Direct call array#AbstractArray#push on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, self); /* Direct call array#Array#add on */ } -var = var_; -goto RET_LABEL; } else { -} -var12 = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__string__Text__SELFTYPE]); -var13 = 0; { { /* Inline string_search#Match#from (var_m) on */ -var16 = var_m->attrs[COLOR_standard__string_search__Match___from].l; /* _from on */ -var14 = var16; -RET_LABEL15:(void)0; +var12 = var_m->attrs[COLOR_standard__string_search__Match___from].l; /* _from on */ +var10 = var12; +RET_LABEL11:(void)0; } } { -var17 = ((val* (*)(val* self, long p0, long p1))(self->class->vft[COLOR_standard__string__Text__substring]))(self, var13, var14) /* substring on */; +var13 = ((val*(*)(val* self, long p0, long p1))(self->class->vft[COLOR_standard__string__Text__substring]))(self, 0l, var10); /* substring on */ } { -var18 = standard___standard__Match___after(var_m); +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var13); /* Direct call array#Array#add on */ } { -var19 = standard___standard__Text___substring_from(self, var18); +var14 = standard___standard__Match___after(var_m); } -var20 = NEW_standard__Array(var12->type->resolution_table->types[COLOR_standard__Array__standard__Array___35dE]); -{ /* var20 = array_instance Array[E] */ -var21 = 2; -var22 = NEW_standard__NativeArray(var21, var12->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]); -((struct instance_standard__NativeArray*)var22)->values[0] = (val*) var17; -((struct instance_standard__NativeArray*)var22)->values[1] = (val*) var19; { -((void (*)(val* self, val* p0, long p1))(var20->class->vft[COLOR_standard__array__Array__with_native]))(var20, var22, var21) /* with_native on */; -} +var15 = standard___standard__Text___substring_from(self, var14); } { -standard___standard__Array___with_items(var12, var20); /* Direct call array#Array#with_items on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var15); /* Direct call array#Array#add on */ +} } -var = var12; +var = var_res; goto RET_LABEL; RET_LABEL:; return var; @@ -1320,8 +1273,8 @@ var1 = p1->type->type_table[cltype] == idtype; if (unlikely(!var1)) { var_class_name = p1 == NULL ? "null" : p1->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELFTYPE", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 395); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__string_search, 401); +fatal_exit(1); } var_p = p0; var_string = p1;