From 5d935e1137ade5450e504ce9bc6bbf32301b0dfd Mon Sep 17 00:00:00 2001 From: mlugg Date: Thu, 6 Feb 2025 01:23:27 +0000 Subject: [PATCH] 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 6cf0f15795007d5c6411e78c01db8648fb9ac361..dbaf6b0f2ba604042e7eaa8eda85241344457ad2 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); +} -- 2.54.0