test "error return traces" { try foo(12); } fn foo(x: i32) !void { if (x >= 5) { try bar(); } else { try bang2(); } } fn bar() !void { if (baz()) { try quux(); } else |err| switch (err) { error.FileNotFound => try hello(), else => try another(), } } fn baz() !void { try bang1(); } fn quux() !void { try bang2(); } fn hello() !void { try bang2(); } fn another() !void { try bang1(); } fn bang1() !void { return error.FileNotFound; } fn bang2() !void { return error.PermissionDenied; }