aboutsummaryrefslogtreecommitdiff
path: root/src/check_type.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/check_type.cpp')
-rw-r--r--src/check_type.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/check_type.cpp b/src/check_type.cpp
index 8da410fa9..453348aa6 100644
--- a/src/check_type.cpp
+++ b/src/check_type.cpp
@@ -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));
}
}
}