From 6c195ede54fe9f75c794204fb39c915a9e5581ed Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 26 Jun 2019 23:25:53 -0400 Subject: [PATCH] add test case for defer modifying return value before returned See #961 --- test/stage1/behavior/defer.zig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/stage1/behavior/defer.zig b/test/stage1/behavior/defer.zig index 0bb9125e7..6c0e2a432 100644 --- a/test/stage1/behavior/defer.zig +++ b/test/stage1/behavior/defer.zig @@ -76,3 +76,20 @@ fn testNestedFnErrDefer() anyerror!void { }; return S.baz(); } + +test "return variable while defer expression in scope to modify it" { + const S = struct { + fn doTheTest() void { + expect(notNull().? == 1); + } + + fn notNull() ?u8 { + var res: ?u8 = 1; + defer res = null; + return res; + } + }; + + S.doTheTest(); + comptime S.doTheTest(); +}