From 5d935e1137ade5450e504ce9bc6bbf32301b0dfd Mon Sep 17 00:00:00 2001 From: mlugg Date: Thu, 6 Feb 2025 01:23:27 +0000 Subject: behavior: add test for old bug Resolves: #18435 --- test/behavior/fn.zig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/behavior/fn.zig b/test/behavior/fn.zig index 6cf0f15795..dbaf6b0f2b 100644 --- a/test/behavior/fn.zig +++ b/test/behavior/fn.zig @@ -711,3 +711,20 @@ test "inline call propagates comptime-known argument to generic parameter and re try expect(a1 == 12340); try expect(b1 == 12340); } + +test "inline function return type is evaluated at comptime" { + const S = struct { + inline fn assertComptimeAndRet(x: anytype) @TypeOf(x) { + if (!@inComptime()) comptime unreachable; + return x; + } + + inline fn foo(val: anytype) assertComptimeAndRet(u16) { + return val; + } + }; + + const result = S.foo(123); + comptime assert(@TypeOf(result) == u16); + try expect(result == 123); +} -- cgit v1.2.3