+/* method more_collections#MultiHashMap#provide_default_value for (self: MultiHashMap[Object, nullable Object], Object): Array[nullable Object] */
+val* more_collections__MultiHashMap__provide_default_value(val* self, val* p0) {
+val* var /* : Array[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 */;
+val* var2 /* : Array[nullable Object] */;
+val* var_res /* var res: Array[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];
+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/more_collections.nit", 46);
+show_backtrace(1);
+}
+var_key = p0;
+var2 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arraymore_collections__MultiHashMap_FT1]);
+((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[nullable Object]>*/;
+var_res = var2;
+((void (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(self, var_key, var_res) /* []= on <self:MultiHashMap[Object, nullable Object]>*/;
+var = var_res;
+goto RET_LABEL;
+RET_LABEL:;
+return var;
+}
+/* method more_collections#MultiHashMap#provide_default_value for (self: Object, Object): nullable Object */
+val* VIRTUAL_more_collections__MultiHashMap__provide_default_value(val* self, val* p0) {
+val* var /* : nullable Object */;
+val* var1 /* : Array[nullable Object] */;
+var1 = more_collections__MultiHashMap__provide_default_value(self, p0);
+var = var1;
+RET_LABEL:;
+return var;
+}