#zig build-exe {
--name test
-Mroot=test.zig
#}

#write test.zig {
pub fn main() !void {
    try foo();
    return error.TheSkyIsFalling;
}

noinline fn failure() error{ Fatal, NonFatal }!void {
    return error.NonFatal;
}

fn foo() error{Fatal}!void {
    return failure() catch |err| switch (err) {
        error.Fatal => return error.Fatal,
        error.NonFatal => return,
    };
}
#}
#update
#check error-trace {
error: TheSkyIsFalling
test.zig:3:5: 0x? in main (test*)
    return error.TheSkyIsFalling;
    ^
#}
