Sema: use unwrapped generic owner in getFuncInstanceIes

This commit is contained in:
David Rubin 2025-03-20 18:50:12 -07:00 committed by Matthew Lugg
parent 972cab5bb0
commit 89db4f2e93
2 changed files with 13 additions and 1 deletions

View File

@ -9455,7 +9455,7 @@ pub fn getFuncInstanceIes(
try items.ensureUnusedCapacity(4);
const generic_owner = unwrapCoercedFunc(ip, arg.generic_owner);
const generic_owner_ty = ip.indexToKey(ip.funcDeclInfo(arg.generic_owner).ty).func_type;
const generic_owner_ty = ip.indexToKey(ip.funcDeclInfo(generic_owner).ty).func_type;
// The strategy here is to add the function decl unconditionally, then to
// ask if it already exists, and if so, revert the lengths of the mutated

View File

@ -619,3 +619,15 @@ test "generic parameter resolves to comptime-only type but is not marked comptim
const ct_result = comptime S.foo(u8, false, S.bar);
comptime std.debug.assert(ct_result == 123);
}
test "instantiate coerced generic function" {
const S = struct {
fn generic(comptime T: type, arg: *const u8) !void {
_ = T;
_ = arg;
}
};
const coerced: fn (comptime type, *u8) anyerror!void = S.generic;
var x: u8 = 20;
try coerced(u8, &x);
}