Commit ab8b14aa9f

Andrew Kelley <superjoe30@gmail.com>
2017-01-16 23:18:25
add test for compile error returning from defer expression
closes #218
1 parent cf3b9f4
Changed files (1)
test/run_tests.cpp
@@ -1624,6 +1624,21 @@ fn f() {
 }
     )SOURCE", 1, ".tmp_source.zig:14:15: error: condition is always false; unnecessary if statement");
 
+    add_compile_fail_case("return from defer expression", R"SOURCE(
+pub fn testTrickyDefer() -> %void {
+    defer canFail() %% {};
+
+    defer %return canFail();
+
+    const a = maybeInt() ?? return;
+}
+
+fn canFail() -> %void { }
+
+pub fn maybeInt() -> ?i32 {
+    return 0;
+}
+    )SOURCE", 1, ".tmp_source.zig:5:11: error: cannot return from defer expression");
 }
 
 //////////////////////////////////////////////////////////////////////////////