From e774d7954cc65866ea970fda1602c83b6df31bc8 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 4 Oct 2026 19:36:19 +0100 Subject: [PATCH] Allow the compiler with slightly older forms of the compiler which only have `default_hasher` and not `default_hasher_fixed` --- src/check_type.cpp | 2 +- src/checker.cpp | 4 ++++ src/llvm_backend.cpp | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/check_type.cpp b/src/check_type.cpp index 74d9e0c2e..0500c9c3d 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -4197,7 +4197,7 @@ gb_internal void add_map_key_type_dependencies(CheckerContext *ctx, Type *key) { } if (is_type_simple_compare(key)) { - add_package_dependency(ctx, "runtime", "default_hasher_fixed"); + add_package_dependency(ctx, "runtime", runtime_default_hasher_fixed_name(&ctx->checker->info)); return; } diff --git a/src/checker.cpp b/src/checker.cpp index 82e1dc154..9bba16502 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -1035,6 +1035,10 @@ gb_internal void try_to_add_package_dependency(CheckerContext *c, char const *pa add_dependency(c->info, c->decl, e); } +gb_internal char const *runtime_default_hasher_fixed_name(CheckerInfo *info) { + Entity *e = scope_lookup_current(info->runtime_package->scope, string_interner_insert(str_lit("default_hasher_fixed"))); + return e != nullptr ? "default_hasher_fixed" : "default_hasher"; +} gb_internal void add_declaration_dependency(CheckerContext *c, Entity *e) { if (e == nullptr) { diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 4e6dab465..2560f4e3c 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -434,7 +434,7 @@ gb_internal lbValue lb_simple_compare_hash(lbProcedure *p, Type *type, lbValue d args[0] = data; args[1] = seed; args[2] = lb_const_int(p->module, t_int, type_size_of(type)); - return lb_emit_runtime_call(p, "default_hasher_fixed", args); + return lb_emit_runtime_call(p, runtime_default_hasher_fixed_name(p->module->info), args); } gb_internal void lb_add_callsite_force_inline(lbProcedure *p, lbValue ret_value) {