From f3069f51aa0e395ce9de60a2876c37042b2a1a35 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 6 Jul 2022 17:00:17 -0700 Subject: [PATCH] Sema: fix type resolution during generic function instantiation Found when trying to compile the std lib tests for x86_64-macos. --- src/Sema.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Sema.zig b/src/Sema.zig index 60d636b81e..c72a73dd11 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -6042,12 +6042,12 @@ fn instantiateGenericCall( .param_comptime, .param_anytype_comptime, .param, .param_anytype => {}, else => continue, } + const arg_src = call_src; // TODO: better source location const is_runtime = comptime_args[total_i].val.tag() == .generic_poison and comptime_args[total_i].ty.hasRuntimeBits() and - !comptime_args[total_i].ty.comptimeOnly(); + !(try sema.typeRequiresComptime(block, arg_src, comptime_args[total_i].ty)); if (is_runtime) { const param_ty = new_fn_info.param_types[runtime_i]; - const arg_src = call_src; // TODO: better source location const uncasted_arg = uncasted_args[total_i]; const casted_arg = try sema.coerce(block, param_ty, uncasted_arg, arg_src); try sema.queueFullTypeResolution(param_ty);