diff options
| author | gingerBill <bill@gingerbill.org> | 2020-11-29 16:12:21 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2020-11-29 16:12:21 +0000 |
| commit | 57f5976ac1b5416093ef25d725c30ae5ff270809 (patch) | |
| tree | 578ed2767af296e9144fb04ec912fad8ae86e485 /src/check_type.cpp | |
| parent | 7fbc081119c57bf378a317fe6618eacd0465834d (diff) | |
Support map keys for simple compare types
Diffstat (limited to 'src/check_type.cpp')
| -rw-r--r-- | src/check_type.cpp | 5 |
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)); } } } |