diff --git a/src/value.zig b/src/value.zig index 47f69b2099..71fb8c4a0e 100644 --- a/src/value.zig +++ b/src/value.zig @@ -2555,6 +2555,9 @@ pub const Value = extern union { .lazy_size, => return hashInt(ptr_val, hasher, target), + // The value is runtime-known and shouldn't affect the hash. + .runtime_int => {}, + else => unreachable, } } diff --git a/test/behavior/src.zig b/test/behavior/src.zig index 017395a7c6..d5a2b87240 100644 --- a/test/behavior/src.zig +++ b/test/behavior/src.zig @@ -20,3 +20,14 @@ test "@src" { try doTheTest(); } + +test "@src used as a comptime parameter" { + const S = struct { + fn Foo(comptime _: std.builtin.SourceLocation) type { + return struct {}; + } + }; + const T1 = S.Foo(@src()); + const T2 = S.Foo(@src()); + try expect(T1 != T2); +}