Commit 828abe046f

Andrew Kelley <andrew@ziglang.org>
2019-11-19 01:51:49
add regression test case. closes #3007
1 parent 21aed86
Changed files (2)
test
stage1
behavior
test/stage1/behavior/bugs/3007.zig
@@ -0,0 +1,23 @@
+const std = @import("std");
+
+const Foo = struct {
+    free: bool,
+
+    pub const FooError = error{NotFree};
+};
+
+var foo = Foo{ .free = true };
+var default_foo: ?*Foo = null;
+
+fn get_foo() Foo.FooError!*Foo {
+    if (foo.free) {
+        foo.free = false;
+        return &foo;
+    }
+    return error.NotFree;
+}
+
+test "fixed" {
+    default_foo = get_foo() catch null; // This Line
+    std.testing.expect(!default_foo.?.free);
+}
test/stage1/behavior.zig
@@ -32,6 +32,7 @@ comptime {
     _ = @import("behavior/bugs/2346.zig");
     _ = @import("behavior/bugs/2578.zig");
     _ = @import("behavior/bugs/2692.zig");
+    _ = @import("behavior/bugs/3007.zig");
     _ = @import("behavior/bugs/3046.zig");
     _ = @import("behavior/bugs/3112.zig");
     _ = @import("behavior/bugs/3367.zig");