Commit 6c195ede54

Andrew Kelley <andrew@ziglang.org>
2019-06-27 05:25:53
add test case for defer modifying return value before returned
See #961
1 parent 01ff0d4
Changed files (1)
test
stage1
behavior
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();
+}