From 57f5976ac1b5416093ef25d725c30ae5ff270809 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 29 Nov 2020 16:12:21 +0000 Subject: Support map keys for simple compare types --- src/check_type.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/check_type.cpp') 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)); } } } -- cgit v1.2.3