X-Git-Url: http://nitlanguage.org diff --git a/c_src/standard__array.sep.1.c b/c_src/standard__array.sep.1.c index f6cfa25..443bf53 100644 --- a/c_src/standard__array.sep.1.c +++ b/c_src/standard__array.sep.1.c @@ -8,24 +8,27 @@ var = var1; RET_LABEL:; return var; } +/* method array#AbstractArrayRead#length= for (self: AbstractArrayRead[nullable Object], Int) */ +void standard___standard__AbstractArrayRead___length_61d(val* self, long p0) { +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = p0; /* _length on */ +RET_LABEL:; +} /* method array#AbstractArrayRead#is_empty for (self: AbstractArrayRead[nullable Object]): Bool */ short int standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(val* self) { short int var /* : Bool */; long var1 /* : Int */; -long var2 /* : Int */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; var1 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var2 = 0; { -{ /* Inline kernel#Int#== (var1,var2) on */ -var5 = var1 == var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +{ /* Inline kernel#Int#== (var1,0l) on */ +var4 = var1 == 0l; +var2 = var4; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -var = var3; +var = var2; goto RET_LABEL; RET_LABEL:; return var; @@ -33,128 +36,88 @@ return var; /* method array#AbstractArrayRead#has for (self: AbstractArrayRead[nullable Object], nullable Object): Bool */ short int standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(val* self, val* p0) { short int var /* : Bool */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_item /* var item: nullable Object */; -long var2 /* : Int */; long var_i /* var i: Int */; -long var3 /* : Int */; -long var5 /* : Int */; +long var1 /* : Int */; long var_l /* var l: Int */; -short int var6 /* : Bool */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var5 /* : Bool */; +val* var6 /* : nullable Object */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -int cltype9; -int idtype10; -const char* var_class_name11; -short int var12 /* : Bool */; -val* var13 /* : nullable Object */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -short int var16 /* : Bool */; -long var17 /* : Int */; -long var18 /* : Int */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -const char* var_class_name23; -long var24 /* : Int */; -short int var25 /* : Bool */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArrayRead___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var1 = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 28); -show_backtrace(1); -} +long var9 /* : Int */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const char* var_class_name14; +long var15 /* : Int */; var_item = p0; -var2 = 0; -var_i = var2; +var_i = 0l; { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var5 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var3 = var5; -RET_LABEL4:(void)0; -} +var1 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } -var_l = var3; +var_l = var1; for(;;) { { { /* Inline kernel#Int#< (var_i,var_l) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { -var_class_name11 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +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, 534); +fatal_exit(1); } -var12 = var_i < var_l; -var6 = var12; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var5 = var_i < var_l; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -if (var6){ +if (var2){ { -var13 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(self, var_i); +var6 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on */ } -if (var13 == NULL) { -var14 = (var_item == NULL); +if (var6 == NULL) { +var7 = (var_item == NULL); } else { -var15 = ((short int (*)(val* self, val* p0))(var13->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var13, var_item) /* == on */; -var14 = var15; +var8 = ((short int(*)(val* self, val* p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var6, var_item); /* == on */ +var7 = var8; } -if (var14){ -var16 = 1; -var = var16; +if (var7){ +var = 1; goto RET_LABEL; } else { } -var17 = 1; { -{ /* Inline kernel#Int#+ (var_i,var17) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var20 = 1; /* easy isa OTHER*/ -if (unlikely(!var20)) { -var_class_name23 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var11 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var11)) { +var_class_name14 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var24 = var_i + var17; -var18 = var24; -goto RET_LABEL19; -RET_LABEL19:(void)0; +var15 = var_i + 1l; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; } } -var_i = var18; +var_i = var9; } else { goto BREAK_label; } } BREAK_label: (void)0; -var25 = 0; -var = var25; +var = 0; goto RET_LABEL; RET_LABEL:; return var; @@ -162,42 +125,13 @@ return var; /* method array#AbstractArrayRead#index_of for (self: AbstractArrayRead[nullable Object], nullable Object): Int */ long standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of(val* self, val* p0) { long var /* : Int */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_item /* var item: nullable Object */; -long var2 /* : Int */; -long var3 /* : Int */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArrayRead___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var1 = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 62); -show_backtrace(1); -} +long var1 /* : Int */; var_item = p0; -var2 = 0; { -var3 = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of_from(self, var_item, var2); +var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of_from(self, var_item, 0l); } -var = var3; +var = var1; goto RET_LABEL; RET_LABEL:; return var; @@ -205,74 +139,40 @@ return var; /* method array#AbstractArrayRead#last_index_of for (self: AbstractArrayRead[nullable Object], nullable Object): Int */ long standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__last_index_of(val* self, val* p0) { long var /* : Int */; -short int var1 /* : Bool */; +val* var_item /* var item: nullable Object */; +long var1 /* : Int */; +long var2 /* : Int */; +short int var4 /* : Bool */; int cltype; int idtype; -const struct type* type_struct; -short int is_nullable; const char* var_class_name; -val* var_item /* var item: nullable Object */; -long var2 /* : Int */; -long var4 /* : Int */; long var5 /* : Int */; long var6 /* : Int */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -const char* var_class_name11; -long var12 /* : Int */; -long var13 /* : Int */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArrayRead___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var1 = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 64); -show_backtrace(1); -} var_item = p0; { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var4 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var2 = var4; -RET_LABEL3:(void)0; -} +var1 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } -var5 = 1; { -{ /* Inline kernel#Int#- (var2,var5) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { -var_class_name11 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var1,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var4 = 1; /* easy <1l: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, 540); +fatal_exit(1); } -var12 = var2 - var5; -var6 = var12; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var5 = var1 - 1l; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } { -var13 = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__last_index_of_from(self, var_item, var6); +var6 = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__last_index_of_from(self, var_item, var2); } -var = var13; +var = var6; goto RET_LABEL; RET_LABEL:; return var; @@ -280,136 +180,100 @@ return var; /* method array#AbstractArrayRead#index_of_from for (self: AbstractArrayRead[nullable Object], nullable Object, Int): Int */ long standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of_from(val* self, val* p0, long p1) { long var /* : Int */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_item /* var item: nullable Object */; long var_pos /* var pos: Int */; long var_i /* var i: Int */; -long var2 /* : Int */; -long var4 /* : Int */; +long var1 /* : Int */; long var_len /* var len: Int */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; short int var5 /* : Bool */; +val* var6 /* : nullable Object */; short int var7 /* : Bool */; -int cltype8; -int idtype9; -const char* var_class_name10; +short int var8 /* : Bool */; +long var9 /* : Int */; short int var11 /* : Bool */; -val* var12 /* : nullable Object */; -short int var13 /* : Bool */; -short int var14 /* : Bool */; +int cltype12; +int idtype13; +const char* var_class_name14; long var15 /* : Int */; long var16 /* : Int */; -short int var18 /* : Bool */; -int cltype19; -int idtype20; -const char* var_class_name21; -long var22 /* : Int */; -long var23 /* : Int */; -long var24 /* : Int */; -long var26 /* : Int */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArrayRead___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var1 = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 66); -show_backtrace(1); -} +long var18 /* : Int */; var_item = p0; var_pos = p1; var_i = var_pos; { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var4 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var2 = var4; -RET_LABEL3:(void)0; -} +var1 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } -var_len = var2; +var_len = var1; for(;;) { { { /* Inline kernel#Int#< (var_i,var_len) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var7 = 1; /* easy isa OTHER*/ -if (unlikely(!var7)) { -var_class_name10 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +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, 534); +fatal_exit(1); } -var11 = var_i < var_len; -var5 = var11; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var5 = var_i < var_len; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -if (var5){ +if (var2){ { -var12 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(self, var_i); +var6 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on */ } -if (var12 == NULL) { -var13 = (var_item == NULL); +if (var6 == NULL) { +var7 = (var_item == NULL); } else { -var14 = ((short int (*)(val* self, val* p0))(var12->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var12, var_item) /* == on */; -var13 = var14; +var8 = ((short int(*)(val* self, val* p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var6, var_item); /* == on */ +var7 = var8; } -if (var13){ +if (var7){ var = var_i; goto RET_LABEL; } else { } -var15 = 1; { -{ /* Inline kernel#Int#+ (var_i,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#+ (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var11 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var11)) { +var_class_name14 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var22 = var_i + var15; -var16 = var22; -goto RET_LABEL17; -RET_LABEL17:(void)0; +var15 = var_i + 1l; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; } } -var_i = var16; +var_i = var9; } else { goto BREAK_label; } } BREAK_label: (void)0; -var23 = 1; { -{ /* Inline kernel#Int#unary - (var23) on */ -var26 = -var23; -var24 = var26; -goto RET_LABEL25; -RET_LABEL25:(void)0; +{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */ +var18 = -1l; +var16 = var18; +goto RET_LABEL17; +RET_LABEL17:(void)0; } } -var = var24; +var = var16; goto RET_LABEL; RET_LABEL:; return var; @@ -417,127 +281,94 @@ return var; /* method array#AbstractArrayRead#last_index_of_from for (self: AbstractArrayRead[nullable Object], nullable Object, Int): Int */ long standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__last_index_of_from(val* self, val* p0, long p1) { long var /* : Int */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_item /* var item: nullable Object */; long var_pos /* var pos: Int */; long var_i /* var i: Int */; -long var2 /* : Int */; +short int var1 /* : Bool */; short int var3 /* : Bool */; -short int var5 /* : Bool */; -int cltype6; -int idtype7; -const char* var_class_name8; -short int var9 /* : Bool */; -val* var10 /* : nullable Object */; -short int var11 /* : Bool */; -short int var12 /* : Bool */; -long var13 /* : Int */; +int cltype; +int idtype; +const char* var_class_name; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; +short int var6 /* : Bool */; +short int var7 /* : Bool */; +long var8 /* : Int */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +const char* var_class_name13; long var14 /* : Int */; -short int var16 /* : Bool */; -int cltype17; -int idtype18; -const char* var_class_name19; -long var20 /* : Int */; -long var21 /* : Int */; -long var22 /* : Int */; -long var24 /* : Int */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArrayRead___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var1 = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 79); -show_backtrace(1); -} +long var15 /* : Int */; +long var17 /* : Int */; var_item = p0; var_pos = p1; var_i = var_pos; for(;;) { -var2 = 0; { -{ /* Inline kernel#Int#>= (var_i,var2) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (unlikely(!var5)) { -var_class_name8 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); -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 */ +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, 535); +fatal_exit(1); } -var9 = var_i >= var2; -var3 = var9; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var4 = var_i >= 0l; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } } -if (var3){ +if (var1){ { -var10 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(self, var_i); +var5 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on */ } -if (var10 == NULL) { -var11 = (var_item == NULL); +if (var5 == NULL) { +var6 = (var_item == NULL); } else { -var12 = ((short int (*)(val* self, val* p0))(var10->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var10, var_item) /* == on */; -var11 = var12; +var7 = ((short int(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var5, var_item); /* == on */ +var6 = var7; } -if (var11){ +if (var6){ var = var_i; goto RET_LABEL; } else { -var13 = 1; { -{ /* Inline kernel#Int#- (var_i,var13) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var16 = 1; /* easy 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, 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 */ +var10 = 1; /* easy <1l:Int> 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, 540); +fatal_exit(1); } -var20 = var_i - var13; -var14 = var20; -goto RET_LABEL15; -RET_LABEL15:(void)0; +var14 = var_i - 1l; +var8 = var14; +goto RET_LABEL9; +RET_LABEL9:(void)0; } } -var_i = var14; +var_i = var8; } } else { goto BREAK_label; } } BREAK_label: (void)0; -var21 = 1; { -{ /* Inline kernel#Int#unary - (var21) on */ -var24 = -var21; -var22 = var24; -goto RET_LABEL23; -RET_LABEL23:(void)0; +{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */ +var17 = -1l; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; } } -var = var22; +var = var15; goto RET_LABEL; RET_LABEL:; return var; @@ -549,21 +380,19 @@ long var1 /* : Int */; long var_cmp /* var cmp: Int */; val* var2 /* : Array[nullable Object] */; val* var_result /* var result: Array[nullable Object] */; -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 var9 /* : Int */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -const char* var_class_name14; -long var15 /* : Int */; -val* var16 /* : nullable Object */; +short int var6 /* : Bool */; +long var7 /* : Int */; +short int var9 /* : Bool */; +int cltype10; +int idtype11; +const char* var_class_name12; +long var13 /* : Int */; +val* var14 /* : nullable Object */; var1 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ var_cmp = var1; var2 = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__AbstractArrayRead___35dE]); @@ -572,49 +401,47 @@ standard___standard__Array___with_capacity(var2, var_cmp); /* Direct call array# } var_result = var2; for(;;) { -var3 = 0; { -{ /* Inline kernel#Int#> (var_cmp,var3) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var6 = 1; /* easy isa OTHER*/ -if (unlikely(!var6)) { +{ /* Inline kernel#Int#> (var_cmp,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, 412); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); } -var7 = var_cmp > var3; -var4 = var7; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var6 = var_cmp > 0l; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; } } -if (var4){ -var8 = 1; +if (var3){ { -{ /* Inline kernel#Int#- (var_cmp,var8) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var11 = 1; /* easy isa OTHER*/ -if (unlikely(!var11)) { -var_class_name14 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var_cmp,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var9 = 1; /* easy <1l:Int> 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); } -var15 = var_cmp - var8; -var9 = var15; -goto RET_LABEL10; -RET_LABEL10:(void)0; +var13 = var_cmp - 1l; +var7 = var13; +goto RET_LABEL8; +RET_LABEL8:(void)0; } } -var_cmp = var9; +var_cmp = var7; { -var16 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(self, var_cmp); +var14 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_cmp); /* [] on */ } { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_result, var16); /* Direct call array#Array#add on */ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_result, var14); /* Direct call array#Array#add on */ } } else { goto BREAK_label; @@ -638,33 +465,31 @@ long var_len /* var len: Int */; val* var_dest /* var dest: AbstractArray[nullable Object] */; long var_new_start /* var new_start: Int */; long var_i /* var i: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -const char* var_class_name7; -short int var8 /* : Bool */; -long var9 /* : Int */; -long var10 /* : Int */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -const char* var_class_name15; -long var16 /* : Int */; -long var17 /* : Int */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const char* var_class_name22; -long var23 /* : Int */; -long var24 /* : Int */; -short int var26 /* : Bool */; -int cltype27; -int idtype28; -const char* var_class_name29; -long var30 /* : Int */; -val* var31 /* : nullable Object */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +int cltype4; +int idtype5; +const char* var_class_name6; +short int var7 /* : Bool */; +long var8 /* : Int */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +const char* var_class_name13; +long var14 /* : Int */; +long var15 /* : Int */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +const char* var_class_name20; +long var21 /* : Int */; +long var22 /* : Int */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +long var28 /* : Int */; +val* var29 /* : nullable Object */; /* Covariant cast for argument 2 (dest) isa AbstractArray[E] */ /* isa AbstractArray[E] */ type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArray__standard__AbstractArrayRead___35dE]; @@ -675,115 +500,392 @@ var = 0; } else { var = p2->type->type_table[cltype] == idtype; } -if (unlikely(!var)) { -var_class_name = p2 == NULL ? "null" : p2->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArray[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 106); -show_backtrace(1); +if (unlikely(!var)) { +var_class_name = p2 == NULL ? "null" : p2->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArray[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 106); +fatal_exit(1); +} +var_start = p0; +var_len = p1; +var_dest = p2; +var_new_start = p3; +var_i = var_len; +for(;;) { +{ +{ /* Inline kernel#Int#> (var_i,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_name6 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); +} +var7 = var_i > 0l; +var1 = var7; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} +} +if (var1){ +{ +{ /* Inline kernel#Int#- (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var10 = 1; /* easy <1l:Int> 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, 540); +fatal_exit(1); +} +var14 = var_i - 1l; +var8 = var14; +goto RET_LABEL9; +RET_LABEL9:(void)0; +} +} +var_i = var8; +{ +{ /* Inline kernel#Int#+ (var_new_start,var_i) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var17 = 1; /* easy isa OTHER*/ +if (unlikely(!var17)) { +var_class_name20 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); +} +var21 = var_new_start + var_i; +var15 = var21; +goto RET_LABEL16; +RET_LABEL16:(void)0; +} +} +{ +{ /* Inline kernel#Int#+ (var_start,var_i) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +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, 537); +fatal_exit(1); +} +var28 = var_start + var_i; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; +} +} +{ +var29 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var22); /* [] on */ +} +{ +((void(*)(val* self, long p0, val* p1))(var_dest->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(var_dest, var15, var29); /* []= on */ +} +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +RET_LABEL:; +} +/* method array#AbstractArrayRead#iterator for (self: AbstractArrayRead[nullable Object]): ArrayIterator[nullable Object] */ +val* standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(val* self) { +val* var /* : ArrayIterator[nullable Object] */; +val* var1 /* : nullable ArrayIterator[nullable Object] */; +val* var_res /* var res: nullable ArrayIterator[nullable Object] */; +short int var2 /* : Bool */; +short int var3 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; +val* var8 /* : ArrayIterator[nullable Object] */; +var1 = self->attrs[COLOR_standard__array__AbstractArrayRead___free_iterator].val; /* _free_iterator on */ +var_res = var1; +if (var_res == NULL) { +var2 = 1; /* is null */ +} else { +var2 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_res,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel#Object#is_same_instance (var_res,var_other) on */ +var7 = var_res == var_other; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; +} +} +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +var2 = var3; +} +if (var2){ +var8 = NEW_standard__array__ArrayIterator(self->type->resolution_table->types[COLOR_standard__array__ArrayIterator__standard__AbstractArrayRead___35dE]); +{ +((void(*)(val* self, val* p0))(var8->class->vft[COLOR_standard__array__ArrayIterator__array_61d]))(var8, self); /* array= on */ +} +{ +((void(*)(val* self))(var8->class->vft[COLOR_standard__kernel__Object__init]))(var8); /* init on */ +} +var = var8; +goto RET_LABEL; +} else { +} +var_res->attrs[COLOR_standard__array__ArrayIterator___index].l = 0l; /* _index on */ +self->attrs[COLOR_standard__array__AbstractArrayRead___free_iterator].val = ((val*)NULL); /* _free_iterator on */ +var = var_res; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method array#AbstractArrayRead#sub for (self: AbstractArrayRead[nullable Object], Int, Int): Array[nullable Object] */ +val* standard___standard__AbstractArrayRead___sub(val* self, long p0, long p1) { +val* var /* : Array[nullable Object] */; +long var_from /* var from: Int */; +long var_count /* var count: 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 */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +const char* var_class_name10; +long var11 /* : Int */; +short int var12 /* : Bool */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const char* var_class_name17; +short int var18 /* : Bool */; +long var19 /* : Int */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +const char* var_class_name24; +long var25 /* : Int */; +long var_to /* var to: Int */; +long var26 /* : Int */; +short int var27 /* : Bool */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +const char* var_class_name32; +short int var33 /* : Bool */; +long var34 /* : Int */; +val* var35 /* : Array[nullable Object] */; +long var36 /* : Int */; +short int var38 /* : Bool */; +int cltype39; +int idtype40; +const char* var_class_name41; +long var42 /* : Int */; +val* var_res /* var res: Array[nullable Object] */; +short int var43 /* : Bool */; +short int var45 /* : Bool */; +int cltype46; +int idtype47; +const char* var_class_name48; +short int var49 /* : Bool */; +val* var50 /* : nullable Object */; +long var51 /* : Int */; +short int var53 /* : Bool */; +int cltype54; +int idtype55; +const char* var_class_name56; +long var57 /* : Int */; +var_from = p0; +var_count = p1; +{ +{ /* 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, 534); +fatal_exit(1); +} +var4 = var_from < 0l; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; +} } -var_start = p0; -var_len = p1; -var_dest = p2; -var_new_start = p3; -var_i = var_len; -for(;;) { -var1 = 0; +if (var1){ { -{ /* Inline kernel#Int#> (var_i,var1) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (unlikely(!var4)) { -var_class_name7 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_count,var_from) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var7 = 1; /* easy isa OTHER*/ +if (unlikely(!var7)) { +var_class_name10 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var8 = var_i > var1; -var2 = var8; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var11 = var_count + var_from; +var5 = var11; +goto RET_LABEL6; +RET_LABEL6:(void)0; } } -if (var2){ -var9 = 1; +var_count = var5; +var_from = 0l; +} else { +} { -{ /* Inline kernel#Int#- (var_i,var9) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var12 = 1; /* easy 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, 416); -show_backtrace(1); +{ /* Inline kernel#Int#< (var_count,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var14 = 1; /* easy <0l: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, 534); +fatal_exit(1); +} +var18 = var_count < 0l; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; } -var16 = var_i - var9; -var10 = var16; -goto RET_LABEL11; -RET_LABEL11:(void)0; } +if (var12){ +var_count = 0l; +} else { } -var_i = var10; { -{ /* Inline kernel#Int#+ (var_new_start,var_i) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (unlikely(!var19)) { -var_class_name22 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_from,var_count) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var21 = 1; /* easy isa OTHER*/ +if (unlikely(!var21)) { +var_class_name24 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var23 = var_new_start + var_i; -var17 = var23; -goto RET_LABEL18; -RET_LABEL18:(void)0; +var25 = var_from + var_count; +var19 = var25; +goto RET_LABEL20; +RET_LABEL20:(void)0; } } +var_to = var19; { -{ /* Inline kernel#Int#+ (var_start,var_i) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var26 = 1; /* easy isa OTHER*/ -if (unlikely(!var26)) { -var_class_name29 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +var26 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } -var30 = var_start + var_i; -var24 = var30; -goto RET_LABEL25; -RET_LABEL25:(void)0; +{ +{ /* Inline kernel#Int#> (var_to,var26) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var29 = 1; /* easy isa OTHER*/ +if (unlikely(!var29)) { +var_class_name32 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); } +var33 = var_to > var26; +var27 = var33; +goto RET_LABEL28; +RET_LABEL28:(void)0; } -{ -var31 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(self, var24); } +if (var27){ { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var_dest, var17, var31); /* Direct call array#Array#[]= on */ +var34 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } +var_to = var34; } else { -goto BREAK_label; } +var35 = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__AbstractArrayRead___35dE]); +{ +{ /* Inline kernel#Int#- (var_to,var_from) 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, 540); +fatal_exit(1); +} +var42 = var_to - var_from; +var36 = var42; +goto RET_LABEL37; +RET_LABEL37:(void)0; } -BREAK_label: (void)0; -RET_LABEL:; } -/* method array#AbstractArrayRead#iterator for (self: AbstractArrayRead[nullable Object]): ArrayIterator[nullable Object] */ -val* standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(val* self) { -val* var /* : ArrayIterator[nullable Object] */; -val* var1 /* : ArrayIterator[nullable Object] */; -var1 = NEW_standard__array__ArrayIterator(self->type->resolution_table->types[COLOR_standard__array__ArrayIterator__standard__AbstractArrayRead___35dE]); { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__array__ArrayIterator__array_61d]))(var1, self) /* array= on */; +standard___standard__Array___with_capacity(var35, var36); /* Direct call array#Array#with_capacity on */ } +var_res = var35; +for(;;) { { -((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on */; +{ /* Inline kernel#Int#< (var_from,var_to) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var45 = 1; /* easy isa OTHER*/ +if (unlikely(!var45)) { +var_class_name48 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var = var1; +var49 = var_from < var_to; +var43 = var49; +goto RET_LABEL44; +RET_LABEL44:(void)0; +} +} +if (var43){ +{ +var50 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_from); /* [] on */ +} +{ +standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var50); /* Direct call array#Array#add on */ +} +{ +{ /* Inline kernel#Int#+ (var_from,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var53 = 1; /* easy <1l:Int> 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, 537); +fatal_exit(1); +} +var57 = var_from + 1l; +var51 = var57; +goto RET_LABEL52; +RET_LABEL52:(void)0; +} +} +var_from = var51; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +var = var_res; goto RET_LABEL; RET_LABEL:; return var; @@ -806,21 +908,21 @@ is_nullable = type_struct->is_nullable; if(p0 == NULL) { var = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 147); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 209); +fatal_exit(1); } var_item = p0; { -standard___standard__Array___standard__abstract_collection__SimpleCollection__add(self, var_item); /* Direct call array#Array#add on */ +((void(*)(val* self, val* p0))(self->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(self, var_item); /* add on */ } RET_LABEL:; } @@ -834,20 +936,19 @@ val* var_r /* var r: nullable Object */; val* var_ /* var : AbstractArray[nullable Object] */; long var4 /* : Int */; long var5 /* : Int */; -long var6 /* : Int */; -short int var8 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var9 /* : Int */; +long var8 /* : Int */; { -var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(self); +var1 = ((short int(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(self); /* is_empty on */ } var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 151); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 213); +fatal_exit(1); } { var3 = standard___standard__SequenceRead___last(self); @@ -855,25 +956,24 @@ var3 = standard___standard__SequenceRead___last(self); var_r = var3; var_ = self; var4 = var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var5 = 1; { -{ /* Inline kernel#Int#- (var4,var5) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { +{ /* Inline kernel#Int#- (var4,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var7 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var7)) { 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); } -var9 = var4 - var5; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var8 = var4 - 1l; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } } -var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var6; /* _length on */ +var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var5; /* _length on */ var = var_r; goto RET_LABEL; RET_LABEL:; @@ -886,148 +986,135 @@ short int var1 /* : Bool */; short int var2 /* : Bool */; val* var3 /* : nullable Object */; val* var_r /* var r: nullable Object */; -long var4 /* : Int */; long var_i /* var i: Int */; -long var5 /* : Int */; -long var7 /* : Int */; +long var4 /* : Int */; long var_l /* var l: Int */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; const char* var_class_name; +short int var8 /* : Bool */; +long var9 /* : Int */; short int var11 /* : Bool */; -long var12 /* : Int */; -long var13 /* : Int */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -const char* var_class_name18; -long var19 /* : Int */; -val* var20 /* : nullable Object */; -long var21 /* : Int */; -long var22 /* : Int */; -short int var24 /* : Bool */; -int cltype25; -int idtype26; -const char* var_class_name27; -long var28 /* : Int */; -long var29 /* : Int */; +int cltype12; +int idtype13; +const char* var_class_name14; +long var15 /* : Int */; +val* var16 /* : nullable Object */; +long var17 /* : Int */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +const char* var_class_name22; +long var23 /* : Int */; +long var24 /* : Int */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const char* var_class_name29; long var30 /* : Int */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -const char* var_class_name35; -long var36 /* : Int */; { -var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(self); +var1 = ((short int(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(self); /* is_empty on */ } var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 159); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 221); +fatal_exit(1); } { var3 = standard___standard__SequenceRead___Collection__first(self); } var_r = var3; -var4 = 1; -var_i = var4; +var_i = 1l; { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var7 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var5 = var7; -RET_LABEL6:(void)0; +var4 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } -} -var_l = var5; +var_l = var4; for(;;) { { { /* Inline kernel#Int#< (var_i,var_l) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var10 = 1; /* easy isa OTHER*/ -if (unlikely(!var10)) { +var7 = 1; /* easy isa OTHER*/ +if (unlikely(!var7)) { 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); } -var11 = var_i < var_l; -var8 = var11; -goto RET_LABEL9; -RET_LABEL9:(void)0; +var8 = var_i < var_l; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } } -if (var8){ -var12 = 1; +if (var5){ { -{ /* Inline kernel#Int#- (var_i,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, 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 */ +var11 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var11)) { +var_class_name14 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var19 = var_i - var12; -var13 = var19; -goto RET_LABEL14; -RET_LABEL14:(void)0; +var15 = var_i - 1l; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; } } { -var20 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(self, var_i); +var16 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on */ } { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(self, var13, var20); /* Direct call array#Array#[]= on */ +((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var9, var16); /* []= on */ } -var21 = 1; { -{ /* Inline kernel#Int#+ (var_i,var21) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -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, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_i,1l) on */ +/* 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_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var28 = var_i + var21; -var22 = var28; -goto RET_LABEL23; -RET_LABEL23:(void)0; +var23 = var_i + 1l; +var17 = var23; +goto RET_LABEL18; +RET_LABEL18:(void)0; } } -var_i = var22; +var_i = var17; } else { goto BREAK_label; } } BREAK_label: (void)0; -var29 = 1; { -{ /* Inline kernel#Int#- (var_l,var29) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var32 = 1; /* easy isa OTHER*/ -if (unlikely(!var32)) { -var_class_name35 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var_l,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var26 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var26)) { +var_class_name29 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var36 = var_l - var29; -var30 = var36; -goto RET_LABEL31; -RET_LABEL31:(void)0; +var30 = var_l - 1l; +var24 = var30; +goto RET_LABEL25; +RET_LABEL25:(void)0; } } -self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var30; /* _length on */ +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var24; /* _length on */ var = var_r; goto RET_LABEL; RET_LABEL:; @@ -1043,38 +1130,32 @@ short int is_nullable; const char* var_class_name; val* var_item /* var item: nullable Object */; long var1 /* : Int */; -long var3 /* : Int */; -long var4 /* : Int */; -long var5 /* : Int */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -const char* var_class_name10; -long var11 /* : Int */; +long var2 /* : Int */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +const char* var_class_name7; +long var8 /* : Int */; long var_i /* var i: Int */; -long var12 /* : Int */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -int cltype16; -int idtype17; -const char* var_class_name18; -short int var19 /* : Bool */; -long var20 /* : Int */; -long var21 /* : Int */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -const char* var_class_name26; -long var27 /* : Int */; -val* var28 /* : nullable Object */; -long var29 /* : Int */; +short int var9 /* : Bool */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const char* var_class_name14; +short int var15 /* : Bool */; +long var16 /* : Int */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const char* var_class_name21; +long var22 /* : Int */; +val* var23 /* : nullable Object */; +long var24 /* : Int */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const char* var_class_name29; long var30 /* : Int */; -short int var32 /* : Bool */; -int cltype33; -int idtype34; -const char* var_class_name35; -long var36 /* : Int */; -long var37 /* : Int */; /* Covariant cast for argument 0 (item) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArray___35dE]; @@ -1084,116 +1165,107 @@ is_nullable = type_struct->is_nullable; if(p0 == NULL) { var = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 171); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 233); +fatal_exit(1); } var_item = p0; { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var3 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var1 = var3; -RET_LABEL2:(void)0; +var1 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } -} -var4 = 1; { -{ /* Inline kernel#Int#- (var1,var4) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var7 = 1; /* easy isa OTHER*/ -if (unlikely(!var7)) { -var_class_name10 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var1,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var4 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var4)) { +var_class_name7 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var11 = var1 - var4; -var5 = var11; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var8 = var1 - 1l; +var2 = var8; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -var_i = var5; +var_i = var2; for(;;) { -var12 = 0; { -{ /* Inline kernel#Int#>= (var_i,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, 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 */ +var11 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var11)) { +var_class_name14 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var19 = var_i >= var12; -var13 = var19; -goto RET_LABEL14; -RET_LABEL14:(void)0; +var15 = var_i >= 0l; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; } } -if (var13){ -var20 = 1; +if (var9){ { -{ /* Inline kernel#Int#+ (var_i,var20) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -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, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var18 = 1; /* easy <1l:Int> 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, 537); +fatal_exit(1); } -var27 = var_i + var20; -var21 = var27; -goto RET_LABEL22; -RET_LABEL22:(void)0; +var22 = var_i + 1l; +var16 = var22; +goto RET_LABEL17; +RET_LABEL17:(void)0; } } { -var28 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(self, var_i); +var23 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on */ } { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(self, var21, var28); /* Direct call array#Array#[]= on */ +((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var16, var23); /* []= on */ } -var29 = 1; { -{ /* Inline kernel#Int#- (var_i,var29) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var32 = 1; /* easy isa OTHER*/ -if (unlikely(!var32)) { -var_class_name35 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35); -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 */ +var26 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var26)) { +var_class_name29 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var36 = var_i - var29; -var30 = var36; -goto RET_LABEL31; -RET_LABEL31:(void)0; +var30 = var_i - 1l; +var24 = var30; +goto RET_LABEL25; +RET_LABEL25:(void)0; } } -var_i = var30; +var_i = var24; } else { goto BREAK_label; } } BREAK_label: (void)0; -var37 = 0; { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(self, var37, var_item); /* Direct call array#Array#[]= on */ +((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, 0l, var_item); /* []= on */ } RET_LABEL:; } @@ -1208,29 +1280,25 @@ const char* var_class_name; val* var_item /* var item: nullable Object */; long var_pos /* var pos: Int */; long var1 /* : Int */; -long var3 /* : Int */; -long var4 /* : Int */; -long var5 /* : Int */; -short int var7 /* : Bool */; -int cltype8; -int idtype9; -const char* var_class_name10; -long var11 /* : Int */; -long var12 /* : Int */; -long var14 /* : Int */; -long var15 /* : Int */; -short int var17 /* : Bool */; -int cltype18; -int idtype19; -const char* var_class_name20; -long var21 /* : Int */; -long var22 /* : Int */; +long var2 /* : Int */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +const char* var_class_name7; +long var8 /* : Int */; +long var9 /* : Int */; +long var10 /* : Int */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +const char* var_class_name15; +long var16 /* : Int */; +long var17 /* : Int */; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +const char* var_class_name22; long var23 /* : Int */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -const char* var_class_name28; -long var29 /* : Int */; /* Covariant cast for argument 0 (item) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArray___35dE]; @@ -1240,95 +1308,85 @@ is_nullable = type_struct->is_nullable; if(p0 == NULL) { var = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 181); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 243); +fatal_exit(1); } var_item = p0; var_pos = p1; { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var3 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var1 = var3; -RET_LABEL2:(void)0; +var1 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } -} -var4 = 1; { -{ /* Inline kernel#Int#+ (var1,var4) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var7 = 1; /* easy isa OTHER*/ -if (unlikely(!var7)) { -var_class_name10 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var1,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var4 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var4)) { +var_class_name7 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var11 = var1 + var4; -var5 = var11; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var8 = var1 + 1l; +var2 = var8; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } { -standard___standard__Array___AbstractArray__enlarge(self, var5); /* Direct call array#Array#enlarge on */ +((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__array__AbstractArray__enlarge]))(self, var2); /* enlarge on */ } { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var14 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var12 = var14; -RET_LABEL13:(void)0; -} +var9 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } { -{ /* Inline kernel#Int#- (var12,var_pos) on */ +{ /* Inline kernel#Int#- (var9,var_pos) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var17 = 1; /* easy isa OTHER*/ -if (unlikely(!var17)) { -var_class_name20 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +var12 = 1; /* easy 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, 540); +fatal_exit(1); } -var21 = var12 - var_pos; -var15 = var21; -goto RET_LABEL16; -RET_LABEL16:(void)0; +var16 = var9 - var_pos; +var10 = var16; +goto RET_LABEL11; +RET_LABEL11:(void)0; } } -var22 = 1; { -{ /* Inline kernel#Int#+ (var_pos,var22) 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, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_pos,1l) on */ +/* 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_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var29 = var_pos + var22; -var23 = var29; -goto RET_LABEL24; -RET_LABEL24:(void)0; +var23 = var_pos + 1l; +var17 = var23; +goto RET_LABEL18; +RET_LABEL18:(void)0; } } { -standard___standard__AbstractArrayRead___copy_to(self, var_pos, var15, self, var23); /* Direct call array#AbstractArrayRead#copy_to on */ +standard___standard__AbstractArrayRead___copy_to(self, var_pos, var10, self, var17); /* Direct call array#AbstractArrayRead#copy_to on */ } { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(self, var_pos, var_item); /* Direct call array#Array#[]= on */ +((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var_pos, var_item); /* []= on */ } RET_LABEL:; } @@ -1343,239 +1401,225 @@ val* var_coll /* var coll: Collection[nullable Object] */; long var_pos /* var pos: Int */; long var1 /* : Int */; long var_l /* var l: Int */; -long var2 /* : Int */; -short int var3 /* : Bool */; -short int var5 /* : Bool */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +long var5 /* : Int */; long var6 /* : Int */; -long var8 /* : Int */; -long var9 /* : Int */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -const char* var_class_name14; -long var15 /* : Int */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +const char* var_class_name11; +long var12 /* : Int */; val* var_ /* var : AbstractArray[nullable Object] */; -long var16 /* : Int */; -long var17 /* : Int */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const char* var_class_name22; -long var23 /* : Int */; -long var24 /* : Int */; -long var26 /* : Int */; -long var27 /* : Int */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -const char* var_class_name32; -long var33 /* : Int */; -long var34 /* : Int */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -const char* var_class_name39; -long var40 /* : Int */; -long var41 /* : Int */; -short int var43 /* : Bool */; -int cltype44; -int idtype45; -const char* var_class_name46; -long var47 /* : Int */; -val* var_48 /* var : Collection[nullable Object] */; -val* var49 /* : Iterator[nullable Object] */; -val* var_50 /* var : Iterator[nullable Object] */; -short int var51 /* : Bool */; -val* var52 /* : nullable Object */; +long var13 /* : Int */; +long var14 /* : Int */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +const char* var_class_name19; +long var20 /* : Int */; +long var21 /* : Int */; +long var22 /* : Int */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +long var28 /* : Int */; +long var29 /* : Int */; +short int var31 /* : Bool */; +int cltype32; +int idtype33; +const char* var_class_name34; +long var35 /* : Int */; +long var36 /* : Int */; +short int var38 /* : Bool */; +int cltype39; +int idtype40; +const char* var_class_name41; +long var42 /* : Int */; +val* var_43 /* var : Collection[nullable Object] */; +val* var44 /* : Iterator[nullable Object] */; +val* var_45 /* var : Iterator[nullable Object] */; +short int var46 /* : Bool */; +val* var47 /* : nullable Object */; val* var_c /* var c: nullable Object */; -long var53 /* : Int */; +long var48 /* : Int */; +short int var50 /* : Bool */; +int cltype51; +int idtype52; +const char* var_class_name53; long var54 /* : Int */; -short int var56 /* : Bool */; -int cltype57; -int idtype58; -const char* var_class_name59; -long var60 /* : Int */; /* Covariant cast for argument 0 (coll) isa Collection[E] */ /* isa Collection[E] */ type_struct = self->type->resolution_table->types[COLOR_standard__Collection__standard__AbstractArray___35dE]; cltype = type_struct->color; idtype = type_struct->id; -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 188); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 249); +fatal_exit(1); } var_coll = p0; var_pos = p1; { -var1 = ((long (*)(val* self))(var_coll->class->vft[COLOR_standard__abstract_collection__Collection__length]))(var_coll) /* length on */; +var1 = ((long(*)(val* self))((((long)var_coll&3)?class_info[((long)var_coll&3)]:var_coll->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(var_coll); /* length on */ } var_l = var1; -var2 = 0; { -{ /* Inline kernel#Int#== (var_l,var2) on */ -var5 = var_l == var2; -var3 = var5; -goto RET_LABEL4; -RET_LABEL4:(void)0; +{ /* Inline kernel#Int#== (var_l,0l) on */ +var4 = var_l == 0l; +var2 = var4; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -if (var3){ +if (var2){ goto RET_LABEL; } else { } { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var8 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var6 = var8; -RET_LABEL7:(void)0; -} +var5 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } { -{ /* Inline kernel#Int#+ (var6,var_l) on */ +{ /* Inline kernel#Int#+ (var5,var_l) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var11 = 1; /* easy isa OTHER*/ -if (unlikely(!var11)) { -var_class_name14 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +var8 = 1; /* easy isa OTHER*/ +if (unlikely(!var8)) { +var_class_name11 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var15 = var6 + var_l; -var9 = var15; -goto RET_LABEL10; -RET_LABEL10:(void)0; +var12 = var5 + var_l; +var6 = var12; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } { -standard___standard__Array___AbstractArray__enlarge(self, var9); /* Direct call array#Array#enlarge on */ +((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__array__AbstractArray__enlarge]))(self, var6); /* enlarge on */ } var_ = self; -var16 = var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var13 = var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ { -{ /* Inline kernel#Int#+ (var16,var_l) on */ +{ /* Inline kernel#Int#+ (var13,var_l) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (unlikely(!var19)) { -var_class_name22 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +var16 = 1; /* easy 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); } -var23 = var16 + var_l; -var17 = var23; -goto RET_LABEL18; -RET_LABEL18:(void)0; +var20 = var13 + var_l; +var14 = var20; +goto RET_LABEL15; +RET_LABEL15:(void)0; } } -var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var17; /* _length on */ +var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var14; /* _length on */ { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var26 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var24 = var26; -RET_LABEL25:(void)0; -} +var21 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } { -{ /* Inline kernel#Int#- (var24,var_pos) on */ +{ /* Inline kernel#Int#- (var21,var_pos) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var29 = 1; /* easy isa OTHER*/ -if (unlikely(!var29)) { -var_class_name32 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +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); } -var33 = var24 - var_pos; -var27 = var33; -goto RET_LABEL28; -RET_LABEL28:(void)0; +var28 = var21 - var_pos; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; } } { -{ /* Inline kernel#Int#- (var27,var_l) on */ +{ /* Inline kernel#Int#- (var22,var_l) 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, 416); -show_backtrace(1); +var31 = 1; /* easy 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); } -var40 = var27 - var_l; -var34 = var40; -goto RET_LABEL35; -RET_LABEL35:(void)0; +var35 = var22 - var_l; +var29 = var35; +goto RET_LABEL30; +RET_LABEL30:(void)0; } } { { /* Inline kernel#Int#+ (var_pos,var_l) 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, 413); -show_backtrace(1); -} -var47 = var_pos + var_l; -var41 = var47; -goto RET_LABEL42; -RET_LABEL42:(void)0; +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, 537); +fatal_exit(1); +} +var42 = var_pos + var_l; +var36 = var42; +goto RET_LABEL37; +RET_LABEL37:(void)0; } } { -standard___standard__AbstractArrayRead___copy_to(self, var_pos, var34, self, var41); /* Direct call array#AbstractArrayRead#copy_to on */ +standard___standard__AbstractArrayRead___copy_to(self, var_pos, var29, self, var36); /* Direct call array#AbstractArrayRead#copy_to on */ } -var_48 = var_coll; +var_43 = var_coll; { -var49 = ((val* (*)(val* self))(var_48->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_48) /* iterator on */; +var44 = ((val*(*)(val* self))((((long)var_43&3)?class_info[((long)var_43&3)]:var_43->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_43); /* iterator on */ } -var_50 = var49; +var_45 = var44; for(;;) { { -var51 = ((short int (*)(val* self))(var_50->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_50) /* is_ok on */; +var46 = ((short int(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_45); /* is_ok on */ } -if (var51){ +if (var46){ { -var52 = ((val* (*)(val* self))(var_50->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_50) /* item on */; +var47 = ((val*(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_45); /* item on */ } -var_c = var52; +var_c = var47; { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(self, var_pos, var_c); /* Direct call array#Array#[]= on */ +((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var_pos, var_c); /* []= on */ } -var53 = 1; { -{ /* Inline kernel#Int#+ (var_pos,var53) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var56 = 1; /* easy isa OTHER*/ -if (unlikely(!var56)) { -var_class_name59 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); -} -var60 = var_pos + var53; -var54 = var60; -goto RET_LABEL55; -RET_LABEL55:(void)0; +{ /* Inline kernel#Int#+ (var_pos,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var50 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var50)) { +var_class_name53 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); +} +var54 = var_pos + 1l; +var48 = var54; +goto RET_LABEL49; +RET_LABEL49:(void)0; } } -var_pos = var54; +var_pos = var48; { -((void (*)(val* self))(var_50->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_50) /* next on */; +((void(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_45); /* next on */ } } else { goto BREAK_label; @@ -1583,56 +1627,25 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_50) on */ -RET_LABEL61:(void)0; -} +((void(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_45); /* finish on */ } RET_LABEL:; } /* method array#AbstractArray#clear for (self: AbstractArray[nullable Object]) */ void standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(val* self) { -long var /* : Int */; -var = 0; -self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var; /* _length on */ +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = 0l; /* _length on */ RET_LABEL:; } /* method array#AbstractArray#remove for (self: AbstractArray[nullable Object], nullable Object) */ void standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_item /* var item: nullable Object */; -long var1 /* : Int */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArray___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var = 0; -} else { -var = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 205); -show_backtrace(1); -} +long var /* : Int */; var_item = p0; { -var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of(self, var_item); +var = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of(self, var_item); } { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__remove_at(self, var1); /* Direct call array#AbstractArray#remove_at on */ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__remove_at(self, var); /* Direct call array#AbstractArray#remove_at on */ } RET_LABEL:; } @@ -1640,215 +1653,200 @@ RET_LABEL:; void standard___standard__AbstractArray___standard__abstract_collection__Sequence__remove_at(val* self, long p0) { long var_i /* var i: Int */; long var /* : Int */; -long var2 /* : Int */; long var_l /* var l: Int */; -short int var3 /* : Bool */; -long var4 /* : Int */; -short int var5 /* : Bool */; -short int var7 /* : Bool */; +short int var1 /* : Bool */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var8 /* : Bool */; +short int var5 /* : Bool */; short int var_ /* var : Bool */; -short int var9 /* : Bool */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -const char* var_class_name14; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +const char* var_class_name11; +short int var12 /* : Bool */; +long var13 /* : Int */; short int var15 /* : Bool */; -long var16 /* : Int */; -long var17 /* : Int */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const char* var_class_name22; -long var23 /* : Int */; +int cltype16; +int idtype17; +const char* var_class_name18; +long var19 /* : Int */; long var_j /* var j: Int */; -short int var24 /* : Bool */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +const char* var_class_name25; short int var26 /* : Bool */; -int cltype27; -int idtype28; -const char* var_class_name29; -short int var30 /* : Bool */; -long var31 /* : Int */; -long var32 /* : Int */; -short int var34 /* : Bool */; -int cltype35; -int idtype36; -const char* var_class_name37; -long var38 /* : Int */; -val* var39 /* : nullable Object */; -long var40 /* : Int */; +long var27 /* : Int */; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +const char* var_class_name32; +long var33 /* : Int */; +val* var34 /* : nullable Object */; +long var35 /* : Int */; +short int var37 /* : Bool */; +int cltype38; +int idtype39; +const char* var_class_name40; long var41 /* : Int */; -short int var43 /* : Bool */; -int cltype44; -int idtype45; -const char* var_class_name46; -long var47 /* : Int */; +long var42 /* : Int */; +short int var44 /* : Bool */; +int cltype45; +int idtype46; +const char* var_class_name47; long var48 /* : Int */; -long var49 /* : Int */; -short int var51 /* : Bool */; -int cltype52; -int idtype53; -const char* var_class_name54; -long var55 /* : Int */; var_i = p0; { -{ /* Inline array#AbstractArrayRead#length (self) on */ -var2 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var = var2; -RET_LABEL1:(void)0; -} +var = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } var_l = var; -var4 = 0; { -{ /* Inline kernel#Int#>= (var_i,var4) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var7 = 1; /* easy isa OTHER*/ -if (unlikely(!var7)) { +{ /* Inline kernel#Int#>= (var_i,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, 411); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var8 = var_i >= var4; -var5 = var8; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var5 = var_i >= 0l; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -var_ = var5; -if (var5){ +var_ = var2; +if (var2){ { { /* Inline kernel#Int#< (var_i,var_l) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var11 = 1; /* easy isa OTHER*/ -if (unlikely(!var11)) { -var_class_name14 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +var8 = 1; /* easy isa OTHER*/ +if (unlikely(!var8)) { +var_class_name11 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var15 = var_i < var_l; -var9 = var15; -goto RET_LABEL10; -RET_LABEL10:(void)0; +var12 = var_i < var_l; +var6 = var12; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -var3 = var9; +var1 = var6; } else { -var3 = var_; +var1 = var_; } -if (var3){ -var16 = 1; +if (var1){ { -{ /* Inline kernel#Int#+ (var_i,var16) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (unlikely(!var19)) { -var_class_name22 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var15 = 1; /* easy <1l:Int> 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, 537); +fatal_exit(1); } -var23 = var_i + var16; -var17 = var23; -goto RET_LABEL18; -RET_LABEL18:(void)0; +var19 = var_i + 1l; +var13 = var19; +goto RET_LABEL14; +RET_LABEL14:(void)0; } } -var_j = var17; +var_j = var13; for(;;) { { { /* Inline kernel#Int#< (var_j,var_l) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var26 = 1; /* easy isa OTHER*/ -if (unlikely(!var26)) { -var_class_name29 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +var22 = 1; /* easy isa OTHER*/ +if (unlikely(!var22)) { +var_class_name25 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var30 = var_j < var_l; -var24 = var30; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var26 = var_j < var_l; +var20 = var26; +goto RET_LABEL21; +RET_LABEL21:(void)0; } } -if (var24){ -var31 = 1; +if (var20){ { -{ /* Inline kernel#Int#- (var_j,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#- (var_j,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var29 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var29)) { +var_class_name32 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var38 = var_j - var31; -var32 = var38; -goto RET_LABEL33; -RET_LABEL33:(void)0; +var33 = var_j - 1l; +var27 = var33; +goto RET_LABEL28; +RET_LABEL28:(void)0; } } { -var39 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(self, var_j); +var34 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_j); /* [] on */ } { -standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(self, var32, var39); /* Direct call array#Array#[]= on */ +((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var27, var34); /* []= on */ } -var40 = 1; { -{ /* Inline kernel#Int#+ (var_j,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, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_j,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var37 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var37)) { +var_class_name40 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var47 = var_j + var40; -var41 = var47; -goto RET_LABEL42; -RET_LABEL42:(void)0; +var41 = var_j + 1l; +var35 = var41; +goto RET_LABEL36; +RET_LABEL36:(void)0; } } -var_j = var41; +var_j = var35; } else { goto BREAK_label; } } BREAK_label: (void)0; -var48 = 1; { -{ /* Inline kernel#Int#- (var_l,var48) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var51 = 1; /* easy isa OTHER*/ -if (unlikely(!var51)) { -var_class_name54 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name54); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var_l,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var44 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var44)) { +var_class_name47 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } -var55 = var_l - var48; -var49 = var55; -goto RET_LABEL50; -RET_LABEL50:(void)0; +var48 = var_l - 1l; +var42 = var48; +goto RET_LABEL43; +RET_LABEL43:(void)0; } } -self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var49; /* _length on */ +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var42; /* _length on */ } else { } RET_LABEL:; @@ -1858,86 +1856,84 @@ val* standard___standard__Array___standard__abstract_collection__SequenceRead___ val* var /* : nullable Object */; long var_index /* var index: Int */; short int var1 /* : Bool */; -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 */; +short int var5 /* : Bool */; short int var_ /* var : Bool */; -long var7 /* : Int */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -int cltype11; -int idtype12; -const char* var_class_name13; -short int var14 /* : Bool */; -val* var15 /* : nullable NativeArray[nullable Object] */; -val* var16 /* : nullable Object */; -val* var18 /* : nullable Object */; +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 /* : nullable NativeArray[nullable Object] */; +val* var15 /* : nullable Object */; +val* var17 /* : Object */; var_index = p0; -var2 = 0; { -{ /* Inline kernel#Int#>= (var_index,var2) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (unlikely(!var5)) { +{ /* Inline kernel#Int#>= (var_index,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, 411); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var6 = var_index >= var2; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var5 = var_index >= 0l; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -var_ = var3; -if (var3){ -var7 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var_ = var2; +if (var2){ +var6 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ { -{ /* Inline kernel#Int#< (var_index,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, 410); -show_backtrace(1); +{ /* Inline kernel#Int#< (var_index,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, 534); +fatal_exit(1); } -var14 = var_index < var7; -var8 = var14; -goto RET_LABEL9; -RET_LABEL9:(void)0; +var13 = var_index < var6; +var7 = var13; +goto RET_LABEL8; +RET_LABEL8:(void)0; } } -var1 = var8; +var1 = var7; } else { var1 = var_; } if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert \'index\' failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 258); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 320); +fatal_exit(1); } -var15 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -if (var15 == NULL) { +var14 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +if (var14 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 259); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 321); +fatal_exit(1); } else { -{ /* Inline array#NativeArray#[] (var15,var_index) on */ -var18 = ((struct instance_standard__NativeArray*)var15)->values[var_index]; -var16 = var18; -goto RET_LABEL17; -RET_LABEL17:(void)0; +{ /* Inline array#NativeArray#[] (var14,var_index) on */ +var17 = ((struct instance_standard__NativeArray*)var14)->values[var_index]; +var15 = var17; +goto RET_LABEL16; +RET_LABEL16:(void)0; } } -var = var16; +var = var15; goto RET_LABEL; RET_LABEL:; return var; @@ -1950,66 +1946,62 @@ int idtype; const struct type* type_struct; short int is_nullable; const char* var_class_name; -long var_index /* var index: Int */; -val* var_item /* var item: nullable Object */; -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 */; +long var_index /* var index: Int */; +val* var_item /* var item: nullable Object */; +short int var1 /* : Bool */; +short int var2 /* : Bool */; +short int var4 /* : Bool */; +int cltype5; +int idtype6; +const char* var_class_name7; +short int var8 /* : Bool */; short int var_ /* var : Bool */; +long var9 /* : Int */; long var10 /* : Int */; -long var11 /* : Int */; -long var12 /* : Int */; -short int var14 /* : Bool */; -int cltype15; -int idtype16; -const char* var_class_name17; -long var18 /* : Int */; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +const char* var_class_name15; +long var16 /* : Int */; +short int var17 /* : Bool */; short int var19 /* : Bool */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -const char* var_class_name24; +int cltype20; +int idtype21; +const char* var_class_name22; +short int var23 /* : Bool */; +long var24 /* : Int */; short int var25 /* : Bool */; -long var26 /* : Int */; short int var27 /* : Bool */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -const char* var_class_name32; -short int var33 /* : Bool */; -long var34 /* : Int */; -long var35 /* : Int */; -short int var37 /* : Bool */; -int cltype38; -int idtype39; -const char* var_class_name40; -long var41 /* : Int */; -long var42 /* : Int */; -short int var43 /* : Bool */; -short int var45 /* : Bool */; -int cltype46; -int idtype47; -const char* var_class_name48; +int cltype28; +int idtype29; +const char* var_class_name30; +short int var31 /* : Bool */; +long var32 /* : Int */; +short int var34 /* : Bool */; +int cltype35; +int idtype36; +const char* var_class_name37; +long var38 /* : Int */; +long var39 /* : Int */; +short int var40 /* : Bool */; +short int var42 /* : Bool */; +int cltype43; +int idtype44; +const char* var_class_name45; +short int var46 /* : Bool */; +long var47 /* : Int */; short int var49 /* : Bool */; -long var50 /* : Int */; -long var51 /* : Int */; -short int var53 /* : Bool */; -int cltype54; -int idtype55; -const char* var_class_name56; -long var57 /* : Int */; -val* var58 /* : nullable NativeArray[nullable Object] */; -short int var60 /* : Bool */; -int cltype61; -int idtype62; -const struct type* type_struct63; -short int is_nullable64; -const char* var_class_name65; +int cltype50; +int idtype51; +const char* var_class_name52; +long var53 /* : Int */; +val* var54 /* : nullable NativeArray[nullable Object] */; +short int var56 /* : Bool */; +int cltype57; +int idtype58; +const struct type* type_struct59; +short int is_nullable60; +const char* var_class_name61; /* Covariant cast for argument 1 (item) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__Array___35dE]; @@ -2019,197 +2011,193 @@ is_nullable = type_struct->is_nullable; if(p1 == NULL) { var = is_nullable; } else { -if(cltype >= p1->type->table_size) { +if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) { var = 0; } else { -var = p1->type->type_table[cltype] == idtype; +var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p1 == NULL ? "null" : p1->type->name; +var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 262); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 324); +fatal_exit(1); } var_index = p0; var_item = p1; -var2 = 0; { -{ /* Inline kernel#Int#>= (var_index,var2) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var5 = 1; /* easy isa OTHER*/ -if (unlikely(!var5)) { -var_class_name8 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411); -show_backtrace(1); +{ /* Inline kernel#Int#>= (var_index,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_name7 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var9 = var_index >= var2; -var3 = var9; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var8 = var_index >= 0l; +var2 = var8; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -var_ = var3; -if (var3){ -var10 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var11 = 1; +var_ = var2; +if (var2){ +var9 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ { -{ /* Inline kernel#Int#+ (var10,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, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var9,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var12 = 1; /* easy <1l: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, 537); +fatal_exit(1); } -var18 = var10 + var11; -var12 = var18; -goto RET_LABEL13; -RET_LABEL13:(void)0; +var16 = var9 + 1l; +var10 = var16; +goto RET_LABEL11; +RET_LABEL11:(void)0; } } { -{ /* Inline kernel#Int#< (var_index,var12) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var21 = 1; /* easy isa OTHER*/ -if (unlikely(!var21)) { -var_class_name24 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +{ /* Inline kernel#Int#< (var_index,var10) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var19 = 1; /* easy isa OTHER*/ +if (unlikely(!var19)) { +var_class_name22 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var25 = var_index < var12; -var19 = var25; -goto RET_LABEL20; -RET_LABEL20:(void)0; +var23 = var_index < var10; +var17 = var23; +goto RET_LABEL18; +RET_LABEL18:(void)0; } } -var1 = var19; +var1 = var17; } else { var1 = var_; } if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert \'index\' failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 264); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 326); +fatal_exit(1); } -var26 = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on */ +var24 = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on */ { -{ /* Inline kernel#Int#<= (var26,var_index) on */ +{ /* Inline kernel#Int#<= (var24,var_index) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var29 = 1; /* easy isa OTHER*/ -if (unlikely(!var29)) { -var_class_name32 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409); -show_backtrace(1); +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, 533); +fatal_exit(1); } -var33 = var26 <= var_index; -var27 = var33; -goto RET_LABEL28; -RET_LABEL28:(void)0; +var31 = var24 <= var_index; +var25 = var31; +goto RET_LABEL26; +RET_LABEL26:(void)0; } } -if (var27){ -var34 = 1; +if (var25){ { -{ /* Inline kernel#Int#+ (var_index,var34) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var37 = 1; /* easy isa OTHER*/ -if (unlikely(!var37)) { -var_class_name40 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_index,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var34 = 1; /* easy <1l:Int> 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, 537); +fatal_exit(1); } -var41 = var_index + var34; -var35 = var41; -goto RET_LABEL36; -RET_LABEL36:(void)0; +var38 = var_index + 1l; +var32 = var38; +goto RET_LABEL33; +RET_LABEL33:(void)0; } } { -standard___standard__Array___AbstractArray__enlarge(self, var35); /* Direct call array#Array#enlarge on */ +standard___standard__Array___AbstractArray__enlarge(self, var32); /* Direct call array#Array#enlarge on */ } } else { } -var42 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var39 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ { -{ /* Inline kernel#Int#<= (var42,var_index) on */ +{ /* Inline kernel#Int#<= (var39,var_index) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var45 = 1; /* easy isa OTHER*/ -if (unlikely(!var45)) { -var_class_name48 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409); -show_backtrace(1); +var42 = 1; /* easy isa OTHER*/ +if (unlikely(!var42)) { +var_class_name45 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } -var49 = var42 <= var_index; -var43 = var49; -goto RET_LABEL44; -RET_LABEL44:(void)0; +var46 = var39 <= var_index; +var40 = var46; +goto RET_LABEL41; +RET_LABEL41:(void)0; } } -if (var43){ -var50 = 1; +if (var40){ { -{ /* Inline kernel#Int#+ (var_index,var50) 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); +{ /* Inline kernel#Int#+ (var_index,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var49 = 1; /* easy <1l:Int> 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_index + var50; -var51 = var57; -goto RET_LABEL52; -RET_LABEL52:(void)0; +var53 = var_index + 1l; +var47 = var53; +goto RET_LABEL48; +RET_LABEL48:(void)0; } } -self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var51; /* _length on */ +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var47; /* _length on */ } else { } -var58 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -if (var58 == NULL) { +var54 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +if (var54 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 271); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 333); +fatal_exit(1); } else { -{ /* Inline array#NativeArray#[]= (var58,var_index,var_item) on */ +{ /* Inline array#NativeArray#[]= (var54,var_index,var_item) on */ /* Covariant cast for argument 1 (item) isa E */ /* isa E */ -type_struct63 = var58->type->resolution_table->types[COLOR_standard__NativeArray___35dE]; -cltype61 = type_struct63->color; -idtype62 = type_struct63->id; -is_nullable64 = type_struct63->is_nullable; +type_struct59 = var54->type->resolution_table->types[COLOR_standard__NativeArray___35dE]; +cltype57 = type_struct59->color; +idtype58 = type_struct59->id; +is_nullable60 = type_struct59->is_nullable; if(var_item == NULL) { -var60 = is_nullable64; +var56 = is_nullable60; } else { -if(cltype61 >= var_item->type->table_size) { -var60 = 0; +if(cltype57 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) { +var56 = 0; } else { -var60 = var_item->type->type_table[cltype61] == idtype62; +var56 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype57] == idtype58; } } -if (unlikely(!var60)) { -var_class_name65 = var_item == NULL ? "null" : var_item->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name65); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808); -show_backtrace(1); +if (unlikely(!var56)) { +var_class_name61 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name61); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957); +fatal_exit(1); } -((struct instance_standard__NativeArray*)var58)->values[var_index]=var_item; -RET_LABEL59:(void)0; +((struct instance_standard__NativeArray*)var54)->values[var_index]=var_item; +RET_LABEL55:(void)0; } } RET_LABEL:; @@ -2233,26 +2221,24 @@ int idtype7; const char* var_class_name8; short int var9 /* : Bool */; long var10 /* : Int */; -long var11 /* : Int */; -short int var13 /* : Bool */; -int cltype14; -int idtype15; -const char* var_class_name16; +short int var12 /* : Bool */; +int cltype13; +int idtype14; +const char* var_class_name15; +long var16 /* : Int */; long var17 /* : Int */; -long var18 /* : Int */; -long var19 /* : Int */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -const char* var_class_name24; -long var25 /* : Int */; -val* var26 /* : nullable NativeArray[nullable Object] */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -const struct type* type_struct31; -short int is_nullable32; -const char* var_class_name33; +short int var19 /* : Bool */; +int cltype20; +int idtype21; +const char* var_class_name22; +long var23 /* : Int */; +val* var24 /* : nullable NativeArray[nullable Object] */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const struct type* type_struct29; +short int is_nullable30; +const char* var_class_name31; /* Covariant cast for argument 0 (item) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__Array___35dE]; @@ -2262,17 +2248,17 @@ is_nullable = type_struct->is_nullable; if(p0 == NULL) { var = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 274); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 336); +fatal_exit(1); } var_item = p0; var1 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ @@ -2286,8 +2272,8 @@ var5 = 1; /* easy isa OTHER*/ if (unlikely(!var5)) { var_class_name8 = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } var9 = var2 <= var_l; var3 = var9; @@ -2296,78 +2282,76 @@ RET_LABEL4:(void)0; } } if (var3){ -var10 = 1; { -{ /* Inline kernel#Int#+ (var_l,var10) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var13 = 1; /* easy isa OTHER*/ -if (unlikely(!var13)) { -var_class_name16 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_l,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var12 = 1; /* easy <1l: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, 537); +fatal_exit(1); } -var17 = var_l + var10; -var11 = var17; -goto RET_LABEL12; -RET_LABEL12:(void)0; +var16 = var_l + 1l; +var10 = var16; +goto RET_LABEL11; +RET_LABEL11:(void)0; } } { -standard___standard__Array___AbstractArray__enlarge(self, var11); /* Direct call array#Array#enlarge on */ +standard___standard__Array___AbstractArray__enlarge(self, var10); /* Direct call array#Array#enlarge on */ } } else { } -var18 = 1; { -{ /* Inline kernel#Int#+ (var_l,var18) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var21 = 1; /* easy isa OTHER*/ -if (unlikely(!var21)) { -var_class_name24 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_l,1l) on */ +/* 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_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var25 = var_l + var18; -var19 = var25; -goto RET_LABEL20; -RET_LABEL20:(void)0; +var23 = var_l + 1l; +var17 = var23; +goto RET_LABEL18; +RET_LABEL18:(void)0; } } -self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var19; /* _length on */ -var26 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -if (var26 == NULL) { +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var17; /* _length on */ +var24 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +if (var24 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 281); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 343); +fatal_exit(1); } else { -{ /* Inline array#NativeArray#[]= (var26,var_l,var_item) on */ +{ /* Inline array#NativeArray#[]= (var24,var_l,var_item) on */ /* Covariant cast for argument 1 (item) isa E */ /* isa E */ -type_struct31 = var26->type->resolution_table->types[COLOR_standard__NativeArray___35dE]; -cltype29 = type_struct31->color; -idtype30 = type_struct31->id; -is_nullable32 = type_struct31->is_nullable; +type_struct29 = var24->type->resolution_table->types[COLOR_standard__NativeArray___35dE]; +cltype27 = type_struct29->color; +idtype28 = type_struct29->id; +is_nullable30 = type_struct29->is_nullable; if(var_item == NULL) { -var28 = is_nullable32; +var26 = is_nullable30; } else { -if(cltype29 >= var_item->type->table_size) { -var28 = 0; +if(cltype27 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) { +var26 = 0; } else { -var28 = var_item->type->type_table[cltype29] == idtype30; +var26 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype27] == idtype28; } } -if (unlikely(!var28)) { -var_class_name33 = var_item == NULL ? "null" : var_item->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name33); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808); -show_backtrace(1); +if (unlikely(!var26)) { +var_class_name31 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name31); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957); +fatal_exit(1); } -((struct instance_standard__NativeArray*)var26)->values[var_l]=var_item; -RET_LABEL27:(void)0; +((struct instance_standard__NativeArray*)var24)->values[var_l]=var_item; +RET_LABEL25:(void)0; } } RET_LABEL:; @@ -2401,79 +2385,75 @@ short int var18 /* : Bool */; int cltype19; int idtype20; const struct type* type_struct21; -long var22 /* : Int */; long var_k /* var k: Int */; -short int var23 /* : Bool */; -short int var25 /* : Bool */; -int cltype26; -int idtype27; -const char* var_class_name28; -short int var29 /* : Bool */; +short int var22 /* : Bool */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +short int var28 /* : Bool */; +val* var29 /* : nullable NativeArray[nullable Object] */; val* var30 /* : nullable NativeArray[nullable Object] */; -val* var31 /* : nullable NativeArray[nullable Object] */; -val* var32 /* : nullable Object */; -val* var34 /* : nullable Object */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -const struct type* type_struct39; +val* var31 /* : nullable Object */; +val* var33 /* : Object */; +short int var35 /* : Bool */; +int cltype36; +int idtype37; +const struct type* type_struct38; short int is_nullable; -const char* var_class_name40; -long var41 /* : Int */; -long var42 /* : Int */; -short int var44 /* : Bool */; -int cltype45; -int idtype46; -const char* var_class_name47; -long var48 /* : Int */; -long var49 /* : Int */; -long var50 /* : Int */; -short int var52 /* : Bool */; -int cltype53; -int idtype54; -const char* var_class_name55; -long var56 /* : Int */; +const char* var_class_name39; +long var40 /* : Int */; +short int var42 /* : Bool */; +int cltype43; +int idtype44; +const char* var_class_name45; +long var46 /* : Int */; +long var47 /* : Int */; +short int var49 /* : Bool */; +int cltype50; +int idtype51; +const char* var_class_name52; +long var53 /* : Int */; val* var_ /* var : Collection[nullable Object] */; -val* var57 /* : Iterator[nullable Object] */; -val* var_58 /* var : Iterator[nullable Object] */; -short int var59 /* : Bool */; -val* var60 /* : nullable Object */; +val* var54 /* : Iterator[nullable Object] */; +val* var_55 /* var : Iterator[nullable Object] */; +short int var56 /* : Bool */; +val* var57 /* : nullable Object */; val* var_item /* var item: nullable Object */; -val* var61 /* : nullable NativeArray[nullable Object] */; -short int var63 /* : Bool */; -int cltype64; -int idtype65; -const struct type* type_struct66; -short int is_nullable67; -const char* var_class_name68; -long var69 /* : Int */; -long var70 /* : Int */; -short int var72 /* : Bool */; -int cltype73; -int idtype74; -const char* var_class_name75; -long var76 /* : Int */; +val* var58 /* : nullable NativeArray[nullable Object] */; +short int var60 /* : Bool */; +int cltype61; +int idtype62; +const struct type* type_struct63; +short int is_nullable64; +const char* var_class_name65; +long var66 /* : Int */; +short int var68 /* : Bool */; +int cltype69; +int idtype70; +const char* var_class_name71; +long var72 /* : Int */; /* Covariant cast for argument 0 (items) isa Collection[E] */ /* isa Collection[E] */ type_struct = self->type->resolution_table->types[COLOR_standard__Collection__standard__Array___35dE]; cltype = type_struct->color; idtype = type_struct->id; -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 284); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 346); +fatal_exit(1); } var_items = p0; var1 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ var_l = var1; { -var2 = ((long (*)(val* self))(var_items->class->vft[COLOR_standard__abstract_collection__Collection__length]))(var_items) /* length on */; +var2 = ((long(*)(val* self))((((long)var_items&3)?class_info[((long)var_items&3)]:var_items->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(var_items); /* length on */ } { { /* Inline kernel#Int#+ (var_l,var2) on */ @@ -2483,8 +2463,8 @@ var5 = 1; /* easy isa OTHER*/ if (unlikely(!var5)) { var_class_name8 = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } var9 = var_l + var2; var3 = var9; @@ -2502,8 +2482,8 @@ var13 = 1; /* easy isa OTHER*/ if (unlikely(!var13)) { var_class_name16 = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } var17 = var10 < var_nl; var11 = var17; @@ -2521,116 +2501,113 @@ standard___standard__Array___AbstractArray__enlarge(self, var_nl); /* Direct cal type_struct21 = self->type->resolution_table->types[COLOR_standard__Array__standard__Array___35dE]; cltype19 = type_struct21->color; idtype20 = type_struct21->id; -if(cltype19 >= var_items->type->table_size) { +if(cltype19 >= (((long)var_items&3)?type_info[((long)var_items&3)]:var_items->type)->table_size) { var18 = 0; } else { -var18 = var_items->type->type_table[cltype19] == idtype20; +var18 = (((long)var_items&3)?type_info[((long)var_items&3)]:var_items->type)->type_table[cltype19] == idtype20; } if (var18){ -var22 = 0; -var_k = var22; +var_k = 0l; for(;;) { { { /* Inline kernel#Int#< (var_l,var_nl) 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_l < var_nl; -var23 = var29; -goto RET_LABEL24; -RET_LABEL24:(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, 534); +fatal_exit(1); +} +var28 = var_l < var_nl; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; } } -if (var23){ -var30 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -var31 = var_items->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -if (var31 == NULL) { +if (var22){ +var29 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +var30 = var_items->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +if (var30 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 296); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 358); +fatal_exit(1); } else { -{ /* Inline array#NativeArray#[] (var31,var_k) on */ -var34 = ((struct instance_standard__NativeArray*)var31)->values[var_k]; -var32 = var34; -goto RET_LABEL33; -RET_LABEL33:(void)0; +{ /* Inline array#NativeArray#[] (var30,var_k) on */ +var33 = ((struct instance_standard__NativeArray*)var30)->values[var_k]; +var31 = var33; +goto RET_LABEL32; +RET_LABEL32:(void)0; } } -if (var30 == NULL) { +if (var29 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 296); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 358); +fatal_exit(1); } else { -{ /* Inline array#NativeArray#[]= (var30,var_l,var32) on */ -/* Covariant cast for argument 1 (item) isa E */ -/* isa E */ -type_struct39 = var30->type->resolution_table->types[COLOR_standard__NativeArray___35dE]; -cltype37 = type_struct39->color; -idtype38 = type_struct39->id; -is_nullable = type_struct39->is_nullable; -if(var32 == NULL) { -var36 = is_nullable; +{ /* Inline array#NativeArray#[]= (var29,var_l,var31) on */ +/* Covariant cast for argument 1 (item) isa E */ +/* isa E */ +type_struct38 = var29->type->resolution_table->types[COLOR_standard__NativeArray___35dE]; +cltype36 = type_struct38->color; +idtype37 = type_struct38->id; +is_nullable = type_struct38->is_nullable; +if(var31 == NULL) { +var35 = is_nullable; } else { -if(cltype37 >= var32->type->table_size) { -var36 = 0; +if(cltype36 >= (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->table_size) { +var35 = 0; } else { -var36 = var32->type->type_table[cltype37] == idtype38; +var35 = (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->type_table[cltype36] == idtype37; } } -if (unlikely(!var36)) { -var_class_name40 = var32 == NULL ? "null" : var32->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name40); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808); -show_backtrace(1); +if (unlikely(!var35)) { +var_class_name39 = var31 == NULL ? "null" : (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name39); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957); +fatal_exit(1); } -((struct instance_standard__NativeArray*)var30)->values[var_l]=var32; -RET_LABEL35:(void)0; +((struct instance_standard__NativeArray*)var29)->values[var_l]=var31; +RET_LABEL34:(void)0; } } -var41 = 1; { -{ /* Inline kernel#Int#+ (var_l,var41) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var44 = 1; /* easy isa OTHER*/ -if (unlikely(!var44)) { -var_class_name47 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_l,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var42 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var42)) { +var_class_name45 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var48 = var_l + var41; -var42 = var48; -goto RET_LABEL43; -RET_LABEL43:(void)0; +var46 = var_l + 1l; +var40 = var46; +goto RET_LABEL41; +RET_LABEL41:(void)0; } } -var_l = var42; -var49 = 1; +var_l = var40; { -{ /* Inline kernel#Int#+ (var_k,var49) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var52 = 1; /* easy isa OTHER*/ -if (unlikely(!var52)) { -var_class_name55 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_k,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var49 = 1; /* easy <1l:Int> 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); } -var56 = var_k + var49; -var50 = var56; -goto RET_LABEL51; -RET_LABEL51:(void)0; +var53 = var_k + 1l; +var47 = var53; +goto RET_LABEL48; +RET_LABEL48:(void)0; } } -var_k = var50; +var_k = var47; } else { goto BREAK_label; } @@ -2639,81 +2616,78 @@ BREAK_label: (void)0; } else { var_ = var_items; { -var57 = ((val* (*)(val* self))(var_->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_) /* iterator on */; +var54 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on */ } -var_58 = var57; +var_55 = var54; for(;;) { { -var59 = ((short int (*)(val* self))(var_58->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_58) /* is_ok on */; +var56 = ((short int(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_55); /* is_ok on */ } -if (var59){ +if (var56){ { -var60 = ((val* (*)(val* self))(var_58->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_58) /* item on */; +var57 = ((val*(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_55); /* item on */ } -var_item = var60; -var61 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -if (var61 == NULL) { +var_item = var57; +var58 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +if (var58 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 302); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 364); +fatal_exit(1); } else { -{ /* Inline array#NativeArray#[]= (var61,var_l,var_item) on */ +{ /* Inline array#NativeArray#[]= (var58,var_l,var_item) on */ /* Covariant cast for argument 1 (item) isa E */ /* isa E */ -type_struct66 = var61->type->resolution_table->types[COLOR_standard__NativeArray___35dE]; -cltype64 = type_struct66->color; -idtype65 = type_struct66->id; -is_nullable67 = type_struct66->is_nullable; +type_struct63 = var58->type->resolution_table->types[COLOR_standard__NativeArray___35dE]; +cltype61 = type_struct63->color; +idtype62 = type_struct63->id; +is_nullable64 = type_struct63->is_nullable; if(var_item == NULL) { -var63 = is_nullable67; +var60 = is_nullable64; } else { -if(cltype64 >= var_item->type->table_size) { -var63 = 0; +if(cltype61 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) { +var60 = 0; } else { -var63 = var_item->type->type_table[cltype64] == idtype65; +var60 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype61] == idtype62; } } -if (unlikely(!var63)) { -var_class_name68 = var_item == NULL ? "null" : var_item->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name68); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808); -show_backtrace(1); +if (unlikely(!var60)) { +var_class_name65 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name65); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957); +fatal_exit(1); } -((struct instance_standard__NativeArray*)var61)->values[var_l]=var_item; -RET_LABEL62:(void)0; +((struct instance_standard__NativeArray*)var58)->values[var_l]=var_item; +RET_LABEL59:(void)0; } } -var69 = 1; { -{ /* Inline kernel#Int#+ (var_l,var69) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var72 = 1; /* easy isa OTHER*/ -if (unlikely(!var72)) { -var_class_name75 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_l,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var68 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var68)) { +var_class_name71 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var76 = var_l + var69; -var70 = var76; -goto RET_LABEL71; -RET_LABEL71:(void)0; +var72 = var_l + 1l; +var66 = var72; +goto RET_LABEL67; +RET_LABEL67:(void)0; } } -var_l = var70; +var_l = var66; { -((void (*)(val* self))(var_58->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_58) /* next on */; +((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_55); /* next on */ } } else { -goto BREAK_label77; +goto BREAK_label73; } } -BREAK_label77: (void)0; +BREAK_label73: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_58) on */ -RET_LABEL78:(void)0; -} +((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_55); /* finish on */ } } self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var_nl; /* _length on */ @@ -2737,36 +2711,33 @@ int idtype9; const char* var_class_name10; short int var11 /* : Bool */; 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 */; -short int var23 /* : Bool */; -int cltype24; -int idtype25; -const char* var_class_name26; -long var27 /* : Int */; -val* var28 /* : NativeArray[nullable Object] */; +short int var21 /* : Bool */; +int cltype22; +int idtype23; +const char* var_class_name24; +long var25 /* : Int */; +val* var26 /* : NativeArray[nullable Object] */; val* var_a /* var a: NativeArray[nullable Object] */; -long var29 /* : Int */; -long var30 /* : Int */; -short int var31 /* : Bool */; -short int var33 /* : Bool */; -int cltype34; -int idtype35; -const char* var_class_name36; -short int var37 /* : Bool */; -val* var38 /* : nullable NativeArray[nullable Object] */; -long var39 /* : Int */; -short int var41 /* : Bool */; -int cltype42; -int idtype43; +long var27 /* : Int */; +short int var28 /* : Bool */; +short int var30 /* : Bool */; +int cltype31; +int idtype32; +const char* var_class_name33; +short int var34 /* : Bool */; +val* var35 /* : nullable NativeArray[nullable Object] */; +long var36 /* : Int */; +short int var38 /* : Bool */; +int cltype39; +int idtype40; const struct type* type_struct; -const char* var_class_name44; +const char* var_class_name41; var_cap = p0; var = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on */ var_c = var; @@ -2778,8 +2749,8 @@ var3 = 1; /* easy 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, 409); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } var4 = var_cap <= var_c; var1 = var4; @@ -2800,8 +2771,8 @@ var7 = 1; /* easy isa OTHER*/ if (unlikely(!var7)) { var_class_name10 = type_standard__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533); +fatal_exit(1); } var11 = var_c <= var_cap; var5 = var11; @@ -2810,96 +2781,93 @@ RET_LABEL6:(void)0; } } if (var5){ -var12 = 2; { -{ /* Inline kernel#Int#* (var_c,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, 417); -show_backtrace(1); +{ /* Inline kernel#Int#* (var_c,2l) on */ +/* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */ +/* <2l:Int> isa OTHER */ +var14 = 1; /* easy <2l: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, 541); +fatal_exit(1); } -var19 = var_c * var12; -var13 = var19; -goto RET_LABEL14; -RET_LABEL14:(void)0; +var18 = var_c * 2l; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; } } -var20 = 2; { -{ /* Inline kernel#Int#+ (var13,var20) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -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, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var12,2l) on */ +/* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */ +/* <2l:Int> isa OTHER */ +var21 = 1; /* easy <2l:Int> isa OTHER*/ +if (unlikely(!var21)) { +var_class_name24 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var27 = var13 + var20; -var21 = var27; -goto RET_LABEL22; -RET_LABEL22:(void)0; +var25 = var12 + 2l; +var19 = var25; +goto RET_LABEL20; +RET_LABEL20:(void)0; } } -var_c = var21; +var_c = var19; } else { goto BREAK_label; } } BREAK_label: (void)0; -var28 = NEW_standard__NativeArray(var_c, self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]); -var_a = var28; -var29 = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on */ -var30 = 0; -{ -{ /* Inline kernel#Int#> (var29,var30) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var33 = 1; /* easy isa OTHER*/ -if (unlikely(!var33)) { -var_class_name36 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412); -show_backtrace(1); -} -var37 = var29 > var30; -var31 = var37; -goto RET_LABEL32; -RET_LABEL32:(void)0; -} -} -if (var31){ -var38 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -var39 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -if (var38 == NULL) { +var26 = NEW_standard__NativeArray(var_c, self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]); +var_a = var26; +var27 = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on */ +{ +{ /* Inline kernel#Int#> (var27,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var30 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var30)) { +var_class_name33 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); +} +var34 = var27 > 0l; +var28 = var34; +goto RET_LABEL29; +RET_LABEL29:(void)0; +} +} +if (var28){ +var35 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +var36 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +if (var35 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 316); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 378); +fatal_exit(1); } else { -{ /* Inline array#NativeArray#copy_to (var38,var_a,var39) on */ +{ /* Inline array#NativeArray#copy_to (var35,var_a,var36) on */ /* Covariant cast for argument 0 (dest) isa NativeArray[E] */ /* isa NativeArray[E] */ -type_struct = var38->type->resolution_table->types[COLOR_standard__NativeArray__standard__NativeArray___35dE]; -cltype42 = type_struct->color; -idtype43 = type_struct->id; -if(cltype42 >= var_a->type->table_size) { -var41 = 0; +type_struct = var35->type->resolution_table->types[COLOR_standard__NativeArray__standard__NativeArray___35dE]; +cltype39 = type_struct->color; +idtype40 = type_struct->id; +if(cltype39 >= var_a->type->table_size) { +var38 = 0; } else { -var41 = var_a->type->type_table[cltype42] == idtype43; +var38 = var_a->type->type_table[cltype39] == idtype40; } -if (unlikely(!var41)) { -var_class_name44 = var_a == NULL ? "null" : var_a->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name44); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 811); -show_backtrace(1); +if (unlikely(!var38)) { +var_class_name41 = var_a == NULL ? "null" : var_a->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name41); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 960); +fatal_exit(1); } -memmove(((struct instance_standard__NativeArray*)var_a)->values, ((struct instance_standard__NativeArray*)var38)->values, var39*sizeof(val*)); -RET_LABEL40:(void)0; +memmove(((struct instance_standard__NativeArray*)var_a)->values, ((struct instance_standard__NativeArray*)var35)->values, var36*sizeof(val*)); +RET_LABEL37:(void)0; } } } else { @@ -2910,86 +2878,183 @@ RET_LABEL:; } /* method array#Array#init for (self: Array[nullable Object]) */ void standard___standard__Array___standard__kernel__Object__init(val* self) { -long var /* : Int */; -long var1 /* : Int */; { -((void (*)(val* self))(self->class->vft[COLOR_standard___standard__Array___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_standard___standard__Array___standard__kernel__Object__init]))(self); /* init on */ } -var = 0; -self->attrs[COLOR_standard__array__Array___capacity].l = var; /* _capacity on */ -var1 = 0; -self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var1; /* _length on */ +self->attrs[COLOR_standard__array__Array___capacity].l = 0l; /* _capacity on */ +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = 0l; /* _length on */ RET_LABEL:; } -/* method array#Array#with_items for (self: Array[nullable Object], Array[nullable Object]) */ -void standard___standard__Array___with_items(val* self, val* p0) { -val* var_objects /* var objects: Array[nullable Object] */; -val* var /* : nullable NativeArray[nullable Object] */; -long var1 /* : Int */; -long var2 /* : Int */; -long var4 /* : Int */; +/* method array#Array#with_capacity for (self: Array[nullable Object], Int) */ +void standard___standard__Array___with_capacity(val* self, long p0) { +long var_cap /* var cap: Int */; +short int var /* : Bool */; +short int var2 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +short int var3 /* : Bool */; +val* var4 /* : NativeArray[nullable Object] */; { standard___standard__Array___standard__kernel__Object__init(self); /* Direct call array#Array#init on */ } -var_objects = p0; -var = var_objects->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -self->attrs[COLOR_standard__array__Array___items].val = var; /* _items on */ -var1 = var_objects->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on */ -self->attrs[COLOR_standard__array__Array___capacity].l = var1; /* _capacity on */ +var_cap = p0; { -{ /* Inline array#AbstractArrayRead#length (var_objects) on */ -var4 = var_objects->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var2 = var4; -RET_LABEL3:(void)0; +{ /* Inline kernel#Int#>= (var_cap,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var2 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var2)) { +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, 535); +fatal_exit(1); } +var3 = var_cap >= 0l; +var = var3; +goto RET_LABEL1; +RET_LABEL1:(void)0; +} +} +if (unlikely(!var)) { +PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 407); +fatal_exit(1); } -self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var2; /* _length on */ +var4 = NEW_standard__NativeArray(var_cap, self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]); +self->attrs[COLOR_standard__array__Array___items].val = var4; /* _items on */ +self->attrs[COLOR_standard__array__Array___capacity].l = var_cap; /* _capacity on */ +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = 0l; /* _length on */ RET_LABEL:; } -/* method array#Array#with_capacity for (self: Array[nullable Object], Int) */ -void standard___standard__Array___with_capacity(val* self, long p0) { -long var_cap /* var cap: Int */; -long var /* : Int */; -short int var1 /* : Bool */; -short int var3 /* : Bool */; +/* method array#Array#filled_with for (self: Array[nullable Object], nullable Object, Int) */ +void standard___standard__Array___filled_with(val* self, val* p0, long p1) { +short int var /* : Bool */; int cltype; int idtype; +const struct type* type_struct; +short int is_nullable; const char* var_class_name; -short int var4 /* : Bool */; -val* var5 /* : NativeArray[nullable Object] */; -long var6 /* : Int */; +val* var_value /* var value: nullable Object */; +long var_count /* var count: Int */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +int cltype4; +int idtype5; +const char* var_class_name6; +short int var7 /* : Bool */; +val* var8 /* : NativeArray[nullable Object] */; +long var_i /* var i: Int */; +short int var9 /* : Bool */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const char* var_class_name14; +short int var15 /* : Bool */; +long var16 /* : Int */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const char* var_class_name21; +long var22 /* : Int */; +/* Covariant cast for argument 0 (value) isa E */ +/* isa E */ +type_struct = self->type->resolution_table->types[COLOR_standard__Array___35dE]; +cltype = type_struct->color; +idtype = type_struct->id; +is_nullable = type_struct->is_nullable; +if(p0 == NULL) { +var = is_nullable; +} else { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { +var = 0; +} else { +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; +} +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 413); +fatal_exit(1); +} { standard___standard__Array___standard__kernel__Object__init(self); /* Direct call array#Array#init on */ } -var_cap = p0; -var = 0; +var_value = p0; +var_count = p1; { -{ /* Inline kernel#Int#>= (var_cap,var) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var3 = 1; /* easy isa OTHER*/ +{ /* Inline kernel#Int#>= (var_count,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); +var_class_name6 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var4 = var_cap >= var; -var1 = var4; +var7 = var_count >= 0l; +var1 = var7; goto RET_LABEL2; RET_LABEL2:(void)0; } } if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 345); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 416); +fatal_exit(1); +} +var8 = NEW_standard__NativeArray(var_count, self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]); +self->attrs[COLOR_standard__array__Array___items].val = var8; /* _items on */ +self->attrs[COLOR_standard__array__Array___capacity].l = var_count; /* _capacity on */ +self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var_count; /* _length on */ +var_i = 0l; +for(;;) { +{ +{ /* Inline kernel#Int#< (var_i,var_count) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var11 = 1; /* easy isa OTHER*/ +if (unlikely(!var11)) { +var_class_name14 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var5 = NEW_standard__NativeArray(var_cap, self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]); -self->attrs[COLOR_standard__array__Array___items].val = var5; /* _items on */ -self->attrs[COLOR_standard__array__Array___capacity].l = var_cap; /* _capacity on */ -var6 = 0; -self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var6; /* _length on */ +var15 = var_i < var_count; +var9 = var15; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +} +if (var9){ +{ +standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(self, var_i, var_value); /* Direct call array#Array#[]= on */ +} +{ +{ /* Inline kernel#Int#+ (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var18 = 1; /* easy <1l:Int> 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, 537); +fatal_exit(1); +} +var22 = var_i + 1l; +var16 = var22; +goto RET_LABEL17; +RET_LABEL17:(void)0; +} +} +var_i = var16; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; RET_LABEL:; } /* method array#Array#with_native for (self: Array[nullable Object], NativeArray[nullable Object], Int) */ @@ -3001,13 +3066,12 @@ const struct type* type_struct; const char* var_class_name; val* var_nat /* var nat: NativeArray[nullable Object] */; long var_size /* var size: Int */; -long var1 /* : Int */; -short int var2 /* : Bool */; -short int var4 /* : Bool */; -int cltype5; -int idtype6; -const char* var_class_name7; -short int var8 /* : Bool */; +short int var1 /* : Bool */; +short int var3 /* : Bool */; +int cltype4; +int idtype5; +const char* var_class_name6; +short int var7 /* : Bool */; /* Covariant cast for argument 0 (nat) isa NativeArray[E] */ /* isa NativeArray[E] */ type_struct = self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]; @@ -3021,36 +3085,35 @@ var = p0->type->type_table[cltype] == idtype; if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 365); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 427); +fatal_exit(1); } { standard___standard__Array___standard__kernel__Object__init(self); /* Direct call array#Array#init on */ } var_nat = p0; var_size = p1; -var1 = 0; { -{ /* Inline kernel#Int#>= (var_size,var1) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (unlikely(!var4)) { -var_class_name7 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 411); -show_backtrace(1); +{ /* Inline kernel#Int#>= (var_size,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_name6 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var8 = var_size >= var1; -var2 = var8; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var7 = var_size >= 0l; +var1 = var7; +goto RET_LABEL2; +RET_LABEL2:(void)0; } } -if (unlikely(!var2)) { +if (unlikely(!var1)) { PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 368); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 430); +fatal_exit(1); } self->attrs[COLOR_standard__array__Array___items].val = var_nat; /* _items on */ self->attrs[COLOR_standard__array__Array___capacity].l = var_size; /* _capacity on */ @@ -3074,34 +3137,29 @@ long var9 /* : Int */; short int var10 /* : Bool */; short int var12 /* : Bool */; short int var13 /* : Bool */; -short int var14 /* : Bool */; -long var15 /* : Int */; long var_i /* var i: Int */; -val* var16 /* : nullable NativeArray[nullable Object] */; +val* var14 /* : nullable NativeArray[nullable Object] */; val* var_it /* var it: nullable NativeArray[nullable Object] */; -val* var17 /* : nullable NativeArray[nullable Object] */; +val* var15 /* : nullable NativeArray[nullable Object] */; val* var_oit /* var oit: nullable NativeArray[nullable Object] */; +short int var16 /* : Bool */; short int var18 /* : Bool */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; +int cltype19; +int idtype20; const char* var_class_name; -short int var23 /* : Bool */; -val* var24 /* : nullable Object */; -val* var26 /* : nullable Object */; -val* var27 /* : nullable Object */; -val* var29 /* : nullable Object */; -short int var30 /* : Bool */; -short int var31 /* : Bool */; +short int var21 /* : Bool */; +val* var22 /* : nullable Object */; +val* var24 /* : Object */; +val* var25 /* : nullable Object */; +val* var27 /* : Object */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +long var30 /* : Int */; short int var32 /* : Bool */; -long var33 /* : Int */; -long var34 /* : Int */; -short int var36 /* : Bool */; -int cltype37; -int idtype38; -const char* var_class_name39; -long var40 /* : Int */; -short int var41 /* : Bool */; +int cltype33; +int idtype34; +const char* var_class_name35; +long var36 /* : Int */; var_o = p0; /* isa Array[nullable Object] */ cltype = type_standard__Array__nullable__standard__Object.color; @@ -3109,16 +3167,16 @@ idtype = type_standard__Array__nullable__standard__Object.id; if(var_o == NULL) { var1 = 0; } else { -if(cltype >= var_o->type->table_size) { +if(cltype >= (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->table_size) { var1 = 0; } else { -var1 = var_o->type->type_table[cltype] == idtype; +var1 = (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->type_table[cltype] == idtype; } } var2 = !var1; if (var2){ { -var3 = ((short int (*)(val* self, val* p0))(self->class->vft[COLOR_standard___standard__Array___standard__kernel__Object___61d_61d]))(self, p0) /* == on */; +var3 = ((short int(*)(val* self, val* p0))(self->class->vft[COLOR_standard___standard__Array___standard__kernel__Object___61d_61d]))(self, p0); /* == on */ } var = var3; goto RET_LABEL; @@ -3149,98 +3207,93 @@ RET_LABEL11:(void)0; } } if (var10){ -var14 = 0; -var = var14; +var = 0; goto RET_LABEL; } else { } -var15 = 0; -var_i = var15; -var16 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -var_it = var16; -var17 = var_o->attrs[COLOR_standard__array__Array___items].val; /* _items on */ -var_oit = var17; +var_i = 0l; +var14 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +var_it = var14; +var15 = var_o->attrs[COLOR_standard__array__Array___items].val; /* _items on */ +var_oit = var15; for(;;) { { { /* Inline kernel#Int#< (var_i,var_l) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var20 = 1; /* easy isa OTHER*/ -if (unlikely(!var20)) { +var18 = 1; /* easy isa OTHER*/ +if (unlikely(!var18)) { 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); } -var23 = var_i < var_l; -var18 = var23; -goto RET_LABEL19; -RET_LABEL19:(void)0; +var21 = var_i < var_l; +var16 = var21; +goto RET_LABEL17; +RET_LABEL17:(void)0; } } -if (var18){ +if (var16){ if (var_it == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 390); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 452); +fatal_exit(1); } else { { /* Inline array#NativeArray#[] (var_it,var_i) on */ -var26 = ((struct instance_standard__NativeArray*)var_it)->values[var_i]; -var24 = var26; -goto RET_LABEL25; -RET_LABEL25:(void)0; +var24 = ((struct instance_standard__NativeArray*)var_it)->values[var_i]; +var22 = var24; +goto RET_LABEL23; +RET_LABEL23:(void)0; } } if (var_oit == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 390); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 452); +fatal_exit(1); } else { { /* Inline array#NativeArray#[] (var_oit,var_i) on */ -var29 = ((struct instance_standard__NativeArray*)var_oit)->values[var_i]; -var27 = var29; -goto RET_LABEL28; -RET_LABEL28:(void)0; +var27 = ((struct instance_standard__NativeArray*)var_oit)->values[var_i]; +var25 = var27; +goto RET_LABEL26; +RET_LABEL26:(void)0; } } -if (var24 == NULL) { -var30 = (var27 != NULL); +if (var22 == NULL) { +var28 = (var25 != NULL); } else { -var31 = ((short int (*)(val* self, val* p0))(var24->class->vft[COLOR_standard__kernel__Object___33d_61d]))(var24, var27) /* != on */; -var30 = var31; +var29 = ((short int(*)(val* self, val* p0))((((long)var22&3)?class_info[((long)var22&3)]:var22->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var22, var25); /* != on */ +var28 = var29; } -if (var30){ -var32 = 0; -var = var32; +if (var28){ +var = 0; goto RET_LABEL; } else { } -var33 = 1; { -{ /* Inline kernel#Int#+ (var_i,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, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var32 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var32)) { +var_class_name35 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var40 = var_i + var33; -var34 = var40; -goto RET_LABEL35; -RET_LABEL35:(void)0; +var36 = var_i + 1l; +var30 = var36; +goto RET_LABEL31; +RET_LABEL31:(void)0; } } -var_i = var34; +var_i = var30; } else { goto BREAK_label; } } BREAK_label: (void)0; -var41 = 1; -var = var41; +var = 1; goto RET_LABEL; RET_LABEL:; return var; @@ -3254,12 +3307,12 @@ val* var3 /* : nullable Object */; var1 = self->attrs[COLOR_standard__array__ArrayIterator___array].val; /* _array on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 445); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 530); +fatal_exit(1); } var2 = self->attrs[COLOR_standard__array__ArrayIterator___index].l; /* _index on */ { -var3 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var1, var2); +var3 = ((val*(*)(val* self, long p0))(var1->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var1, var2); /* [] on */ } var = var3; goto RET_LABEL; @@ -3272,45 +3325,40 @@ short int var /* : Bool */; long var1 /* : Int */; val* var2 /* : AbstractArrayRead[nullable Object] */; long var3 /* : Int */; -long var5 /* : Int */; +short int var4 /* : Bool */; short int var6 /* : Bool */; -short int var8 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var9 /* : Bool */; +short int var7 /* : Bool */; var1 = self->attrs[COLOR_standard__array__ArrayIterator___index].l; /* _index on */ var2 = self->attrs[COLOR_standard__array__ArrayIterator___array].val; /* _array on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 449); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 534); +fatal_exit(1); } { -{ /* Inline array#AbstractArrayRead#length (var2) on */ -var5 = var2->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var3 = var5; -RET_LABEL4:(void)0; -} +var3 = ((long(*)(val* self))(var2->class->vft[COLOR_standard__abstract_collection__Collection__length]))(var2); /* length on */ } { { /* Inline kernel#Int#< (var1,var3) on */ /* Covariant cast for argument 0 (i) isa OTHER */ /* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { +var6 = 1; /* easy isa OTHER*/ +if (unlikely(!var6)) { 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); } -var9 = var1 < var3; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var7 = var1 < var3; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } } -var = var6; +var = var4; goto RET_LABEL; RET_LABEL:; return var; @@ -3320,33 +3368,31 @@ void standard__array___standard__array__ArrayIterator___standard__abstract_colle val* var_ /* var : ArrayIterator[nullable Object] */; long var /* : Int */; long var1 /* : Int */; -long var2 /* : Int */; -short int var4 /* : Bool */; +short int var3 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var5 /* : Int */; +long var4 /* : Int */; var_ = self; var = var_->attrs[COLOR_standard__array__ArrayIterator___index].l; /* _index on */ -var1 = 1; { -{ /* Inline kernel#Int#+ (var,var1) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var4 = 1; /* easy isa OTHER*/ -if (unlikely(!var4)) { +{ /* Inline kernel#Int#+ (var,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var3 = 1; /* easy <1l: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, 413); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var5 = var + var1; -var2 = var5; -goto RET_LABEL3; -RET_LABEL3:(void)0; +var4 = var + 1l; +var1 = var4; +goto RET_LABEL2; +RET_LABEL2:(void)0; } } -var_->attrs[COLOR_standard__array__ArrayIterator___index].l = var2; /* _index on */ +var_->attrs[COLOR_standard__array__ArrayIterator___index].l = var1; /* _index on */ RET_LABEL:; } /* method array#ArrayIterator#index for (self: ArrayIterator[nullable Object]): Int */ @@ -3378,63 +3424,48 @@ var = p0->type->type_table[cltype] == idtype; if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArrayRead[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 455); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 540); +fatal_exit(1); } self->attrs[COLOR_standard__array__ArrayIterator___array].val = p0; /* _array on */ RET_LABEL:; } +/* method array#ArrayIterator#finish for (self: ArrayIterator[nullable Object]) */ +void standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(val* self) { +val* var /* : AbstractArrayRead[nullable Object] */; +var = self->attrs[COLOR_standard__array__ArrayIterator___array].val; /* _array on */ +if (unlikely(var == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 542); +fatal_exit(1); +} +var->attrs[COLOR_standard__array__AbstractArrayRead___free_iterator].val = self; /* _free_iterator on */ +RET_LABEL:; +} /* method array#ArrayIterator#init for (self: ArrayIterator[nullable Object]) */ void standard__array___standard__array__ArrayIterator___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayIterator___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayIterator___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } /* method array#ArraySet#has for (self: ArraySet[nullable Object], nullable Object): Bool */ short int standard___standard__ArraySet___standard__abstract_collection__Collection__has(val* self, val* p0) { short int var /* : Bool */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_e /* var e: nullable Object */; -val* var2 /* : Array[nullable Object] */; -short int var3 /* : Bool */; -/* Covariant cast for argument 0 (e) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__ArraySet___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var1 = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 480); -show_backtrace(1); -} +val* var1 /* : Array[nullable Object] */; +short int var2 /* : Bool */; var_e = p0; -var2 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ -if (unlikely(var2 == NULL)) { +var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ +if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 480); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 568); +fatal_exit(1); } { -var3 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var2, var_e); +var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var1, var_e); } -var = var3; +var = var2; goto RET_LABEL; RET_LABEL:; return var; @@ -3461,24 +3492,24 @@ is_nullable = type_struct->is_nullable; if(p0 == NULL) { var = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 482); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 570); +fatal_exit(1); } var_e = p0; var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 482); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 570); +fatal_exit(1); } { var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var1, var_e); @@ -3488,8 +3519,8 @@ if (var3){ var4 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 482); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 570); +fatal_exit(1); } { standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var4, var_e); /* Direct call array#Array#add on */ @@ -3506,8 +3537,8 @@ short int var2 /* : Bool */; var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 484); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 572); +fatal_exit(1); } { var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var1); @@ -3526,8 +3557,8 @@ long var4 /* : Int */; var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 486); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 574); +fatal_exit(1); } { { /* Inline array#AbstractArrayRead#length (var1) on */ @@ -3547,20 +3578,19 @@ val* var /* : nullable Object */; val* var1 /* : Array[nullable Object] */; long var2 /* : Int */; long var4 /* : Int */; -long var5 /* : Int */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; int cltype; int idtype; const char* var_class_name; -short int var9 /* : Bool */; -val* var10 /* : Array[nullable Object] */; -val* var11 /* : nullable Object */; +short int var8 /* : Bool */; +val* var9 /* : Array[nullable Object] */; +val* var10 /* : nullable Object */; var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 490); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 578); +fatal_exit(1); } { { /* Inline array#AbstractArrayRead#length (var1) on */ @@ -3569,113 +3599,83 @@ var2 = var4; RET_LABEL3:(void)0; } } -var5 = 0; { -{ /* Inline kernel#Int#> (var2,var5) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { +{ /* Inline kernel#Int#> (var2,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var7 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var7)) { 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, 412); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536); +fatal_exit(1); } -var9 = var2 > var5; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var8 = var2 > 0l; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } } -if (unlikely(!var6)) { +if (unlikely(!var5)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 490); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 578); +fatal_exit(1); } -var10 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ -if (unlikely(var10 == NULL)) { +var9 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 491); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 579); +fatal_exit(1); } { -var11 = standard___standard__SequenceRead___Collection__first(var10); +var10 = standard___standard__SequenceRead___Collection__first(var9); } -var = var11; +var = var10; goto RET_LABEL; RET_LABEL:; return var; } /* method array#ArraySet#remove for (self: ArraySet[nullable Object], nullable Object) */ void standard___standard__ArraySet___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_item /* var item: nullable Object */; -val* var1 /* : Array[nullable Object] */; -long var2 /* : Int */; +val* var /* : Array[nullable Object] */; +long var1 /* : Int */; long var_i /* var i: Int */; -long var3 /* : Int */; +short int var2 /* : Bool */; short int var4 /* : Bool */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -const char* var_class_name9; -short int var10 /* : Bool */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__ArraySet___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var = 0; -} else { -var = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 494); -show_backtrace(1); -} +int cltype; +int idtype; +const char* var_class_name; +short int var5 /* : Bool */; var_item = p0; -var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ -if (unlikely(var1 == NULL)) { +var = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ +if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 496); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 584); +fatal_exit(1); } { -var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of(var1, var_item); +var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of(var, var_item); } -var_i = var2; -var3 = 0; +var_i = var1; { -{ /* Inline kernel#Int#>= (var_i,var3) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var6 = 1; /* easy isa OTHER*/ -if (unlikely(!var6)) { -var_class_name9 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name9); -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 */ +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, 535); +fatal_exit(1); } -var10 = var_i >= var3; -var4 = var10; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var5 = var_i >= 0l; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -if (var4){ +if (var2){ { standard___standard__ArraySet___remove_at(self, var_i); /* Direct call array#ArraySet#remove_at on */ } @@ -3689,8 +3689,8 @@ val* var /* : Array[nullable Object] */; var = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 502); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 590); +fatal_exit(1); } { standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var); /* Direct call array#AbstractArray#clear on */ @@ -3707,17 +3707,17 @@ var1 = NEW_standard__array__ArraySetIterator(self->type->resolution_table->types var2 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 504); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 592); +fatal_exit(1); } { var3 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var2); } { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__array__ArraySetIterator__iter_61d]))(var1, var3) /* iter= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__array__ArraySetIterator__iter_61d]))(var1, var3); /* iter= on */ } { -((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on */; +((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on */ } var = var1; goto RET_LABEL; @@ -3736,14 +3736,14 @@ var_i = p0; var = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 511); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 599); +fatal_exit(1); } var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 511); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 599); +fatal_exit(1); } { var2 = standard___standard__SequenceRead___last(var1); @@ -3754,8 +3754,8 @@ standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_6 var3 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 512); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 600); +fatal_exit(1); } { var4 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(var3); @@ -3780,8 +3780,8 @@ short int var2 /* : Bool */; var1 = self->attrs[COLOR_standard__array__ArraySetIterator___iter].val; /* _iter on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 528); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 647); +fatal_exit(1); } { var2 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var1); @@ -3797,8 +3797,8 @@ val* var /* : ArrayIterator[nullable Object] */; var = self->attrs[COLOR_standard__array__ArraySetIterator___iter].val; /* _iter on */ if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 530); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 649); +fatal_exit(1); } { standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var); /* Direct call array#ArrayIterator#next on */ @@ -3813,8 +3813,8 @@ val* var2 /* : nullable Object */; var1 = self->attrs[COLOR_standard__array__ArraySetIterator___iter].val; /* _iter on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 532); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 651); +fatal_exit(1); } { var2 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var1); @@ -3844,8 +3844,8 @@ var = p0->type->type_table[cltype] == idtype; if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ArrayIterator[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 534); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 653); +fatal_exit(1); } self->attrs[COLOR_standard__array__ArraySetIterator___iter].val = p0; /* _iter on */ RET_LABEL:; @@ -3853,102 +3853,99 @@ RET_LABEL:; /* method array#ArraySetIterator#init for (self: ArraySetIterator[nullable Object]) */ void standard__array___standard__array__ArraySetIterator___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArraySetIterator___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArraySetIterator___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } /* method array#ArrayMap#[] for (self: ArrayMap[nullable Object, nullable Object], nullable Object): nullable Object */ val* standard___standard__ArrayMap___standard__abstract_collection__MapRead___91d_93d(val* self, val* p0) { val* var /* : nullable Object */; +val* var_key /* var key: nullable Object */; short int var1 /* : Bool */; int cltype; int idtype; const struct type* type_struct; short int is_nullable; const char* var_class_name; -val* var_key /* var key: nullable Object */; long var2 /* : Int */; long var_i /* var i: Int */; -long var3 /* : Int */; -short int var4 /* : Bool */; -short int var6 /* : Bool */; -int cltype7; -int idtype8; -const char* var_class_name9; -short int var10 /* : Bool */; -val* var11 /* : Array[Couple[nullable Object, nullable Object]] */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +const char* var_class_name8; +short int var9 /* : Bool */; +val* var10 /* : Array[Couple[nullable Object, nullable Object]] */; +val* var11 /* : nullable Object */; val* var12 /* : nullable Object */; -val* var13 /* : nullable Object */; +val* var14 /* : nullable Object */; val* var15 /* : nullable Object */; -val* var16 /* : nullable Object */; -/* Covariant cast for argument 0 (key) isa K */ -/* isa K */ +var_key = p0; +/* isa K */ type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dK]; cltype = type_struct->color; idtype = type_struct->id; is_nullable = type_struct->is_nullable; -if(p0 == NULL) { +if(var_key == NULL) { var1 = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) { var1 = 0; } else { -var1 = p0->type->type_table[cltype] == idtype; +var1 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype; } } if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 542); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 665); +fatal_exit(1); } -var_key = p0; { var2 = standard___standard__ArrayMap___index(self, var_key); } var_i = var2; -var3 = 0; { -{ /* Inline kernel#Int#>= (var_i,var3) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var6 = 1; /* easy isa OTHER*/ -if (unlikely(!var6)) { -var_class_name9 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name9); -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 */ +var5 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var5)) { +var_class_name8 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var10 = var_i >= var3; -var4 = var10; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var9 = var_i >= 0l; +var3 = var9; +goto RET_LABEL4; +RET_LABEL4:(void)0; } } -if (var4){ -var11 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ -if (unlikely(var11 == NULL)) { +if (var3){ +var10 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var10 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 547); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 667); +fatal_exit(1); } { -var12 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var11, var_i); +var11 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var10, var_i); } { -{ /* Inline abstract_collection#Couple#second (var12) on */ -var15 = var12->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on */ -var13 = var15; -RET_LABEL14:(void)0; +{ /* Inline abstract_collection#Couple#second (var11) on */ +var14 = var11->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on */ +var12 = var14; +RET_LABEL13:(void)0; } } -var = var13; +var = var12; goto RET_LABEL; } else { { -var16 = standard___standard__MapRead___provide_default_value(self, var_key); +var15 = standard___standard__MapRead___provide_default_value(self, var_key); } -var = var16; +var = var15; goto RET_LABEL; } RET_LABEL:; @@ -3972,23 +3969,22 @@ val* var_key /* var key: nullable Object */; val* var_item /* var item: nullable Object */; long var7 /* : Int */; long var_i /* var i: Int */; -long var8 /* : Int */; -short int var9 /* : Bool */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -const char* var_class_name14; -short int var15 /* : Bool */; -val* var16 /* : Array[Couple[nullable Object, nullable Object]] */; -val* var17 /* : nullable Object */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const struct type* type_struct22; -short int is_nullable23; -const char* var_class_name24; -val* var25 /* : Array[Couple[nullable Object, nullable Object]] */; -val* var26 /* : Couple[nullable Object, nullable Object] */; +short int var8 /* : Bool */; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +const char* var_class_name13; +short int var14 /* : Bool */; +val* var15 /* : Array[Couple[nullable Object, nullable Object]] */; +val* var16 /* : nullable Object */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const struct type* type_struct21; +short int is_nullable22; +const char* var_class_name23; +val* var24 /* : Array[Couple[nullable Object, nullable Object]] */; +val* var25 /* : Couple[nullable Object, nullable Object] */; /* Covariant cast for argument 0 (key) isa K */ /* isa K */ type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dK]; @@ -3998,17 +3994,17 @@ is_nullable = type_struct->is_nullable; if(p0 == NULL) { var = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 553); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 673); +fatal_exit(1); } /* Covariant cast for argument 1 (item) isa E */ /* isa E */ @@ -4019,17 +4015,17 @@ is_nullable5 = type_struct4->is_nullable; if(p1 == NULL) { var1 = is_nullable5; } else { -if(cltype2 >= p1->type->table_size) { +if(cltype2 >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) { var1 = 0; } else { -var1 = p1->type->type_table[cltype2] == idtype3; +var1 = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype2] == idtype3; } } if (unlikely(!var1)) { -var_class_name6 = p1 == NULL ? "null" : p1->type->name; +var_class_name6 = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name6); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 553); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 673); +fatal_exit(1); } var_key = p0; var_item = p1; @@ -4037,80 +4033,79 @@ var_item = p1; var7 = standard___standard__ArrayMap___index(self, var_key); } var_i = var7; -var8 = 0; -{ -{ /* Inline kernel#Int#>= (var_i,var8) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var11 = 1; /* easy isa OTHER*/ -if (unlikely(!var11)) { -var_class_name14 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); -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 */ +var10 = 1; /* easy <0l:Int> 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, 535); +fatal_exit(1); } -var15 = var_i >= var8; -var9 = var15; -goto RET_LABEL10; -RET_LABEL10:(void)0; +var14 = var_i >= 0l; +var8 = var14; +goto RET_LABEL9; +RET_LABEL9:(void)0; } } -if (var9){ -var16 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ -if (unlikely(var16 == NULL)) { +if (var8){ +var15 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 558); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 678); +fatal_exit(1); } { -var17 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var16, var_i); +var16 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var15, var_i); } { -{ /* Inline abstract_collection#Couple#second= (var17,var_item) on */ +{ /* Inline abstract_collection#Couple#second= (var16,var_item) on */ /* Covariant cast for argument 0 (second) isa S */ /* isa S */ -type_struct22 = var17->type->resolution_table->types[COLOR_standard__Couple___35dS]; -cltype20 = type_struct22->color; -idtype21 = type_struct22->id; -is_nullable23 = type_struct22->is_nullable; +type_struct21 = var16->type->resolution_table->types[COLOR_standard__Couple___35dS]; +cltype19 = type_struct21->color; +idtype20 = type_struct21->id; +is_nullable22 = type_struct21->is_nullable; if(var_item == NULL) { -var19 = is_nullable23; +var18 = is_nullable22; } else { -if(cltype20 >= var_item->type->table_size) { -var19 = 0; +if(cltype19 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) { +var18 = 0; } else { -var19 = var_item->type->type_table[cltype20] == idtype21; +var18 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype19] == idtype20; } } -if (unlikely(!var19)) { -var_class_name24 = var_item == NULL ? "null" : var_item->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name24); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 997); -show_backtrace(1); +if (unlikely(!var18)) { +var_class_name23 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name23); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1126); +fatal_exit(1); } -var17->attrs[COLOR_standard__abstract_collection__Couple___second].val = var_item; /* _second on */ -RET_LABEL18:(void)0; +var16->attrs[COLOR_standard__abstract_collection__Couple___second].val = var_item; /* _second on */ +RET_LABEL17:(void)0; } } } else { -var25 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ -if (unlikely(var25 == NULL)) { +var24 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var24 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 560); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 680); +fatal_exit(1); } -var26 = NEW_standard__Couple(self->type->resolution_table->types[COLOR_standard__Couple__standard__ArrayMap___35dK__standard__ArrayMap___35dE]); +var25 = NEW_standard__Couple(self->type->resolution_table->types[COLOR_standard__Couple__standard__ArrayMap___35dK__standard__ArrayMap___35dE]); { -((void (*)(val* self, val* p0))(var26->class->vft[COLOR_standard__abstract_collection__Couple__first_61d]))(var26, var_key) /* first= on */; +((void(*)(val* self, val* p0))(var25->class->vft[COLOR_standard__abstract_collection__Couple__first_61d]))(var25, var_key); /* first= on */ } { -((void (*)(val* self, val* p0))(var26->class->vft[COLOR_standard__abstract_collection__Couple__second_61d]))(var26, var_item) /* second= on */; +((void(*)(val* self, val* p0))(var25->class->vft[COLOR_standard__abstract_collection__Couple__second_61d]))(var25, var_item); /* second= on */ } { -((void (*)(val* self))(var26->class->vft[COLOR_standard__kernel__Object__init]))(var26) /* init on */; +((void(*)(val* self))(var25->class->vft[COLOR_standard__kernel__Object__init]))(var25); /* init on */ } { -standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var25, var26); /* Direct call array#AbstractArray#push on */ +standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var24, var25); /* Direct call array#AbstractArray#push on */ } } RET_LABEL:; @@ -4118,28 +4113,58 @@ RET_LABEL:; /* method array#ArrayMap#keys for (self: ArrayMap[nullable Object, nullable Object]): RemovableCollection[nullable Object] */ val* standard___standard__ArrayMap___standard__abstract_collection__MapRead__keys(val* self) { val* var /* : RemovableCollection[nullable Object] */; -val* var1 /* : RemovableCollection[nullable Object] */; -var1 = self->attrs[COLOR_standard__array__ArrayMap___keys].val; /* _keys on */ -if (unlikely(var1 == NULL)) { +short int var1 /* : Bool */; +val* var2 /* : RemovableCollection[nullable Object] */; +val* var3 /* : ArrayMapKeys[nullable Object, nullable Object] */; +var1 = self->attrs[COLOR_standard__array__ArrayMap___keys].val != NULL; /* _keys on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_standard__array__ArrayMap___keys].val; /* _keys on */ +if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 564); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 684); +fatal_exit(1); } -var = var1; +} else { +var3 = NEW_standard__array__ArrayMapKeys(self->type->resolution_table->types[COLOR_standard__array__ArrayMapKeys__standard__ArrayMap___35dK__standard__ArrayMap___35dE]); +{ +((void(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__array__ArrayMapKeys__map_61d]))(var3, self); /* map= on */ +} +{ +((void(*)(val* self))(var3->class->vft[COLOR_standard__kernel__Object__init]))(var3); /* init on */ +} +self->attrs[COLOR_standard__array__ArrayMap___keys].val = var3; /* _keys on */ +var2 = var3; +} +var = var2; RET_LABEL:; return var; } /* method array#ArrayMap#values for (self: ArrayMap[nullable Object, nullable Object]): RemovableCollection[nullable Object] */ val* standard___standard__ArrayMap___standard__abstract_collection__MapRead__values(val* self) { val* var /* : RemovableCollection[nullable Object] */; -val* var1 /* : RemovableCollection[nullable Object] */; -var1 = self->attrs[COLOR_standard__array__ArrayMap___values].val; /* _values on */ -if (unlikely(var1 == NULL)) { +short int var1 /* : Bool */; +val* var2 /* : RemovableCollection[nullable Object] */; +val* var3 /* : ArrayMapValues[nullable Object, nullable Object] */; +var1 = self->attrs[COLOR_standard__array__ArrayMap___values].val != NULL; /* _values on */ +if(likely(var1)) { +var2 = self->attrs[COLOR_standard__array__ArrayMap___values].val; /* _values on */ +if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 565); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 685); +fatal_exit(1); } -var = var1; +} else { +var3 = NEW_standard__array__ArrayMapValues(self->type->resolution_table->types[COLOR_standard__array__ArrayMapValues__standard__ArrayMap___35dK__standard__ArrayMap___35dE]); +{ +((void(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__array__ArrayMapValues__map_61d]))(var3, self); /* map= on */ +} +{ +((void(*)(val* self))(var3->class->vft[COLOR_standard__kernel__Object__init]))(var3); /* init on */ +} +self->attrs[COLOR_standard__array__ArrayMap___values].val = var3; /* _values on */ +var2 = var3; +} +var = var2; RET_LABEL:; return var; } @@ -4152,8 +4177,8 @@ long var4 /* : Int */; var1 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 568); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 688); +fatal_exit(1); } { { /* Inline array#AbstractArrayRead#length (var1) on */ @@ -4175,8 +4200,8 @@ val* var2 /* : ArrayIterator[nullable Object] */; var1 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 570); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 690); +fatal_exit(1); } { var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var1); @@ -4194,8 +4219,8 @@ short int var2 /* : Bool */; var1 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 572); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 692); +fatal_exit(1); } { var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var1); @@ -4211,14 +4236,95 @@ val* var /* : Array[Couple[nullable Object, nullable Object]] */; var = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 574); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 694); +fatal_exit(1); } { standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var); /* Direct call array#AbstractArray#clear on */ } RET_LABEL:; } +/* method array#ArrayMap#couple_at for (self: ArrayMap[nullable Object, nullable Object], nullable Object): nullable Couple[nullable Object, nullable Object] */ +val* standard___standard__ArrayMap___standard__abstract_collection__CoupleMap__couple_at(val* self, val* p0) { +val* var /* : nullable Couple[nullable Object, nullable Object] */; +val* var_key /* var key: nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +short int is_nullable; +const char* var_class_name; +long var2 /* : Int */; +long var_i /* var i: Int */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +const char* var_class_name8; +short int var9 /* : Bool */; +val* var10 /* : Array[Couple[nullable Object, nullable Object]] */; +val* var11 /* : nullable Object */; +var_key = p0; +/* isa K */ +type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dK]; +cltype = type_struct->color; +idtype = type_struct->id; +is_nullable = type_struct->is_nullable; +if(var_key == NULL) { +var1 = is_nullable; +} else { +if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) { +var1 = 0; +} else { +var1 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype; +} +} +if (unlikely(!var1)) { +var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 701); +fatal_exit(1); +} +{ +var2 = standard___standard__ArrayMap___index(self, var_key); +} +var_i = var2; +{ +{ /* Inline kernel#Int#>= (var_i,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_name8 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); +} +var9 = var_i >= 0l; +var3 = var9; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +} +if (var3){ +var10 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var10 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 703); +fatal_exit(1); +} +{ +var11 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var10, var_i); +} +var = var11; +goto RET_LABEL; +} else { +var = ((val*)NULL); +goto RET_LABEL; +} +RET_LABEL:; +return var; +} /* method array#ArrayMap#remove_at_index for (self: ArrayMap[nullable Object, nullable Object], Int) */ void standard___standard__ArrayMap___remove_at_index(val* self, long p0) { long var_i /* var i: Int */; @@ -4231,14 +4337,14 @@ var_i = p0; var = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 595); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 715); +fatal_exit(1); } var1 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 595); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 715); +fatal_exit(1); } { var2 = standard___standard__SequenceRead___last(var1); @@ -4249,8 +4355,8 @@ standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_6 var3 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 596); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 716); +fatal_exit(1); } { var4 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(var3); @@ -4286,33 +4392,30 @@ val* var17 /* : nullable Object */; val* var19 /* : nullable Object */; short int var20 /* : Bool */; short int var21 /* : Bool */; -long var22 /* : Int */; long var_i /* var i: Int */; -val* var23 /* : Array[Couple[nullable Object, nullable Object]] */; -long var24 /* : Int */; -long var26 /* : Int */; -short int var27 /* : Bool */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -const char* var_class_name32; -short int var33 /* : Bool */; -val* var34 /* : Array[Couple[nullable Object, nullable Object]] */; +val* var22 /* : Array[Couple[nullable Object, nullable Object]] */; +long var23 /* : Int */; +long var25 /* : Int */; +short int var26 /* : Bool */; +short int var28 /* : Bool */; +int cltype29; +int idtype30; +const char* var_class_name31; +short int var32 /* : Bool */; +val* var33 /* : Array[Couple[nullable Object, nullable Object]] */; +val* var34 /* : nullable Object */; val* var35 /* : nullable Object */; -val* var36 /* : nullable Object */; -val* var38 /* : nullable Object */; +val* var37 /* : nullable Object */; +short int var38 /* : Bool */; short int var39 /* : Bool */; -short int var40 /* : Bool */; -long var41 /* : Int */; -long var42 /* : Int */; -short int var44 /* : Bool */; -int cltype45; -int idtype46; -const char* var_class_name47; -long var48 /* : Int */; +long var40 /* : Int */; +short int var42 /* : Bool */; +int cltype43; +int idtype44; +const char* var_class_name45; +long var46 /* : Int */; +long var47 /* : Int */; long var49 /* : Int */; -long var50 /* : Int */; -long var52 /* : Int */; /* Covariant cast for argument 0 (key) isa K */ /* isa K */ type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dK]; @@ -4322,17 +4425,17 @@ is_nullable = type_struct->is_nullable; if(p0 == NULL) { var1 = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) { var1 = 0; } else { -var1 = p0->type->type_table[cltype] == idtype; +var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype; } } if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 602); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 722); +fatal_exit(1); } var_key = p0; var2 = self->attrs[COLOR_standard__array__ArrayMap___last_index].l; /* _last_index on */ @@ -4340,8 +4443,8 @@ var_l = var2; var4 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 607); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 727); +fatal_exit(1); } { { /* Inline array#AbstractArrayRead#length (var4) on */ @@ -4358,8 +4461,8 @@ 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, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } var14 = var_l < var5; var8 = var14; @@ -4372,8 +4475,8 @@ if (var8){ var15 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var15 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 607); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 727); +fatal_exit(1); } { var16 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var15, var_l); @@ -4388,7 +4491,7 @@ RET_LABEL18:(void)0; if (var17 == NULL) { var20 = (var_key == NULL); } else { -var21 = ((short int (*)(val* self, val* p0))(var17->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var17, var_key) /* == on */; +var21 = ((short int(*)(val* self, val* p0))((((long)var17&3)?class_info[((long)var17&3)]:var17->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var17, var_key); /* == on */ var20 = var21; } var3 = var20; @@ -4400,102 +4503,99 @@ var = var_l; goto RET_LABEL; } else { } -var22 = 0; -var_i = var22; +var_i = 0l; for(;;) { -var23 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ -if (unlikely(var23 == NULL)) { +var22 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 610); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 730); +fatal_exit(1); } { -{ /* Inline array#AbstractArrayRead#length (var23) on */ -var26 = var23->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var24 = var26; -RET_LABEL25:(void)0; +{ /* Inline array#AbstractArrayRead#length (var22) on */ +var25 = var22->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var23 = var25; +RET_LABEL24:(void)0; } } { -{ /* Inline kernel#Int#< (var_i,var24) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var29 = 1; /* easy isa OTHER*/ -if (unlikely(!var29)) { -var_class_name32 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410); -show_backtrace(1); -} -var33 = var_i < var24; -var27 = var33; -goto RET_LABEL28; -RET_LABEL28:(void)0; +{ /* Inline kernel#Int#< (var_i,var23) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var28 = 1; /* easy isa OTHER*/ +if (unlikely(!var28)) { +var_class_name31 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); +} +var32 = var_i < var23; +var26 = var32; +goto RET_LABEL27; +RET_LABEL27:(void)0; } } -if (var27){ -var34 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ -if (unlikely(var34 == NULL)) { +if (var26){ +var33 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var33 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 611); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 731); +fatal_exit(1); } { -var35 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var34, var_i); +var34 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var33, var_i); } { -{ /* Inline abstract_collection#Couple#first (var35) on */ -var38 = var35->attrs[COLOR_standard__abstract_collection__Couple___first].val; /* _first on */ -var36 = var38; -RET_LABEL37:(void)0; +{ /* Inline abstract_collection#Couple#first (var34) on */ +var37 = var34->attrs[COLOR_standard__abstract_collection__Couple___first].val; /* _first on */ +var35 = var37; +RET_LABEL36:(void)0; } } -if (var36 == NULL) { -var39 = (var_key == NULL); +if (var35 == NULL) { +var38 = (var_key == NULL); } else { -var40 = ((short int (*)(val* self, val* p0))(var36->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var36, var_key) /* == on */; -var39 = var40; +var39 = ((short int(*)(val* self, val* p0))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var35, var_key); /* == on */ +var38 = var39; } -if (var39){ +if (var38){ self->attrs[COLOR_standard__array__ArrayMap___last_index].l = var_i; /* _last_index on */ var = var_i; goto RET_LABEL; } else { } -var41 = 1; { -{ /* Inline kernel#Int#+ (var_i,var41) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var44 = 1; /* easy isa OTHER*/ -if (unlikely(!var44)) { -var_class_name47 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413); -show_backtrace(1); +{ /* Inline kernel#Int#+ (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var42 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var42)) { +var_class_name45 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var48 = var_i + var41; -var42 = var48; -goto RET_LABEL43; -RET_LABEL43:(void)0; +var46 = var_i + 1l; +var40 = var46; +goto RET_LABEL41; +RET_LABEL41:(void)0; } } -var_i = var42; +var_i = var40; } else { goto BREAK_label; } } BREAK_label: (void)0; -var49 = 1; { -{ /* Inline kernel#Int#unary - (var49) on */ -var52 = -var49; -var50 = var52; -goto RET_LABEL51; -RET_LABEL51:(void)0; +{ /* Inline kernel#Int#unary - (1l) on <1l:Int> */ +var49 = -1l; +var47 = var49; +goto RET_LABEL48; +RET_LABEL48:(void)0; } } -var = var50; +var = var47; goto RET_LABEL; RET_LABEL:; return var; @@ -4507,8 +4607,8 @@ val* var1 /* : ArrayMap[nullable Object, nullable Object] */; var1 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -4534,8 +4634,8 @@ var = p0->type->type_table[cltype] == idtype; if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ArrayMap[K, E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); } self->attrs[COLOR_standard__array__ArrayMapKeys___map].val = p0; /* _map on */ RET_LABEL:; @@ -4554,8 +4654,8 @@ val* var8 /* : nullable Object */; var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -4564,8 +4664,8 @@ RET_LABEL2:(void)0; var4 = var1->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 626); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 775); +fatal_exit(1); } { var5 = standard___standard__SequenceRead___Collection__first(var4); @@ -4585,79 +4685,76 @@ return var; /* method array#ArrayMapKeys#has for (self: ArrayMapKeys[nullable Object, nullable Object], nullable Object): Bool */ short int standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__Collection__has(val* self, val* p0) { short int var /* : Bool */; -short int var1 /* : Bool */; +val* var_k /* var k: nullable Object */; +val* var1 /* : ArrayMap[nullable Object, nullable Object] */; +val* var3 /* : ArrayMap[nullable Object, nullable Object] */; +short int var4 /* : Bool */; int cltype; int idtype; const struct type* type_struct; short int is_nullable; const char* var_class_name; -val* var_k /* var k: nullable Object */; -val* var2 /* : ArrayMap[nullable Object, nullable Object] */; -val* var4 /* : ArrayMap[nullable Object, nullable Object] */; 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 */; -/* Covariant cast for argument 0 (k) isa K */ -/* isa K */ +short int var6 /* : Bool */; +short int var8 /* : Bool */; +int cltype9; +int idtype10; +const char* var_class_name11; +short int var12 /* : Bool */; +var_k = p0; +{ +{ /* Inline array#ArrayMapKeys#map (self) on */ +var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +/* isa K */ type_struct = self->type->resolution_table->types[COLOR_standard__array__ArrayMapKeys___35dK]; cltype = type_struct->color; idtype = type_struct->id; is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var1 = is_nullable; +if(var_k == NULL) { +var4 = is_nullable; } else { -if(cltype >= p0->type->table_size) { -var1 = 0; +if(cltype >= (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->table_size) { +var4 = 0; } else { -var1 = p0->type->type_table[cltype] == idtype; +var4 = (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->type_table[cltype] == idtype; } } -if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +if (unlikely(!var4)) { +var_class_name = var_k == NULL ? "null" : (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 627); -show_backtrace(1); -} -var_k = p0; -{ -{ /* Inline array#ArrayMapKeys#map (self) on */ -var4 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ -if (unlikely(var4 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); -} -var2 = var4; -RET_LABEL3:(void)0; -} +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 776); +fatal_exit(1); } { -var5 = standard___standard__ArrayMap___index(var2, var_k); +var5 = standard___standard__ArrayMap___index(var1, var_k); } -var6 = 0; { -{ /* 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, 411); -show_backtrace(1); +{ /* Inline kernel#Int#>= (var5,0l) on */ +/* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */ +/* <0l:Int> isa OTHER */ +var8 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var8)) { +var_class_name11 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var13 = var5 >= var6; -var7 = var13; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var12 = var5 >= 0l; +var6 = var12; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -var = var7; +var = var6; goto RET_LABEL; RET_LABEL:; return var; @@ -4673,8 +4770,8 @@ short int var4 /* : Bool */; var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -4699,8 +4796,8 @@ long var4 /* : Int */; var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -4727,8 +4824,8 @@ var1 = NEW_standard__MapKeysIterator(self->type->resolution_table->types[COLOR_s var4 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); } var2 = var4; RET_LABEL3:(void)0; @@ -4738,10 +4835,10 @@ RET_LABEL3:(void)0; var5 = standard___standard__CoupleMap___MapRead__iterator(var2); } { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapKeysIterator__original_iterator_61d]))(var1, var5) /* original_iterator= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapKeysIterator__original_iterator_61d]))(var1, var5); /* original_iterator= on */ } { -((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on */; +((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on */ } var = var1; goto RET_LABEL; @@ -4757,111 +4854,108 @@ val* var2 /* : ArrayMap[nullable Object, nullable Object] */; var2 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); +} +var = var2; +RET_LABEL1:(void)0; +} +} +{ +standard___standard__ArrayMap___standard__abstract_collection__Map__clear(var); /* Direct call array#ArrayMap#clear on */ +} +RET_LABEL:; +} +/* method array#ArrayMapKeys#remove for (self: ArrayMapKeys[nullable Object, nullable Object], nullable Object) */ +void standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) { +val* var_key /* var key: nullable Object */; +val* var /* : ArrayMap[nullable Object, nullable Object] */; +val* var2 /* : ArrayMap[nullable Object, nullable Object] */; +short int var3 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +short int is_nullable; +const char* var_class_name; +long var4 /* : Int */; +long var_i /* var i: Int */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; +int cltype8; +int idtype9; +const char* var_class_name10; +short int var11 /* : Bool */; +val* var12 /* : ArrayMap[nullable Object, nullable Object] */; +val* var14 /* : ArrayMap[nullable Object, nullable Object] */; +var_key = p0; +{ +{ /* Inline array#ArrayMapKeys#map (self) on */ +var2 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ +if (unlikely(var2 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; } } -{ -standard___standard__ArrayMap___standard__abstract_collection__Map__clear(var); /* Direct call array#ArrayMap#clear on */ -} -RET_LABEL:; -} -/* method array#ArrayMapKeys#remove for (self: ArrayMapKeys[nullable Object, nullable Object], nullable Object) */ -void standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; -val* var_key /* var key: nullable Object */; -val* var1 /* : ArrayMap[nullable Object, nullable Object] */; -val* var3 /* : ArrayMap[nullable Object, nullable Object] */; -long var4 /* : Int */; -long var_i /* var i: Int */; -long var5 /* : Int */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; -int cltype9; -int idtype10; -const char* var_class_name11; -short int var12 /* : Bool */; -val* var13 /* : ArrayMap[nullable Object, nullable Object] */; -val* var15 /* : ArrayMap[nullable Object, nullable Object] */; -/* Covariant cast for argument 0 (key) isa K */ -/* isa K */ +/* isa K */ type_struct = self->type->resolution_table->types[COLOR_standard__array__ArrayMapKeys___35dK]; cltype = type_struct->color; idtype = type_struct->id; is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var = is_nullable; +if(var_key == NULL) { +var3 = is_nullable; } else { -if(cltype >= p0->type->table_size) { -var = 0; +if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) { +var3 = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var3 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype; } } -if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +if (unlikely(!var3)) { +var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 633); -show_backtrace(1); -} -var_key = p0; -{ -{ /* Inline array#ArrayMapKeys#map (self) on */ -var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); -} -var1 = var3; -RET_LABEL2:(void)0; -} +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 784); +fatal_exit(1); } { -var4 = standard___standard__ArrayMap___index(var1, var_key); +var4 = standard___standard__ArrayMap___index(var, var_key); } var_i = var4; -var5 = 0; { -{ /* Inline kernel#Int#>= (var_i,var5) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { -var_class_name11 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); -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 */ +var7 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var7)) { +var_class_name10 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var12 = var_i >= var5; -var6 = var12; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var11 = var_i >= 0l; +var5 = var11; +goto RET_LABEL6; +RET_LABEL6:(void)0; } } -if (var6){ +if (var5){ { { /* Inline array#ArrayMapKeys#map (self) on */ -var15 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ -if (unlikely(var15 == NULL)) { +var14 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on */ +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 623); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772); +fatal_exit(1); } -var13 = var15; -RET_LABEL14:(void)0; +var12 = var14; +RET_LABEL13:(void)0; } } { -standard___standard__ArrayMap___remove_at_index(var13, var_i); /* Direct call array#ArrayMap#remove_at_index on */ +standard___standard__ArrayMap___remove_at_index(var12, var_i); /* Direct call array#ArrayMap#remove_at_index on */ } } else { } @@ -4870,7 +4964,7 @@ RET_LABEL:; /* method array#ArrayMapKeys#init for (self: ArrayMapKeys[nullable Object, nullable Object]) */ void standard__array___standard__array__ArrayMapKeys___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayMapKeys___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayMapKeys___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } @@ -4881,8 +4975,8 @@ val* var1 /* : ArrayMap[nullable Object, nullable Object] */; var1 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } var = var1; RET_LABEL:; @@ -4908,8 +5002,8 @@ var = p0->type->type_table[cltype] == idtype; if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ArrayMap[K, E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } self->attrs[COLOR_standard__array__ArrayMapValues___map].val = p0; /* _map on */ RET_LABEL:; @@ -4928,8 +5022,8 @@ val* var8 /* : nullable Object */; var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -4938,8 +5032,8 @@ RET_LABEL2:(void)0; var4 = var1->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 645); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 794); +fatal_exit(1); } { var5 = standard___standard__SequenceRead___Collection__first(var4); @@ -4967,8 +5061,8 @@ short int var4 /* : Bool */; var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -4993,8 +5087,8 @@ long var4 /* : Int */; var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } var1 = var3; RET_LABEL2:(void)0; @@ -5021,8 +5115,8 @@ var1 = NEW_standard__MapValuesIterator(self->type->resolution_table->types[COLOR var4 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } var2 = var4; RET_LABEL3:(void)0; @@ -5032,10 +5126,10 @@ RET_LABEL3:(void)0; var5 = standard___standard__CoupleMap___MapRead__iterator(var2); } { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapValuesIterator__original_iterator_61d]))(var1, var5) /* original_iterator= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapValuesIterator__original_iterator_61d]))(var1, var5); /* original_iterator= on */ } { -((void (*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1) /* init on */; +((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on */ } var = var1; goto RET_LABEL; @@ -5045,103 +5139,73 @@ return var; /* method array#ArrayMapValues#has for (self: ArrayMapValues[nullable Object, nullable Object], nullable Object): Bool */ short int standard__array___standard__array__ArrayMapValues___standard__abstract_collection__Collection__has(val* self, val* p0) { short int var /* : Bool */; -short int var1 /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_item /* var item: nullable Object */; -val* var2 /* : ArrayMap[nullable Object, nullable Object] */; -val* var4 /* : ArrayMap[nullable Object, nullable Object] */; -val* var5 /* : Array[Couple[nullable Object, nullable Object]] */; +val* var1 /* : ArrayMap[nullable Object, nullable Object] */; +val* var3 /* : ArrayMap[nullable Object, nullable Object] */; +val* var4 /* : Array[Couple[nullable Object, nullable Object]] */; val* var_ /* var : Array[Couple[nullable Object, nullable Object]] */; -val* var6 /* : ArrayIterator[nullable Object] */; -val* var_7 /* var : ArrayIterator[Couple[nullable Object, nullable Object]] */; -short int var8 /* : Bool */; -val* var9 /* : nullable Object */; +val* var5 /* : ArrayIterator[nullable Object] */; +val* var_6 /* var : ArrayIterator[Couple[nullable Object, nullable Object]] */; +short int var7 /* : Bool */; +val* var8 /* : nullable Object */; val* var_i /* var i: Couple[nullable Object, nullable Object] */; -val* var10 /* : nullable Object */; -val* var12 /* : nullable Object */; +val* var9 /* : nullable Object */; +val* var11 /* : nullable Object */; +short int var12 /* : Bool */; short int var13 /* : Bool */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -short int var17 /* : Bool */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__array__ArrayMapValues___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var1 = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var1 = 0; -} else { -var1 = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 650); -show_backtrace(1); -} var_item = p0; { { /* Inline array#ArrayMapValues#map (self) on */ -var4 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ -if (unlikely(var4 == NULL)) { +var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ +if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } -var2 = var4; -RET_LABEL3:(void)0; +var1 = var3; +RET_LABEL2:(void)0; } } -var5 = var2->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ -if (unlikely(var5 == NULL)) { +var4 = var1->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var4 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 653); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 802); +fatal_exit(1); } -var_ = var5; +var_ = var4; { -var6 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); +var5 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_); } -var_7 = var6; +var_6 = var5; for(;;) { { -var8 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_7); +var7 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_6); } -if (var8){ +if (var7){ { -var9 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_7); +var8 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_6); } -var_i = var9; +var_i = var8; { { /* Inline abstract_collection#Couple#second (var_i) on */ -var12 = var_i->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on */ -var10 = var12; -RET_LABEL11:(void)0; +var11 = var_i->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on */ +var9 = var11; +RET_LABEL10:(void)0; } } -if (var10 == NULL) { -var13 = (var_item == NULL); +if (var9 == NULL) { +var12 = (var_item == NULL); } else { -var14 = ((short int (*)(val* self, val* p0))(var10->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var10, var_item) /* == on */; -var13 = var14; +var13 = ((short int(*)(val* self, val* p0))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var9, var_item); /* == on */ +var12 = var13; } -if (var13){ -var15 = 1; -var = var15; +if (var12){ +var = 1; goto RET_LABEL; } else { } { -standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_7); /* Direct call array#ArrayIterator#next on */ +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_6); /* Direct call array#ArrayIterator#next on */ } } else { goto BREAK_label; @@ -5149,12 +5213,9 @@ goto BREAK_label; } BREAK_label: (void)0; { -{ /* Inline abstract_collection#Iterator#finish (var_7) on */ -RET_LABEL16:(void)0; +standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_6); /* Direct call array#ArrayIterator#finish on */ } -} -var17 = 0; -var = var17; +var = 0; goto RET_LABEL; RET_LABEL:; return var; @@ -5168,8 +5229,8 @@ val* var2 /* : ArrayMap[nullable Object, nullable Object] */; var2 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } var = var2; RET_LABEL1:(void)0; @@ -5182,182 +5243,149 @@ RET_LABEL:; } /* method array#ArrayMapValues#remove for (self: ArrayMapValues[nullable Object, nullable Object], nullable Object) */ void standard__array___standard__array__ArrayMapValues___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -short int is_nullable; -const char* var_class_name; val* var_item /* var item: nullable Object */; -val* var1 /* : ArrayMap[nullable Object, nullable Object] */; -val* var3 /* : ArrayMap[nullable Object, nullable Object] */; +val* var /* : ArrayMap[nullable Object, nullable Object] */; +val* var2 /* : ArrayMap[nullable Object, nullable Object] */; val* var_map /* var map: ArrayMap[nullable Object, nullable Object] */; -val* var4 /* : Array[Couple[nullable Object, nullable Object]] */; -long var5 /* : Int */; +val* var3 /* : Array[Couple[nullable Object, nullable Object]] */; +long var4 /* : Int */; +long var6 /* : Int */; long var7 /* : Int */; -long var8 /* : Int */; -long var9 /* : Int */; -short int var11 /* : Bool */; -int cltype12; -int idtype13; -const char* var_class_name14; -long var15 /* : Int */; +short int var9 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var10 /* : Int */; long var_i /* var i: Int */; -long var16 /* : Int */; +short int var11 /* : Bool */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +const char* var_class_name16; short int var17 /* : Bool */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const char* var_class_name22; +val* var18 /* : Array[Couple[nullable Object, nullable Object]] */; +val* var19 /* : nullable Object */; +val* var20 /* : nullable Object */; +val* var22 /* : nullable Object */; short int var23 /* : Bool */; -val* var24 /* : Array[Couple[nullable Object, nullable Object]] */; -val* var25 /* : nullable Object */; -val* var26 /* : nullable Object */; -val* var28 /* : nullable Object */; -short int var29 /* : Bool */; -short int var30 /* : Bool */; +short int var24 /* : Bool */; +long var25 /* : Int */; +short int var27 /* : Bool */; +int cltype28; +int idtype29; +const char* var_class_name30; long var31 /* : Int */; -long var32 /* : Int */; -short int var34 /* : Bool */; -int cltype35; -int idtype36; -const char* var_class_name37; -long var38 /* : Int */; -/* Covariant cast for argument 0 (item) isa E */ -/* isa E */ -type_struct = self->type->resolution_table->types[COLOR_standard__array__ArrayMapValues___35dE]; -cltype = type_struct->color; -idtype = type_struct->id; -is_nullable = type_struct->is_nullable; -if(p0 == NULL) { -var = is_nullable; -} else { -if(cltype >= p0->type->table_size) { -var = 0; -} else { -var = p0->type->type_table[cltype] == idtype; -} -} -if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 674); -show_backtrace(1); -} var_item = p0; { { /* Inline array#ArrayMapValues#map (self) on */ -var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ -if (unlikely(var3 == NULL)) { +var2 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on */ +if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 643); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792); +fatal_exit(1); } -var1 = var3; -RET_LABEL2:(void)0; +var = var2; +RET_LABEL1:(void)0; } } -var_map = var1; -var4 = var_map->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ -if (unlikely(var4 == NULL)) { +var_map = var; +var3 = var_map->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 677); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 826); +fatal_exit(1); } { -{ /* Inline array#AbstractArrayRead#length (var4) on */ -var7 = var4->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ -var5 = var7; -RET_LABEL6:(void)0; +{ /* Inline array#AbstractArrayRead#length (var3) on */ +var6 = var3->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on */ +var4 = var6; +RET_LABEL5:(void)0; } } -var8 = 1; { -{ /* Inline kernel#Int#- (var5,var8) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var11 = 1; /* easy isa OTHER*/ -if (unlikely(!var11)) { -var_class_name14 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416); -show_backtrace(1); +{ /* Inline kernel#Int#- (var4,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var9 = 1; /* easy <1l:Int> 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, 540); +fatal_exit(1); } -var15 = var5 - var8; -var9 = var15; -goto RET_LABEL10; -RET_LABEL10:(void)0; +var10 = var4 - 1l; +var7 = var10; +goto RET_LABEL8; +RET_LABEL8:(void)0; } } -var_i = var9; +var_i = var7; for(;;) { -var16 = 0; { -{ /* Inline kernel#Int#>= (var_i,var16) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var19 = 1; /* easy isa OTHER*/ -if (unlikely(!var19)) { -var_class_name22 = type_standard__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22); -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 */ +var13 = 1; /* easy <0l:Int> isa OTHER*/ +if (unlikely(!var13)) { +var_class_name16 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535); +fatal_exit(1); } -var23 = var_i >= var16; -var17 = var23; -goto RET_LABEL18; -RET_LABEL18:(void)0; +var17 = var_i >= 0l; +var11 = var17; +goto RET_LABEL12; +RET_LABEL12:(void)0; } } -if (var17){ -var24 = var_map->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ -if (unlikely(var24 == NULL)) { +if (var11){ +var18 = var_map->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on */ +if (unlikely(var18 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 679); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 828); +fatal_exit(1); } { -var25 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var24, var_i); +var19 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var18, var_i); } { -{ /* Inline abstract_collection#Couple#second (var25) on */ -var28 = var25->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on */ -var26 = var28; -RET_LABEL27:(void)0; +{ /* Inline abstract_collection#Couple#second (var19) on */ +var22 = var19->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on */ +var20 = var22; +RET_LABEL21:(void)0; } } -if (var26 == NULL) { -var29 = (var_item == NULL); +if (var20 == NULL) { +var23 = (var_item == NULL); } else { -var30 = ((short int (*)(val* self, val* p0))(var26->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var26, var_item) /* == on */; -var29 = var30; +var24 = ((short int(*)(val* self, val* p0))((((long)var20&3)?class_info[((long)var20&3)]:var20->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var20, var_item); /* == on */ +var23 = var24; } -if (var29){ +if (var23){ { standard___standard__ArrayMap___remove_at_index(var_map, var_i); /* Direct call array#ArrayMap#remove_at_index on */ } goto RET_LABEL; } else { } -var31 = 1; { -{ /* Inline kernel#Int#- (var_i,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#- (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var27 = 1; /* easy <1l:Int> 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, 540); +fatal_exit(1); } -var38 = var_i - var31; -var32 = var38; -goto RET_LABEL33; -RET_LABEL33:(void)0; +var31 = var_i - 1l; +var25 = var31; +goto RET_LABEL26; +RET_LABEL26:(void)0; } } -var_i = var32; +var_i = var25; } else { goto BREAK_label; } @@ -5368,7 +5396,7 @@ RET_LABEL:; /* method array#ArrayMapValues#init for (self: ArrayMapValues[nullable Object, nullable Object]) */ void standard__array___standard__array__ArrayMapValues___standard__kernel__Object__init(val* self) { { -((void (*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayMapValues___standard__kernel__Object__init]))(self) /* init on */; +((void(*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayMapValues___standard__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } @@ -5379,24 +5407,24 @@ val* var1 /* : Array[nullable Object] */; val* var_res /* var res: Array[nullable Object] */; short int var2 /* : Bool */; val* var3 /* : nullable Object */; -var1 = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__Iterator___35dE]); +var1 = NEW_standard__Array((((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Array__standard__Iterator___35dE]); { standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on */ } var_res = var1; for(;;) { { -var2 = ((short int (*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(self) /* is_ok on */; +var2 = ((short int(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(self); /* is_ok on */ } if (var2){ { -var3 = ((val* (*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(self) /* item on */; +var3 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(self); /* item on */ } { standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var3); /* Direct call array#Array#add on */ } { -((void (*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(self) /* next on */; +((void(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(self); /* next on */ } } else { goto BREAK_label; @@ -5414,9 +5442,9 @@ val* var /* : Array[nullable Object] */; val* var1 /* : Array[nullable Object] */; long var2 /* : Int */; val* var_res /* var res: Array[nullable Object] */; -var1 = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__Collection___35dE]); +var1 = NEW_standard__Array((((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Array__standard__Collection___35dE]); { -var2 = ((long (*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self) /* length on */; +var2 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on */ } { standard___standard__Array___with_capacity(var1, var2); /* Direct call array#Array#with_capacity on */ @@ -5436,10 +5464,20 @@ val* var /* : NativeArray[nullable Object] */; RET_LABEL:; return var; } +/* method array#NativeArray#length for (self: NativeArray[nullable Object]): Int */ +long standard___standard__NativeArray___length(val* self) { +long var /* : Int */; +long var1 /* : Int */; +var1 = ((struct instance_standard__NativeArray*)self)->length; +var = var1; +goto RET_LABEL; +RET_LABEL:; +return var; +} /* method array#NativeArray#[] for (self: NativeArray[nullable Object], Int): nullable Object */ val* standard___standard__NativeArray____91d_93d(val* self, long p0) { val* var /* : nullable Object */; -val* var1 /* : nullable Object */; +val* var1 /* : Object */; var1 = ((struct instance_standard__NativeArray*)self)->values[p0]; var = var1; goto RET_LABEL; @@ -5463,17 +5501,17 @@ is_nullable = type_struct->is_nullable; if(p1 == NULL) { var = is_nullable; } else { -if(cltype >= p1->type->table_size) { +if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) { var = 0; } else { -var = p1->type->type_table[cltype] == idtype; +var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p1 == NULL ? "null" : p1->type->name; +var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 808); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957); +fatal_exit(1); } ((struct instance_standard__NativeArray*)self)->values[p0]=p1; RET_LABEL:; @@ -5498,8 +5536,8 @@ var = p0->type->type_table[cltype] == idtype; if (unlikely(!var)) { var_class_name = p0 == NULL ? "null" : p0->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 811); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 960); +fatal_exit(1); } memmove(((struct instance_standard__NativeArray*)p0)->values, ((struct instance_standard__NativeArray*)self)->values, p1*sizeof(val*)); RET_LABEL:;