From 1a3784c4df312df72f15b179e083d83818e08def Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 3 May 2021 13:38:15 +0100 Subject: Allow unions which are comparable to also be valid map keys (i.e. hashable) --- src/check_type.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/check_type.cpp') diff --git a/src/check_type.cpp b/src/check_type.cpp index aef1ddc7a..f70230682 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -2109,6 +2109,12 @@ void add_map_key_type_dependencies(CheckerContext *ctx, Type *key) { Entity *field = key->Struct.fields[i]; add_map_key_type_dependencies(ctx, field->type); } + } else if (key->kind == Type_Union) { + add_package_dependency(ctx, "runtime", "default_hasher_n"); + for_array(i, key->Union.variants) { + Type *v = key->Union.variants[i]; + add_map_key_type_dependencies(ctx, v); + } } else if (key->kind == Type_EnumeratedArray) { add_package_dependency(ctx, "runtime", "default_hasher_n"); add_map_key_type_dependencies(ctx, key->EnumeratedArray.elem); -- cgit v1.2.3