Commit 89db4f2e93
Changed files (2)
test
behavior
src/InternPool.zig
@@ -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
test/behavior/generics.zig
@@ -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);
+}