Support map keys for simple compare types

This commit is contained in:
gingerBill
2020-11-29 16:12:21 +00:00
parent 7fbc081119
commit 57f5976ac1
5 changed files with 26 additions and 7 deletions
+4 -1
View File
@@ -2856,6 +2856,10 @@ void add_map_key_type_dependencies(CheckerContext *ctx, Type *key) {
} else if (!is_type_polymorphic(key)) {
GB_ASSERT_MSG(is_type_simple_compare(key), "%s", type_to_string(key));
if (is_type_struct(key)) {
add_package_dependency(ctx, "runtime", "default_hasher_n");
}
i64 sz = type_size_of(key);
switch (sz) {
case 1: add_package_dependency(ctx, "runtime", "default_hasher1"); break;
@@ -2863,7 +2867,6 @@ void add_map_key_type_dependencies(CheckerContext *ctx, Type *key) {
case 4: add_package_dependency(ctx, "runtime", "default_hasher4"); break;
case 8: add_package_dependency(ctx, "runtime", "default_hasher8"); break;
case 16: add_package_dependency(ctx, "runtime", "default_hasher16"); break;
default: GB_PANIC("unhandled hasher for key type: %s", type_to_string(key));
}
}
}