test_errdefer_capture.zig (437B) - Raw
1 const std = @import("std"); 2 3 fn captureError(captured: *?anyerror) !void { 4 errdefer |err| { 5 captured.* = err; 6 } 7 return error.GeneralFailure; 8 } 9 10 test "errdefer capture" { 11 var captured: ?anyerror = null; 12 13 if (captureError(&captured)) unreachable else |err| { 14 try std.testing.expectEqual(error.GeneralFailure, captured.?); 15 try std.testing.expectEqual(error.GeneralFailure, err); 16 } 17 } 18 19 // test