X-Git-Url: http://nitlanguage.org diff --git a/c_src/abstract_collection.sep.1.c b/c_src/abstract_collection.sep.1.c index fea0f30..60f5245 100644 --- a/c_src/abstract_collection.sep.1.c +++ b/c_src/abstract_collection.sep.1.c @@ -39,56 +39,67 @@ long abstract_collection__Collection__length(val* self) { long var /* : Int */; long var1 /* : Int */; long var_nb /* var nb: Int */; +val* var_ /* var : Collection[nullable Object] */; val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; +val* var_3 /* var : Iterator[nullable Object] */; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; val* var_i /* var i: nullable Object */; -long var5 /* : Int */; long var6 /* : Int */; -short int var8 /* : Bool */; +long var7 /* : Int */; +short int var9 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var9 /* : Int */; +long var10 /* : Int */; var1 = 0; var_nb = var1; +var_ = self; { -var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; +var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_3 = var2; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; } -if(!var3) break; +if (var4){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on */; } -var_i = var4; -var5 = 1; +var_i = var5; +var6 = 1; { -{ /* Inline kernel#Int#+ (var_nb,var5) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { +{ /* Inline kernel#Int#+ (var_nb,var6) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var9 = 1; /* easy isa OTHER*/ +if (unlikely(!var9)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var9 = var_nb + var5; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var10 = var_nb + var6; +var7 = var10; +goto RET_LABEL8; +RET_LABEL8:(void)0; } } -var_nb = var6; -CONTINUE_label: (void)0; +var_nb = var7; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_3) on */ +RET_LABEL11:(void)0; +} +} var = var_nb; goto RET_LABEL; RET_LABEL:; @@ -113,16 +124,18 @@ const struct type* type_struct; short int is_nullable; const char* var_class_name; val* var_item /* var item: nullable Object */; +val* var_ /* var : Collection[nullable Object] */; val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; +val* var_3 /* var : Iterator[nullable Object] */; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; val* var_i /* var i: nullable Object */; -short int var5 /* : Bool */; short int var6 /* : Bool */; short int var7 /* : Bool */; short int var8 /* : Bool */; -/* Covariant cast for argument 0 (item) isa Collection#0 */ -/* isa Collection#0 */ +short int var10 /* : Bool */; +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collection_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -138,43 +151,52 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 76); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 76); show_backtrace(1); } var_item = p0; +var_ = self; { -var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; +var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_3 = var2; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; } -if(!var3) break; +if (var4){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on */; } -var_i = var4; +var_i = var5; if (var_i == NULL) { -var5 = (var_item == NULL); +var6 = (var_item == NULL); } else { -var6 = ((short int (*)(val*, val*))(var_i->class->vft[COLOR_kernel__Object___61d_61d]))(var_i, var_item) /* == on */; -var5 = var6; +var7 = ((short int (*)(val*, val*))(var_i->class->vft[COLOR_kernel__Object___61d_61d]))(var_i, var_item) /* == on */; +var6 = var7; } -if (var5){ -var7 = 1; -var = var7; +if (var6){ +var8 = 1; +var = var8; goto RET_LABEL; } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -var8 = 0; -var = var8; +{ +{ /* Inline abstract_collection#Iterator#finish (var_3) on */ +RET_LABEL9:(void)0; +} +} +var10 = 0; +var = var10; goto RET_LABEL; RET_LABEL:; return var; @@ -213,7 +235,7 @@ var5 = 1; /* easy isa OTHER*/ if (unlikely(!var5)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } var6 = var1 > var2; @@ -224,7 +246,7 @@ RET_LABEL4:(void)0; } if (unlikely(!var3)) { PRINT_ERROR("Runtime error: %s", "Assert failed"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 122); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 122); show_backtrace(1); } { @@ -256,16 +278,18 @@ int idtype; const struct type* type_struct; const char* var_class_name; val* var_other /* var other: Collection[nullable Object] */; +val* var_ /* var : Collection[nullable Object] */; val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; +val* var_3 /* var : Iterator[nullable Object] */; +short int var4 /* : Bool */; +val* var5 /* : nullable Object */; val* var_x /* var x: nullable Object */; -short int var5 /* : Bool */; short int var6 /* : Bool */; short int var7 /* : Bool */; short int var8 /* : Bool */; -/* Covariant cast for argument 0 (other) isa Collection[Collection#0] */ -/* isa Collection[Collection#0] */ +short int var10 /* : Bool */; +/* Covariant cast for argument 0 (other) isa Collection[E] */ +/* isa Collection[E] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectionabstract_collection__Collection_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -276,41 +300,50 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Collection#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 126); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 126); show_backtrace(1); } var_other = p0; +var_ = var_other; { -var2 = ((val* (*)(val*))(var_other->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_other) /* iterator on */; +var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_3 = var2; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on */; } -if(!var3) break; +if (var4){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on */; } -var_x = var4; +var_x = var5; { -var5 = ((short int (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__Collection__has]))(self, var_x) /* has on */; +var6 = ((short int (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__Collection__has]))(self, var_x) /* has on */; } -var6 = !var5; -if (var6){ -var7 = 0; -var = var7; +var7 = !var6; +if (var7){ +var8 = 0; +var = var8; goto RET_LABEL; } else { } -CONTINUE_label: (void)0; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; -var8 = 1; -var = var8; +{ +{ /* Inline abstract_collection#Iterator#finish (var_3) on */ +RET_LABEL9:(void)0; +} +} +var10 = 1; +var = var10; goto RET_LABEL; RET_LABEL:; return var; @@ -341,6 +374,17 @@ var = var1; RET_LABEL:; return var; } +/* method abstract_collection#Iterator#finish for (self: Iterator[nullable Object]) */ +void abstract_collection__Iterator__finish(val* self) { +RET_LABEL:; +} +/* method abstract_collection#Iterator#finish for (self: Object) */ +void VIRTUAL_abstract_collection__Iterator__finish(val* self) { +{ /* Inline abstract_collection#Iterator#finish (self) on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} /* method abstract_collection#Container#first for (self: Container[nullable Object]): nullable Object */ val* abstract_collection__Container__first(val* self) { val* var /* : nullable Object */; @@ -419,8 +463,8 @@ val* var2 /* : nullable Object */; val* var4 /* : nullable Object */; short int var5 /* : Bool */; short int var6 /* : Bool */; -/* Covariant cast for argument 0 (an_item) isa Collection#0 */ -/* isa Collection#0 */ +/* Covariant cast for argument 0 (an_item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collection_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -436,8 +480,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 172); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 182); show_backtrace(1); } var_an_item = p0; @@ -505,8 +549,8 @@ int idtype4; const struct type* type_struct5; short int is_nullable6; const char* var_class_name7; -/* Covariant cast for argument 0 (e) isa Container#0 */ -/* isa Container#0 */ +/* Covariant cast for argument 0 (e) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Container_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -522,15 +566,15 @@ 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`", "Container#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 187); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 197); show_backtrace(1); } var_e = p0; { { /* Inline abstract_collection#Container#item= (self,var_e) on */ -/* Covariant cast for argument 0 (item) isa Container#0 */ -/* isa Container#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct5 = self->type->resolution_table->types[COLOR_abstract_collection__Container_FT0]; cltype3 = type_struct5->color; idtype4 = type_struct5->id; @@ -546,8 +590,8 @@ var2 = var_e->type->type_table[cltype3] == idtype4; } if (unlikely(!var2)) { var_class_name7 = var_e == NULL ? "null" : var_e->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Container#0", var_class_name7); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 190); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name7); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 200); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Container___item].val = var_e; /* _item on */ @@ -592,8 +636,8 @@ int idtype; const struct type* type_struct; short int is_nullable; const char* var_class_name; -/* Covariant cast for argument 0 (item) isa Container#0 */ -/* isa Container#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Container_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -609,8 +653,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`", "Container#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 190); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 200); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Container___item].val = p0; /* _item on */ @@ -625,8 +669,8 @@ const struct type* type_struct; short int is_nullable; const char* var_class_name; { /* Inline abstract_collection#Container#item= (self,p0) on */ -/* Covariant cast for argument 0 (item) isa Container#0 */ -/* isa Container#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Container_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -642,8 +686,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`", "Container#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 190); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 200); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Container___item].val = p0; /* _item on */ @@ -660,7 +704,7 @@ val* var4 /* : nullable Object */; var1 = self->attrs[COLOR_abstract_collection__ContainerIterator___container].val; /* _container on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _container"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 197); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 207); show_backtrace(1); } { @@ -709,8 +753,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; val* var_c /* var c: Container[nullable Object] */; -/* Covariant cast for argument 0 (c) isa Container[ContainerIterator#0] */ -/* isa Container[ContainerIterator#0] */ +/* Covariant cast for argument 0 (c) isa Container[E] */ +/* isa Container[E] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Containerabstract_collection__ContainerIterator_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -721,8 +765,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`", "Container[ContainerIterator#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 201); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Container[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 211); show_backtrace(1); } var_c = p0; @@ -775,7 +819,7 @@ void abstract_collection__RemovableCollection__clear(val* self) { const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "clear", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 212); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 222); show_backtrace(1); RET_LABEL:; } @@ -785,7 +829,7 @@ const char* var_class_name; { /* Inline abstract_collection#RemovableCollection#clear (self) on */ var_class_name = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "clear", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 212); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 222); show_backtrace(1); RET_LABEL1:(void)0; } @@ -800,8 +844,8 @@ const struct type* type_struct; short int is_nullable; const char* var_class_name; const char* var_class_name1; -/* Covariant cast for argument 0 (item) isa RemovableCollection#0 */ -/* isa RemovableCollection#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__RemovableCollection_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -817,13 +861,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`", "RemovableCollection#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 221); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 231); show_backtrace(1); } var_class_name1 = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "remove", var_class_name1); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 221); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 231); show_backtrace(1); RET_LABEL:; } @@ -837,8 +881,8 @@ short int is_nullable; const char* var_class_name; const char* var_class_name2; { /* Inline abstract_collection#RemovableCollection#remove (self,p0) on */ -/* Covariant cast for argument 0 (item) isa RemovableCollection#0 */ -/* isa RemovableCollection#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__RemovableCollection_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -854,13 +898,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`", "RemovableCollection#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 221); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 231); show_backtrace(1); } var_class_name2 = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "remove", var_class_name2); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 221); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 231); show_backtrace(1); RET_LABEL1:(void)0; } @@ -874,12 +918,14 @@ int idtype; const struct type* type_struct; const char* var_class_name; val* var_coll /* var coll: Collection[nullable Object] */; +val* var_ /* var : Collection[nullable Object] */; val* var1 /* : Iterator[nullable Object] */; -short int var2 /* : Bool */; -val* var3 /* : nullable Object */; +val* var_2 /* var : Iterator[nullable Object] */; +short int var3 /* : Bool */; +val* var4 /* : nullable Object */; val* var_i /* var i: nullable Object */; -/* Covariant cast for argument 0 (coll) isa Collection[SimpleCollection#0] */ -/* isa Collection[SimpleCollection#0] */ +/* Covariant cast for argument 0 (coll) isa Collection[E] */ +/* isa Collection[E] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectionabstract_collection__SimpleCollection_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -890,32 +936,41 @@ 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`", "Collection[SimpleCollection#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 250); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 260); show_backtrace(1); } var_coll = p0; +var_ = var_coll; { -var1 = ((val* (*)(val*))(var_coll->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_coll) /* iterator on */; +var1 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_2 = var1; for(;;) { { -var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on */; +var3 = ((short int (*)(val*))(var_2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_2) /* is_ok on */; } -if(!var2) break; +if (var3){ { -var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on */; +var4 = ((val* (*)(val*))(var_2->class->vft[COLOR_abstract_collection__Iterator__item]))(var_2) /* item on */; } -var_i = var3; +var_i = var4; { ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(self, var_i) /* add on */; } -CONTINUE_label: (void)0; { -((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on */; +((void (*)(val*))(var_2->class->vft[COLOR_abstract_collection__Iterator__next]))(var_2) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_2) on */ +RET_LABEL5:(void)0; +} +} RET_LABEL:; } /* method abstract_collection#SimpleCollection#add_all for (self: Object, Collection[nullable Object]) */ @@ -987,7 +1042,7 @@ var = var11; goto RET_LABEL; } else { } -/* isa Collection[Set#0] */ +/* isa Collection[E] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectionabstract_collection__Set_FT0]; cltype13 = type_struct->color; idtype14 = type_struct->id; @@ -998,8 +1053,8 @@ var12 = var_other->type->type_table[cltype13] == idtype14; } if (unlikely(!var12)) { var_class_name = var_other == NULL ? "null" : var_other->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Set#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 301); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 311); show_backtrace(1); } { @@ -1023,59 +1078,97 @@ return var; long abstract_collection__Set__hash(val* self) { long var /* : Int */; long var1 /* : Int */; -long var_res /* var res: Int */; -val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; -val* var_e /* var e: Object */; -long var5 /* : Int */; -long var6 /* : Int */; -short int var8 /* : Bool */; +long var2 /* : Int */; +long var3 /* : Int */; +short int var5 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var9 /* : Int */; -var1 = 0; -var_res = var1; +long var6 /* : Int */; +long var_res /* var res: Int */; +val* var_ /* var : Set[Object] */; +val* var7 /* : Iterator[nullable Object] */; +val* var_8 /* var : Iterator[Object] */; +short int var9 /* : Bool */; +val* var10 /* : nullable Object */; +val* var_e /* var e: Object */; +long var11 /* : Int */; +long var12 /* : Int */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const char* var_class_name17; +long var18 /* : Int */; +var1 = 23; +{ +var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; +} +{ +{ /* Inline kernel#Int#+ (var1,var2) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var5 = 1; /* easy isa OTHER*/ +if (unlikely(!var5)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var6 = var1 + var2; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +} +var_res = var3; +var_ = self; { -var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; +var7 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_8 = var7; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var9 = ((short int (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_8) /* is_ok on */; } -if(!var3) break; +if (var9){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var10 = ((val* (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__item]))(var_8) /* item on */; } -var_e = var4; +var_e = var10; { -var5 = kernel__Int__hash(var_res); +var11 = ((long (*)(val*))(var_e->class->vft[COLOR_kernel__Object__hash]))(var_e) /* hash on */; } { -{ /* Inline kernel#Int#+ (var_res,var5) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { -var_class_name = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +{ /* Inline kernel#Int#+ (var_res,var11) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var14 = 1; /* easy isa OTHER*/ +if (unlikely(!var14)) { +var_class_name17 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } -var9 = var_res + var5; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var18 = var_res + var11; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; } } -var_res = var6; -CONTINUE_label: (void)0; +var_res = var12; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +((void (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__next]))(var_8) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_8) on */ +RET_LABEL19:(void)0; +} +} var = var_res; goto RET_LABEL; RET_LABEL:; @@ -1102,8 +1195,8 @@ val* var_key /* var key: Object */; short int var2 /* : Bool */; val* var3 /* : nullable Object */; val* var4 /* : null */; -/* Covariant cast for argument 0 (key) isa MapRead#0 */ -/* isa MapRead#0 */ +/* Covariant cast for argument 0 (key) isa K */ +/* isa K */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapRead_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1114,8 +1207,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 345); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 358); show_backtrace(1); } var_key = p0; @@ -1156,8 +1249,8 @@ const char* var_class_name; val* var_key /* var key: Object */; val* var2 /* : Collection[Object] */; short int var3 /* : Bool */; -/* Covariant cast for argument 0 (key) isa MapRead#0 */ -/* isa MapRead#0 */ +/* Covariant cast for argument 0 (key) isa K */ +/* isa K */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapRead_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1168,8 +1261,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 372); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 385); show_backtrace(1); } var_key = p0; @@ -1202,8 +1295,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; val* var_key /* var key: Object */; -/* Covariant cast for argument 0 (key) isa MapRead#0 */ -/* isa MapRead#0 */ +/* Covariant cast for argument 0 (key) isa K */ +/* isa K */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapRead_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1214,13 +1307,13 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 416); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 429); show_backtrace(1); } var_key = p0; PRINT_ERROR("Runtime error: %s", "Aborted"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 421); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 434); show_backtrace(1); RET_LABEL:; return var; @@ -1234,6 +1327,17 @@ var = var1; RET_LABEL:; return var; } +/* method abstract_collection#MapIterator#finish for (self: MapIterator[Object, nullable Object]) */ +void abstract_collection__MapIterator__finish(val* self) { +RET_LABEL:; +} +/* method abstract_collection#MapIterator#finish for (self: Object) */ +void VIRTUAL_abstract_collection__MapIterator__finish(val* self) { +{ /* Inline abstract_collection#MapIterator#finish (self) on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} /* method abstract_collection#MapKeysIterator#original_iterator for (self: MapKeysIterator[Object, nullable Object]): MapIterator[Object, nullable Object] */ val* abstract_collection__MapKeysIterator__original_iterator(val* self) { val* var /* : MapIterator[Object, nullable Object] */; @@ -1241,7 +1345,7 @@ val* var1 /* : MapIterator[Object, nullable Object] */; var1 = self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 531); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 554); show_backtrace(1); } var = var1; @@ -1257,7 +1361,7 @@ val* var3 /* : MapIterator[Object, nullable Object] */; var3 = self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 531); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 554); show_backtrace(1); } var1 = var3; @@ -1267,6 +1371,61 @@ var = var1; RET_LABEL:; return var; } +/* method abstract_collection#MapKeysIterator#original_iterator= for (self: MapKeysIterator[Object, nullable Object], MapIterator[Object, nullable Object]) */ +void abstract_collection__MapKeysIterator__original_iterator_61d(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +/* Covariant cast for argument 0 (original_iterator) isa MapIterator[K, V] */ +/* isa MapIterator[K, V] */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapIteratorabstract_collection__MapKeysIterator_FT0abstract_collection__MapKeysIterator_FT1]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[K, V]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 554); +show_backtrace(1); +} +self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val = p0; /* _original_iterator on */ +RET_LABEL:; +} +/* method abstract_collection#MapKeysIterator#original_iterator= for (self: Object, MapIterator[Object, nullable Object]) */ +void VIRTUAL_abstract_collection__MapKeysIterator__original_iterator_61d(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +{ /* Inline abstract_collection#MapKeysIterator#original_iterator= (self,p0) on */ +/* Covariant cast for argument 0 (original_iterator) isa MapIterator[K, V] */ +/* isa MapIterator[K, V] */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapIteratorabstract_collection__MapKeysIterator_FT0abstract_collection__MapKeysIterator_FT1]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[K, V]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 554); +show_backtrace(1); +} +self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val = p0; /* _original_iterator on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} /* method abstract_collection#MapKeysIterator#is_ok for (self: MapKeysIterator[Object, nullable Object]): Bool */ short int abstract_collection__MapKeysIterator__is_ok(val* self) { short int var /* : Bool */; @@ -1278,7 +1437,7 @@ short int var4 /* : Bool */; var3 = self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 531); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 554); show_backtrace(1); } var1 = var3; @@ -1311,7 +1470,7 @@ val* var2 /* : MapIterator[Object, nullable Object] */; var2 = self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 531); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 554); show_backtrace(1); } var = var2; @@ -1339,7 +1498,7 @@ val* var4 /* : Object */; var3 = self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 531); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 554); show_backtrace(1); } var1 = var3; @@ -1363,57 +1522,19 @@ var = var1; RET_LABEL:; return var; } -/* method abstract_collection#MapKeysIterator#init for (self: MapKeysIterator[Object, nullable Object], MapIterator[Object, nullable Object]) */ -void abstract_collection__MapKeysIterator__init(val* self, val* p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -const char* var_class_name; -/* Covariant cast for argument 0 (original_iterator) isa MapIterator[MapKeysIterator#0, MapKeysIterator#1] */ -/* isa MapIterator[MapKeysIterator#0, MapKeysIterator#1] */ -type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapIteratorabstract_collection__MapKeysIterator_FT0abstract_collection__MapKeysIterator_FT1]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var = 0; -} else { -var = p0->type->type_table[cltype] == idtype; -} -if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[MapKeysIterator#0, MapKeysIterator#1]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 528); -show_backtrace(1); +/* method abstract_collection#MapKeysIterator#init for (self: MapKeysIterator[Object, nullable Object]) */ +void abstract_collection__MapKeysIterator__init(val* self) { +{ +((void (*)(val*))(self->class->vft[COLOR_abstract_collection__MapKeysIterator__init]))(self) /* init on */; } -self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val = p0; /* _original_iterator on */ RET_LABEL:; } -/* method abstract_collection#MapKeysIterator#init for (self: Object, MapIterator[Object, nullable Object]) */ -void VIRTUAL_abstract_collection__MapKeysIterator__init(val* self, val* p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -const char* var_class_name; -{ /* Inline abstract_collection#MapKeysIterator#init (self,p0) on */ -/* Covariant cast for argument 0 (original_iterator) isa MapIterator[MapKeysIterator#0, MapKeysIterator#1] */ -/* isa MapIterator[MapKeysIterator#0, MapKeysIterator#1] */ -type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapIteratorabstract_collection__MapKeysIterator_FT0abstract_collection__MapKeysIterator_FT1]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var = 0; -} else { -var = p0->type->type_table[cltype] == idtype; -} -if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[MapKeysIterator#0, MapKeysIterator#1]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 528); -show_backtrace(1); +/* method abstract_collection#MapKeysIterator#init for (self: Object) */ +void VIRTUAL_abstract_collection__MapKeysIterator__init(val* self) { +{ /* Inline abstract_collection#MapKeysIterator#init (self) on */ +{ +((void (*)(val*))(self->class->vft[COLOR_abstract_collection__MapKeysIterator__init]))(self) /* init on */; } -self->attrs[COLOR_abstract_collection__MapKeysIterator___original_iterator].val = p0; /* _original_iterator on */ RET_LABEL1:(void)0; } RET_LABEL:; @@ -1425,7 +1546,7 @@ val* var1 /* : MapIterator[Object, nullable Object] */; var1 = self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 542); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 565); show_backtrace(1); } var = var1; @@ -1441,7 +1562,7 @@ val* var3 /* : MapIterator[Object, nullable Object] */; var3 = self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 542); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 565); show_backtrace(1); } var1 = var3; @@ -1451,33 +1572,88 @@ var = var1; RET_LABEL:; return var; } -/* method abstract_collection#MapValuesIterator#is_ok for (self: MapValuesIterator[Object, nullable Object]): Bool */ -short int abstract_collection__MapValuesIterator__is_ok(val* self) { +/* method abstract_collection#MapValuesIterator#original_iterator= for (self: MapValuesIterator[Object, nullable Object], MapIterator[Object, nullable Object]) */ +void abstract_collection__MapValuesIterator__original_iterator_61d(val* self, val* p0) { short int var /* : Bool */; -val* var1 /* : MapIterator[Object, nullable Object] */; -val* var3 /* : MapIterator[Object, nullable Object] */; -short int var4 /* : Bool */; -{ -{ /* Inline abstract_collection#MapValuesIterator#original_iterator (self) on */ -var3 = self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on */ -if (unlikely(var3 == NULL)) { -PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 542); -show_backtrace(1); -} -var1 = var3; -RET_LABEL2:(void)0; -} +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +/* Covariant cast for argument 0 (original_iterator) isa MapIterator[K, V] */ +/* isa MapIterator[K, V] */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapIteratorabstract_collection__MapValuesIterator_FT0abstract_collection__MapValuesIterator_FT1]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; } -{ -var4 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var1) /* is_ok on */; +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[K, V]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 565); +show_backtrace(1); } -var = var4; -goto RET_LABEL; +self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val = p0; /* _original_iterator on */ RET_LABEL:; -return var; } -/* method abstract_collection#MapValuesIterator#is_ok for (self: Object): Bool */ +/* method abstract_collection#MapValuesIterator#original_iterator= for (self: Object, MapIterator[Object, nullable Object]) */ +void VIRTUAL_abstract_collection__MapValuesIterator__original_iterator_61d(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +{ /* Inline abstract_collection#MapValuesIterator#original_iterator= (self,p0) on */ +/* Covariant cast for argument 0 (original_iterator) isa MapIterator[K, V] */ +/* isa MapIterator[K, V] */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapIteratorabstract_collection__MapValuesIterator_FT0abstract_collection__MapValuesIterator_FT1]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[K, V]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 565); +show_backtrace(1); +} +self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val = p0; /* _original_iterator on */ +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method abstract_collection#MapValuesIterator#is_ok for (self: MapValuesIterator[Object, nullable Object]): Bool */ +short int abstract_collection__MapValuesIterator__is_ok(val* self) { +short int var /* : Bool */; +val* var1 /* : MapIterator[Object, nullable Object] */; +val* var3 /* : MapIterator[Object, nullable Object] */; +short int var4 /* : Bool */; +{ +{ /* Inline abstract_collection#MapValuesIterator#original_iterator (self) on */ +var3 = self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on */ +if (unlikely(var3 == NULL)) { +PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 565); +show_backtrace(1); +} +var1 = var3; +RET_LABEL2:(void)0; +} +} +{ +var4 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__MapIterator__is_ok]))(var1) /* is_ok on */; +} +var = var4; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method abstract_collection#MapValuesIterator#is_ok for (self: Object): Bool */ short int VIRTUAL_abstract_collection__MapValuesIterator__is_ok(val* self) { short int var /* : Bool */; short int var1 /* : Bool */; @@ -1495,7 +1671,7 @@ val* var2 /* : MapIterator[Object, nullable Object] */; var2 = self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var2 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 542); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 565); show_backtrace(1); } var = var2; @@ -1523,7 +1699,7 @@ val* var4 /* : nullable Object */; var3 = self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on */ if (unlikely(var3 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 542); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 565); show_backtrace(1); } var1 = var3; @@ -1547,57 +1723,19 @@ var = var1; RET_LABEL:; return var; } -/* method abstract_collection#MapValuesIterator#init for (self: MapValuesIterator[Object, nullable Object], MapIterator[Object, nullable Object]) */ -void abstract_collection__MapValuesIterator__init(val* self, val* p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -const char* var_class_name; -/* Covariant cast for argument 0 (original_iterator) isa MapIterator[MapValuesIterator#0, MapValuesIterator#1] */ -/* isa MapIterator[MapValuesIterator#0, MapValuesIterator#1] */ -type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapIteratorabstract_collection__MapValuesIterator_FT0abstract_collection__MapValuesIterator_FT1]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var = 0; -} else { -var = p0->type->type_table[cltype] == idtype; -} -if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[MapValuesIterator#0, MapValuesIterator#1]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 539); -show_backtrace(1); +/* method abstract_collection#MapValuesIterator#init for (self: MapValuesIterator[Object, nullable Object]) */ +void abstract_collection__MapValuesIterator__init(val* self) { +{ +((void (*)(val*))(self->class->vft[COLOR_abstract_collection__MapValuesIterator__init]))(self) /* init on */; } -self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val = p0; /* _original_iterator on */ RET_LABEL:; } -/* method abstract_collection#MapValuesIterator#init for (self: Object, MapIterator[Object, nullable Object]) */ -void VIRTUAL_abstract_collection__MapValuesIterator__init(val* self, val* p0) { -short int var /* : Bool */; -int cltype; -int idtype; -const struct type* type_struct; -const char* var_class_name; -{ /* Inline abstract_collection#MapValuesIterator#init (self,p0) on */ -/* Covariant cast for argument 0 (original_iterator) isa MapIterator[MapValuesIterator#0, MapValuesIterator#1] */ -/* isa MapIterator[MapValuesIterator#0, MapValuesIterator#1] */ -type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapIteratorabstract_collection__MapValuesIterator_FT0abstract_collection__MapValuesIterator_FT1]; -cltype = type_struct->color; -idtype = type_struct->id; -if(cltype >= p0->type->table_size) { -var = 0; -} else { -var = p0->type->type_table[cltype] == idtype; -} -if (unlikely(!var)) { -var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[MapValuesIterator#0, MapValuesIterator#1]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 539); -show_backtrace(1); +/* method abstract_collection#MapValuesIterator#init for (self: Object) */ +void VIRTUAL_abstract_collection__MapValuesIterator__init(val* self) { +{ /* Inline abstract_collection#MapValuesIterator#init (self) on */ +{ +((void (*)(val*))(self->class->vft[COLOR_abstract_collection__MapValuesIterator__init]))(self) /* init on */; } -self->attrs[COLOR_abstract_collection__MapValuesIterator___original_iterator].val = p0; /* _original_iterator on */ RET_LABEL1:(void)0; } RET_LABEL:; @@ -1615,7 +1753,7 @@ var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collec var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 567); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 590); show_backtrace(1); } var3 = 0; @@ -1656,7 +1794,7 @@ var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collec var2 = !var1; if (unlikely(!var2)) { PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 592); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 615); show_backtrace(1); } { @@ -1671,7 +1809,7 @@ var7 = 1; /* easy isa OTHER*/ if (unlikely(!var7)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); show_backtrace(1); } var8 = var3 - var4; @@ -1709,8 +1847,8 @@ const char* var_class_name; val* var_item /* var item: nullable Object */; long var2 /* : Int */; long var3 /* : Int */; -/* Covariant cast for argument 0 (item) isa SequenceRead#0 */ -/* isa SequenceRead#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__SequenceRead_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1726,8 +1864,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SequenceRead#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 596); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 619); show_backtrace(1); } var_item = p0; @@ -1768,8 +1906,8 @@ int idtype8; const char* var_class_name9; long var10 /* : Int */; long var11 /* : Int */; -/* Covariant cast for argument 0 (item) isa SequenceRead#0 */ -/* isa SequenceRead#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__SequenceRead_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1785,8 +1923,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SequenceRead#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 605); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 628); show_backtrace(1); } var_item = p0; @@ -1802,7 +1940,7 @@ var6 = 1; /* easy isa OTHER*/ if (unlikely(!var6)) { var_class_name9 = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name9); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); show_backtrace(1); } var10 = var2 - var3; @@ -1866,8 +2004,8 @@ long var24 /* : Int */; long var25 /* : Int */; long var26 /* : Int */; long var28 /* : Int */; -/* Covariant cast for argument 0 (item) isa SequenceRead#0 */ -/* isa SequenceRead#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__SequenceRead_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -1883,8 +2021,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SequenceRead#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 614); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 637); show_backtrace(1); } var_item = p0; @@ -1899,7 +2037,7 @@ for(;;) { { var4 = ((short int (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_i) /* is_ok on */; } -if (!var4) break; +if (var4){ { { /* Inline kernel#Int#>= (var_p,var_pos) on */ /* Covariant cast for argument 0 (i) isa OTHER */ @@ -1908,7 +2046,7 @@ var8 = 1; /* easy isa OTHER*/ if (unlikely(!var8)) { var_class_name11 = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); show_backtrace(1); } var12 = var_p >= var_pos; @@ -1952,7 +2090,7 @@ var20 = 1; /* easy isa OTHER*/ if (unlikely(!var20)) { var_class_name23 = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name23); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } var24 = var_p + var17; @@ -1962,7 +2100,9 @@ RET_LABEL19:(void)0; } } var_p = var18; -CONTINUE_label: (void)0; +} else { +goto BREAK_label; +} } BREAK_label: (void)0; var25 = 1; @@ -2024,8 +2164,8 @@ int cltype23; int idtype24; const char* var_class_name25; long var26 /* : Int */; -/* Covariant cast for argument 0 (item) isa SequenceRead#0 */ -/* isa SequenceRead#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__SequenceRead_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2041,8 +2181,8 @@ var1 = p0->type->type_table[cltype] == idtype; } if (unlikely(!var1)) { var_class_name = p0 == NULL ? "null" : p0->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SequenceRead#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 634); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 657); show_backtrace(1); } var_item = p0; @@ -2067,7 +2207,7 @@ for(;;) { { var8 = ((short int (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_i) /* is_ok on */; } -if (!var8) break; +if (var8){ { { /* Inline kernel#Int#> (var_p,var_pos) on */ /* Covariant cast for argument 0 (i) isa OTHER */ @@ -2076,7 +2216,7 @@ var11 = 1; /* easy isa OTHER*/ if (unlikely(!var11)) { var_class_name14 = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } var15 = var_p > var_pos; @@ -2114,7 +2254,7 @@ var22 = 1; /* easy isa OTHER*/ if (unlikely(!var22)) { var_class_name25 = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } var26 = var_p + var19; @@ -2124,7 +2264,9 @@ RET_LABEL21:(void)0; } } var_p = var20; -CONTINUE_label: (void)0; +} else { +goto BREAK_label; +} } BREAK_label: (void)0; var = var_res; @@ -2233,7 +2375,7 @@ var15 = 1; /* easy isa OTHER*/ if (unlikely(!var15)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); show_backtrace(1); } var18 = var_i < var_l; @@ -2242,7 +2384,7 @@ goto RET_LABEL14; RET_LABEL14:(void)0; } } -if (!var13) break; +if (var13){ { var19 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var_i) /* [] on */; } @@ -2270,7 +2412,7 @@ var27 = 1; /* easy isa OTHER*/ if (unlikely(!var27)) { var_class_name30 = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); show_backtrace(1); } var31 = var_i + var24; @@ -2280,7 +2422,9 @@ RET_LABEL26:(void)0; } } var_i = var25; -CONTINUE_label: (void)0; +} else { +goto BREAK_label; +} } BREAK_label: (void)0; var32 = 1; @@ -2302,59 +2446,168 @@ return var; long abstract_collection__SequenceRead__hash(val* self) { long var /* : Int */; long var1 /* : Int */; -long var_res /* var res: Int */; -val* var2 /* : Iterator[nullable Object] */; -short int var3 /* : Bool */; -val* var4 /* : nullable Object */; -val* var_e /* var e: nullable Object */; -long var5 /* : Int */; -long var6 /* : Int */; -short int var8 /* : Bool */; +long var2 /* : Int */; +long var3 /* : Int */; +short int var5 /* : Bool */; int cltype; int idtype; const char* var_class_name; -long var9 /* : Int */; -var1 = 0; -var_res = var1; +long var6 /* : Int */; +long var_res /* var res: Int */; +val* var_ /* var : SequenceRead[nullable Object] */; +val* var7 /* : Iterator[nullable Object] */; +val* var_8 /* var : IndexedIterator[nullable Object] */; +short int var9 /* : Bool */; +val* var10 /* : nullable Object */; +val* var_e /* var e: nullable Object */; +long var11 /* : Int */; +long var12 /* : Int */; +short int var14 /* : Bool */; +int cltype15; +int idtype16; +const char* var_class_name17; +long var18 /* : Int */; +long var19 /* : Int */; +long var20 /* : Int */; +short int var22 /* : Bool */; +int cltype23; +int idtype24; +const char* var_class_name25; +long var26 /* : Int */; +val* var27 /* : null */; +short int var28 /* : Bool */; +short int var29 /* : Bool */; +long var30 /* : Int */; +long var31 /* : Int */; +short int var33 /* : Bool */; +int cltype34; +int idtype35; +const char* var_class_name36; +long var37 /* : Int */; +var1 = 17; +{ +var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; +} +{ +{ /* Inline kernel#Int#+ (var1,var2) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var5 = 1; /* easy isa OTHER*/ +if (unlikely(!var5)) { +var_class_name = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var6 = var1 + var2; +var3 = var6; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +} +var_res = var3; +var_ = self; { -var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; +var7 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on */; } +var_8 = var7; for(;;) { { -var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on */; +var9 = ((short int (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_8) /* is_ok on */; } -if(!var3) break; +if (var9){ { -var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on */; +var10 = ((val* (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__item]))(var_8) /* item on */; } -var_e = var4; +var_e = var10; +var11 = 3; { -var5 = kernel__Int__hash(var_res); +{ /* Inline kernel#Int#* (var_res,var11) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var14 = 1; /* easy isa OTHER*/ +if (unlikely(!var14)) { +var_class_name17 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 378); +show_backtrace(1); +} +var18 = var_res * var11; +var12 = var18; +goto RET_LABEL13; +RET_LABEL13:(void)0; +} } +var19 = 2; { -{ /* Inline kernel#Int#+ (var_res,var5) on */ -/* Covariant cast for argument 0 (i) isa OTHER */ -/* isa OTHER */ -var8 = 1; /* easy isa OTHER*/ -if (unlikely(!var8)) { -var_class_name = type_kernel__Int.name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328); +{ /* Inline kernel#Int#/ (var12,var19) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var22 = 1; /* easy isa OTHER*/ +if (unlikely(!var22)) { +var_class_name25 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379); show_backtrace(1); } -var9 = var_res + var5; -var6 = var9; -goto RET_LABEL7; -RET_LABEL7:(void)0; +var26 = var12 / var19; +var20 = var26; +goto RET_LABEL21; +RET_LABEL21:(void)0; +} } +var_res = var20; +var27 = NULL; +if (var_e == NULL) { +var28 = 0; /* is null */ +} else { +var28 = 1; /* arg is null and recv is not */ +} +if (0) { +var29 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___33d_61d]))(var_e, var27) /* != on */; +var28 = var29; +} +if (var28){ +if (var_e == NULL) { +PRINT_ERROR("Runtime error: %s", "Receiver is null"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 709); +show_backtrace(1); +} else { +var30 = ((long (*)(val*))(var_e->class->vft[COLOR_kernel__Object__hash]))(var_e) /* hash on */; } -var_res = var6; -CONTINUE_label: (void)0; { -((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on */; +{ /* Inline kernel#Int#+ (var_res,var30) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var33 = 1; /* easy isa OTHER*/ +if (unlikely(!var33)) { +var_class_name36 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var37 = var_res + var30; +var31 = var37; +goto RET_LABEL32; +RET_LABEL32:(void)0; +} +} +var_res = var31; +} else { +} +{ +((void (*)(val*))(var_8->class->vft[COLOR_abstract_collection__Iterator__next]))(var_8) /* next on */; +} +} else { +goto BREAK_label; } } BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_8) on */ +RET_LABEL38:(void)0; +} +} var = var_res; goto RET_LABEL; RET_LABEL:; @@ -2407,7 +2660,7 @@ var6 = 1; /* easy isa OTHER*/ if (unlikely(!var6)) { var_class_name = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373); show_backtrace(1); } var7 = var_pos > var3; @@ -2425,7 +2678,7 @@ var2 = var8; } else { var2 = var_; } -if (!var2) break; +if (var2){ { ((void (*)(val*))(var_res->class->vft[COLOR_abstract_collection__Iterator__next]))(var_res) /* next on */; } @@ -2438,7 +2691,7 @@ var12 = 1; /* easy isa OTHER*/ if (unlikely(!var12)) { var_class_name15 = type_kernel__Int.name; PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377); show_backtrace(1); } var16 = var_pos - var9; @@ -2448,7 +2701,9 @@ RET_LABEL11:(void)0; } } var_pos = var10; -CONTINUE_label: (void)0; +} else { +goto BREAK_label; +} } BREAK_label: (void)0; var = var_res; @@ -2475,8 +2730,8 @@ short int is_nullable; const char* var_class_name; val* var_item /* var item: nullable Object */; long var1 /* : Int */; -/* Covariant cast for argument 0 (item) isa Sequence#0 */ -/* isa Sequence#0 */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Sequence_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2492,8 +2747,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`", "Sequence#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 728); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 757); show_backtrace(1); } var_item = p0; @@ -2517,8 +2772,8 @@ const struct type* type_struct; short int is_nullable; const char* var_class_name; val* var_e /* var e: nullable Object */; -/* Covariant cast for argument 0 (e) isa SimpleCollection#0 */ -/* isa SimpleCollection#0 */ +/* Covariant cast for argument 0 (e) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__SimpleCollection_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2534,8 +2789,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`", "SimpleCollection#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 759); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 788); show_backtrace(1); } var_e = p0; @@ -2557,12 +2812,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; val* var_coll /* var coll: Collection[nullable Object] */; -val* var1 /* : Iterator[nullable Object] */; -short int var2 /* : Bool */; -val* var3 /* : nullable Object */; -val* var_i /* var i: nullable Object */; -/* Covariant cast for argument 0 (coll) isa Collection[Sequence#0] */ -/* isa Collection[Sequence#0] */ +/* Covariant cast for argument 0 (coll) isa Collection[E] */ +/* isa Collection[E] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectionabstract_collection__Sequence_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2573,32 +2824,14 @@ 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`", "Collection[Sequence#0]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 770); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 799); show_backtrace(1); } var_coll = p0; { -var1 = ((val* (*)(val*))(var_coll->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_coll) /* iterator on */; -} -for(;;) { -{ -var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on */; +abstract_collection__SimpleCollection__add_all(self, var_coll); /* Direct call abstract_collection#SimpleCollection#add_all on */ } -if(!var2) break; -{ -var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on */; -} -var_i = var3; -{ -((void (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__Sequence__push]))(self, var_i) /* push on */; -} -CONTINUE_label: (void)0; -{ -((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on */; -} -} -BREAK_label: (void)0; RET_LABEL:; } /* method abstract_collection#Sequence#append for (self: Object, Collection[nullable Object]) */ @@ -2612,7 +2845,7 @@ val* var /* : nullable Object */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "pop", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 777); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 808); show_backtrace(1); RET_LABEL:; return var; @@ -2625,7 +2858,7 @@ const char* var_class_name; { /* Inline abstract_collection#Sequence#pop (self) on */ var_class_name = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "pop", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 777); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 808); show_backtrace(1); RET_LABEL2:(void)0; } @@ -2642,8 +2875,8 @@ const struct type* type_struct; short int is_nullable; const char* var_class_name; const char* var_class_name1; -/* Covariant cast for argument 0 (e) isa Sequence#0 */ -/* isa Sequence#0 */ +/* Covariant cast for argument 0 (e) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Sequence_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2659,13 +2892,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`", "Sequence#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 787); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 818); show_backtrace(1); } var_class_name1 = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "unshift", var_class_name1); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 787); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 818); show_backtrace(1); RET_LABEL:; } @@ -2679,8 +2912,8 @@ short int is_nullable; const char* var_class_name; const char* var_class_name2; { /* Inline abstract_collection#Sequence#unshift (self,p0) on */ -/* Covariant cast for argument 0 (e) isa Sequence#0 */ -/* isa Sequence#0 */ +/* Covariant cast for argument 0 (e) isa E */ +/* isa E */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Sequence_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2696,25 +2929,62 @@ 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`", "Sequence#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 787); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 818); show_backtrace(1); } var_class_name2 = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "unshift", var_class_name2); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 787); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 818); show_backtrace(1); RET_LABEL1:(void)0; } RET_LABEL:; } +/* method abstract_collection#Sequence#prepend for (self: Sequence[nullable Object], Collection[nullable Object]) */ +void abstract_collection__Sequence__prepend(val* self, val* p0) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +val* var_coll /* var coll: Collection[nullable Object] */; +long var1 /* : Int */; +/* Covariant cast for argument 0 (coll) isa Collection[E] */ +/* isa Collection[E] */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectionabstract_collection__Sequence_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 826); +show_backtrace(1); +} +var_coll = p0; +var1 = 0; +{ +((void (*)(val*, val*, long))(self->class->vft[COLOR_abstract_collection__Sequence__insert_all]))(self, var_coll, var1) /* insert_all on */; +} +RET_LABEL:; +} +/* method abstract_collection#Sequence#prepend for (self: Object, Collection[nullable Object]) */ +void VIRTUAL_abstract_collection__Sequence__prepend(val* self, val* p0) { +abstract_collection__Sequence__prepend(self, p0); /* Direct call abstract_collection#Sequence#prepend on */ +RET_LABEL:; +} /* method abstract_collection#Sequence#shift for (self: Sequence[nullable Object]): nullable Object */ val* abstract_collection__Sequence__shift(val* self) { val* var /* : nullable Object */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "shift", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 795); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 835); show_backtrace(1); RET_LABEL:; return var; @@ -2727,7 +2997,7 @@ const char* var_class_name; { /* Inline abstract_collection#Sequence#shift (self) on */ var_class_name = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "shift", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 795); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 835); show_backtrace(1); RET_LABEL2:(void)0; } @@ -2735,12 +3005,270 @@ var = var1; RET_LABEL:; return var; } +/* method abstract_collection#Sequence#insert for (self: Sequence[nullable Object], nullable Object, Int) */ +void abstract_collection__Sequence__insert(val* self, val* p0, long p1) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +short int is_nullable; +const char* var_class_name; +const char* var_class_name1; +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Sequence_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +is_nullable = type_struct->is_nullable; +if(p0 == NULL) { +var = is_nullable; +} else { +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 861); +show_backtrace(1); +} +var_class_name1 = self == NULL ? "null" : self->type->name; +PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "insert", var_class_name1); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 861); +show_backtrace(1); +RET_LABEL:; +} +/* method abstract_collection#Sequence#insert for (self: Object, nullable Object, Int) */ +void VIRTUAL_abstract_collection__Sequence__insert(val* self, val* p0, long p1) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +short int is_nullable; +const char* var_class_name; +const char* var_class_name2; +{ /* Inline abstract_collection#Sequence#insert (self,p0,p1) on */ +/* Covariant cast for argument 0 (item) isa E */ +/* isa E */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Sequence_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +is_nullable = type_struct->is_nullable; +if(p0 == NULL) { +var = is_nullable; +} else { +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; +} +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 861); +show_backtrace(1); +} +var_class_name2 = self == NULL ? "null" : self->type->name; +PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "insert", var_class_name2); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 861); +show_backtrace(1); +RET_LABEL1:(void)0; +} +RET_LABEL:; +} +/* method abstract_collection#Sequence#insert_all for (self: Sequence[nullable Object], Collection[nullable Object], Int) */ +void abstract_collection__Sequence__insert_all(val* self, val* p0, long p1) { +short int var /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +val* var_coll /* var coll: Collection[nullable Object] */; +long var_index /* var index: Int */; +short int var1 /* : Bool */; +long var2 /* : Int */; +short int var3 /* : Bool */; +short int var5 /* : Bool */; +int cltype6; +int idtype7; +const char* var_class_name8; +short int var9 /* : Bool */; +short int var_ /* var : Bool */; +long var10 /* : Int */; +short int var11 /* : Bool */; +short int var13 /* : Bool */; +int cltype14; +int idtype15; +const char* var_class_name16; +short int var17 /* : Bool */; +long var18 /* : Int */; +short int var19 /* : Bool */; +short int var20 /* : Bool */; +short int var22 /* : Bool */; +val* var_23 /* var : Collection[nullable Object] */; +val* var24 /* : Iterator[nullable Object] */; +val* var_25 /* var : Iterator[nullable Object] */; +short int var26 /* : Bool */; +val* var27 /* : nullable Object */; +val* var_c /* var c: nullable Object */; +long var28 /* : Int */; +long var29 /* : Int */; +short int var31 /* : Bool */; +int cltype32; +int idtype33; +const char* var_class_name34; +long var35 /* : Int */; +/* Covariant cast for argument 0 (coll) isa Collection[E] */ +/* isa Collection[E] */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Collectionabstract_collection__Sequence_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var = 0; +} else { +var = p0->type->type_table[cltype] == idtype; +} +if (unlikely(!var)) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 871); +show_backtrace(1); +} +var_coll = p0; +var_index = p1; +var2 = 0; +{ +{ /* Inline kernel#Int#>= (var_index,var2) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var5 = 1; /* easy isa OTHER*/ +if (unlikely(!var5)) { +var_class_name8 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372); +show_backtrace(1); +} +var9 = var_index >= var2; +var3 = var9; +goto RET_LABEL4; +RET_LABEL4:(void)0; +} +} +var_ = var3; +if (var3){ +{ +var10 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; +} +{ +{ /* Inline kernel#Int#< (var_index,var10) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var13 = 1; /* easy isa OTHER*/ +if (unlikely(!var13)) { +var_class_name16 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371); +show_backtrace(1); +} +var17 = var_index < var10; +var11 = var17; +goto RET_LABEL12; +RET_LABEL12:(void)0; +} +} +var1 = var11; +} else { +var1 = var_; +} +if (unlikely(!var1)) { +PRINT_ERROR("Runtime error: %s", "Assert failed"); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 881); +show_backtrace(1); +} +{ +var18 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; +} +{ +{ /* Inline kernel#Int#== (var_index,var18) on */ +var22 = var_index == var18; +var20 = var22; +goto RET_LABEL21; +RET_LABEL21:(void)0; +} +var19 = var20; +} +if (var19){ +{ +abstract_collection__SimpleCollection__add_all(self, var_coll); /* Direct call abstract_collection#SimpleCollection#add_all on */ +} +} else { +} +var_23 = var_coll; +{ +var24 = ((val* (*)(val*))(var_23->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_23) /* iterator on */; +} +var_25 = var24; +for(;;) { +{ +var26 = ((short int (*)(val*))(var_25->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_25) /* is_ok on */; +} +if (var26){ +{ +var27 = ((val* (*)(val*))(var_25->class->vft[COLOR_abstract_collection__Iterator__item]))(var_25) /* item on */; +} +var_c = var27; +{ +((void (*)(val*, val*, long))(self->class->vft[COLOR_abstract_collection__Sequence__insert]))(self, var_c, var_index) /* insert on */; +} +var28 = 1; +{ +{ /* Inline kernel#Int#+ (var_index,var28) on */ +/* Covariant cast for argument 0 (i) isa OTHER */ +/* isa OTHER */ +var31 = 1; /* easy isa OTHER*/ +if (unlikely(!var31)) { +var_class_name34 = type_kernel__Int.name; +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374); +show_backtrace(1); +} +var35 = var_index + var28; +var29 = var35; +goto RET_LABEL30; +RET_LABEL30:(void)0; +} +} +var_index = var29; +{ +((void (*)(val*))(var_25->class->vft[COLOR_abstract_collection__Iterator__next]))(var_25) /* next on */; +} +} else { +goto BREAK_label; +} +} +BREAK_label: (void)0; +{ +{ /* Inline abstract_collection#Iterator#finish (var_25) on */ +RET_LABEL36:(void)0; +} +} +RET_LABEL:; +} +/* method abstract_collection#Sequence#insert_all for (self: Object, Collection[nullable Object], Int) */ +void VIRTUAL_abstract_collection__Sequence__insert_all(val* self, val* p0, long p1) { +abstract_collection__Sequence__insert_all(self, p0, p1); /* Direct call abstract_collection#Sequence#insert_all on */ +RET_LABEL:; +} /* method abstract_collection#Sequence#remove_at for (self: Sequence[nullable Object], Int) */ void abstract_collection__Sequence__remove_at(val* self, long p0) { const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "remove_at", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 831); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 891); show_backtrace(1); RET_LABEL:; } @@ -2750,7 +3278,7 @@ const char* var_class_name; { /* Inline abstract_collection#Sequence#remove_at (self,p0) on */ var_class_name = self == NULL ? "null" : self->type->name; PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "remove_at", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 831); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 891); show_backtrace(1); RET_LABEL1:(void)0; } @@ -2792,7 +3320,7 @@ val* var5 /* : nullable Object */; var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 879); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 939); show_backtrace(1); } { @@ -2829,7 +3357,7 @@ val* var5 /* : nullable Object */; var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 883); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 943); show_backtrace(1); } { @@ -2864,7 +3392,7 @@ short int var2 /* : Bool */; var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on */ if (unlikely(var1 == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 885); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 945); show_backtrace(1); } { @@ -2890,7 +3418,7 @@ val* var /* : Iterator[Couple[Object, nullable Object]] */; var = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on */ if (unlikely(var == NULL)) { PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter"); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 889); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 949); show_backtrace(1); } { @@ -2911,8 +3439,8 @@ int idtype; const struct type* type_struct; const char* var_class_name; val* var_i /* var i: Iterator[Couple[Object, nullable Object]] */; -/* Covariant cast for argument 0 (i) isa Iterator[Couple[CoupleMapIterator#0, CoupleMapIterator#1]] */ -/* isa Iterator[Couple[CoupleMapIterator#0, CoupleMapIterator#1]] */ +/* Covariant cast for argument 0 (i) isa Iterator[Couple[K, V]] */ +/* isa Iterator[Couple[K, V]] */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Iteratorabstract_collection__Coupleabstract_collection__CoupleMapIterator_FT0abstract_collection__CoupleMapIterator_FT1]; cltype = type_struct->color; idtype = type_struct->id; @@ -2923,8 +3451,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`", "Iterator[Couple[CoupleMapIterator#0, CoupleMapIterator#1]]", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 894); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Iterator[Couple[K, V]]", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 954); show_backtrace(1); } var_i = p0; @@ -2967,8 +3495,8 @@ int idtype; const struct type* type_struct; short int is_nullable; const char* var_class_name; -/* Covariant cast for argument 0 (first) isa Couple#0 */ -/* isa Couple#0 */ +/* Covariant cast for argument 0 (first) isa F */ +/* isa F */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Couple_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -2984,8 +3512,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`", "Couple#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 902); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "F", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 962); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Couple___first].val = p0; /* _first on */ @@ -3000,8 +3528,8 @@ const struct type* type_struct; short int is_nullable; const char* var_class_name; { /* Inline abstract_collection#Couple#first= (self,p0) on */ -/* Covariant cast for argument 0 (first) isa Couple#0 */ -/* isa Couple#0 */ +/* Covariant cast for argument 0 (first) isa F */ +/* isa F */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Couple_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -3017,8 +3545,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`", "Couple#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 902); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "F", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 962); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Couple___first].val = p0; /* _first on */ @@ -3057,8 +3585,8 @@ int idtype; const struct type* type_struct; short int is_nullable; const char* var_class_name; -/* Covariant cast for argument 0 (second) isa Couple#1 */ -/* isa Couple#1 */ +/* Covariant cast for argument 0 (second) isa S */ +/* isa S */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Couple_FT1]; cltype = type_struct->color; idtype = type_struct->id; @@ -3074,8 +3602,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`", "Couple#1", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 905); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 965); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Couple___second].val = p0; /* _second on */ @@ -3090,8 +3618,8 @@ const struct type* type_struct; short int is_nullable; const char* var_class_name; { /* Inline abstract_collection#Couple#second= (self,p0) on */ -/* Covariant cast for argument 0 (second) isa Couple#1 */ -/* isa Couple#1 */ +/* Covariant cast for argument 0 (second) isa S */ +/* isa S */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Couple_FT1]; cltype = type_struct->color; idtype = type_struct->id; @@ -3107,8 +3635,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`", "Couple#1", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 905); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 965); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Couple___second].val = p0; /* _second on */ @@ -3144,8 +3672,8 @@ int idtype17; const struct type* type_struct18; short int is_nullable19; const char* var_class_name20; -/* Covariant cast for argument 0 (f) isa Couple#0 */ -/* isa Couple#0 */ +/* Covariant cast for argument 0 (f) isa F */ +/* isa F */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__Couple_FT0]; cltype = type_struct->color; idtype = type_struct->id; @@ -3161,12 +3689,12 @@ 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`", "Couple#0", var_class_name); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 908); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "F", var_class_name); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 968); show_backtrace(1); } -/* Covariant cast for argument 1 (s) isa Couple#1 */ -/* isa Couple#1 */ +/* Covariant cast for argument 1 (s) isa S */ +/* isa S */ type_struct4 = self->type->resolution_table->types[COLOR_abstract_collection__Couple_FT1]; cltype2 = type_struct4->color; idtype3 = type_struct4->id; @@ -3182,16 +3710,16 @@ var1 = p1->type->type_table[cltype2] == idtype3; } if (unlikely(!var1)) { var_class_name6 = p1 == NULL ? "null" : p1->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Couple#1", var_class_name6); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 908); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name6); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 968); show_backtrace(1); } var_f = p0; var_s = p1; { { /* Inline abstract_collection#Couple#first= (self,var_f) on */ -/* Covariant cast for argument 0 (first) isa Couple#0 */ -/* isa Couple#0 */ +/* Covariant cast for argument 0 (first) isa F */ +/* isa F */ type_struct11 = self->type->resolution_table->types[COLOR_abstract_collection__Couple_FT0]; cltype9 = type_struct11->color; idtype10 = type_struct11->id; @@ -3207,8 +3735,8 @@ var8 = var_f->type->type_table[cltype9] == idtype10; } if (unlikely(!var8)) { var_class_name13 = var_f == NULL ? "null" : var_f->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Couple#0", var_class_name13); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 902); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "F", var_class_name13); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 962); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Couple___first].val = var_f; /* _first on */ @@ -3217,8 +3745,8 @@ RET_LABEL7:(void)0; } { { /* Inline abstract_collection#Couple#second= (self,var_s) on */ -/* Covariant cast for argument 0 (second) isa Couple#1 */ -/* isa Couple#1 */ +/* Covariant cast for argument 0 (second) isa S */ +/* isa S */ type_struct18 = self->type->resolution_table->types[COLOR_abstract_collection__Couple_FT1]; cltype16 = type_struct18->color; idtype17 = type_struct18->id; @@ -3234,8 +3762,8 @@ var15 = var_s->type->type_table[cltype16] == idtype17; } if (unlikely(!var15)) { var_class_name20 = var_s == NULL ? "null" : var_s->type->name; -PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Couple#1", var_class_name20); -PRINT_ERROR(" (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 905); +PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name20); +PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/abstract_collection.nit", 965); show_backtrace(1); } self->attrs[COLOR_abstract_collection__Couple___second].val = var_s; /* _second on */