X-Git-Url: http://nitlanguage.org diff --git a/c_src/standard__list.sep.1.c b/c_src/standard__list.sep.1.c index 724a844..899ae3e 100644 --- a/c_src/standard__list.sep.1.c +++ b/c_src/standard__list.sep.1.c @@ -13,13 +13,13 @@ var1 = standard___standard__List___get_node(self, var_index); if (var1 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 24); -show_backtrace(1); +fatal_exit(1); } else { { /* Inline abstract_collection#Container#item (var1) on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } var4 = var1->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ var2 = var4; @@ -57,17 +57,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__list, 26); -show_backtrace(1); +fatal_exit(1); } var_index = p0; var_item = p1; @@ -77,7 +77,7 @@ var1 = standard___standard__List___get_node(self, var_index); if (var1 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 26); -show_backtrace(1); +fatal_exit(1); } else { { /* Inline abstract_collection#Container#item= (var1,var_item) on */ /* Covariant cast for argument 0 (item) isa E */ @@ -89,22 +89,22 @@ is_nullable7 = type_struct6->is_nullable; if(var_item == NULL) { var3 = is_nullable7; } else { -if(cltype4 >= var_item->type->table_size) { +if(cltype4 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) { var3 = 0; } else { -var3 = var_item->type->type_table[cltype4] == idtype5; +var3 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype4] == idtype5; } } if (unlikely(!var3)) { -var_class_name8 = var_item == NULL ? "null" : var_item->type->name; +var_class_name8 = 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_name8); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } var1->attrs[COLOR_standard__abstract_collection__Container___item].val = var_item; /* _item on */ RET_LABEL2:(void)0; @@ -122,13 +122,13 @@ var1 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } var4 = var1->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ var2 = var4; @@ -165,24 +165,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__list, 31); -show_backtrace(1); +fatal_exit(1); } var_e = p0; var1 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ if (var1 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 32); -show_backtrace(1); +fatal_exit(1); } else { { /* Inline abstract_collection#Container#item= (var1,var_e) on */ /* Covariant cast for argument 0 (item) isa E */ @@ -194,22 +194,22 @@ is_nullable7 = type_struct6->is_nullable; if(var_e == NULL) { var3 = is_nullable7; } else { -if(cltype4 >= var_e->type->table_size) { +if(cltype4 >= (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->table_size) { var3 = 0; } else { -var3 = var_e->type->type_table[cltype4] == idtype5; +var3 = (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->type_table[cltype4] == idtype5; } } if (unlikely(!var3)) { -var_class_name8 = var_e == NULL ? "null" : var_e->type->name; +var_class_name8 = var_e == NULL ? "null" : (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name8); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } var1->attrs[COLOR_standard__abstract_collection__Container___item].val = var_e; /* _item on */ RET_LABEL2:(void)0; @@ -227,13 +227,13 @@ var1 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } var4 = var1->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ var2 = var4; @@ -249,37 +249,35 @@ return var; short int standard___standard__List___standard__abstract_collection__Collection__is_empty(val* self) { short int var /* : Bool */; val* var1 /* : nullable ListNode[nullable Object] */; -val* var2 /* : null */; +short int var2 /* : Bool */; short int var3 /* : Bool */; -short int var4 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; var1 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ -var2 = NULL; if (var1 == NULL) { -var3 = 1; /* is null */ +var2 = 1; /* is null */ } else { -var3 = 0; /* arg is null but recv is not */ +var2 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var1,var2) on */ -var_other = var2; +{ /* Inline kernel#Object#== (var1,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var1,var_other) on */ -var8 = var1 == var_other; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var7 = var1 == var_other; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; } } -var4 = var6; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; } -var3 = var4; +var2 = var3; } -var = var3; +var = var2; goto RET_LABEL; RET_LABEL:; return var; @@ -287,77 +285,71 @@ return var; /* method list#List#length for (self: List[nullable Object]): Int */ long standard___standard__List___standard__abstract_collection__Collection__length(val* self) { long var /* : Int */; -long var1 /* : Int */; long var_l /* var l: Int */; -val* var2 /* : nullable ListNode[nullable Object] */; +val* var1 /* : nullable ListNode[nullable Object] */; val* var_t /* var t: nullable ListNode[nullable Object] */; -val* var3 /* : null */; -short int var4 /* : Bool */; -short int var5 /* : Bool */; +short int var2 /* : Bool */; +short int var3 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var8 /* : Bool */; -long var9 /* : Int */; -long var10 /* : Int */; -short int var12 /* : Bool */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +long var7 /* : Int */; +short int var9 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var13 /* : Int */; -val* var14 /* : nullable ListNode[nullable Object] */; -val* var16 /* : nullable ListNode[nullable Object] */; -var1 = 0; -var_l = var1; -var2 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ -var_t = var2; +long var10 /* : Int */; +val* var11 /* : nullable ListNode[nullable Object] */; +val* var13 /* : nullable ListNode[nullable Object] */; +var_l = 0l; +var1 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ +var_t = var1; for(;;) { -var3 = NULL; if (var_t == NULL) { -var4 = 0; /* is null */ +var2 = 0; /* is null */ } else { -var4 = 1; /* arg is null and recv is not */ +var2 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_t,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#!= (var_t,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var7 = ((short int (*)(val* self, val* p0))(var_t->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_t, var_other) /* == on */; +var5 = ((short int(*)(val* self, val* p0))(var_t->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_t, var_other); /* == on */ } -var8 = !var7; -var5 = var8; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var6 = !var5; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; } -var4 = var5; +var2 = var3; } -if (var4){ -var9 = 1; +if (var2){ { -{ /* Inline kernel#Int#+ (var_l,var9) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var12 = 1; /* easy isa OTHER*/ -if (unlikely(!var12)) { +{ /* Inline kernel#Int#+ (var_l,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, 413); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +fatal_exit(1); } -var13 = var_l + var9; -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; +var10 = var_l + 1l; +var7 = var10; +goto RET_LABEL8; +RET_LABEL8:(void)0; } } -var_l = var10; +var_l = var7; { { /* Inline list#ListNode#next (var_t) on */ -var16 = var_t->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var14 = var16; -RET_LABEL15:(void)0; +var13 = var_t->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var11 = var13; +RET_LABEL12:(void)0; } } -var_t = var14; +var_t = var11; } else { goto BREAK_label; } @@ -371,67 +363,64 @@ return var; /* method list#List#has for (self: List[nullable Object], nullable Object): Bool */ short int standard___standard__List___standard__abstract_collection__Collection__has(val* self, val* p0) { short int var /* : Bool */; +val* var_e /* var e: 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_e /* var e: nullable Object */; val* var2 /* : nullable ListNode[nullable Object] */; val* var3 /* : nullable ListNode[nullable Object] */; -val* var4 /* : null */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -short int var6 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -short int var9 /* : Bool */; -/* Covariant cast for argument 0 (e) isa E */ -/* isa E */ +var_e = p0; +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__List___35dE]; cltype = type_struct->color; idtype = type_struct->id; is_nullable = type_struct->is_nullable; -if(p0 == NULL) { +if(var_e == NULL) { var1 = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->table_size) { var1 = 0; } else { -var1 = p0->type->type_table[cltype] == idtype; +var1 = (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->type_table[cltype] == idtype; } } if (unlikely(!var1)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = var_e == NULL ? "null" : (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 57); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 58); +fatal_exit(1); } -var_e = p0; var2 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ { var3 = standard___standard__List___search_node_after(self, var_e, var2); } -var4 = NULL; if (var3 == NULL) { -var5 = 0; /* is null */ +var4 = 0; /* is null */ } else { -var5 = 1; /* arg is null and recv is not */ +var4 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var3,var4) on */ -var_other = var4; +{ /* Inline kernel#Object#!= (var3,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var8 = ((short int (*)(val* self, val* p0))(var3->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var3, var_other) /* == on */; +var7 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var3, var_other); /* == on */ } -var9 = !var8; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var8 = !var7; +var5 = var8; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -var5 = var6; +var4 = var5; } -var = var5; +var = var4; goto RET_LABEL; RET_LABEL:; return var; @@ -448,24 +437,23 @@ val* var_e /* var e: nullable Object */; val* var1 /* : ListNode[nullable Object] */; val* var_node /* var node: ListNode[nullable Object] */; val* var2 /* : nullable ListNode[nullable Object] */; -val* var3 /* : null */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : nullable ListNode[nullable Object] */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -const struct type* type_struct15; -const char* var_class_name16; -val* var17 /* : nullable ListNode[nullable Object] */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const struct type* type_struct22; -const char* var_class_name23; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : nullable ListNode[nullable Object] */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const struct type* type_struct14; +const char* var_class_name15; +val* var16 /* : nullable ListNode[nullable Object] */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const struct type* type_struct21; +const char* var_class_name22; /* Covariant cast for argument 0 (e) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__List___35dE]; @@ -475,111 +463,110 @@ 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__list, 95); -show_backtrace(1); +fatal_exit(1); } var_e = p0; var1 = NEW_standard__list__ListNode(self->type->resolution_table->types[COLOR_standard__list__ListNode__standard__List___35dE]); { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__Container__item_61d]))(var1, var_e) /* item= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__Container__item_61d]))(var1, var_e); /* item= 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_node = var1; var2 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ -var3 = NULL; if (var2 == NULL) { -var4 = 1; /* is null */ +var3 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var2,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#== (var2,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var2,var_other) on */ -var9 = var2 == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var8 = var2 == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var4 = var5; +var3 = var4; } -if (var4){ +if (var3){ self->attrs[COLOR_standard__list__List___head].val = var_node; /* _head on */ } else { -var10 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ -if (var10 == NULL) { +var9 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ +if (var9 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 102); -show_backtrace(1); +fatal_exit(1); } else { -{ /* Inline list#ListNode#next= (var10,var_node) on */ +{ /* Inline list#ListNode#next= (var9,var_node) on */ /* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ -type_struct15 = var10->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype13 = type_struct15->color; -idtype14 = type_struct15->id; -if(cltype13 >= var_node->type->table_size) { -var12 = 0; +type_struct14 = var9->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype12 = type_struct14->color; +idtype13 = type_struct14->id; +if(cltype12 >= var_node->type->table_size) { +var11 = 0; } else { -var12 = var_node->type->type_table[cltype13] == idtype14; +var11 = var_node->type->type_table[cltype12] == idtype13; } -if (unlikely(!var12)) { -var_class_name16 = var_node == NULL ? "null" : var_node->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name16); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +if (unlikely(!var11)) { +var_class_name15 = var_node == NULL ? "null" : var_node->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name15); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } -if (unlikely(var10 == NULL)) { +if (unlikely(var9 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } -var10->attrs[COLOR_standard__list__ListNode___next].val = var_node; /* _next on */ -RET_LABEL11:(void)0; +var9->attrs[COLOR_standard__list__ListNode___next].val = var_node; /* _next on */ +RET_LABEL10:(void)0; } } -var17 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ +var16 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ { -{ /* Inline list#ListNode#prev= (var_node,var17) on */ -/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -type_struct22 = var_node->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype20 = type_struct22->color; -idtype21 = type_struct22->id; -if(var17 == NULL) { -var19 = 1; +{ /* Inline list#ListNode#prev= (var_node,var16) on */ +/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct21 = var_node->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype19 = type_struct21->color; +idtype20 = type_struct21->id; +if(var16 == NULL) { +var18 = 1; } else { -if(cltype20 >= var17->type->table_size) { -var19 = 0; +if(cltype19 >= var16->type->table_size) { +var18 = 0; } else { -var19 = var17->type->type_table[cltype20] == idtype21; +var18 = var16->type->type_table[cltype19] == idtype20; } } -if (unlikely(!var19)) { -var_class_name23 = var17 == NULL ? "null" : var17->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name23); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); +if (unlikely(!var18)) { +var_class_name22 = var16 == NULL ? "null" : var16->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name22); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); } -var_node->attrs[COLOR_standard__list__ListNode___prev].val = var17; /* _prev on */ -RET_LABEL18:(void)0; +var_node->attrs[COLOR_standard__list__ListNode___prev].val = var16; /* _prev on */ +RET_LABEL17:(void)0; } } } @@ -598,24 +585,23 @@ val* var_e /* var e: nullable Object */; val* var1 /* : ListNode[nullable Object] */; val* var_node /* var node: ListNode[nullable Object] */; val* var2 /* : nullable ListNode[nullable Object] */; -val* var3 /* : null */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var7 /* : Bool */; -short int var9 /* : Bool */; -val* var10 /* : nullable ListNode[nullable Object] */; -short int var12 /* : Bool */; -int cltype13; -int idtype14; -const struct type* type_struct15; -const char* var_class_name16; -val* var17 /* : nullable ListNode[nullable Object] */; -short int var19 /* : Bool */; -int cltype20; -int idtype21; -const struct type* type_struct22; -const char* var_class_name23; +short int var6 /* : Bool */; +short int var8 /* : Bool */; +val* var9 /* : nullable ListNode[nullable Object] */; +short int var11 /* : Bool */; +int cltype12; +int idtype13; +const struct type* type_struct14; +const char* var_class_name15; +val* var16 /* : nullable ListNode[nullable Object] */; +short int var18 /* : Bool */; +int cltype19; +int idtype20; +const struct type* type_struct21; +const char* var_class_name22; /* Covariant cast for argument 0 (e) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__List___35dE]; @@ -625,111 +611,110 @@ 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__list, 108); -show_backtrace(1); +fatal_exit(1); } var_e = p0; var1 = NEW_standard__list__ListNode(self->type->resolution_table->types[COLOR_standard__list__ListNode__standard__List___35dE]); { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__Container__item_61d]))(var1, var_e) /* item= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__Container__item_61d]))(var1, var_e); /* item= 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_node = var1; var2 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ -var3 = NULL; if (var2 == NULL) { -var4 = 1; /* is null */ +var3 = 1; /* is null */ } else { -var4 = 0; /* arg is null but recv is not */ +var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var2,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#== (var2,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var2,var_other) on */ -var9 = var2 == var_other; -var7 = var9; -goto RET_LABEL8; -RET_LABEL8:(void)0; +var8 = var2 == var_other; +var6 = var8; +goto RET_LABEL7; +RET_LABEL7:(void)0; } } -var5 = var7; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var4 = var6; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var4 = var5; +var3 = var4; } -if (var4){ +if (var3){ self->attrs[COLOR_standard__list__List___tail].val = var_node; /* _tail on */ } else { -var10 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ +var9 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ { -{ /* Inline list#ListNode#next= (var_node,var10) on */ -/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -type_struct15 = var_node->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype13 = type_struct15->color; -idtype14 = type_struct15->id; -if(var10 == NULL) { -var12 = 1; +{ /* Inline list#ListNode#next= (var_node,var9) on */ +/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct14 = var_node->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype12 = type_struct14->color; +idtype13 = type_struct14->id; +if(var9 == NULL) { +var11 = 1; } else { -if(cltype13 >= var10->type->table_size) { -var12 = 0; +if(cltype12 >= var9->type->table_size) { +var11 = 0; } else { -var12 = var10->type->type_table[cltype13] == idtype14; +var11 = var9->type->type_table[cltype12] == idtype13; } } -if (unlikely(!var12)) { -var_class_name16 = var10 == NULL ? "null" : var10->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name16); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +if (unlikely(!var11)) { +var_class_name15 = var9 == NULL ? "null" : var9->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name15); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } -var_node->attrs[COLOR_standard__list__ListNode___next].val = var10; /* _next on */ -RET_LABEL11:(void)0; +var_node->attrs[COLOR_standard__list__ListNode___next].val = var9; /* _next on */ +RET_LABEL10:(void)0; } } -var17 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ -if (var17 == NULL) { +var16 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ +if (var16 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 116); -show_backtrace(1); +fatal_exit(1); } else { -{ /* Inline list#ListNode#prev= (var17,var_node) on */ +{ /* Inline list#ListNode#prev= (var16,var_node) on */ /* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ -type_struct22 = var17->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype20 = type_struct22->color; -idtype21 = type_struct22->id; -if(cltype20 >= var_node->type->table_size) { -var19 = 0; +type_struct21 = var16->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype19 = type_struct21->color; +idtype20 = type_struct21->id; +if(cltype19 >= var_node->type->table_size) { +var18 = 0; } else { -var19 = var_node->type->type_table[cltype20] == idtype21; +var18 = var_node->type->type_table[cltype19] == idtype20; } -if (unlikely(!var19)) { -var_class_name23 = var_node == NULL ? "null" : var_node->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name23); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); +if (unlikely(!var18)) { +var_class_name22 = var_node == NULL ? "null" : var_node->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name22); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); } -if (unlikely(var17 == NULL)) { +if (unlikely(var16 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); } -var17->attrs[COLOR_standard__list__ListNode___prev].val = var_node; /* _prev on */ -RET_LABEL18:(void)0; +var16->attrs[COLOR_standard__list__ListNode___prev].val = var_node; /* _prev on */ +RET_LABEL17:(void)0; } } } @@ -748,42 +733,11 @@ val* var_e /* var e: nullable Object */; long var_i /* var i: Int */; val* var1 /* : nullable ListNode[nullable Object] */; val* var_node /* var node: nullable ListNode[nullable Object] */; -val* var2 /* : null */; +short int var2 /* : Bool */; short int var3 /* : Bool */; -short int var4 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; -short int var8 /* : Bool */; -val* var9 /* : ListNode[nullable Object] */; -val* var_nnode /* var nnode: ListNode[nullable Object] */; -val* var10 /* : nullable ListNode[nullable Object] */; -val* var12 /* : nullable ListNode[nullable Object] */; -val* var_next /* var next: nullable ListNode[nullable Object] */; -val* var13 /* : null */; -short int var14 /* : Bool */; -short int var15 /* : Bool */; -short int var17 /* : Bool */; -short int var19 /* : Bool */; -short int var21 /* : Bool */; -int cltype22; -int idtype23; -const struct type* type_struct24; -const char* var_class_name25; -short int var27 /* : Bool */; -int cltype28; -int idtype29; -const struct type* type_struct30; -const char* var_class_name31; -short int var33 /* : Bool */; -int cltype34; -int idtype35; -const struct type* type_struct36; -const char* var_class_name37; -short int var39 /* : Bool */; -int cltype40; -int idtype41; -const struct type* type_struct42; -const char* var_class_name43; +short int var5 /* : Bool */; +short int var7 /* : Bool */; /* Covariant cast for argument 0 (e) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__List___35dE]; @@ -793,17 +747,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__list, 121); -show_backtrace(1); +fatal_exit(1); } var_e = p0; var_i = p1; @@ -811,317 +765,176 @@ var_i = p1; var1 = standard___standard__List___get_node(self, var_i); } var_node = var1; -var2 = NULL; if (var_node == NULL) { -var3 = 1; /* is null */ +var2 = 1; /* is null */ } else { -var3 = 0; /* arg is null but recv is not */ +var2 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_node,var2) on */ -var_other = var2; +{ /* Inline kernel#Object#== (var_node,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var_node,var_other) on */ -var8 = var_node == var_other; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var7 = var_node == var_other; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; } } -var4 = var6; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; } -var3 = var4; +var2 = var3; } -if (var3){ +if (var2){ { standard___standard__List___standard__abstract_collection__Sequence__push(self, var_e); /* Direct call list#List#push on */ } goto RET_LABEL; } else { } -var9 = NEW_standard__list__ListNode(self->type->resolution_table->types[COLOR_standard__list__ListNode__standard__List___35dE]); { -((void (*)(val* self, val* p0))(var9->class->vft[COLOR_standard__abstract_collection__Container__item_61d]))(var9, var_e) /* item= on */; +standard___standard__List___insert_before(self, var_e, var_node); /* Direct call list#List#insert_before on */ } -{ -((void (*)(val* self))(var9->class->vft[COLOR_standard__kernel__Object__init]))(var9) /* init on */; +RET_LABEL:; } -var_nnode = var9; -{ -{ /* Inline list#ListNode#next (var_node) on */ -var12 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var10 = var12; -RET_LABEL11:(void)0; +/* method list#List#pop for (self: List[nullable Object]): nullable Object */ +val* standard___standard__List___standard__abstract_collection__Sequence__pop(val* self) { +val* var /* : nullable Object */; +val* var1 /* : nullable ListNode[nullable Object] */; +val* var_node /* var node: nullable ListNode[nullable Object] */; +val* var2 /* : nullable ListNode[nullable Object] */; +val* var4 /* : nullable ListNode[nullable Object] */; +short int var6 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +val* var7 /* : nullable ListNode[nullable Object] */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var11 /* : Bool */; +short int var13 /* : Bool */; +val* var14 /* : nullable ListNode[nullable Object] */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +const char* var_class_name19; +val* var20 /* : nullable Object */; +val* var22 /* : nullable Object */; +var1 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ +var_node = var1; +if (var_node == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 153); +fatal_exit(1); +} else { +{ /* Inline list#ListNode#prev (var_node) on */ +if (unlikely(var_node == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); +} +var4 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ +var2 = var4; +RET_LABEL3:(void)0; +} +} +self->attrs[COLOR_standard__list__List___tail].val = var2; /* _tail on */ +if (var_node == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 154); +fatal_exit(1); +} else { +{ /* Inline list#ListNode#prev= (var_node,((val*)NULL)) on */ +/* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */ +/* <((val*)NULL):null> isa nullable ListNode[E] */ +var6 = 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/ +if (unlikely(!var6)) { +var_class_name = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); +} +if (unlikely(var_node == NULL)) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); +} +var_node->attrs[COLOR_standard__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ +RET_LABEL5:(void)0; } } -var_next = var10; -var13 = NULL; -if (var_next == NULL) { -var14 = 1; /* is null */ +var7 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ +if (var7 == NULL) { +var8 = 1; /* is null */ } else { -var14 = 0; /* arg is null but recv is not */ +var8 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_next,var13) on */ -var_other = var13; +{ /* Inline kernel#Object#== (var7,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_next,var_other) on */ -var19 = var_next == var_other; -var17 = var19; -goto RET_LABEL18; -RET_LABEL18:(void)0; -} -} -var15 = var17; -goto RET_LABEL16; -RET_LABEL16:(void)0; -} -var14 = var15; -} -if (var14){ -self->attrs[COLOR_standard__list__List___tail].val = var_nnode; /* _tail on */ -} else { -{ -{ /* Inline list#ListNode#prev= (var_next,var_nnode) on */ -/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -type_struct24 = var_next->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype22 = type_struct24->color; -idtype23 = type_struct24->id; -if(cltype22 >= var_nnode->type->table_size) { -var21 = 0; -} else { -var21 = var_nnode->type->type_table[cltype22] == idtype23; -} -if (unlikely(!var21)) { -var_class_name25 = var_nnode == NULL ? "null" : var_nnode->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name25); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); -} -var_next->attrs[COLOR_standard__list__ListNode___prev].val = var_nnode; /* _prev on */ -RET_LABEL20:(void)0; -} -} -} -{ -{ /* Inline list#ListNode#prev= (var_nnode,var_node) on */ -/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -type_struct30 = var_nnode->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype28 = type_struct30->color; -idtype29 = type_struct30->id; -if(cltype28 >= var_node->type->table_size) { -var27 = 0; -} else { -var27 = var_node->type->type_table[cltype28] == idtype29; -} -if (unlikely(!var27)) { -var_class_name31 = var_node == NULL ? "null" : var_node->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name31); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); -} -var_nnode->attrs[COLOR_standard__list__ListNode___prev].val = var_node; /* _prev on */ -RET_LABEL26:(void)0; -} -} -{ -{ /* Inline list#ListNode#next= (var_nnode,var_next) on */ -/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -type_struct36 = var_nnode->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype34 = type_struct36->color; -idtype35 = type_struct36->id; -if(var_next == NULL) { -var33 = 1; -} else { -if(cltype34 >= var_next->type->table_size) { -var33 = 0; -} else { -var33 = var_next->type->type_table[cltype34] == idtype35; -} -} -if (unlikely(!var33)) { -var_class_name37 = var_next == NULL ? "null" : var_next->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name37); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); -} -var_nnode->attrs[COLOR_standard__list__ListNode___next].val = var_next; /* _next on */ -RET_LABEL32:(void)0; -} -} -{ -{ /* Inline list#ListNode#next= (var_node,var_nnode) on */ -/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -type_struct42 = var_node->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype40 = type_struct42->color; -idtype41 = type_struct42->id; -if(cltype40 >= var_nnode->type->table_size) { -var39 = 0; -} else { -var39 = var_nnode->type->type_table[cltype40] == idtype41; -} -if (unlikely(!var39)) { -var_class_name43 = var_nnode == NULL ? "null" : var_nnode->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name43); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); -} -var_node->attrs[COLOR_standard__list__ListNode___next].val = var_nnode; /* _next on */ -RET_LABEL38:(void)0; -} -} -RET_LABEL:; -} -/* method list#List#pop for (self: List[nullable Object]): nullable Object */ -val* standard___standard__List___standard__abstract_collection__Sequence__pop(val* self) { -val* var /* : nullable Object */; -val* var1 /* : nullable ListNode[nullable Object] */; -val* var_node /* var node: nullable ListNode[nullable Object] */; -val* var2 /* : nullable ListNode[nullable Object] */; -val* var4 /* : nullable ListNode[nullable Object] */; -val* var5 /* : null */; -short int var7 /* : Bool */; -int cltype; -int idtype; -const char* var_class_name; -val* var8 /* : nullable ListNode[nullable Object] */; -val* var9 /* : null */; -short int var10 /* : Bool */; -short int var11 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var13 /* : Bool */; -short int var15 /* : Bool */; -val* var16 /* : null */; -val* var17 /* : nullable ListNode[nullable Object] */; -val* var18 /* : null */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -const char* var_class_name23; -val* var24 /* : nullable Object */; -val* var26 /* : nullable Object */; -var1 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ -var_node = var1; -if (var_node == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 162); -show_backtrace(1); -} else { -{ /* Inline list#ListNode#prev (var_node) on */ -if (unlikely(var_node == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); -} -var4 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ -var2 = var4; -RET_LABEL3:(void)0; -} -} -self->attrs[COLOR_standard__list__List___tail].val = var2; /* _tail on */ -var5 = NULL; -if (var_node == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 163); -show_backtrace(1); -} else { -{ /* Inline list#ListNode#prev= (var_node,var5) on */ -/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -var7 = 1; /* easy isa nullable ListNode[E]*/ -if (unlikely(!var7)) { -var_class_name = var5 == NULL ? "null" : var5->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); -} -if (unlikely(var_node == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); -} -var_node->attrs[COLOR_standard__list__ListNode___prev].val = var5; /* _prev on */ -RET_LABEL6:(void)0; -} -} -var8 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ -var9 = NULL; -if (var8 == NULL) { -var10 = 1; /* is null */ -} else { -var10 = 0; /* arg is null but recv is not */ -} -if (0) { -{ /* Inline kernel#Object#== (var8,var9) on */ -var_other = var9; -{ -{ /* Inline kernel#Object#is_same_instance (var8,var_other) on */ -var15 = var8 == var_other; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; -} -} +{ /* Inline kernel#Object#is_same_instance (var7,var_other) on */ +var13 = var7 == var_other; var11 = var13; goto RET_LABEL12; RET_LABEL12:(void)0; } -var10 = var11; } -if (var10){ -var16 = NULL; -self->attrs[COLOR_standard__list__List___head].val = var16; /* _head on */ +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +var8 = var9; +} +if (var8){ +self->attrs[COLOR_standard__list__List___head].val = ((val*)NULL); /* _head on */ } else { -var17 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ -var18 = NULL; -if (var17 == NULL) { +var14 = self->attrs[COLOR_standard__list__List___tail].val; /* _tail on */ +if (var14 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 167); -show_backtrace(1); -} else { -{ /* Inline list#ListNode#next= (var17,var18) on */ -/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -var20 = 1; /* easy isa nullable ListNode[E]*/ -if (unlikely(!var20)) { -var_class_name23 = var18 == NULL ? "null" : var18->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name23); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); -} -if (unlikely(var17 == NULL)) { +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 158); +fatal_exit(1); +} else { +{ /* Inline list#ListNode#next= (var14,((val*)NULL)) on */ +/* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */ +/* <((val*)NULL):null> isa nullable ListNode[E] */ +var16 = 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/ +if (unlikely(!var16)) { +var_class_name19 = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name19); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); +} +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } -var17->attrs[COLOR_standard__list__ListNode___next].val = var18; /* _next on */ -RET_LABEL19:(void)0; +var14->attrs[COLOR_standard__list__ListNode___next].val = ((val*)NULL); /* _next on */ +RET_LABEL15:(void)0; } } } if (var_node == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 169); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 160); +fatal_exit(1); } else { { /* Inline abstract_collection#Container#item (var_node) on */ if (unlikely(var_node == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } -var26 = var_node->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ -var24 = var26; -RET_LABEL25:(void)0; +var22 = var_node->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ +var20 = var22; +RET_LABEL21:(void)0; } } -var = var24; +var = var20; goto RET_LABEL; RET_LABEL:; return var; @@ -1133,39 +946,35 @@ val* var1 /* : nullable ListNode[nullable Object] */; val* var_node /* var node: nullable ListNode[nullable Object] */; val* var2 /* : nullable ListNode[nullable Object] */; val* var4 /* : nullable ListNode[nullable Object] */; -val* var5 /* : null */; -short int var7 /* : Bool */; +short int var6 /* : Bool */; int cltype; int idtype; const char* var_class_name; -val* var8 /* : nullable ListNode[nullable Object] */; -val* var9 /* : null */; -short int var10 /* : Bool */; -short int var11 /* : Bool */; +val* var7 /* : nullable ListNode[nullable Object] */; +short int var8 /* : Bool */; +short int var9 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var11 /* : Bool */; short int var13 /* : Bool */; -short int var15 /* : Bool */; -val* var16 /* : null */; -val* var17 /* : nullable ListNode[nullable Object] */; -val* var18 /* : null */; -short int var20 /* : Bool */; -int cltype21; -int idtype22; -const char* var_class_name23; -val* var24 /* : nullable Object */; -val* var26 /* : nullable Object */; +val* var14 /* : nullable ListNode[nullable Object] */; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +const char* var_class_name19; +val* var20 /* : nullable Object */; +val* var22 /* : nullable Object */; var1 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ var_node = var1; if (var_node == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 176); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 167); +fatal_exit(1); } else { { /* Inline list#ListNode#next (var_node) on */ if (unlikely(var_node == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } var4 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ var2 = var4; @@ -1173,172 +982,165 @@ RET_LABEL3:(void)0; } } self->attrs[COLOR_standard__list__List___head].val = var2; /* _head on */ -var5 = NULL; if (var_node == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 177); -show_backtrace(1); -} else { -{ /* Inline list#ListNode#next= (var_node,var5) on */ -/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -var7 = 1; /* easy isa nullable ListNode[E]*/ -if (unlikely(!var7)) { -var_class_name = var5 == NULL ? "null" : var5->type->name; +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 168); +fatal_exit(1); +} else { +{ /* Inline list#ListNode#next= (var_node,((val*)NULL)) on */ +/* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */ +/* <((val*)NULL):null> isa nullable ListNode[E] */ +var6 = 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/ +if (unlikely(!var6)) { +var_class_name = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } if (unlikely(var_node == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } -var_node->attrs[COLOR_standard__list__ListNode___next].val = var5; /* _next on */ -RET_LABEL6:(void)0; +var_node->attrs[COLOR_standard__list__ListNode___next].val = ((val*)NULL); /* _next on */ +RET_LABEL5:(void)0; } } -var8 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ -var9 = NULL; -if (var8 == NULL) { -var10 = 1; /* is null */ +var7 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ +if (var7 == NULL) { +var8 = 1; /* is null */ } else { -var10 = 0; /* arg is null but recv is not */ +var8 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var8,var9) on */ -var_other = var9; +{ /* Inline kernel#Object#== (var7,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var8,var_other) on */ -var15 = var8 == var_other; -var13 = var15; -goto RET_LABEL14; -RET_LABEL14:(void)0; -} -} +{ /* Inline kernel#Object#is_same_instance (var7,var_other) on */ +var13 = var7 == var_other; var11 = var13; goto RET_LABEL12; RET_LABEL12:(void)0; } -var10 = var11; } -if (var10){ -var16 = NULL; -self->attrs[COLOR_standard__list__List___tail].val = var16; /* _tail on */ +var9 = var11; +goto RET_LABEL10; +RET_LABEL10:(void)0; +} +var8 = var9; +} +if (var8){ +self->attrs[COLOR_standard__list__List___tail].val = ((val*)NULL); /* _tail on */ } else { -var17 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ -var18 = NULL; -if (var17 == NULL) { +var14 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ +if (var14 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 181); -show_backtrace(1); -} else { -{ /* Inline list#ListNode#prev= (var17,var18) on */ -/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -var20 = 1; /* easy isa nullable ListNode[E]*/ -if (unlikely(!var20)) { -var_class_name23 = var18 == NULL ? "null" : var18->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name23); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); -} -if (unlikely(var17 == NULL)) { +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 172); +fatal_exit(1); +} else { +{ /* Inline list#ListNode#prev= (var14,((val*)NULL)) on */ +/* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */ +/* <((val*)NULL):null> isa nullable ListNode[E] */ +var16 = 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/ +if (unlikely(!var16)) { +var_class_name19 = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name19); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); +} +if (unlikely(var14 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); } -var17->attrs[COLOR_standard__list__ListNode___prev].val = var18; /* _prev on */ -RET_LABEL19:(void)0; +var14->attrs[COLOR_standard__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ +RET_LABEL15:(void)0; } } } if (var_node == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 183); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 174); +fatal_exit(1); } else { { /* Inline abstract_collection#Container#item (var_node) on */ if (unlikely(var_node == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } -var26 = var_node->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ -var24 = var26; -RET_LABEL25:(void)0; +var22 = var_node->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ +var20 = var22; +RET_LABEL21:(void)0; } } -var = var24; +var = var20; goto RET_LABEL; RET_LABEL:; return var; } /* method list#List#remove for (self: List[nullable Object], nullable Object) */ void standard___standard__List___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) { +val* var_e /* var e: nullable Object */; short int var /* : 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* var1 /* : nullable ListNode[nullable Object] */; val* var2 /* : nullable ListNode[nullable Object] */; val* var_node /* var node: nullable ListNode[nullable Object] */; -val* var3 /* : null */; +short int var3 /* : Bool */; short int var4 /* : Bool */; -short int var5 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var6 /* : Bool */; short int var7 /* : Bool */; -short int var8 /* : Bool */; -/* Covariant cast for argument 0 (e) isa E */ -/* isa E */ +var_e = p0; +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__List___35dE]; cltype = type_struct->color; idtype = type_struct->id; is_nullable = type_struct->is_nullable; -if(p0 == NULL) { +if(var_e == NULL) { var = is_nullable; } else { -if(cltype >= p0->type->table_size) { +if(cltype >= (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->table_size) { var = 0; } else { -var = p0->type->type_table[cltype] == idtype; +var = (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->type_table[cltype] == idtype; } } if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; +var_class_name = var_e == NULL ? "null" : (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 186); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 179); +fatal_exit(1); } -var_e = p0; var1 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ { var2 = standard___standard__List___search_node_after(self, var_e, var1); } var_node = var2; -var3 = NULL; if (var_node == NULL) { -var4 = 0; /* is null */ +var3 = 0; /* is null */ } else { -var4 = 1; /* arg is null and recv is not */ +var3 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_node,var3) on */ -var_other = var3; +{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var7 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on */; +var6 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on */ } -var8 = !var7; -var5 = var8; -goto RET_LABEL6; -RET_LABEL6:(void)0; +var7 = !var6; +var4 = var7; +goto RET_LABEL5; +RET_LABEL5:(void)0; } -var4 = var5; +var3 = var4; } -if (var4){ +if (var3){ { standard___standard__List___remove_node(self, var_node); /* Direct call list#List#remove_node on */ } @@ -1351,37 +1153,35 @@ void standard___standard__List___standard__abstract_collection__Sequence__remove long var_i /* var i: Int */; val* var /* : nullable ListNode[nullable Object] */; val* var_node /* var node: nullable ListNode[nullable Object] */; -val* var1 /* : null */; +short int var1 /* : Bool */; short int var2 /* : Bool */; -short int var3 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -short int var6 /* : Bool */; var_i = p0; { var = standard___standard__List___get_node(self, var_i); } var_node = var; -var1 = NULL; if (var_node == NULL) { -var2 = 0; /* is null */ +var1 = 0; /* is null */ } else { -var2 = 1; /* arg is null and recv is not */ +var1 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_node,var1) on */ -var_other = var1; +{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var5 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on */; +var4 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on */ } -var6 = !var5; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var5 = !var4; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } -var2 = var3; +var1 = var2; } -if (var2){ +if (var1){ { standard___standard__List___remove_node(self, var_node); /* Direct call list#List#remove_node on */ } @@ -1391,12 +1191,8 @@ RET_LABEL:; } /* method list#List#clear for (self: List[nullable Object]) */ void standard___standard__List___standard__abstract_collection__RemovableCollection__clear(val* self) { -val* var /* : null */; -val* var1 /* : null */; -var = NULL; -self->attrs[COLOR_standard__list__List___head].val = var; /* _head on */ -var1 = NULL; -self->attrs[COLOR_standard__list__List___tail].val = var1; /* _tail on */ +self->attrs[COLOR_standard__list__List___head].val = ((val*)NULL); /* _head on */ +self->attrs[COLOR_standard__list__List___tail].val = ((val*)NULL); /* _tail on */ RET_LABEL:; } /* method list#List#iterator for (self: List[nullable Object]): ListIterator[nullable Object] */ @@ -1405,10 +1201,10 @@ val* var /* : ListIterator[nullable Object] */; val* var1 /* : ListIterator[nullable Object] */; var1 = NEW_standard__ListIterator(self->type->resolution_table->types[COLOR_standard__ListIterator__standard__List___35dE]); { -((void (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__list__ListIterator__list_61d]))(var1, self) /* list= on */; +((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__list__ListIterator__list_61d]))(var1, self); /* list= 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; @@ -1425,137 +1221,127 @@ val* var /* : nullable ListNode[nullable Object] */; long var_i /* var i: Int */; val* var1 /* : nullable ListNode[nullable Object] */; val* var_n /* var n: nullable ListNode[nullable Object] */; -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 var5 /* : Bool */; short int var6 /* : Bool */; -val* var7 /* : null */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -val* var9 /* : null */; +val* var_other /* var other: nullable Object */; short int var10 /* : Bool */; short int var11 /* : Bool */; -val* var_other /* var other: nullable Object */; -short int var13 /* : Bool */; -short int var14 /* : Bool */; short int var_ /* var : Bool */; -long var15 /* : Int */; -short int var16 /* : Bool */; +short int var12 /* : Bool */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const char* var_class_name17; short int var18 /* : Bool */; -int cltype19; -int idtype20; -const char* var_class_name21; -short int var22 /* : Bool */; -val* var23 /* : nullable ListNode[nullable Object] */; -val* var25 /* : nullable ListNode[nullable Object] */; -long var26 /* : Int */; -long var27 /* : Int */; -short int var29 /* : Bool */; -int cltype30; -int idtype31; -const char* var_class_name32; -long var33 /* : Int */; +val* var19 /* : nullable ListNode[nullable Object] */; +val* var21 /* : nullable ListNode[nullable Object] */; +long var22 /* : Int */; +short int var24 /* : Bool */; +int cltype25; +int idtype26; +const char* var_class_name27; +long var28 /* : Int */; var_i = p0; var1 = self->attrs[COLOR_standard__list__List___head].val; /* _head on */ var_n = var1; -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)) { +{ /* 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, 410); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534); +fatal_exit(1); } -var6 = var_i < var2; -var3 = var6; -goto RET_LABEL4; -RET_LABEL4:(void)0; +var5 = var_i < 0l; +var2 = var5; +goto RET_LABEL3; +RET_LABEL3:(void)0; } } -if (var3){ -var7 = NULL; -var = var7; +if (var2){ +var = ((val*)NULL); goto RET_LABEL; } else { } for(;;) { -var9 = NULL; if (var_n == NULL) { -var10 = 0; /* is null */ +var7 = 0; /* is null */ } else { -var10 = 1; /* arg is null and recv is not */ +var7 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_n,var9) on */ -var_other = var9; +{ /* Inline kernel#Object#!= (var_n,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var13 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other) /* == on */; +var10 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other); /* == on */ } -var14 = !var13; -var11 = var14; -goto RET_LABEL12; -RET_LABEL12:(void)0; +var11 = !var10; +var8 = var11; +goto RET_LABEL9; +RET_LABEL9:(void)0; } -var10 = var11; +var7 = var8; } -var_ = var10; -if (var10){ -var15 = 0; +var_ = var7; +if (var7){ { -{ /* 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, 412); -show_backtrace(1); -} -var22 = var_i > var15; -var16 = var22; -goto RET_LABEL17; -RET_LABEL17:(void)0; +{ /* Inline kernel#Int#> (var_i,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, 536); +fatal_exit(1); +} +var18 = var_i > 0l; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; } } -var8 = var16; +var6 = var12; } else { -var8 = var_; +var6 = var_; } -if (var8){ +if (var6){ { { /* Inline list#ListNode#next (var_n) on */ -var25 = var_n->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var23 = var25; -RET_LABEL24:(void)0; +var21 = var_n->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var19 = var21; +RET_LABEL20:(void)0; } } -var_n = var23; -var26 = 1; +var_n = var19; { -{ /* Inline kernel#Int#- (var_i,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, 416); -show_backtrace(1); -} -var33 = var_i - var26; -var27 = var33; -goto RET_LABEL28; -RET_LABEL28:(void)0; +{ /* Inline kernel#Int#- (var_i,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var24 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var24)) { +var_class_name27 = type_standard__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540); +fatal_exit(1); } +var28 = var_i - 1l; +var22 = var28; +goto RET_LABEL23; +RET_LABEL23:(void)0; } -var_i = var27; +} +var_i = var22; } else { goto BREAK_label; } @@ -1584,19 +1370,18 @@ val* var_e /* var e: nullable Object */; val* var_after /* var after: nullable ListNode[nullable Object] */; val* var_n /* var n: nullable ListNode[nullable Object] */; short int var7 /* : Bool */; -val* var8 /* : null */; +short int var8 /* : Bool */; short int var9 /* : Bool */; -short int var10 /* : Bool */; val* var_other /* var other: nullable Object */; +short int var11 /* : Bool */; short int var12 /* : Bool */; -short int var13 /* : Bool */; short int var_ /* var : Bool */; -val* var14 /* : nullable Object */; -val* var16 /* : nullable Object */; +val* var13 /* : nullable Object */; +val* var15 /* : nullable Object */; +short int var16 /* : Bool */; short int var17 /* : Bool */; -short int var18 /* : Bool */; -val* var19 /* : nullable ListNode[nullable Object] */; -val* var21 /* : nullable ListNode[nullable Object] */; +val* var18 /* : nullable ListNode[nullable Object] */; +val* var20 /* : nullable ListNode[nullable Object] */; /* Covariant cast for argument 0 (e) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_standard__List___35dE]; @@ -1606,17 +1391,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`", "E", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 234); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 225); +fatal_exit(1); } /* Covariant cast for argument 1 (after) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ @@ -1635,60 +1420,59 @@ var2 = p1->type->type_table[cltype3] == idtype4; if (unlikely(!var2)) { var_class_name6 = p1 == NULL ? "null" : p1->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name6); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 234); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 225); +fatal_exit(1); } var_e = p0; var_after = p1; var_n = var_after; for(;;) { -var8 = NULL; if (var_n == NULL) { -var9 = 0; /* is null */ +var8 = 0; /* is null */ } else { -var9 = 1; /* arg is null and recv is not */ +var8 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_n,var8) on */ -var_other = var8; +{ /* Inline kernel#Object#!= (var_n,((val*)NULL)) on */ +var_other = ((val*)NULL); { -var12 = ((short int (*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other) /* == on */; +var11 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n, var_other); /* == on */ } -var13 = !var12; -var10 = var13; -goto RET_LABEL11; -RET_LABEL11:(void)0; +var12 = !var11; +var9 = var12; +goto RET_LABEL10; +RET_LABEL10:(void)0; } -var9 = var10; +var8 = var9; } -var_ = var9; -if (var9){ +var_ = var8; +if (var8){ { { /* Inline abstract_collection#Container#item (var_n) on */ -var16 = var_n->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ -var14 = var16; -RET_LABEL15:(void)0; +var15 = var_n->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ +var13 = var15; +RET_LABEL14:(void)0; } } -if (var14 == NULL) { -var17 = (var_e != NULL); +if (var13 == NULL) { +var16 = (var_e != NULL); } else { -var18 = ((short int (*)(val* self, val* p0))(var14->class->vft[COLOR_standard__kernel__Object___33d_61d]))(var14, var_e) /* != on */; -var17 = var18; +var17 = ((short int(*)(val* self, val* p0))((((long)var13&3)?class_info[((long)var13&3)]:var13->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var13, var_e); /* != on */ +var16 = var17; } -var7 = var17; +var7 = var16; } else { var7 = var_; } if (var7){ { { /* Inline list#ListNode#next (var_n) on */ -var21 = var_n->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var19 = var21; -RET_LABEL20:(void)0; +var20 = var_n->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var18 = var20; +RET_LABEL19:(void)0; } } -var_n = var19; +var_n = var18; } else { goto BREAK_label; } @@ -1709,63 +1493,57 @@ const char* var_class_name; val* var_node /* var node: ListNode[nullable Object] */; val* var1 /* : nullable ListNode[nullable Object] */; val* var3 /* : nullable ListNode[nullable Object] */; -val* var4 /* : null */; +short int var4 /* : Bool */; short int var5 /* : Bool */; -short int var6 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var8 /* : Bool */; -short int var10 /* : Bool */; -val* var11 /* : nullable ListNode[nullable Object] */; +short int var7 /* : Bool */; +short int var9 /* : Bool */; +val* var10 /* : nullable ListNode[nullable Object] */; +val* var12 /* : nullable ListNode[nullable Object] */; val* var13 /* : nullable ListNode[nullable Object] */; -val* var14 /* : nullable ListNode[nullable Object] */; -val* var16 /* : nullable ListNode[nullable Object] */; -val* var17 /* : null */; -short int var18 /* : Bool */; +val* var15 /* : nullable ListNode[nullable Object] */; +short int var16 /* : Bool */; +short int var17 /* : Bool */; short int var19 /* : Bool */; short int var21 /* : Bool */; -short int var23 /* : Bool */; -val* var24 /* : null */; -val* var25 /* : nullable ListNode[nullable Object] */; -val* var27 /* : nullable ListNode[nullable Object] */; -val* var28 /* : null */; -short int var30 /* : Bool */; -int cltype31; -int idtype32; -const char* var_class_name33; -val* var34 /* : nullable ListNode[nullable Object] */; -val* var36 /* : nullable ListNode[nullable Object] */; -val* var37 /* : null */; +val* var22 /* : nullable ListNode[nullable Object] */; +val* var24 /* : nullable ListNode[nullable Object] */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const char* var_class_name29; +val* var30 /* : nullable ListNode[nullable Object] */; +val* var32 /* : nullable ListNode[nullable Object] */; +short int var33 /* : Bool */; +short int var34 /* : Bool */; +short int var36 /* : Bool */; short int var38 /* : Bool */; -short int var39 /* : Bool */; -short int var41 /* : Bool */; -short int var43 /* : Bool */; +val* var39 /* : nullable ListNode[nullable Object] */; +val* var41 /* : nullable ListNode[nullable Object] */; +val* var42 /* : nullable ListNode[nullable Object] */; val* var44 /* : nullable ListNode[nullable Object] */; -val* var46 /* : nullable ListNode[nullable Object] */; -val* var47 /* : nullable ListNode[nullable Object] */; -val* var49 /* : nullable ListNode[nullable Object] */; -val* var50 /* : null */; -short int var52 /* : Bool */; -int cltype53; -int idtype54; -const char* var_class_name55; -val* var56 /* : nullable ListNode[nullable Object] */; -val* var58 /* : nullable ListNode[nullable Object] */; -val* var59 /* : nullable ListNode[nullable Object] */; -val* var61 /* : nullable ListNode[nullable Object] */; -short int var63 /* : Bool */; -int cltype64; -int idtype65; -const struct type* type_struct66; -const char* var_class_name67; -val* var68 /* : nullable ListNode[nullable Object] */; -val* var70 /* : nullable ListNode[nullable Object] */; -val* var71 /* : nullable ListNode[nullable Object] */; -val* var73 /* : nullable ListNode[nullable Object] */; -short int var75 /* : Bool */; -int cltype76; -int idtype77; -const struct type* type_struct78; -const char* var_class_name79; +short int var46 /* : Bool */; +int cltype47; +int idtype48; +const char* var_class_name49; +val* var50 /* : nullable ListNode[nullable Object] */; +val* var52 /* : nullable ListNode[nullable Object] */; +val* var53 /* : nullable ListNode[nullable Object] */; +val* var55 /* : nullable ListNode[nullable Object] */; +short int var57 /* : Bool */; +int cltype58; +int idtype59; +const struct type* type_struct60; +const char* var_class_name61; +val* var62 /* : nullable ListNode[nullable Object] */; +val* var64 /* : nullable ListNode[nullable Object] */; +val* var65 /* : nullable ListNode[nullable Object] */; +val* var67 /* : nullable ListNode[nullable Object] */; +short int var69 /* : Bool */; +int cltype70; +int idtype71; +const struct type* type_struct72; +const char* var_class_name73; /* Covariant cast for argument 0 (node) isa ListNode[E] */ /* isa ListNode[E] */ type_struct = self->type->resolution_table->types[COLOR_standard__list__ListNode__standard__List___35dE]; @@ -1779,8 +1557,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`", "ListNode[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 242); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 233); +fatal_exit(1); } var_node = p0; { @@ -1790,276 +1568,490 @@ var1 = var3; RET_LABEL2:(void)0; } } -var4 = NULL; if (var1 == NULL) { -var5 = 1; /* is null */ +var4 = 1; /* is null */ } else { -var5 = 0; /* arg is null but recv is not */ +var4 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var1,var4) on */ -var_other = var4; +{ /* Inline kernel#Object#== (var1,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var1,var_other) on */ -var10 = var1 == var_other; -var8 = var10; -goto RET_LABEL9; -RET_LABEL9:(void)0; +var9 = var1 == var_other; +var7 = var9; +goto RET_LABEL8; +RET_LABEL8:(void)0; } } -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; } -var5 = var6; +var4 = var5; } -if (var5){ +if (var4){ { { /* Inline list#ListNode#next (var_node) on */ -var13 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var11 = var13; -RET_LABEL12:(void)0; +var12 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var10 = var12; +RET_LABEL11:(void)0; } } -self->attrs[COLOR_standard__list__List___head].val = var11; /* _head on */ +self->attrs[COLOR_standard__list__List___head].val = var10; /* _head on */ { { /* Inline list#ListNode#next (var_node) on */ -var16 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var14 = var16; -RET_LABEL15:(void)0; +var15 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var13 = var15; +RET_LABEL14:(void)0; } } -var17 = NULL; -if (var14 == NULL) { -var18 = 1; /* is null */ +if (var13 == NULL) { +var16 = 1; /* is null */ } else { -var18 = 0; /* arg is null but recv is not */ +var16 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var14,var17) on */ -var_other = var17; +{ /* Inline kernel#Object#== (var13,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var14,var_other) on */ -var23 = var14 == var_other; -var21 = var23; -goto RET_LABEL22; -RET_LABEL22:(void)0; -} -} +{ /* Inline kernel#Object#is_same_instance (var13,var_other) on */ +var21 = var13 == var_other; var19 = var21; goto RET_LABEL20; RET_LABEL20:(void)0; } -var18 = var19; } -if (var18){ -var24 = NULL; -self->attrs[COLOR_standard__list__List___tail].val = var24; /* _tail on */ +var17 = var19; +goto RET_LABEL18; +RET_LABEL18:(void)0; +} +var16 = var17; +} +if (var16){ +self->attrs[COLOR_standard__list__List___tail].val = ((val*)NULL); /* _tail on */ } else { { { /* Inline list#ListNode#next (var_node) on */ -var27 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var25 = var27; -RET_LABEL26:(void)0; +var24 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var22 = var24; +RET_LABEL23:(void)0; } } -var28 = NULL; -if (var25 == NULL) { +if (var22 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 250); -show_backtrace(1); -} else { -{ /* Inline list#ListNode#prev= (var25,var28) on */ -/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -var30 = 1; /* easy isa nullable ListNode[E]*/ -if (unlikely(!var30)) { -var_class_name33 = var28 == NULL ? "null" : var28->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name33); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); -} -if (unlikely(var25 == NULL)) { +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 241); +fatal_exit(1); +} else { +{ /* Inline list#ListNode#prev= (var22,((val*)NULL)) on */ +/* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */ +/* <((val*)NULL):null> isa nullable ListNode[E] */ +var26 = 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/ +if (unlikely(!var26)) { +var_class_name29 = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name29); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); +} +if (unlikely(var22 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); } -var25->attrs[COLOR_standard__list__ListNode___prev].val = var28; /* _prev on */ -RET_LABEL29:(void)0; +var22->attrs[COLOR_standard__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ +RET_LABEL25:(void)0; } } } } else { { { /* Inline list#ListNode#next (var_node) on */ -var36 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var34 = var36; -RET_LABEL35:(void)0; +var32 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var30 = var32; +RET_LABEL31:(void)0; } } -var37 = NULL; -if (var34 == NULL) { -var38 = 1; /* is null */ +if (var30 == NULL) { +var33 = 1; /* is null */ } else { -var38 = 0; /* arg is null but recv is not */ +var33 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var34,var37) on */ -var_other = var37; +{ /* Inline kernel#Object#== (var30,((val*)NULL)) on */ +var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var34,var_other) on */ -var43 = var34 == var_other; -var41 = var43; -goto RET_LABEL42; -RET_LABEL42:(void)0; +{ /* Inline kernel#Object#is_same_instance (var30,var_other) on */ +var38 = var30 == var_other; +var36 = var38; +goto RET_LABEL37; +RET_LABEL37:(void)0; } } -var39 = var41; -goto RET_LABEL40; -RET_LABEL40:(void)0; +var34 = var36; +goto RET_LABEL35; +RET_LABEL35:(void)0; } -var38 = var39; +var33 = var34; } -if (var38){ +if (var33){ { { /* Inline list#ListNode#prev (var_node) on */ -var46 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ -var44 = var46; -RET_LABEL45:(void)0; +var41 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ +var39 = var41; +RET_LABEL40:(void)0; } } -self->attrs[COLOR_standard__list__List___tail].val = var44; /* _tail on */ +self->attrs[COLOR_standard__list__List___tail].val = var39; /* _tail on */ { { /* Inline list#ListNode#prev (var_node) on */ -var49 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ -var47 = var49; -RET_LABEL48:(void)0; +var44 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ +var42 = var44; +RET_LABEL43:(void)0; } } -var50 = NULL; -if (var47 == NULL) { +if (var42 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 254); -show_backtrace(1); -} else { -{ /* Inline list#ListNode#next= (var47,var50) on */ -/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -var52 = 1; /* easy isa nullable ListNode[E]*/ -if (unlikely(!var52)) { -var_class_name55 = var50 == NULL ? "null" : var50->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name55); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); -} -if (unlikely(var47 == NULL)) { +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 245); +fatal_exit(1); +} else { +{ /* Inline list#ListNode#next= (var42,((val*)NULL)) on */ +/* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */ +/* <((val*)NULL):null> isa nullable ListNode[E] */ +var46 = 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/ +if (unlikely(!var46)) { +var_class_name49 = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name49); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); +} +if (unlikely(var42 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } -var47->attrs[COLOR_standard__list__ListNode___next].val = var50; /* _next on */ -RET_LABEL51:(void)0; +var42->attrs[COLOR_standard__list__ListNode___next].val = ((val*)NULL); /* _next on */ +RET_LABEL45:(void)0; } } } else { { { /* Inline list#ListNode#prev (var_node) on */ -var58 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ -var56 = var58; -RET_LABEL57:(void)0; +var52 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ +var50 = var52; +RET_LABEL51:(void)0; } } { { /* Inline list#ListNode#next (var_node) on */ -var61 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var59 = var61; -RET_LABEL60:(void)0; +var55 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var53 = var55; +RET_LABEL54:(void)0; } } -if (var56 == NULL) { +if (var50 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 256); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 247); +fatal_exit(1); } else { -{ /* Inline list#ListNode#next= (var56,var59) on */ -/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -type_struct66 = var56->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype64 = type_struct66->color; -idtype65 = type_struct66->id; -if(var59 == NULL) { -var63 = 1; +{ /* Inline list#ListNode#next= (var50,var53) on */ +/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct60 = var50->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype58 = type_struct60->color; +idtype59 = type_struct60->id; +if(var53 == NULL) { +var57 = 1; } else { -if(cltype64 >= var59->type->table_size) { -var63 = 0; +if(cltype58 >= var53->type->table_size) { +var57 = 0; } else { -var63 = var59->type->type_table[cltype64] == idtype65; +var57 = var53->type->type_table[cltype58] == idtype59; } } -if (unlikely(!var63)) { -var_class_name67 = var59 == NULL ? "null" : var59->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name67); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +if (unlikely(!var57)) { +var_class_name61 = var53 == NULL ? "null" : var53->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name61); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } -if (unlikely(var56 == NULL)) { +if (unlikely(var50 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } -var56->attrs[COLOR_standard__list__ListNode___next].val = var59; /* _next on */ -RET_LABEL62:(void)0; +var50->attrs[COLOR_standard__list__ListNode___next].val = var53; /* _next on */ +RET_LABEL56:(void)0; } } { { /* Inline list#ListNode#next (var_node) on */ -var70 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ -var68 = var70; -RET_LABEL69:(void)0; +var64 = var_node->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ +var62 = var64; +RET_LABEL63:(void)0; } } { { /* Inline list#ListNode#prev (var_node) on */ -var73 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ -var71 = var73; -RET_LABEL72:(void)0; +var67 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ +var65 = var67; +RET_LABEL66:(void)0; } } -if (var68 == NULL) { +if (var62 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 257); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 248); +fatal_exit(1); } else { -{ /* Inline list#ListNode#prev= (var68,var71) on */ -/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ -/* isa nullable ListNode[E] */ -type_struct78 = var68->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; -cltype76 = type_struct78->color; -idtype77 = type_struct78->id; -if(var71 == NULL) { -var75 = 1; +{ /* Inline list#ListNode#prev= (var62,var65) on */ +/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct72 = var62->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype70 = type_struct72->color; +idtype71 = type_struct72->id; +if(var65 == NULL) { +var69 = 1; } else { -if(cltype76 >= var71->type->table_size) { -var75 = 0; +if(cltype70 >= var65->type->table_size) { +var69 = 0; } else { -var75 = var71->type->type_table[cltype76] == idtype77; +var69 = var65->type->type_table[cltype70] == idtype71; } } -if (unlikely(!var75)) { -var_class_name79 = var71 == NULL ? "null" : var71->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name79); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); +if (unlikely(!var69)) { +var_class_name73 = var65 == NULL ? "null" : var65->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name73); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); } -if (unlikely(var68 == NULL)) { +if (unlikely(var62 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); +} +var62->attrs[COLOR_standard__list__ListNode___prev].val = var65; /* _prev on */ +RET_LABEL68:(void)0; +} +} +} +} +RET_LABEL:; +} +/* method list#List#insert_before for (self: List[nullable Object], nullable Object, ListNode[nullable Object]) */ +void standard___standard__List___insert_before(val* self, val* p0, val* 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 var1 /* : Bool */; +int cltype2; +int idtype3; +const struct type* type_struct4; +const char* var_class_name5; +val* var_element /* var element: nullable Object */; +val* var_node /* var node: ListNode[nullable Object] */; +val* var6 /* : ListNode[nullable Object] */; +val* var_nnode /* var nnode: ListNode[nullable Object] */; +val* var7 /* : nullable ListNode[nullable Object] */; +val* var9 /* : nullable ListNode[nullable Object] */; +val* var_prev /* var prev: nullable ListNode[nullable Object] */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var13 /* : Bool */; +short int var15 /* : Bool */; +short int var17 /* : Bool */; +int cltype18; +int idtype19; +const struct type* type_struct20; +const char* var_class_name21; +short int var23 /* : Bool */; +int cltype24; +int idtype25; +const struct type* type_struct26; +const char* var_class_name27; +short int var29 /* : Bool */; +int cltype30; +int idtype31; +const struct type* type_struct32; +const char* var_class_name33; +short int var35 /* : Bool */; +int cltype36; +int idtype37; +const struct type* type_struct38; +const char* var_class_name39; +/* Covariant cast for argument 0 (element) isa E */ +/* isa E */ +type_struct = self->type->resolution_table->types[COLOR_standard__List___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__list, 252); +fatal_exit(1); +} +/* Covariant cast for argument 1 (node) isa ListNode[E] */ +/* isa ListNode[E] */ +type_struct4 = self->type->resolution_table->types[COLOR_standard__list__ListNode__standard__List___35dE]; +cltype2 = type_struct4->color; +idtype3 = type_struct4->id; +if(cltype2 >= p1->type->table_size) { +var1 = 0; +} else { +var1 = p1->type->type_table[cltype2] == idtype3; +} +if (unlikely(!var1)) { +var_class_name5 = p1 == NULL ? "null" : p1->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ListNode[E]", var_class_name5); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 252); +fatal_exit(1); +} +var_element = p0; +var_node = p1; +var6 = NEW_standard__list__ListNode(self->type->resolution_table->types[COLOR_standard__list__ListNode__standard__List___35dE]); +{ +((void(*)(val* self, val* p0))(var6->class->vft[COLOR_standard__abstract_collection__Container__item_61d]))(var6, var_element); /* item= on */ +} +{ +((void(*)(val* self))(var6->class->vft[COLOR_standard__kernel__Object__init]))(var6); /* init on */ +} +var_nnode = var6; +{ +{ /* Inline list#ListNode#prev (var_node) on */ +var9 = var_node->attrs[COLOR_standard__list__ListNode___prev].val; /* _prev on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +var_prev = var7; +if (var_prev == NULL) { +var10 = 1; /* is null */ +} else { +var10 = 0; /* arg is null but recv is not */ +} +if (0) { +{ /* Inline kernel#Object#== (var_prev,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +{ /* Inline kernel#Object#is_same_instance (var_prev,var_other) on */ +var15 = var_prev == var_other; +var13 = var15; +goto RET_LABEL14; +RET_LABEL14:(void)0; +} +} +var11 = var13; +goto RET_LABEL12; +RET_LABEL12:(void)0; +} +var10 = var11; +} +if (var10){ +self->attrs[COLOR_standard__list__List___head].val = var_nnode; /* _head on */ +} else { +{ +{ /* Inline list#ListNode#next= (var_prev,var_nnode) on */ +/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct20 = var_prev->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype18 = type_struct20->color; +idtype19 = type_struct20->id; +if(cltype18 >= var_nnode->type->table_size) { +var17 = 0; +} else { +var17 = var_nnode->type->type_table[cltype18] == idtype19; +} +if (unlikely(!var17)) { +var_class_name21 = var_nnode == NULL ? "null" : var_nnode->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name21); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); +} +var_prev->attrs[COLOR_standard__list__ListNode___next].val = var_nnode; /* _next on */ +RET_LABEL16:(void)0; +} } -var68->attrs[COLOR_standard__list__ListNode___prev].val = var71; /* _prev on */ -RET_LABEL74:(void)0; } +{ +{ /* Inline list#ListNode#prev= (var_nnode,var_prev) on */ +/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct26 = var_nnode->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype24 = type_struct26->color; +idtype25 = type_struct26->id; +if(var_prev == NULL) { +var23 = 1; +} else { +if(cltype24 >= var_prev->type->table_size) { +var23 = 0; +} else { +var23 = var_prev->type->type_table[cltype24] == idtype25; +} +} +if (unlikely(!var23)) { +var_class_name27 = var_prev == NULL ? "null" : var_prev->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name27); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); +} +var_nnode->attrs[COLOR_standard__list__ListNode___prev].val = var_prev; /* _prev on */ +RET_LABEL22:(void)0; +} +} +{ +{ /* Inline list#ListNode#next= (var_nnode,var_node) on */ +/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct32 = var_nnode->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype30 = type_struct32->color; +idtype31 = type_struct32->id; +if(cltype30 >= var_node->type->table_size) { +var29 = 0; +} else { +var29 = var_node->type->type_table[cltype30] == idtype31; +} +if (unlikely(!var29)) { +var_class_name33 = var_node == NULL ? "null" : var_node->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name33); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); +} +var_nnode->attrs[COLOR_standard__list__ListNode___next].val = var_node; /* _next on */ +RET_LABEL28:(void)0; +} +} +{ +{ /* Inline list#ListNode#prev= (var_node,var_nnode) on */ +/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct38 = var_node->type->resolution_table->types[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE]; +cltype36 = type_struct38->color; +idtype37 = type_struct38->id; +if(cltype36 >= var_nnode->type->table_size) { +var35 = 0; +} else { +var35 = var_nnode->type->type_table[cltype36] == idtype37; +} +if (unlikely(!var35)) { +var_class_name39 = var_nnode == NULL ? "null" : var_nnode->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name39); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); } +var_node->attrs[COLOR_standard__list__ListNode___prev].val = var_nnode; /* _prev on */ +RET_LABEL34:(void)0; } } RET_LABEL:; @@ -2073,14 +2065,14 @@ val* var4 /* : nullable Object */; var1 = self->attrs[COLOR_standard__list__ListIterator___node].val; /* _node on */ if (var1 == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 279); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 270); +fatal_exit(1); } else { { /* Inline abstract_collection#Container#item (var1) on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 232); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309); +fatal_exit(1); } var4 = var1->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on */ var2 = var4; @@ -2096,39 +2088,37 @@ return var; short int standard___standard__ListIterator___standard__abstract_collection__Iterator__is_ok(val* self) { short int var /* : Bool */; val* var1 /* : nullable ListNode[nullable Object] */; -val* var2 /* : null */; +short int var2 /* : Bool */; short int var3 /* : Bool */; -short int var4 /* : Bool */; val* var_other /* var other: nullable Object */; -short int var6 /* : Bool */; +short int var5 /* : Bool */; +short int var7 /* : Bool */; short int var8 /* : Bool */; -short int var9 /* : Bool */; var1 = self->attrs[COLOR_standard__list__ListIterator___node].val; /* _node on */ -var2 = NULL; if (var1 == NULL) { -var3 = 1; /* is null */ +var2 = 1; /* is null */ } else { -var3 = 0; /* arg is null but recv is not */ +var2 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var1,var2) on */ -var_other = var2; +{ /* Inline kernel#Object#== (var1,((val*)NULL)) on */ +var_other = ((val*)NULL); { { /* Inline kernel#Object#is_same_instance (var1,var_other) on */ -var8 = var1 == var_other; -var6 = var8; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var7 = var1 == var_other; +var5 = var7; +goto RET_LABEL6; +RET_LABEL6:(void)0; } } -var4 = var6; -goto RET_LABEL5; -RET_LABEL5:(void)0; +var3 = var5; +goto RET_LABEL4; +RET_LABEL4:(void)0; } -var3 = var4; +var2 = var3; } -var9 = !var3; -var = var9; +var8 = !var2; +var = var8; goto RET_LABEL; RET_LABEL:; return var; @@ -2141,23 +2131,22 @@ val* var3 /* : nullable ListNode[nullable Object] */; val* var_ /* var : ListIterator[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 */; var = self->attrs[COLOR_standard__list__ListIterator___node].val; /* _node on */ if (var == NULL) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 288); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 279); +fatal_exit(1); } else { { /* Inline list#ListNode#next (var) on */ if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } var3 = var->attrs[COLOR_standard__list__ListNode___next].val; /* _next on */ var1 = var3; @@ -2167,25 +2156,24 @@ RET_LABEL2:(void)0; self->attrs[COLOR_standard__list__ListIterator___node].val = var1; /* _node on */ var_ = self; var4 = var_->attrs[COLOR_standard__list__ListIterator___index].l; /* _index 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, 413); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537); +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__list__ListIterator___index].l = var6; /* _index on */ +var_->attrs[COLOR_standard__list__ListIterator___index].l = var5; /* _index on */ RET_LABEL:; } /* method list#ListIterator#init for (self: ListIterator[nullable Object]) */ @@ -2195,8 +2183,8 @@ val* var1 /* : nullable ListNode[nullable Object] */; var = self->attrs[COLOR_standard__list__ListIterator___list].val; /* _list on */ if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _list"); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 295); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 286); +fatal_exit(1); } var1 = var->attrs[COLOR_standard__list__List___head].val; /* _head on */ self->attrs[COLOR_standard__list__ListIterator___node].val = var1; /* _node on */ @@ -2222,8 +2210,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`", "List[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 298); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 289); +fatal_exit(1); } self->attrs[COLOR_standard__list__ListIterator___list].val = p0; /* _list on */ RET_LABEL:; @@ -2270,8 +2258,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`", "nullable ListNode[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 341); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 332); +fatal_exit(1); } self->attrs[COLOR_standard__list__ListNode___next].val = p0; /* _next on */ RET_LABEL:; @@ -2309,8 +2297,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`", "nullable ListNode[E]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 344); -show_backtrace(1); +PRINT_ERROR(" (%s:%d)\n", FILE_standard__list, 335); +fatal_exit(1); } self->attrs[COLOR_standard__list__ListNode___prev].val = p0; /* _prev on */ RET_LABEL:;