authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-10-27 13:40:20+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-10-27 13:40:20+03:00
log648d34d8eacaf2e35e336abd5b0c50c2ab9bfc94
tree3d211f9f81d98e1c6012f59325ec983f0a33d1ef
parentb937a045607deae158ccb6a00f5defaf36510e61

Sema: coerce zero-bit generic args are coerced properly

Closes #13307

2 files changed, 12 insertions(+), 0 deletions(-)

src/Sema.zig+2
......@@ -6738,6 +6738,8 @@ fn analyzeGenericCallArg(
67386738 try sema.queueFullTypeResolution(param_ty);
67396739 runtime_args[runtime_i.*] = casted_arg;
67406740 runtime_i.* += 1;
6741 } else if (try sema.typeHasOnePossibleValue(block, arg_src, comptime_arg.ty)) |_| {
6742 _ = try sema.coerce(block, comptime_arg.ty, uncasted_arg, arg_src);
67416743 }
67426744}
67436745
test/cases/compile_errors/zero-bit_generic_args_are_coerced_to_param_type.zig created+10
......@@ -0,0 +1,10 @@
1fn bar(a: anytype, _: @TypeOf(a)) void {}
2pub export fn entry() void {
3 bar(@as(u0, 0), "fooo");
4}
5
6// error
7// backend=stage2
8// target=native
9//
10// :3:21: error: expected type 'u0', found '*const [4:0]u8'