X-Git-Url: http://nitlanguage.org diff --git a/c_src/more_collections.sep.1.c b/c_src/more_collections.sep.1.c index 6755aa0..1a80d90 100644 --- a/c_src/more_collections.sep.1.c +++ b/c_src/more_collections.sep.1.c @@ -32,8 +32,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`", "MultiHashMap#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 22); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 35); +show_backtrace(1); } /* Covariant cast for argument 1 (v) isa MultiHashMap#1 */ /* isa MultiHashMap#1 */ @@ -53,8 +53,8 @@ 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`", "MultiHashMap#1", var_class_name5); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 22); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 35); +show_backtrace(1); } var_k = p0; var_v = p1; @@ -69,7 +69,6 @@ var9 = 1; var10 = NEW_array__NativeArray(var9, self->type->resolution_table->types[COLOR_array__NativeArraymore_collections__MultiHashMap_FT1]); ((struct instance_array__NativeArray*)var10)->values[0] = (val*) var_v; ((void (*)(val*, val*, long))(var8->class->vft[COLOR_array__Array__with_native]))(var8, var10, var9) /* with_native on */; -CHECK_NEW_array__Array(var8); } ((void (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(self, var_k, var8) /* []= on */; } @@ -80,6 +79,52 @@ void VIRTUAL_more_collections__MultiHashMap__add_one(val* self, val* p0, val* p1 more_collections__MultiHashMap__add_one(self, p0, p1); RET_LABEL:; } +/* 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) 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/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 */; +var_res = var2; +((void (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(self, var_key, var_res) /* []= on */; +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; +} /* method more_collections#MultiHashMap#init for (self: MultiHashMap[Object, nullable Object]) */ void more_collections__MultiHashMap__init(val* self) { ((void (*)(val*))(self->class->vft[COLOR_hash_collection__HashMap__init]))(self) /* init on */; @@ -97,8 +142,8 @@ val* var1 /* : HashMap[Object, HashMap[Object, nullable Object]] */; var1 = self->attrs[COLOR_more_collections__HashMap2___64dlevel1].val; /* @level1 on */ if (var1 == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @level1"); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 38); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 57); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -133,8 +178,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`", "HashMap[HashMap2#0, HashMap[HashMap2#1, HashMap2#2]]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 38); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 57); +show_backtrace(1); } self->attrs[COLOR_more_collections__HashMap2___64dlevel1].val = p0; /* @level1 on */ RET_LABEL:; @@ -183,8 +228,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`", "HashMap2#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 40); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 59); +show_backtrace(1); } /* Covariant cast for argument 1 (k2) isa HashMap2#1 */ /* isa HashMap2#1 */ @@ -199,8 +244,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`", "HashMap2#1", var_class_name6); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 40); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 59); +show_backtrace(1); } var_k1 = p0; var_k2 = p1; @@ -280,8 +325,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`", "HashMap2#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 51); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 70); +show_backtrace(1); } /* Covariant cast for argument 1 (k2) isa HashMap2#1 */ /* isa HashMap2#1 */ @@ -296,8 +341,8 @@ 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`", "HashMap2#1", var_class_name5); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 51); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 70); +show_backtrace(1); } /* Covariant cast for argument 2 (v) isa HashMap2#2 */ /* isa HashMap2#2 */ @@ -317,8 +362,8 @@ var6 = p2->type->type_table[cltype7] == idtype8; if (!var6) { var_class_name10 = p2 == NULL ? "null" : p2->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap2#2", var_class_name10); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 51); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 70); +show_backtrace(1); } var_k1 = p0; var_k2 = p1; @@ -330,7 +375,6 @@ var13 = !var12; if (var13){ var14 = NEW_hash_collection__HashMap(self->type->resolution_table->types[COLOR_hash_collection__HashMapmore_collections__HashMap2_FT1more_collections__HashMap2_FT2]); ((void (*)(val*))(var14->class->vft[COLOR_hash_collection__HashMap__init]))(var14) /* init on */; -CHECK_NEW_hash_collection__HashMap(var14); var_level2 = var14; ((void (*)(val*, val*, val*))(var_level1->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var_level1, var_k1, var_level2) /* []= on */; } else { @@ -361,8 +405,8 @@ val* var1 /* : HashMap[Object, HashMap2[Object, Object, nullable Object]] */; var1 = self->attrs[COLOR_more_collections__HashMap3___64dlevel1].val; /* @level1 on */ if (var1 == NULL) { fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @level1"); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 68); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 87); +show_backtrace(1); } var = var1; RET_LABEL:; @@ -397,8 +441,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`", "HashMap[HashMap3#0, HashMap2[HashMap3#1, HashMap3#2, HashMap3#3]]", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 68); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 87); +show_backtrace(1); } self->attrs[COLOR_more_collections__HashMap3___64dlevel1].val = p0; /* @level1 on */ RET_LABEL:; @@ -450,8 +494,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`", "HashMap3#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 70); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 89); +show_backtrace(1); } /* Covariant cast for argument 1 (k2) isa HashMap3#1 */ /* isa HashMap3#1 */ @@ -466,8 +510,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`", "HashMap3#1", var_class_name6); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 70); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 89); +show_backtrace(1); } /* Covariant cast for argument 2 (k3) isa HashMap3#2 */ /* isa HashMap3#2 */ @@ -482,8 +526,8 @@ var7 = p2->type->type_table[cltype8] == idtype9; if (!var7) { var_class_name11 = p2 == NULL ? "null" : p2->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap3#2", var_class_name11); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 70); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 89); +show_backtrace(1); } var_k1 = p0; var_k2 = p1; @@ -562,8 +606,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`", "HashMap3#0", var_class_name); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 80); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 99); +show_backtrace(1); } /* Covariant cast for argument 1 (k2) isa HashMap3#1 */ /* isa HashMap3#1 */ @@ -578,8 +622,8 @@ 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`", "HashMap3#1", var_class_name5); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 80); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 99); +show_backtrace(1); } /* Covariant cast for argument 2 (k3) isa HashMap3#2 */ /* isa HashMap3#2 */ @@ -594,8 +638,8 @@ var6 = p2->type->type_table[cltype7] == idtype8; if (!var6) { var_class_name10 = p2 == NULL ? "null" : p2->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap3#2", var_class_name10); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 80); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 99); +show_backtrace(1); } /* Covariant cast for argument 3 (v) isa HashMap3#3 */ /* isa HashMap3#3 */ @@ -615,8 +659,8 @@ var11 = p3->type->type_table[cltype12] == idtype13; if (!var11) { var_class_name15 = p3 == NULL ? "null" : p3->type->name; fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap3#3", var_class_name15); -fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 80); -exit(1); +fprintf(stderr, " (%s:%d)\n", "lib/more_collections.nit", 99); +show_backtrace(1); } var_k1 = p0; var_k2 = p1; @@ -629,7 +673,6 @@ var18 = !var17; if (var18){ var19 = NEW_more_collections__HashMap2(self->type->resolution_table->types[COLOR_more_collections__HashMap2more_collections__HashMap3_FT1more_collections__HashMap3_FT2more_collections__HashMap3_FT3]); ((void (*)(val*))(var19->class->vft[COLOR_more_collections__HashMap2__init]))(var19) /* init on */; -CHECK_NEW_more_collections__HashMap2(var19); var_level2 = var19; ((void (*)(val*, val*, val*))(var_level1->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var_level1, var_k1, var_level2) /* []= on */; } else {