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 b4ddfd9..ae17a15 100644 --- a/c_src/abstract_collection.sep.1.c +++ b/c_src/abstract_collection.sep.1.c @@ -6,7 +6,7 @@ const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "iterator", var_class_name); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 54); -exit(1); +show_backtrace(1); RET_LABEL:; return var; } @@ -130,7 +130,7 @@ if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 75); -exit(1); +show_backtrace(1); } var_item = p0; var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; @@ -205,7 +205,7 @@ if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 88); -exit(1); +show_backtrace(1); } var_item = p0; var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; @@ -283,7 +283,7 @@ if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 105); -exit(1); +show_backtrace(1); } var_item = p0; var2 = 0; @@ -350,8 +350,8 @@ var5 = 1; /* easy isa OTHER*/ if (!var5) { var_class_name = type_kernel__Int.name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); } var6 = var1 > var2; var3 = var6; @@ -361,7 +361,7 @@ RET_LABEL4:(void)0; if (!var3) { fprintf(stderr, "Runtime error: %s", "Assert failed"); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 121); -exit(1); +show_backtrace(1); } var7 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on */; @@ -410,7 +410,7 @@ if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Collection#0]", var_class_name); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 125); -exit(1); +show_backtrace(1); } var_other = p0; var2 = ((val* (*)(val*))(var_other->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_other) /* iterator on */; @@ -453,7 +453,7 @@ const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "item", var_class_name); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 141); -exit(1); +show_backtrace(1); RET_LABEL:; return var; } @@ -472,7 +472,7 @@ const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "next", var_class_name); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 145); -exit(1); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#Iterator#next for (self: Object) */ @@ -487,7 +487,7 @@ const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "is_ok", var_class_name); fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 149); -exit(1); +show_backtrace(1); RET_LABEL:; return var; } @@ -587,8 +587,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 163); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 164); +show_backtrace(1); } var_an_item = p0; var2 = self->attrs[COLOR_abstract_collection__Container___item].val; /* _item on */ @@ -641,8 +641,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 165); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 166); +show_backtrace(1); } var_an_item = p0; var2 = self->attrs[COLOR_abstract_collection__Container___item].val; /* _item on */ @@ -697,8 +697,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 167); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 168); +show_backtrace(1); } var_an_item = p0; var2 = self->attrs[COLOR_abstract_collection__Container___item].val; /* _item on */ @@ -734,7 +734,6 @@ val* var /* : Iterator[nullable Object] */; val* var1 /* : ContainerIterator[nullable Object] */; var1 = NEW_abstract_collection__ContainerIterator(self->type->resolution_table->types[COLOR_abstract_collection__ContainerIteratorabstract_collection__Container_FT0]); ((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__ContainerIterator__init]))(var1, self) /* init on */; -CHECK_NEW_abstract_collection__ContainerIterator(var1); var = var1; goto RET_LABEL; RET_LABEL:; @@ -776,8 +775,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Container#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 178); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 179); +show_backtrace(1); } var_e = p0; self->attrs[COLOR_abstract_collection__Container___item].val = var_e; /* _item on */ @@ -832,8 +831,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Container#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 181); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 182); +show_backtrace(1); } self->attrs[COLOR_abstract_collection__Container___item].val = p0; /* _item on */ RET_LABEL:; @@ -851,8 +850,8 @@ val* var2 /* : nullable Object */; var1 = self->attrs[COLOR_abstract_collection__ContainerIterator___container].val; /* _container on */ if (var1 == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _container"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 188); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 189); +show_backtrace(1); } var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Container__item]))(var1) /* item on */; var = var2; @@ -902,8 +901,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Container[ContainerIterator#0]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 192); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 193); +show_backtrace(1); } var_c = p0; self->attrs[COLOR_abstract_collection__ContainerIterator___container].val = var_c; /* _container on */ @@ -937,8 +936,8 @@ void abstract_collection__RemovableCollection__clear(val* self) { const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "clear", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 202); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 203); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#RemovableCollection#clear for (self: Object) */ @@ -973,13 +972,13 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "RemovableCollection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 205); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 206); +show_backtrace(1); } var_class_name1 = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "remove", var_class_name1); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 205); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 206); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#RemovableCollection#remove for (self: Object, nullable Object) */ @@ -1015,8 +1014,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "RemovableCollection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 208); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 209); +show_backtrace(1); } var_item = p0; for(;;) { @@ -1060,13 +1059,13 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SimpleCollection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 215); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 216); +show_backtrace(1); } var_class_name1 = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "add", var_class_name1); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 215); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 216); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#SimpleCollection#add for (self: Object, nullable Object) */ @@ -1099,8 +1098,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[SimpleCollection#0]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 219); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 220); +show_backtrace(1); } var_coll = p0; var1 = ((val* (*)(val*))(var_coll->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_coll) /* iterator on */; @@ -1154,8 +1153,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 235); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 236); +show_backtrace(1); } var_item = p0; var2 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; @@ -1226,8 +1225,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 247); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 248); +show_backtrace(1); } var_item = p0; var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__Collection__has]))(self, var_item) /* has on */; @@ -1273,8 +1272,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "RemovableCollection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 257); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 258); +show_backtrace(1); } var_item = p0; ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__RemovableCollection__remove]))(self, var_item) /* remove on */; @@ -1353,8 +1352,8 @@ var11 = var_other->type->type_table[cltype12] == idtype13; if (!var11) { var_class_name = var_other == NULL ? "null" : var_other->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Set#0]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 265); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 266); +show_backtrace(1); } var14 = ((short int (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__Collection__has_all]))(self, var_other) /* has_all on */; var = var14; @@ -1439,13 +1438,13 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 279); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 280); +show_backtrace(1); } var_class_name2 = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "[]", var_class_name2); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 279); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 280); +show_backtrace(1); RET_LABEL:; return var; } @@ -1458,6 +1457,57 @@ var = var1; RET_LABEL:; return var; } +/* method abstract_collection#MapRead#get_or_null for (self: MapRead[Object, nullable Object], Object): nullable Object */ +val* abstract_collection__MapRead__get_or_null(val* self, val* p0) { +val* var /* : nullable Object */; +short int var1 /* : Bool */; +int cltype; +int idtype; +const struct type* type_struct; +const char* var_class_name; +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 */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapRead_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var1 = 0; +} else { +var1 = p0->type->type_table[cltype] == idtype; +} +if (!var1) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 283); +show_backtrace(1); +} +var_key = p0; +var2 = ((short int (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__MapRead__has_key]))(self, var_key) /* has_key on */; +if (var2){ +var3 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(self, var_key) /* [] on */; +var = var3; +goto RET_LABEL; +} else { +} +var4 = NULL; +var = var4; +goto RET_LABEL; +RET_LABEL:; +return var; +} +/* method abstract_collection#MapRead#get_or_null for (self: Object, Object): nullable Object */ +val* VIRTUAL_abstract_collection__MapRead__get_or_null(val* self, val* p0) { +val* var /* : nullable Object */; +val* var1 /* : nullable Object */; +var1 = abstract_collection__MapRead__get_or_null(self, p0); +var = var1; +RET_LABEL:; +return var; +} /* method abstract_collection#MapRead#get_or_default for (self: MapRead[Object, nullable Object], Object, nullable Object): nullable Object */ val* abstract_collection__MapRead__get_or_default(val* self, val* p0, val* p1) { val* var /* : nullable Object */; @@ -1489,8 +1539,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 282); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 297); +show_backtrace(1); } /* Covariant cast for argument 1 (default) isa MapRead#1 */ /* isa MapRead#1 */ @@ -1510,8 +1560,8 @@ var2 = p1->type->type_table[cltype3] == idtype4; if (!var2) { var_class_name6 = p1 == NULL ? "null" : p1->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#1", var_class_name6); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 282); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 297); +show_backtrace(1); } var_key = p0; var_default = p1; @@ -1560,8 +1610,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 289); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 304); +show_backtrace(1); } var_key = p0; var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__MapRead__keys]))(self) /* keys on */; @@ -1586,8 +1636,8 @@ val* var /* : MapIterator[Object, nullable Object] */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "iterator", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 292); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 307); +show_backtrace(1); RET_LABEL:; return var; } @@ -1606,8 +1656,8 @@ val* var /* : Collection[nullable Object] */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "values", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 295); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 310); +show_backtrace(1); RET_LABEL:; return var; } @@ -1626,8 +1676,8 @@ val* var /* : Collection[Object] */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "keys", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 300); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 315); +show_backtrace(1); RET_LABEL:; return var; } @@ -1646,8 +1696,8 @@ short int var /* : Bool */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "is_empty", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 305); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 320); +show_backtrace(1); RET_LABEL:; return var; } @@ -1666,8 +1716,8 @@ long var /* : Int */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "length", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 308); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 323); +show_backtrace(1); RET_LABEL:; return var; } @@ -1680,6 +1730,47 @@ var = var1; RET_LABEL:; return var; } +/* method abstract_collection#MapRead#provide_default_value for (self: MapRead[Object, nullable Object], Object): nullable Object */ +val* abstract_collection__MapRead__provide_default_value(val* self, val* p0) { +val* var /* : nullable Object */; +short int var1 /* : Bool */; +int cltype; +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 */ +type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapRead_FT0]; +cltype = type_struct->color; +idtype = type_struct->id; +if(cltype >= p0->type->table_size) { +var1 = 0; +} else { +var1 = p0->type->type_table[cltype] == idtype; +} +if (!var1) { +var_class_name = p0 == NULL ? "null" : p0->type->name; +fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 326); +show_backtrace(1); +} +var_key = p0; +fprintf(stderr, "Runtime error: %s", "Aborted"); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 331); +show_backtrace(1); +RET_LABEL:; +return var; +} +/* method abstract_collection#MapRead#provide_default_value for (self: Object, Object): nullable Object */ +val* VIRTUAL_abstract_collection__MapRead__provide_default_value(val* self, val* p0) { +val* var /* : nullable Object */; +val* var1 /* : nullable Object */; +var1 = abstract_collection__MapRead__provide_default_value(self, p0); +var = var1; +RET_LABEL:; +return var; +} /* method abstract_collection#Map#[]= for (self: Map[Object, nullable Object], Object, nullable Object) */ void abstract_collection__Map___91d_93d_61d(val* self, val* p0, val* p1) { short int var /* : Bool */; @@ -1707,8 +1798,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 338); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 360); +show_backtrace(1); } /* Covariant cast for argument 1 (item) isa Map#1 */ /* isa Map#1 */ @@ -1728,13 +1819,13 @@ var1 = p1->type->type_table[cltype2] == idtype3; if (!var1) { var_class_name5 = p1 == NULL ? "null" : p1->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map#1", var_class_name5); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 338); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 360); +show_backtrace(1); } var_class_name6 = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "[]=", var_class_name6); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 338); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 360); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#Map#[]= for (self: Object, Object, nullable Object) */ @@ -1768,8 +1859,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Map[Map#0, Map#1]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 341); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 363); +show_backtrace(1); } var_map = p0; var1 = ((val* (*)(val*))(var_map->class->vft[COLOR_abstract_collection__MapRead__iterator]))(var_map) /* iterator on */; @@ -1796,8 +1887,8 @@ void abstract_collection__Map__clear(val* self) { const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "clear", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 352); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 374); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#Map#clear for (self: Object) */ @@ -1811,8 +1902,8 @@ val* var /* : RemovableCollection[nullable Object] */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "values", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 355); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 377); +show_backtrace(1); RET_LABEL:; return var; } @@ -1831,8 +1922,8 @@ val* var /* : RemovableCollection[Object] */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "keys", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 357); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 379); +show_backtrace(1); RET_LABEL:; return var; } @@ -1851,8 +1942,8 @@ val* var /* : nullable Object */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "item", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 362); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 384); +show_backtrace(1); RET_LABEL:; return var; } @@ -1871,8 +1962,8 @@ val* var /* : Object */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "key", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 366); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 388); +show_backtrace(1); RET_LABEL:; return var; } @@ -1890,8 +1981,8 @@ void abstract_collection__MapIterator__next(val* self) { const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "next", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 370); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 392); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#MapIterator#next for (self: Object) */ @@ -1905,8 +1996,8 @@ short int var /* : Bool */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "is_ok", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 374); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 396); +show_backtrace(1); RET_LABEL:; return var; } @@ -1926,8 +2017,8 @@ val* var1 /* : MapIterator[Object, nullable Object] */; var1 = self->attrs[COLOR_abstract_collection__MapKeysIterator___64diterator].val; /* @iterator on */ if (var1 == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @iterator"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 384); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 406); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -1962,8 +2053,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[MapKeysIterator#0, MapKeysIterator#1]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 384); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 406); +show_backtrace(1); } self->attrs[COLOR_abstract_collection__MapKeysIterator___64diterator].val = p0; /* @iterator on */ RET_LABEL:; @@ -2047,8 +2138,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[MapKeysIterator#0, MapKeysIterator#1]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 381); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 403); +show_backtrace(1); } self->attrs[COLOR_abstract_collection__MapKeysIterator___64diterator].val = p0; /* @iterator on */ RET_LABEL:; @@ -2065,8 +2156,8 @@ val* var1 /* : MapIterator[Object, nullable Object] */; var1 = self->attrs[COLOR_abstract_collection__MapValuesIterator___64diterator].val; /* @iterator on */ if (var1 == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @iterator"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 395); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 417); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -2101,8 +2192,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[MapValuesIterator#0, MapValuesIterator#1]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 395); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 417); +show_backtrace(1); } self->attrs[COLOR_abstract_collection__MapValuesIterator___64diterator].val = p0; /* @iterator on */ RET_LABEL:; @@ -2186,8 +2277,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[MapValuesIterator#0, MapValuesIterator#1]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 392); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 414); +show_backtrace(1); } self->attrs[COLOR_abstract_collection__MapValuesIterator___64diterator].val = p0; /* @iterator on */ RET_LABEL:; @@ -2208,8 +2299,8 @@ var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collec var2 = !var1; if (!var2) { fprintf(stderr, "Runtime error: %s", "Assert \'not_empty\' failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 411); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 433); +show_backtrace(1); } var3 = 0; var4 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(self, var3) /* [] on */; @@ -2233,8 +2324,8 @@ val* var /* : nullable Object */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "[]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 415); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 437); +show_backtrace(1); RET_LABEL:; return var; } @@ -2261,8 +2352,8 @@ var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collec var2 = !var1; if (!var2) { fprintf(stderr, "Runtime error: %s", "Assert \'not_empty\' failed"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 424); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 446); +show_backtrace(1); } var3 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; var4 = 1; @@ -2324,8 +2415,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SequenceRead#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 428); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 450); +show_backtrace(1); } var_item = p0; var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on */; @@ -2376,8 +2467,8 @@ val* var /* : IndexedIterator[nullable Object] */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "iterator", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 441); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 463); +show_backtrace(1); RET_LABEL:; return var; } @@ -2468,8 +2559,8 @@ var14 = 1; /* easy isa OTHER*/ if (!var14) { var_class_name = type_kernel__Int.name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 261); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265); +show_backtrace(1); } var17 = var_i < var_l; var12 = var17; @@ -2590,8 +2681,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 472); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 494); +show_backtrace(1); } var_item = p0; var1 = 0; @@ -2643,8 +2734,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 477); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 499); +show_backtrace(1); } var_item = p0; var1 = ((long (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__length]))(self) /* length on */; @@ -2657,8 +2748,8 @@ var5 = 1; /* easy isa OTHER*/ if (!var5) { var_class_name8 = type_kernel__Int.name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8); -fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 263); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 267); +show_backtrace(1); } var9 = var_l > var2; var3 = var9; @@ -2712,8 +2803,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "SimpleCollection#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 489); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 511); +show_backtrace(1); } var_e = p0; ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__Sequence__push]))(self, var_e) /* push on */; @@ -2751,13 +2842,13 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 492); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 514); +show_backtrace(1); } var_class_name1 = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "push", var_class_name1); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 492); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 514); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#Sequence#push for (self: Object, nullable Object) */ @@ -2790,8 +2881,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[Sequence#0]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 495); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 517); +show_backtrace(1); } var_coll = p0; var1 = ((val* (*)(val*))(var_coll->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_coll) /* iterator on */; @@ -2818,8 +2909,8 @@ val* var /* : nullable Object */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "pop", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 498); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 520); +show_backtrace(1); RET_LABEL:; return var; } @@ -2859,13 +2950,13 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 501); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 523); +show_backtrace(1); } var_class_name1 = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "unshift", var_class_name1); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 501); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 523); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#Sequence#unshift for (self: Object, nullable Object) */ @@ -2879,8 +2970,8 @@ val* var /* : nullable Object */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "shift", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 504); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 526); +show_backtrace(1); RET_LABEL:; return var; } @@ -2920,13 +3011,13 @@ var = p1->type->type_table[cltype] == idtype; if (!var) { var_class_name = p1 == NULL ? "null" : p1->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Sequence#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 508); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 530); +show_backtrace(1); } var_class_name1 = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "[]=", var_class_name1); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 508); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 530); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#Sequence#[]= for (self: Object, Int, nullable Object) */ @@ -2939,8 +3030,8 @@ void abstract_collection__Sequence__remove_at(val* self, long p0) { const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "remove_at", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 511); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 533); +show_backtrace(1); RET_LABEL:; } /* method abstract_collection#Sequence#remove_at for (self: Object, Int) */ @@ -2954,8 +3045,8 @@ long var /* : Int */; const char* var_class_name; var_class_name = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "index", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 518); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 540); +show_backtrace(1); RET_LABEL:; return var; } @@ -2990,13 +3081,13 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "CoupleMap#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 525); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 547); +show_backtrace(1); } var_class_name2 = self == NULL ? "null" : self->type->name; fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "couple_at", var_class_name2); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 525); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 547); +show_backtrace(1); RET_LABEL:; return var; } @@ -3023,6 +3114,7 @@ val* var_c /* var c: nullable Couple[Object, nullable Object] */; val* var3 /* : null */; short int var4 /* : Bool */; val* var5 /* : nullable Object */; +val* var6 /* : nullable Object */; /* Covariant cast for argument 0 (key) isa MapRead#0 */ /* isa MapRead#0 */ type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapRead_FT0]; @@ -3036,8 +3128,8 @@ var1 = p0->type->type_table[cltype] == idtype; if (!var1) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MapRead#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 529); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 551); +show_backtrace(1); } var_key = p0; var2 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__CoupleMap__couple_at]))(self, var_key) /* couple_at on */; @@ -3049,13 +3141,13 @@ var4 = 1; /* is null */ var4 = 0; /* arg is null but recv is not */ } if (var4){ -fprintf(stderr, "Runtime error: %s", "Aborted"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 533); -exit(1); -} else { -var5 = ((val* (*)(val*))(var_c->class->vft[COLOR_abstract_collection__Couple__second]))(var_c) /* second on */; +var5 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__MapRead__provide_default_value]))(self, var_key) /* provide_default_value on */; var = var5; goto RET_LABEL; +} else { +var6 = ((val* (*)(val*))(var_c->class->vft[COLOR_abstract_collection__Couple__second]))(var_c) /* second on */; +var = var6; +goto RET_LABEL; } RET_LABEL:; return var; @@ -3078,8 +3170,8 @@ val* var3 /* : nullable Object */; var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on */ if (var1 == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _iter"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 545); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 567); +show_backtrace(1); } var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on */; var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Couple__second]))(var2) /* second on */; @@ -3106,8 +3198,8 @@ val* var3 /* : nullable Object */; var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on */ if (var1 == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _iter"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 549); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 571); +show_backtrace(1); } var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on */; var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Couple__first]))(var2) /* first on */; @@ -3133,8 +3225,8 @@ short int var2 /* : Bool */; var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on */ if (var1 == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _iter"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 551); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 573); +show_backtrace(1); } var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on */; var = var2; @@ -3157,8 +3249,8 @@ val* var /* : Iterator[Couple[Object, nullable Object]] */; var = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on */ if (var == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _iter"); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 555); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 577); +show_backtrace(1); } ((void (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__next]))(var) /* next on */; RET_LABEL:; @@ -3189,8 +3281,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Iterator[Couple[CoupleMapIterator#0, CoupleMapIterator#1]]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 560); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 582); +show_backtrace(1); } var_i = p0; self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val = var_i; /* _iter on */ @@ -3245,8 +3337,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Couple#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 568); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 590); +show_backtrace(1); } self->attrs[COLOR_abstract_collection__Couple___first].val = p0; /* _first on */ RET_LABEL:; @@ -3300,8 +3392,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Couple#1", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 571); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 593); +show_backtrace(1); } self->attrs[COLOR_abstract_collection__Couple___second].val = p0; /* _second on */ RET_LABEL:; @@ -3345,8 +3437,8 @@ var = p0->type->type_table[cltype] == idtype; if (!var) { var_class_name = p0 == NULL ? "null" : p0->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Couple#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 574); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 596); +show_backtrace(1); } /* Covariant cast for argument 1 (s) isa Couple#1 */ /* isa Couple#1 */ @@ -3366,8 +3458,8 @@ var1 = p1->type->type_table[cltype2] == idtype3; if (!var1) { var_class_name6 = p1 == NULL ? "null" : p1->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Couple#1", var_class_name6); -fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 574); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/standard/collection/abstract_collection.nit", 596); +show_backtrace(1); } var_f = p0; var_s = p1;