mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
Sema: fix generic fn instantiation with anytype
When the anytype parameter had only one-possible-value (e.g. `void`), it would create a mismatch in the function type and the function call. Now the function type and the callsite both omit the one-possible-value anytype parameter in instantiated generic functions.
This commit is contained in:
parent
2aa4a32097
commit
83bb3d1ad6
@ -6158,6 +6158,9 @@ fn zirParamAnytype(
|
||||
// function type of the function instruction in this block.
|
||||
return;
|
||||
}
|
||||
if (null != try sema.typeHasOnePossibleValue(block, src, param_ty)) {
|
||||
return;
|
||||
}
|
||||
// The map is already populated but we do need to add a runtime parameter.
|
||||
try block.params.append(sema.gpa, .{
|
||||
.ty = param_ty,
|
||||
|
||||
@ -39,7 +39,7 @@ test "reference to a struct type" {
|
||||
}
|
||||
|
||||
test "cast negative integer to pointer" {
|
||||
if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
||||
|
||||
try expectEqual(@intToPtr(?*anyopaque, @bitCast(usize, @as(isize, -1))), h.MAP_FAILED);
|
||||
}
|
||||
|
||||
@ -50,7 +50,11 @@ test "tuple multiplication" {
|
||||
}
|
||||
|
||||
test "more tuple concatenation" {
|
||||
if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
|
||||
const T = struct {
|
||||
fn consume_tuple(tuple: anytype, len: usize) !void {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user