From ce95cc170bfa763d31fc498169ee9e44adca57fa Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Wed, 19 Oct 2022 01:59:31 +0300 Subject: [PATCH] Value: handle runtime_int in hashPtr Closes #12702 --- src/value.zig | 3 +++ test/behavior/src.zig | 11 +++++++++++ 2 files changed, 14 insertions(+) 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); +}