X-Git-Url: http://nitlanguage.org diff --git a/c_src/core__list.sep.1.c b/c_src/core__list.sep.1.c index 4b90d71..8c4f82a 100644 --- a/c_src/core__list.sep.1.c +++ b/c_src/core__list.sep.1.c @@ -1,5 +1,5 @@ #include "core__list.sep.0.h" -/* method list#List#[] for (self: List[nullable Object], Int): nullable Object */ +/* method list$List$[] for (self: List[nullable Object], Int): nullable Object */ val* core___core__List___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) { val* var /* : nullable Object */; long var_index /* var index: Int */; @@ -10,18 +10,17 @@ var_index = p0; { var1 = core___core__List___get_node(self, var_index); } -if (var1 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 24); -fatal_exit(1); -} else { -{ /* Inline abstract_collection#Ref#item (var1) on */ if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 334); +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 24); fatal_exit(1); } -var4 = var1->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ +{ +{ /* Inline abstract_collection$Ref$item (var1) on */ +var4 = var1->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ var2 = var4; RET_LABEL3:(void)0; } @@ -31,7 +30,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#[]= for (self: List[nullable Object], Int, nullable Object) */ +/* method list$List$[]= for (self: List[nullable Object], Int, nullable Object) */ void core___core__List___core__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, val* p1) { short int var /* : Bool */; int cltype; @@ -74,12 +73,16 @@ var_item = p1; { var1 = core___core__List___get_node(self, var_index); } -if (var1 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); +if (unlikely(var1 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 26); fatal_exit(1); -} else { -{ /* Inline abstract_collection#Ref#item= (var1,var_item) on */ +} +{ +{ /* Inline abstract_collection$Ref$item= (var1,var_item) on */ /* Covariant cast for argument 0 (item) isa E */ /* isa E */ type_struct6 = var1->type->resolution_table->types[COLOR_core__Ref___35dE]; @@ -98,39 +101,33 @@ var3 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_t if (unlikely(!var3)) { 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_core__abstract_collection, 334); -fatal_exit(1); -} -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 334); +PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 340); fatal_exit(1); } -var1->attrs[COLOR_core__abstract_collection__Ref___item].val = var_item; /* _item on */ +var1->attrs[COLOR_core__abstract_collection__Ref___item].val = var_item; /* _item on */ RET_LABEL2:(void)0; } } RET_LABEL:; } -/* method list#List#first for (self: List[nullable Object]): nullable Object */ +/* method list$List$first for (self: List[nullable Object]): nullable Object */ val* core___core__List___core__abstract_collection__Collection__first(val* self) { val* var /* : nullable Object */; val* var1 /* : nullable ListNode[nullable Object] */; val* var2 /* : nullable Object */; val* var4 /* : nullable Object */; var1 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ -if (var1 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 29); -fatal_exit(1); -} else { -{ /* Inline abstract_collection#Ref#item (var1) on */ if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 334); +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 29); fatal_exit(1); } -var4 = var1->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ +{ +{ /* Inline abstract_collection$Ref$item (var1) on */ +var4 = var1->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ var2 = var4; RET_LABEL3:(void)0; } @@ -140,7 +137,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#first= for (self: List[nullable Object], nullable Object) */ +/* method list$List$first= for (self: List[nullable Object], nullable Object) */ void core___core__List___core__abstract_collection__Sequence__first_61d(val* self, val* p0) { short int var /* : Bool */; int cltype; @@ -179,12 +176,16 @@ fatal_exit(1); } var_e = p0; var1 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ -if (var1 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); +if (unlikely(var1 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 32); fatal_exit(1); -} else { -{ /* Inline abstract_collection#Ref#item= (var1,var_e) on */ +} +{ +{ /* Inline abstract_collection$Ref$item= (var1,var_e) on */ /* Covariant cast for argument 0 (item) isa E */ /* isa E */ type_struct6 = var1->type->resolution_table->types[COLOR_core__Ref___35dE]; @@ -203,39 +204,33 @@ var3 = (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->type_table[clty if (unlikely(!var3)) { 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_core__abstract_collection, 334); -fatal_exit(1); -} -if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 334); +PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 340); fatal_exit(1); } -var1->attrs[COLOR_core__abstract_collection__Ref___item].val = var_e; /* _item on */ +var1->attrs[COLOR_core__abstract_collection__Ref___item].val = var_e; /* _item on */ RET_LABEL2:(void)0; } } RET_LABEL:; } -/* method list#List#last for (self: List[nullable Object]): nullable Object */ +/* method list$List$last for (self: List[nullable Object]): nullable Object */ val* core___core__List___core__abstract_collection__SequenceRead__last(val* self) { val* var /* : nullable Object */; val* var1 /* : nullable ListNode[nullable Object] */; val* var2 /* : nullable Object */; val* var4 /* : nullable Object */; var1 = self->attrs[COLOR_core__list__List___tail].val; /* _tail on */ -if (var1 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 35); -fatal_exit(1); -} else { -{ /* Inline abstract_collection#Ref#item (var1) on */ if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 334); +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 35); fatal_exit(1); } -var4 = var1->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ +{ +{ /* Inline abstract_collection$Ref$item (var1) on */ +var4 = var1->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ var2 = var4; RET_LABEL3:(void)0; } @@ -245,7 +240,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#is_empty for (self: List[nullable Object]): Bool */ +/* method list$List$is_empty for (self: List[nullable Object]): Bool */ short int core___core__List___core__abstract_collection__Collection__is_empty(val* self) { short int var /* : Bool */; val* var1 /* : nullable ListNode[nullable Object] */; @@ -261,10 +256,10 @@ var2 = 1; /* is null */ var2 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var1,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var1,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var1,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var1,var_other) on */ var7 = var1 == var_other; var5 = var7; goto RET_LABEL6; @@ -282,7 +277,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#length for (self: List[nullable Object]): Int */ +/* method list$List$length for (self: List[nullable Object]): Int */ long core___core__List___core__abstract_collection__Collection__length(val* self) { long var /* : Int */; long var1 /* : Int */; @@ -291,12 +286,12 @@ var = var1; RET_LABEL:; return var; } -/* method list#List#length= for (self: List[nullable Object], Int) */ +/* method list$List$length= for (self: List[nullable Object], Int) */ void core___core__List___length_61d(val* self, long p0) { self->attrs[COLOR_core__list__List___length].l = p0; /* _length on */ RET_LABEL:; } -/* method list#List#has for (self: List[nullable Object], nullable Object): Bool */ +/* method list$List$has for (self: List[nullable Object], nullable Object): Bool */ short int core___core__List___core__abstract_collection__Collection__has(val* self, val* p0) { short int var /* : Bool */; val* var_e /* var e: nullable Object */; @@ -344,7 +339,7 @@ var4 = 0; /* is null */ var4 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var3,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var3,((val*)NULL)) on */ var_other = ((val*)NULL); { var7 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, var_other); /* == on */ @@ -361,7 +356,107 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#push for (self: List[nullable Object], nullable Object) */ +/* method list$List$count for (self: List[nullable Object], nullable Object): Int */ +long core___core__List___core__abstract_collection__Collection__count(val* self, val* p0) { +long var /* : Int */; +val* var_e /* var e: nullable Object */; +long var_nb /* var nb: Int */; +val* var1 /* : nullable ListNode[nullable Object] */; +val* var_node /* var node: nullable ListNode[nullable Object] */; +short int var2 /* : Bool */; +short int var3 /* : Bool */; +val* var_other /* var other: nullable Object */; +short int var5 /* : Bool */; +short int var6 /* : Bool */; +val* var7 /* : nullable Object */; +val* var9 /* : nullable Object */; +short int var10 /* : Bool */; +short int var11 /* : Bool */; +long var12 /* : Int */; +short int var14 /* : Bool */; +int cltype; +int idtype; +const char* var_class_name; +long var15 /* : Int */; +val* var16 /* : nullable ListNode[nullable Object] */; +val* var18 /* : nullable ListNode[nullable Object] */; +var_e = p0; +var_nb = 0l; +var1 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ +var_node = var1; +for(;;) { +if (var_node == NULL) { +var2 = 0; /* is null */ +} else { +var2 = 1; /* arg is null and recv is not */ +} +if (0) { +{ /* Inline kernel$Object$!= (var_node,((val*)NULL)) on */ +var_other = ((val*)NULL); +{ +var5 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on */ +} +var6 = !var5; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +var2 = var3; +} +if (var2){ +{ +{ /* Inline abstract_collection$Ref$item (var_node) on */ +var9 = var_node->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ +var7 = var9; +RET_LABEL8:(void)0; +} +} +if (var7 == NULL) { +var10 = (var_e != NULL); +} else { +var11 = ((short int(*)(val* self, val* p0))((((long)var7&3)?class_info[((long)var7&3)]:var7->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var7, var_e); /* != on */ +var10 = var11; +} +if (var10){ +{ +{ /* Inline kernel$Int$+ (var_nb,1l) on */ +/* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ +/* <1l:Int> isa OTHER */ +var14 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var14)) { +var_class_name = type_core__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728); +fatal_exit(1); +} +var15 = var_nb + 1l; +var12 = var15; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} +} +var_nb = var12; +} else { +} +{ +{ /* Inline list$ListNode$next (var_node) on */ +var18 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ +var16 = var18; +RET_LABEL17:(void)0; +} +} +var_node = var16; +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +var = var_nb; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method list$List$push for (self: List[nullable Object], nullable Object) */ void core___core__List___core__abstract_collection__Sequence__push(val* self, val* p0) { short int var /* : Bool */; int cltype; @@ -373,32 +468,31 @@ 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* var_tail /* var tail: nullable ListNode[nullable Object] */; 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 /* : 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; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +const struct type* type_struct13; +const char* var_class_name14; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +const struct type* type_struct19; +const char* var_class_name20; val* var_ /* var : List[nullable Object] */; +long var21 /* : Int */; long var23 /* : Int */; -long var25 /* : Int */; -long var26 /* : Int */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -const char* var_class_name31; -long var32 /* : Int */; +long var24 /* : Int */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const char* var_class_name29; +long var30 /* : Int */; /* Covariant cast for argument 0 (e) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_core__List___35dE]; @@ -430,17 +524,18 @@ var1 = NEW_core__list__ListNode(self->type->resolution_table->types[COLOR_core__ } var_node = var1; var2 = self->attrs[COLOR_core__list__List___tail].val; /* _tail on */ -if (var2 == NULL) { +var_tail = var2; +if (var_tail == NULL) { var3 = 1; /* is null */ } else { var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var2,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_tail,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var2,var_other) on */ -var8 = var2 == var_other; +{ /* Inline kernel$Object$is_same_instance (var_tail,var_other) on */ +var8 = var_tail == var_other; var6 = var8; goto RET_LABEL7; RET_LABEL7:(void)0; @@ -455,101 +550,86 @@ var3 = var4; if (var3){ self->attrs[COLOR_core__list__List___head].val = var_node; /* _head on */ } else { -var9 = self->attrs[COLOR_core__list__List___tail].val; /* _tail on */ -if (var9 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 93); -fatal_exit(1); -} else { -{ /* Inline list#ListNode#next= (var9,var_node) on */ +{ +{ /* Inline list$ListNode$next= (var_tail,var_node) on */ /* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ -type_struct14 = var9->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; -cltype12 = type_struct14->color; -idtype13 = type_struct14->id; -if(cltype12 >= var_node->type->table_size) { -var11 = 0; +type_struct13 = var_tail->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; +cltype11 = type_struct13->color; +idtype12 = type_struct13->id; +if(cltype11 >= var_node->type->table_size) { +var10 = 0; } else { -var11 = var_node->type->type_table[cltype12] == idtype13; +var10 = var_node->type->type_table[cltype11] == idtype12; } -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_core__list, 330); +if (unlikely(!var10)) { +var_class_name14 = var_node == NULL ? "null" : var_node->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } -if (unlikely(var9 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); -fatal_exit(1); -} -var9->attrs[COLOR_core__list__ListNode___next].val = var_node; /* _next on */ -RET_LABEL10:(void)0; +var_tail->attrs[COLOR_core__list__ListNode___next].val = var_node; /* _next on */ +RET_LABEL9:(void)0; } } -var16 = self->attrs[COLOR_core__list__List___tail].val; /* _tail on */ { -{ /* 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__core__list__ListNode__core__list__ListNode___35dE]; -cltype19 = type_struct21->color; -idtype20 = type_struct21->id; -if(var16 == NULL) { -var18 = 1; -} else { -if(cltype19 >= var16->type->table_size) { -var18 = 0; +{ /* Inline list$ListNode$prev= (var_node,var_tail) on */ +/* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct19 = var_node->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; +cltype17 = type_struct19->color; +idtype18 = type_struct19->id; +if(cltype17 >= var_tail->type->table_size) { +var16 = 0; } else { -var18 = var16->type->type_table[cltype19] == idtype20; -} +var16 = var_tail->type->type_table[cltype17] == idtype18; } -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_core__list, 333); +if (unlikely(!var16)) { +var_class_name20 = var_tail == NULL ? "null" : var_tail->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name20); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } -var_node->attrs[COLOR_core__list__ListNode___prev].val = var16; /* _prev on */ -RET_LABEL17:(void)0; +var_node->attrs[COLOR_core__list__ListNode___prev].val = var_tail; /* _prev on */ +RET_LABEL15:(void)0; } } } self->attrs[COLOR_core__list__List___tail].val = var_node; /* _tail on */ var_ = self; { -{ /* Inline list#List#length (var_) on */ -var25 = var_->attrs[COLOR_core__list__List___length].l; /* _length on */ -var23 = var25; -RET_LABEL24:(void)0; +{ /* Inline list$List$length (var_) on */ +var23 = var_->attrs[COLOR_core__list__List___length].l; /* _length on */ +var21 = var23; +RET_LABEL22:(void)0; } } { -{ /* Inline kernel#Int#+ (var23,1l) on */ +{ /* Inline kernel$Int$+ (var21,1l) on */ /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ /* <1l:Int> isa OTHER */ -var28 = 1; /* easy <1l:Int> isa OTHER*/ -if (unlikely(!var28)) { -var_class_name31 = type_core__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); +var26 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var26)) { +var_class_name29 = type_core__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728); fatal_exit(1); } -var32 = var23 + 1l; -var26 = var32; -goto RET_LABEL27; -RET_LABEL27:(void)0; +var30 = var21 + 1l; +var24 = var30; +goto RET_LABEL25; +RET_LABEL25:(void)0; } } { -{ /* Inline list#List#length= (var_,var26) on */ -var_->attrs[COLOR_core__list__List___length].l = var26; /* _length on */ -RET_LABEL33:(void)0; +{ /* Inline list$List$length= (var_,var24) on */ +var_->attrs[COLOR_core__list__List___length].l = var24; /* _length on */ +RET_LABEL31:(void)0; } } RET_LABEL:; } -/* method list#List#unshift for (self: List[nullable Object], nullable Object) */ +/* method list$List$unshift for (self: List[nullable Object], nullable Object) */ void core___core__List___core__abstract_collection__Sequence__unshift(val* self, val* p0) { short int var /* : Bool */; int cltype; @@ -561,32 +641,31 @@ 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* var_head /* var head: nullable ListNode[nullable Object] */; 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 /* : 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; +short int var10 /* : Bool */; +int cltype11; +int idtype12; +const struct type* type_struct13; +const char* var_class_name14; +short int var16 /* : Bool */; +int cltype17; +int idtype18; +const struct type* type_struct19; +const char* var_class_name20; val* var_ /* var : List[nullable Object] */; +long var21 /* : Int */; long var23 /* : Int */; -long var25 /* : Int */; -long var26 /* : Int */; -short int var28 /* : Bool */; -int cltype29; -int idtype30; -const char* var_class_name31; -long var32 /* : Int */; +long var24 /* : Int */; +short int var26 /* : Bool */; +int cltype27; +int idtype28; +const char* var_class_name29; +long var30 /* : Int */; /* Covariant cast for argument 0 (e) isa E */ /* isa E */ type_struct = self->type->resolution_table->types[COLOR_core__List___35dE]; @@ -605,7 +684,7 @@ var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idt 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_core__list, 100); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 101); fatal_exit(1); } var_e = p0; @@ -618,17 +697,18 @@ var1 = NEW_core__list__ListNode(self->type->resolution_table->types[COLOR_core__ } var_node = var1; var2 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ -if (var2 == NULL) { +var_head = var2; +if (var_head == NULL) { var3 = 1; /* is null */ } else { var3 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var2,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_head,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var2,var_other) on */ -var8 = var2 == var_other; +{ /* Inline kernel$Object$is_same_instance (var_head,var_other) on */ +var8 = var_head == var_other; var6 = var8; goto RET_LABEL7; RET_LABEL7:(void)0; @@ -643,101 +723,86 @@ var3 = var4; if (var3){ self->attrs[COLOR_core__list__List___tail].val = var_node; /* _tail on */ } else { -var9 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ { -{ /* 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__core__list__ListNode__core__list__ListNode___35dE]; -cltype12 = type_struct14->color; -idtype13 = type_struct14->id; -if(var9 == NULL) { -var11 = 1; -} else { -if(cltype12 >= var9->type->table_size) { -var11 = 0; +{ /* Inline list$ListNode$next= (var_node,var_head) on */ +/* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ +/* isa nullable ListNode[E] */ +type_struct13 = var_node->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; +cltype11 = type_struct13->color; +idtype12 = type_struct13->id; +if(cltype11 >= var_head->type->table_size) { +var10 = 0; } else { -var11 = var9->type->type_table[cltype12] == idtype13; +var10 = var_head->type->type_table[cltype11] == idtype12; } -} -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_core__list, 330); +if (unlikely(!var10)) { +var_class_name14 = var_head == NULL ? "null" : var_head->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name14); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } -var_node->attrs[COLOR_core__list__ListNode___next].val = var9; /* _next on */ -RET_LABEL10:(void)0; +var_node->attrs[COLOR_core__list__ListNode___next].val = var_head; /* _next on */ +RET_LABEL9:(void)0; } } -var16 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ -if (var16 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 108); -fatal_exit(1); -} else { -{ /* Inline list#ListNode#prev= (var16,var_node) on */ +{ +{ /* Inline list$ListNode$prev= (var_head,var_node) on */ /* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ -type_struct21 = var16->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; -cltype19 = type_struct21->color; -idtype20 = type_struct21->id; -if(cltype19 >= var_node->type->table_size) { -var18 = 0; -} else { -var18 = var_node->type->type_table[cltype19] == idtype20; -} -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_core__list, 333); -fatal_exit(1); +type_struct19 = var_head->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; +cltype17 = type_struct19->color; +idtype18 = type_struct19->id; +if(cltype17 >= var_node->type->table_size) { +var16 = 0; +} else { +var16 = var_node->type->type_table[cltype17] == idtype18; } -if (unlikely(var16 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); +if (unlikely(!var16)) { +var_class_name20 = var_node == NULL ? "null" : var_node->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name20); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } -var16->attrs[COLOR_core__list__ListNode___prev].val = var_node; /* _prev on */ -RET_LABEL17:(void)0; +var_head->attrs[COLOR_core__list__ListNode___prev].val = var_node; /* _prev on */ +RET_LABEL15:(void)0; } } } self->attrs[COLOR_core__list__List___head].val = var_node; /* _head on */ var_ = self; { -{ /* Inline list#List#length (var_) on */ -var25 = var_->attrs[COLOR_core__list__List___length].l; /* _length on */ -var23 = var25; -RET_LABEL24:(void)0; +{ /* Inline list$List$length (var_) on */ +var23 = var_->attrs[COLOR_core__list__List___length].l; /* _length on */ +var21 = var23; +RET_LABEL22:(void)0; } } { -{ /* Inline kernel#Int#+ (var23,1l) on */ +{ /* Inline kernel$Int$+ (var21,1l) on */ /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ /* <1l:Int> isa OTHER */ -var28 = 1; /* easy <1l:Int> isa OTHER*/ -if (unlikely(!var28)) { -var_class_name31 = type_core__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); +var26 = 1; /* easy <1l:Int> isa OTHER*/ +if (unlikely(!var26)) { +var_class_name29 = type_core__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728); fatal_exit(1); } -var32 = var23 + 1l; -var26 = var32; -goto RET_LABEL27; -RET_LABEL27:(void)0; +var30 = var21 + 1l; +var24 = var30; +goto RET_LABEL25; +RET_LABEL25:(void)0; } } { -{ /* Inline list#List#length= (var_,var26) on */ -var_->attrs[COLOR_core__list__List___length].l = var26; /* _length on */ -RET_LABEL33:(void)0; +{ /* Inline list$List$length= (var_,var24) on */ +var_->attrs[COLOR_core__list__List___length].l = var24; /* _length on */ +RET_LABEL31:(void)0; } } RET_LABEL:; } -/* method list#List#insert for (self: List[nullable Object], nullable Object, Int) */ +/* method list$List$insert for (self: List[nullable Object], nullable Object, Int) */ void core___core__List___core__abstract_collection__Sequence__insert(val* self, val* p0, long p1) { short int var /* : Bool */; int cltype; @@ -772,7 +837,7 @@ var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idt 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_core__list, 114); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 116); fatal_exit(1); } var_e = p0; @@ -787,10 +852,10 @@ var2 = 1; /* is null */ var2 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_node,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_node,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_node,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var_node,var_other) on */ var7 = var_node == var_other; var5 = var7; goto RET_LABEL6; @@ -805,21 +870,21 @@ var2 = var3; } if (var2){ { -core___core__List___core__abstract_collection__Sequence__push(self, var_e); /* Direct call list#List#push on */ +core___core__List___core__abstract_collection__Sequence__push(self, var_e); /* Direct call list$List$push on */ } goto RET_LABEL; } else { } { -core___core__List___insert_before(self, var_e, var_node); /* Direct call list#List#insert_before on */ +core___core__List___insert_before(self, var_e, var_node); /* Direct call list$List$insert_before on */ } RET_LABEL:; } -/* method list#List#pop for (self: List[nullable Object]): nullable Object */ +/* method list$List$pop for (self: List[nullable Object]): nullable Object */ val* core___core__List___core__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* var_node /* var node: ListNode[nullable Object] */; val* var2 /* : nullable ListNode[nullable Object] */; val* var4 /* : nullable ListNode[nullable Object] */; short int var6 /* : Bool */; @@ -849,45 +914,35 @@ long var29 /* : Int */; val* var31 /* : nullable Object */; val* var33 /* : nullable Object */; var1 = self->attrs[COLOR_core__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_core__list, 147); -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_core__list, 333); +if (unlikely(var1 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 149); fatal_exit(1); } -var4 = var_node->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ +var_node = var1; +{ +{ /* Inline list$ListNode$prev (var_node) on */ +var4 = var_node->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ var2 = var4; RET_LABEL3:(void)0; } } self->attrs[COLOR_core__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_core__list, 148); -fatal_exit(1); -} else { -{ /* Inline list#ListNode#prev= (var_node,((val*)NULL)) on */ +{ +{ /* 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_core__list, 333); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } -if (unlikely(var_node == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); -fatal_exit(1); -} -var_node->attrs[COLOR_core__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ +var_node->attrs[COLOR_core__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ RET_LABEL5:(void)0; } } @@ -898,10 +953,10 @@ var8 = 1; /* is null */ var8 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var7,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var7,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var7,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var7,var_other) on */ var13 = var7 == var_other; var11 = var13; goto RET_LABEL12; @@ -918,48 +973,47 @@ if (var8){ self->attrs[COLOR_core__list__List___head].val = ((val*)NULL); /* _head on */ } else { var14 = self->attrs[COLOR_core__list__List___tail].val; /* _tail on */ -if (var14 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 152); +if (unlikely(var14 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 155); fatal_exit(1); -} else { -{ /* Inline list#ListNode#next= (var14,((val*)NULL)) on */ +} +{ +{ /* 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_core__list, 330); -fatal_exit(1); -} -if (unlikely(var14 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } -var14->attrs[COLOR_core__list__ListNode___next].val = ((val*)NULL); /* _next on */ +var14->attrs[COLOR_core__list__ListNode___next].val = ((val*)NULL); /* _next on */ RET_LABEL15:(void)0; } } } var_ = self; { -{ /* Inline list#List#length (var_) on */ +{ /* Inline list$List$length (var_) on */ var22 = var_->attrs[COLOR_core__list__List___length].l; /* _length on */ var20 = var22; RET_LABEL21:(void)0; } } { -{ /* Inline kernel#Int#- (var20,1l) on */ +{ /* Inline kernel$Int$- (var20,1l) on */ /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ /* <1l:Int> isa OTHER */ var25 = 1; /* easy <1l:Int> isa OTHER*/ if (unlikely(!var25)) { var_class_name28 = type_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); fatal_exit(1); } var29 = var20 - 1l; @@ -969,23 +1023,14 @@ RET_LABEL24:(void)0; } } { -{ /* Inline list#List#length= (var_,var23) on */ +{ /* Inline list$List$length= (var_,var23) on */ var_->attrs[COLOR_core__list__List___length].l = var23; /* _length on */ RET_LABEL30:(void)0; } } -if (var_node == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 155); -fatal_exit(1); -} else { -{ /* Inline abstract_collection#Ref#item (var_node) on */ -if (unlikely(var_node == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 334); -fatal_exit(1); -} -var33 = var_node->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ +{ +{ /* Inline abstract_collection$Ref$item (var_node) on */ +var33 = var_node->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ var31 = var33; RET_LABEL32:(void)0; } @@ -995,11 +1040,11 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#shift for (self: List[nullable Object]): nullable Object */ +/* method list$List$shift for (self: List[nullable Object]): nullable Object */ val* core___core__List___core__abstract_collection__Sequence__shift(val* self) { val* var /* : nullable Object */; val* var1 /* : nullable ListNode[nullable Object] */; -val* var_node /* var node: nullable ListNode[nullable Object] */; +val* var_node /* var node: ListNode[nullable Object] */; val* var2 /* : nullable ListNode[nullable Object] */; val* var4 /* : nullable ListNode[nullable Object] */; short int var6 /* : Bool */; @@ -1029,45 +1074,35 @@ long var29 /* : Int */; val* var31 /* : nullable Object */; val* var33 /* : nullable Object */; var1 = self->attrs[COLOR_core__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_core__list, 162); -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_core__list, 330); +if (unlikely(var1 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 164); fatal_exit(1); } -var4 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ +var_node = var1; +{ +{ /* Inline list$ListNode$next (var_node) on */ +var4 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var2 = var4; RET_LABEL3:(void)0; } } self->attrs[COLOR_core__list__List___head].val = var2; /* _head on */ -if (var_node == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 163); -fatal_exit(1); -} else { -{ /* Inline list#ListNode#next= (var_node,((val*)NULL)) on */ +{ +{ /* 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_core__list, 330); -fatal_exit(1); -} -if (unlikely(var_node == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } -var_node->attrs[COLOR_core__list__ListNode___next].val = ((val*)NULL); /* _next on */ +var_node->attrs[COLOR_core__list__ListNode___next].val = ((val*)NULL); /* _next on */ RET_LABEL5:(void)0; } } @@ -1078,10 +1113,10 @@ var8 = 1; /* is null */ var8 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var7,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var7,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var7,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var7,var_other) on */ var13 = var7 == var_other; var11 = var13; goto RET_LABEL12; @@ -1098,48 +1133,47 @@ if (var8){ self->attrs[COLOR_core__list__List___tail].val = ((val*)NULL); /* _tail on */ } else { var14 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ -if (var14 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 167); +if (unlikely(var14 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 170); fatal_exit(1); -} else { -{ /* Inline list#ListNode#prev= (var14,((val*)NULL)) on */ +} +{ +{ /* 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_core__list, 333); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } -if (unlikely(var14 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); -fatal_exit(1); -} -var14->attrs[COLOR_core__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ +var14->attrs[COLOR_core__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ RET_LABEL15:(void)0; } } } var_ = self; { -{ /* Inline list#List#length (var_) on */ +{ /* Inline list$List$length (var_) on */ var22 = var_->attrs[COLOR_core__list__List___length].l; /* _length on */ var20 = var22; RET_LABEL21:(void)0; } } { -{ /* Inline kernel#Int#- (var20,1l) on */ +{ /* Inline kernel$Int$- (var20,1l) on */ /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ /* <1l:Int> isa OTHER */ var25 = 1; /* easy <1l:Int> isa OTHER*/ if (unlikely(!var25)) { var_class_name28 = type_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); fatal_exit(1); } var29 = var20 - 1l; @@ -1149,23 +1183,14 @@ RET_LABEL24:(void)0; } } { -{ /* Inline list#List#length= (var_,var23) on */ +{ /* Inline list$List$length= (var_,var23) on */ var_->attrs[COLOR_core__list__List___length].l = var23; /* _length on */ RET_LABEL30:(void)0; } } -if (var_node == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 170); -fatal_exit(1); -} else { -{ /* Inline abstract_collection#Ref#item (var_node) on */ -if (unlikely(var_node == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 334); -fatal_exit(1); -} -var33 = var_node->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ +{ +{ /* Inline abstract_collection$Ref$item (var_node) on */ +var33 = var_node->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ var31 = var33; RET_LABEL32:(void)0; } @@ -1175,7 +1200,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#remove for (self: List[nullable Object], nullable Object) */ +/* method list$List$remove for (self: List[nullable Object], nullable Object) */ void core___core__List___core__abstract_collection__RemovableCollection__remove(val* self, val* p0) { val* var_e /* var e: nullable Object */; short int var /* : Bool */; @@ -1210,7 +1235,7 @@ var = (((long)var_e&3)?type_info[((long)var_e&3)]:var_e->type)->type_table[cltyp if (unlikely(!var)) { 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_core__list, 175); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 178); fatal_exit(1); } var1 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ @@ -1224,7 +1249,7 @@ var3 = 0; /* is null */ var3 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_node,((val*)NULL)) on */ var_other = ((val*)NULL); { var6 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on */ @@ -1238,13 +1263,13 @@ var3 = var4; } if (var3){ { -core___core__List___remove_node(self, var_node); /* Direct call list#List#remove_node on */ +core___core__List___remove_node(self, var_node); /* Direct call list$List$remove_node on */ } } else { } RET_LABEL:; } -/* method list#List#remove_at for (self: List[nullable Object], Int) */ +/* method list$List$remove_at for (self: List[nullable Object], Int) */ void core___core__List___core__abstract_collection__Sequence__remove_at(val* self, long p0) { long var_i /* var i: Int */; val* var /* : nullable ListNode[nullable Object] */; @@ -1265,7 +1290,7 @@ var1 = 0; /* is null */ var1 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_node,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_node,((val*)NULL)) on */ var_other = ((val*)NULL); { var4 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on */ @@ -1279,19 +1304,25 @@ var1 = var2; } if (var1){ { -core___core__List___remove_node(self, var_node); /* Direct call list#List#remove_node on */ +core___core__List___remove_node(self, var_node); /* Direct call list$List$remove_node on */ } } else { } RET_LABEL:; } -/* method list#List#clear for (self: List[nullable Object]) */ +/* method list$List$clear for (self: List[nullable Object]) */ void core___core__List___core__abstract_collection__RemovableCollection__clear(val* self) { self->attrs[COLOR_core__list__List___head].val = ((val*)NULL); /* _head on */ self->attrs[COLOR_core__list__List___tail].val = ((val*)NULL); /* _tail on */ +{ +{ /* Inline list$List$length= (self,0l) on */ +self->attrs[COLOR_core__list__List___length].l = 0l; /* _length on */ +RET_LABEL1:(void)0; +} +} RET_LABEL:; } -/* method list#List#iterator for (self: List[nullable Object]): ListIterator[nullable Object] */ +/* method list$List$iterator for (self: List[nullable Object]): ListIterator[nullable Object] */ val* core___core__List___core__abstract_collection__Collection__iterator(val* self) { val* var /* : ListIterator[nullable Object] */; val* var1 /* : ListIterator[nullable Object] */; @@ -1307,7 +1338,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#reverse_iterator for (self: List[nullable Object]): ListIterator[nullable Object] */ +/* method list$List$reverse_iterator for (self: List[nullable Object]): ListIterator[nullable Object] */ val* core___core__List___core__abstract_collection__SequenceRead__reverse_iterator(val* self) { val* var /* : ListIterator[nullable Object] */; val* var1 /* : ListReverseIterator[nullable Object] */; @@ -1323,14 +1354,14 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#init for (self: List[nullable Object]) */ +/* method list$List$init for (self: List[nullable Object]) */ void core___core__List___core__kernel__Object__init(val* self) { { ((void(*)(val* self))(self->class->vft[COLOR_core___core__List___core__kernel__Object__init]))(self); /* init on */ } RET_LABEL:; } -/* method list#List#get_node for (self: List[nullable Object], Int): nullable ListNode[nullable Object] */ +/* method list$List$get_node for (self: List[nullable Object], Int): nullable ListNode[nullable Object] */ val* core___core__List___get_node(val* self, long p0) { val* var /* : nullable ListNode[nullable Object] */; long var_i /* var i: Int */; @@ -1367,14 +1398,14 @@ var_i = p0; var1 = self->attrs[COLOR_core__list__List___head].val; /* _head on */ var_n = var1; { -{ /* Inline kernel#Int#< (var_i,0l) on */ +{ /* 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_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725); fatal_exit(1); } var5 = var_i < 0l; @@ -1395,7 +1426,7 @@ var7 = 0; /* is null */ var7 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_n,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_n,((val*)NULL)) on */ var_other = ((val*)NULL); { var10 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n, var_other); /* == on */ @@ -1410,14 +1441,14 @@ var7 = var8; var_ = var7; if (var7){ { -{ /* Inline kernel#Int#> (var_i,0l) on */ +{ /* 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_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 730); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727); fatal_exit(1); } var18 = var_i > 0l; @@ -1432,7 +1463,7 @@ var6 = var_; } if (var6){ { -{ /* Inline list#ListNode#next (var_n) on */ +{ /* Inline list$ListNode$next (var_n) on */ var21 = var_n->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var19 = var21; RET_LABEL20:(void)0; @@ -1440,14 +1471,14 @@ RET_LABEL20:(void)0; } var_n = var19; { -{ /* Inline kernel#Int#- (var_i,1l) on */ +{ /* 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_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); fatal_exit(1); } var28 = var_i - 1l; @@ -1467,7 +1498,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#search_node_after for (self: List[nullable Object], nullable Object, nullable ListNode[nullable Object]): nullable ListNode[nullable Object] */ +/* method list$List$search_node_after for (self: List[nullable Object], nullable Object, nullable ListNode[nullable Object]): nullable ListNode[nullable Object] */ val* core___core__List___search_node_after(val* self, val* p0, val* p1) { val* var /* : nullable ListNode[nullable Object] */; short int var1 /* : Bool */; @@ -1515,7 +1546,7 @@ var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == id if (unlikely(!var1)) { 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_core__list, 221); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 225); fatal_exit(1); } /* Covariant cast for argument 1 (after) isa nullable ListNode[E] */ @@ -1535,7 +1566,7 @@ 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_core__list, 221); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 225); fatal_exit(1); } var_e = p0; @@ -1548,7 +1579,7 @@ var8 = 0; /* is null */ var8 = 1; /* arg is null and recv is not */ } if (0) { -{ /* Inline kernel#Object#!= (var_n,((val*)NULL)) on */ +{ /* Inline kernel$Object$!= (var_n,((val*)NULL)) on */ var_other = ((val*)NULL); { var11 = ((short int(*)(val* self, val* p0))(var_n->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n, var_other); /* == on */ @@ -1563,7 +1594,7 @@ var8 = var9; var_ = var8; if (var8){ { -{ /* Inline abstract_collection#Ref#item (var_n) on */ +{ /* Inline abstract_collection$Ref$item (var_n) on */ var15 = var_n->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ var13 = var15; RET_LABEL14:(void)0; @@ -1581,7 +1612,7 @@ var7 = var_; } if (var7){ { -{ /* Inline list#ListNode#next (var_n) on */ +{ /* Inline list$ListNode$next (var_n) on */ var20 = var_n->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var18 = var20; RET_LABEL19:(void)0; @@ -1598,7 +1629,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#List#remove_node for (self: List[nullable Object], ListNode[nullable Object]) */ +/* method list$List$remove_node for (self: List[nullable Object], ListNode[nullable Object]) */ void core___core__List___remove_node(val* self, val* p0) { short int var /* : Bool */; int cltype; @@ -1681,27 +1712,27 @@ 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_core__list, 229); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 233); fatal_exit(1); } var_node = p0; var_ = self; { -{ /* Inline list#List#length (var_) on */ +{ /* Inline list$List$length (var_) on */ var3 = var_->attrs[COLOR_core__list__List___length].l; /* _length on */ var1 = var3; RET_LABEL2:(void)0; } } { -{ /* Inline kernel#Int#- (var1,1l) on */ +{ /* Inline kernel$Int$- (var1,1l) on */ /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ /* <1l:Int> isa OTHER */ var6 = 1; /* easy <1l:Int> isa OTHER*/ if (unlikely(!var6)) { var_class_name9 = type_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name9); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); fatal_exit(1); } var10 = var1 - 1l; @@ -1711,13 +1742,13 @@ RET_LABEL5:(void)0; } } { -{ /* Inline list#List#length= (var_,var4) on */ +{ /* Inline list$List$length= (var_,var4) on */ var_->attrs[COLOR_core__list__List___length].l = var4; /* _length on */ RET_LABEL11:(void)0; } } { -{ /* Inline list#ListNode#prev (var_node) on */ +{ /* Inline list$ListNode$prev (var_node) on */ var14 = var_node->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ var12 = var14; RET_LABEL13:(void)0; @@ -1729,10 +1760,10 @@ var15 = 1; /* is null */ var15 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var12,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var12,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var12,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var12,var_other) on */ var20 = var12 == var_other; var18 = var20; goto RET_LABEL19; @@ -1747,7 +1778,7 @@ var15 = var16; } if (var15){ { -{ /* Inline list#ListNode#next (var_node) on */ +{ /* Inline list$ListNode$next (var_node) on */ var23 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var21 = var23; RET_LABEL22:(void)0; @@ -1755,7 +1786,7 @@ RET_LABEL22:(void)0; } self->attrs[COLOR_core__list__List___head].val = var21; /* _head on */ { -{ /* Inline list#ListNode#next (var_node) on */ +{ /* Inline list$ListNode$next (var_node) on */ var26 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var24 = var26; RET_LABEL25:(void)0; @@ -1767,10 +1798,10 @@ var27 = 1; /* is null */ var27 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var24,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var24,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var24,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var24,var_other) on */ var32 = var24 == var_other; var30 = var32; goto RET_LABEL31; @@ -1787,40 +1818,39 @@ if (var27){ self->attrs[COLOR_core__list__List___tail].val = ((val*)NULL); /* _tail on */ } else { { -{ /* Inline list#ListNode#next (var_node) on */ +{ /* Inline list$ListNode$next (var_node) on */ var35 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var33 = var35; RET_LABEL34:(void)0; } } -if (var33 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 238); +if (unlikely(var33 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 242); fatal_exit(1); -} else { -{ /* Inline list#ListNode#prev= (var33,((val*)NULL)) on */ +} +{ +{ /* Inline list$ListNode$prev= (var33,((val*)NULL)) on */ /* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */ /* <((val*)NULL):null> isa nullable ListNode[E] */ var37 = 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/ if (unlikely(!var37)) { var_class_name40 = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name40); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); -fatal_exit(1); -} -if (unlikely(var33 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } -var33->attrs[COLOR_core__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ +var33->attrs[COLOR_core__list__ListNode___prev].val = ((val*)NULL); /* _prev on */ RET_LABEL36:(void)0; } } } } else { { -{ /* Inline list#ListNode#next (var_node) on */ +{ /* Inline list$ListNode$next (var_node) on */ var43 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var41 = var43; RET_LABEL42:(void)0; @@ -1832,10 +1862,10 @@ var44 = 1; /* is null */ var44 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var41,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var41,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var41,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var41,var_other) on */ var49 = var41 == var_other; var47 = var49; goto RET_LABEL48; @@ -1850,7 +1880,7 @@ var44 = var45; } if (var44){ { -{ /* Inline list#ListNode#prev (var_node) on */ +{ /* Inline list$ListNode$prev (var_node) on */ var52 = var_node->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ var50 = var52; RET_LABEL51:(void)0; @@ -1858,57 +1888,60 @@ RET_LABEL51:(void)0; } self->attrs[COLOR_core__list__List___tail].val = var50; /* _tail on */ { -{ /* Inline list#ListNode#prev (var_node) on */ +{ /* Inline list$ListNode$prev (var_node) on */ var55 = var_node->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ var53 = var55; RET_LABEL54:(void)0; } } -if (var53 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 242); +if (unlikely(var53 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 246); fatal_exit(1); -} else { -{ /* Inline list#ListNode#next= (var53,((val*)NULL)) on */ +} +{ +{ /* Inline list$ListNode$next= (var53,((val*)NULL)) on */ /* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */ /* <((val*)NULL):null> isa nullable ListNode[E] */ var57 = 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/ if (unlikely(!var57)) { var_class_name60 = ((val*)NULL) == NULL ? "null" : ((val*)NULL)->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name60); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); -fatal_exit(1); -} -if (unlikely(var53 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } -var53->attrs[COLOR_core__list__ListNode___next].val = ((val*)NULL); /* _next on */ +var53->attrs[COLOR_core__list__ListNode___next].val = ((val*)NULL); /* _next on */ RET_LABEL56:(void)0; } } } else { { -{ /* Inline list#ListNode#prev (var_node) on */ +{ /* Inline list$ListNode$prev (var_node) on */ var63 = var_node->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ var61 = var63; RET_LABEL62:(void)0; } } +if (unlikely(var61 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 248); +fatal_exit(1); +} { -{ /* Inline list#ListNode#next (var_node) on */ +{ /* Inline list$ListNode$next (var_node) on */ var66 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var64 = var66; RET_LABEL65:(void)0; } } -if (var61 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 244); -fatal_exit(1); -} else { -{ /* Inline list#ListNode#next= (var61,var64) on */ +{ +{ /* Inline list$ListNode$next= (var61,var64) on */ /* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ type_struct71 = var61->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; @@ -1926,38 +1959,37 @@ var68 = var64->type->type_table[cltype69] == idtype70; if (unlikely(!var68)) { var_class_name72 = var64 == NULL ? "null" : var64->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name72); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); -fatal_exit(1); -} -if (unlikely(var61 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } -var61->attrs[COLOR_core__list__ListNode___next].val = var64; /* _next on */ +var61->attrs[COLOR_core__list__ListNode___next].val = var64; /* _next on */ RET_LABEL67:(void)0; } } { -{ /* Inline list#ListNode#next (var_node) on */ +{ /* Inline list$ListNode$next (var_node) on */ var75 = var_node->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var73 = var75; RET_LABEL74:(void)0; } } +if (unlikely(var73 == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 249); +fatal_exit(1); +} { -{ /* Inline list#ListNode#prev (var_node) on */ +{ /* Inline list$ListNode$prev (var_node) on */ var78 = var_node->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ var76 = var78; RET_LABEL77:(void)0; } } -if (var73 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 245); -fatal_exit(1); -} else { -{ /* Inline list#ListNode#prev= (var73,var76) on */ +{ +{ /* Inline list$ListNode$prev= (var73,var76) on */ /* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ type_struct83 = var73->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; @@ -1975,15 +2007,10 @@ var80 = var76->type->type_table[cltype81] == idtype82; if (unlikely(!var80)) { var_class_name84 = var76 == NULL ? "null" : var76->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name84); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); -fatal_exit(1); -} -if (unlikely(var73 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } -var73->attrs[COLOR_core__list__ListNode___prev].val = var76; /* _prev on */ +var73->attrs[COLOR_core__list__ListNode___prev].val = var76; /* _prev on */ RET_LABEL79:(void)0; } } @@ -1991,7 +2018,7 @@ RET_LABEL79:(void)0; } RET_LABEL:; } -/* method list#List#insert_before for (self: List[nullable Object], nullable Object, ListNode[nullable Object]) */ +/* method list$List$insert_before for (self: List[nullable Object], nullable Object, ListNode[nullable Object]) */ void core___core__List___insert_before(val* self, val* p0, val* p1) { short int var /* : Bool */; int cltype; @@ -2063,7 +2090,7 @@ var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idt 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_core__list, 249); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 253); fatal_exit(1); } /* Covariant cast for argument 1 (node) isa ListNode[E] */ @@ -2079,28 +2106,28 @@ 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_core__list, 249); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 253); fatal_exit(1); } var_element = p0; var_node = p1; var_ = self; { -{ /* Inline list#List#length (var_) on */ +{ /* Inline list$List$length (var_) on */ var8 = var_->attrs[COLOR_core__list__List___length].l; /* _length on */ var6 = var8; RET_LABEL7:(void)0; } } { -{ /* Inline kernel#Int#+ (var6,1l) on */ +{ /* Inline kernel$Int$+ (var6,1l) on */ /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */ /* <1l:Int> isa OTHER */ var11 = 1; /* easy <1l:Int> isa OTHER*/ if (unlikely(!var11)) { var_class_name14 = type_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728); fatal_exit(1); } var15 = var6 + 1l; @@ -2110,7 +2137,7 @@ RET_LABEL10:(void)0; } } { -{ /* Inline list#List#length= (var_,var9) on */ +{ /* Inline list$List$length= (var_,var9) on */ var_->attrs[COLOR_core__list__List___length].l = var9; /* _length on */ RET_LABEL16:(void)0; } @@ -2124,7 +2151,7 @@ var17 = NEW_core__list__ListNode(self->type->resolution_table->types[COLOR_core_ } var_nnode = var17; { -{ /* Inline list#ListNode#prev (var_node) on */ +{ /* Inline list$ListNode$prev (var_node) on */ var20 = var_node->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ var18 = var20; RET_LABEL19:(void)0; @@ -2137,10 +2164,10 @@ var21 = 1; /* is null */ var21 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var_prev,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var_prev,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var_prev,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var_prev,var_other) on */ var26 = var_prev == var_other; var24 = var26; goto RET_LABEL25; @@ -2157,7 +2184,7 @@ if (var21){ self->attrs[COLOR_core__list__List___head].val = var_nnode; /* _head on */ } else { { -{ /* Inline list#ListNode#next= (var_prev,var_nnode) on */ +{ /* Inline list$ListNode$next= (var_prev,var_nnode) on */ /* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ type_struct31 = var_prev->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; @@ -2171,7 +2198,7 @@ var28 = var_nnode->type->type_table[cltype29] == idtype30; if (unlikely(!var28)) { var_class_name32 = var_nnode == NULL ? "null" : var_nnode->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name32); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } var_prev->attrs[COLOR_core__list__ListNode___next].val = var_nnode; /* _next on */ @@ -2180,7 +2207,7 @@ RET_LABEL27:(void)0; } } { -{ /* Inline list#ListNode#prev= (var_nnode,var_prev) on */ +{ /* Inline list$ListNode$prev= (var_nnode,var_prev) on */ /* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ type_struct37 = var_nnode->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; @@ -2198,7 +2225,7 @@ var34 = var_prev->type->type_table[cltype35] == idtype36; if (unlikely(!var34)) { var_class_name38 = var_prev == NULL ? "null" : var_prev->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name38); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } var_nnode->attrs[COLOR_core__list__ListNode___prev].val = var_prev; /* _prev on */ @@ -2206,7 +2233,7 @@ RET_LABEL33:(void)0; } } { -{ /* Inline list#ListNode#next= (var_nnode,var_node) on */ +{ /* Inline list$ListNode$next= (var_nnode,var_node) on */ /* Covariant cast for argument 0 (next) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ type_struct43 = var_nnode->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; @@ -2220,7 +2247,7 @@ var40 = var_node->type->type_table[cltype41] == idtype42; if (unlikely(!var40)) { var_class_name44 = var_node == NULL ? "null" : var_node->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name44); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 330); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } var_nnode->attrs[COLOR_core__list__ListNode___next].val = var_node; /* _next on */ @@ -2228,7 +2255,7 @@ RET_LABEL39:(void)0; } } { -{ /* Inline list#ListNode#prev= (var_node,var_nnode) on */ +{ /* Inline list$ListNode$prev= (var_node,var_nnode) on */ /* Covariant cast for argument 0 (prev) isa nullable ListNode[E] */ /* isa nullable ListNode[E] */ type_struct49 = var_node->type->resolution_table->types[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE]; @@ -2242,7 +2269,7 @@ var46 = var_nnode->type->type_table[cltype47] == idtype48; if (unlikely(!var46)) { var_class_name50 = var_nnode == NULL ? "null" : var_nnode->type->name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name50); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } var_node->attrs[COLOR_core__list__ListNode___prev].val = var_nnode; /* _prev on */ @@ -2251,25 +2278,24 @@ RET_LABEL45:(void)0; } RET_LABEL:; } -/* method list#ListIterator#item for (self: ListIterator[nullable Object]): nullable Object */ +/* method list$ListIterator$item for (self: ListIterator[nullable Object]): nullable Object */ val* core___core__ListIterator___core__abstract_collection__Iterator__item(val* self) { val* var /* : nullable Object */; val* var1 /* : nullable ListNode[nullable Object] */; val* var2 /* : nullable Object */; val* var4 /* : nullable Object */; var1 = self->attrs[COLOR_core__list__ListIterator___node].val; /* _node on */ -if (var1 == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 268); -fatal_exit(1); -} else { -{ /* Inline abstract_collection#Ref#item (var1) on */ if (unlikely(var1 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 334); +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 272); fatal_exit(1); } -var4 = var1->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ +{ +{ /* Inline abstract_collection$Ref$item (var1) on */ +var4 = var1->attrs[COLOR_core__abstract_collection__Ref___item].val; /* _item on */ var2 = var4; RET_LABEL3:(void)0; } @@ -2279,7 +2305,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#ListIterator#is_ok for (self: ListIterator[nullable Object]): Bool */ +/* method list$ListIterator$is_ok for (self: ListIterator[nullable Object]): Bool */ short int core___core__ListIterator___core__abstract_collection__Iterator__is_ok(val* self) { short int var /* : Bool */; val* var1 /* : nullable ListNode[nullable Object] */; @@ -2296,10 +2322,10 @@ var2 = 1; /* is null */ var2 = 0; /* arg is null but recv is not */ } if (0) { -{ /* Inline kernel#Object#== (var1,((val*)NULL)) on */ +{ /* Inline kernel$Object$== (var1,((val*)NULL)) on */ var_other = ((val*)NULL); { -{ /* Inline kernel#Object#is_same_instance (var1,var_other) on */ +{ /* Inline kernel$Object$is_same_instance (var1,var_other) on */ var7 = var1 == var_other; var5 = var7; goto RET_LABEL6; @@ -2318,7 +2344,7 @@ goto RET_LABEL; RET_LABEL:; return var; } -/* method list#ListIterator#next for (self: ListIterator[nullable Object]) */ +/* method list$ListIterator$next for (self: ListIterator[nullable Object]) */ void core___core__ListIterator___core__abstract_collection__Iterator__next(val* self) { val* var /* : nullable ListNode[nullable Object] */; val* var1 /* : nullable ListNode[nullable Object] */; @@ -2332,18 +2358,17 @@ int idtype; const char* var_class_name; long var8 /* : Int */; var = self->attrs[COLOR_core__list__ListIterator___node].val; /* _node on */ -if (var == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 277); -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_core__list, 330); +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 281); fatal_exit(1); } -var3 = var->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ +{ +{ /* Inline list$ListNode$next (var) on */ +var3 = var->attrs[COLOR_core__list__ListNode___next].val; /* _next on */ var1 = var3; RET_LABEL2:(void)0; } @@ -2352,14 +2377,14 @@ self->attrs[COLOR_core__list__ListIterator___node].val = var1; /* _node on attrs[COLOR_core__list__ListIterator___index].l; /* _index on */ { -{ /* Inline kernel#Int#+ (var4,1l) on */ +{ /* 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_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728); fatal_exit(1); } var8 = var4 + 1l; @@ -2371,7 +2396,7 @@ RET_LABEL6:(void)0; var_->attrs[COLOR_core__list__ListIterator___index].l = var5; /* _index on */ RET_LABEL:; } -/* method list#ListIterator#init for (self: ListIterator[nullable Object]) */ +/* method list$ListIterator$init for (self: ListIterator[nullable Object]) */ void core___core__ListIterator___core__kernel__Object__init(val* self) { val* var /* : List[nullable Object] */; val* var1 /* : nullable ListNode[nullable Object] */; @@ -2380,15 +2405,18 @@ val* var1 /* : nullable ListNode[nullable Object] */; } var = self->attrs[COLOR_core__list__ListIterator___list].val; /* _list on */ if (unlikely(var == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _list"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 284); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 288); fatal_exit(1); } var1 = var->attrs[COLOR_core__list__List___head].val; /* _head on */ self->attrs[COLOR_core__list__ListIterator___node].val = var1; /* _node on */ RET_LABEL:; } -/* method list#ListIterator#list= for (self: ListIterator[nullable Object], List[nullable Object]) */ +/* method list$ListIterator$list= for (self: ListIterator[nullable Object], List[nullable Object]) */ void core___core__ListIterator___list_61d(val* self, val* p0) { short int var /* : Bool */; int cltype; @@ -2408,13 +2436,13 @@ 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_core__list, 287); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 291); fatal_exit(1); } self->attrs[COLOR_core__list__ListIterator___list].val = p0; /* _list on */ RET_LABEL:; } -/* method list#ListIterator#index for (self: ListIterator[nullable Object]): Int */ +/* method list$ListIterator$index for (self: ListIterator[nullable Object]): Int */ long core___core__ListIterator___core__abstract_collection__IndexedIterator__index(val* self) { long var /* : Int */; long var1 /* : Int */; @@ -2423,7 +2451,7 @@ var = var1; RET_LABEL:; return var; } -/* method list#ListReverseIterator#next for (self: ListReverseIterator[nullable Object]) */ +/* method list$ListReverseIterator$next for (self: ListReverseIterator[nullable Object]) */ void core__list___core__list__ListReverseIterator___core__abstract_collection__Iterator__next(val* self) { val* var /* : nullable ListNode[nullable Object] */; val* var1 /* : nullable ListNode[nullable Object] */; @@ -2437,18 +2465,17 @@ int idtype; const char* var_class_name; long var8 /* : Int */; var = self->attrs[COLOR_core__list__ListIterator___node].val; /* _node on */ -if (var == NULL) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 314); -fatal_exit(1); -} else { -{ /* Inline list#ListNode#prev (var) on */ if (unlikely(var == NULL)) { -PRINT_ERROR("Runtime error: %s", "Receiver is null"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 333); +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} +PRINT_ERROR("Runtime error: %s", "Cast failed"); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 318); fatal_exit(1); } -var3 = var->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ +{ +{ /* Inline list$ListNode$prev (var) on */ +var3 = var->attrs[COLOR_core__list__ListNode___prev].val; /* _prev on */ var1 = var3; RET_LABEL2:(void)0; } @@ -2457,14 +2484,14 @@ self->attrs[COLOR_core__list__ListIterator___node].val = var1; /* _node on attrs[COLOR_core__list__ListIterator___index].l; /* _index on */ { -{ /* Inline kernel#Int#- (var4,1l) on */ +{ /* 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_core__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734); +PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731); fatal_exit(1); } var8 = var4 - 1l; @@ -2476,7 +2503,7 @@ RET_LABEL6:(void)0; var_->attrs[COLOR_core__list__ListIterator___index].l = var5; /* _index on */ RET_LABEL:; } -/* method list#ListReverseIterator#init for (self: ListReverseIterator[nullable Object]) */ +/* method list$ListReverseIterator$init for (self: ListReverseIterator[nullable Object]) */ void core__list___core__list__ListReverseIterator___core__kernel__Object__init(val* self) { val* var /* : List[nullable Object] */; val* var_list /* var list: List[nullable Object] */; @@ -2488,15 +2515,18 @@ long var4 /* : Int */; } var = self->attrs[COLOR_core__list__ListIterator___list].val; /* _list on */ if (unlikely(var == NULL)) { +if(catchStack.cursor >= 0){ +longjmp(catchStack.envs[catchStack.cursor], 1); +} PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _list"); -PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 320); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 324); fatal_exit(1); } var_list = var; var1 = var_list->attrs[COLOR_core__list__List___tail].val; /* _tail on */ self->attrs[COLOR_core__list__ListIterator___node].val = var1; /* _node on */ { -{ /* Inline list#List#length (var_list) on */ +{ /* Inline list$List$length (var_list) on */ var4 = var_list->attrs[COLOR_core__list__List___length].l; /* _length on */ var2 = var4; RET_LABEL3:(void)0; @@ -2505,7 +2535,7 @@ RET_LABEL3:(void)0; self->attrs[COLOR_core__list__ListIterator___index].l = var2; /* _index on */ RET_LABEL:; } -/* method list#ListNode#next for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */ +/* method list$ListNode$next for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */ val* core__list___core__list__ListNode___next(val* self) { val* var /* : nullable ListNode[nullable Object] */; val* var1 /* : nullable ListNode[nullable Object] */; @@ -2514,7 +2544,7 @@ var = var1; RET_LABEL:; return var; } -/* method list#ListNode#next= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */ +/* method list$ListNode$next= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */ void core__list___core__list__ListNode___next_61d(val* self, val* p0) { short int var /* : Bool */; int cltype; @@ -2538,13 +2568,13 @@ 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_core__list, 330); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 334); fatal_exit(1); } self->attrs[COLOR_core__list__ListNode___next].val = p0; /* _next on */ RET_LABEL:; } -/* method list#ListNode#prev for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */ +/* method list$ListNode$prev for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */ val* core__list___core__list__ListNode___prev(val* self) { val* var /* : nullable ListNode[nullable Object] */; val* var1 /* : nullable ListNode[nullable Object] */; @@ -2553,7 +2583,7 @@ var = var1; RET_LABEL:; return var; } -/* method list#ListNode#prev= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */ +/* method list$ListNode$prev= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */ void core__list___core__list__ListNode___prev_61d(val* self, val* p0) { short int var /* : Bool */; int cltype; @@ -2577,7 +2607,7 @@ 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_core__list, 333); +PRINT_ERROR(" (%s:%d)\n", FILE_core__list, 337); fatal_exit(1); } self->attrs[COLOR_core__list__ListNode___prev].val = p0; /* _prev on */