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;
}
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 <self:Collection[nullable Object]>*/;
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 <self:Collection[nullable Object]>*/;
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;
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;
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 <self:Collection[nullable Object]>*/;
var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on <var7:Iterator[nullable Object]>*/;
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 <var_other:Collection[nullable Object]>*/;
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;
}
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) */
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;
}
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 <self:Container[nullable Object]> */
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 <self:Container[nullable Object]> */
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 <self:Container[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 <var1:ContainerIterator[nullable Object]>*/;
-CHECK_NEW_abstract_collection__ContainerIterator(var1);
var = var1;
goto RET_LABEL;
RET_LABEL:;
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 <self:Container[nullable Object]> */
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 <self:Container[nullable Object]> */
RET_LABEL:;
var1 = self->attrs[COLOR_abstract_collection__ContainerIterator___container].val; /* _container on <self:ContainerIterator[nullable Object]> */
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 <var1:Container[nullable Object]>*/;
var = var2;
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 <self:ContainerIterator[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`", "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) */
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) */
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(;;) {
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) */
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 <var_coll:Collection[nullable Object]>*/;
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 <self:Set[Object]>*/;
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 <self:Set[Object]>*/;
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 <self:Set[Object]>*/;
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 <self:Set[Object]>*/;
var = var14;
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;
}
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) <p0:Object> isa MapRead#0 */
+/* <p0:Object> 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 <self:MapRead[Object, nullable Object]>*/;
+if (var2){
+var3 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(self, var_key) /* [] on <self:MapRead[Object, nullable Object]>*/;
+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 */;
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) <p1:nullable Object> isa MapRead#1 */
/* <p1:nullable Object> isa MapRead#1 */
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;
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 <self:MapRead[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;
}
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;
}
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;
}
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;
}
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;
}
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) <p0:Object> isa MapRead#0 */
+/* <p0:Object> 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 */;
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) <p1:nullable Object> isa Map#1 */
/* <p1:nullable Object> isa Map#1 */
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) */
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 <var_map:Map[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`", "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) */
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;
}
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;
}
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;
}
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;
}
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) */
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;
}
var1 = self->attrs[COLOR_abstract_collection__MapKeysIterator___64diterator].val; /* @iterator on <self:MapKeysIterator[Object, nullable Object]> */
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:;
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 <self:MapKeysIterator[Object, nullable Object]> */
RET_LABEL:;
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 <self:MapKeysIterator[Object, nullable Object]> */
RET_LABEL:;
var1 = self->attrs[COLOR_abstract_collection__MapValuesIterator___64diterator].val; /* @iterator on <self:MapValuesIterator[Object, nullable Object]> */
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:;
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 <self:MapValuesIterator[Object, nullable Object]> */
RET_LABEL:;
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 <self:MapValuesIterator[Object, nullable Object]> */
RET_LABEL:;
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 <self:SequenceRead[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;
}
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 <self:SequenceRead[nullable Object]>*/;
var4 = 1;
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 <self:SequenceRead[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;
}
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;
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;
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 <self:Sequence[nullable Object]>*/;
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;
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 <self:Sequence[nullable Object]>*/;
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) */
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 <var_coll: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`", "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;
}
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) */
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;
}
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) */
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) */
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;
}
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;
}
val* var3 /* : null */;
short int var4 /* : Bool */;
val* var5 /* : nullable Object */;
+val* var6 /* : nullable Object */;
/* Covariant cast for argument 0 (key) <p0:Object> isa MapRead#0 */
/* <p0:Object> isa MapRead#0 */
type_struct = self->type->resolution_table->types[COLOR_abstract_collection__MapRead_FT0];
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 <self:CoupleMap[Object, nullable Object]>*/;
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 <var_c:nullable Couple[Object, nullable Object](Couple[Object, nullable Object])>*/;
+var5 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_collection__MapRead__provide_default_value]))(self, var_key) /* provide_default_value on <self:CoupleMap[Object, nullable Object]>*/;
var = var5;
goto RET_LABEL;
+} else {
+var6 = ((val* (*)(val*))(var_c->class->vft[COLOR_abstract_collection__Couple__second]))(var_c) /* second on <var_c:nullable Couple[Object, nullable Object](Couple[Object, nullable Object])>*/;
+var = var6;
+goto RET_LABEL;
}
RET_LABEL:;
return var;
var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on <self:CoupleMapIterator[Object, nullable Object]> */
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 <var1:Iterator[Couple[Object, nullable Object]]>*/;
var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Couple__second]))(var2) /* second on <var2:nullable Object(Couple[Object, nullable Object])>*/;
var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on <self:CoupleMapIterator[Object, nullable Object]> */
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 <var1:Iterator[Couple[Object, nullable Object]]>*/;
var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Couple__first]))(var2) /* first on <var2:nullable Object(Couple[Object, nullable Object])>*/;
var1 = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on <self:CoupleMapIterator[Object, nullable Object]> */
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 <var1:Iterator[Couple[Object, nullable Object]]>*/;
var = var2;
var = self->attrs[COLOR_abstract_collection__CoupleMapIterator___iter].val; /* _iter on <self:CoupleMapIterator[Object, nullable Object]> */
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 <var:Iterator[Couple[Object, nullable Object]]>*/;
RET_LABEL:;
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 <self:CoupleMapIterator[Object, nullable Object]> */
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 <self:Couple[nullable Object, nullable Object]> */
RET_LABEL:;
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 <self:Couple[nullable Object, nullable Object]> */
RET_LABEL:;
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) <p1:nullable Object> isa Couple#1 */
/* <p1:nullable Object> isa Couple#1 */
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;