zig/TODO

42 lines
1.1 KiB
Plaintext

sed -i 's/\(\bfn .*) \)%\(.*{\)$/\1!\2/g' $(find . -name "*.zig")
the literal translation of `%T` to this new code is `error!T`.
however this would not take advantage of error sets. It's
recommended to generally have all your functions which return possible
errors to use error set inference, like this:
fn foo() !void {
}
then you can return void, or any error, and the error set is inferred.
you can get the compiler to tell you the possible errors for an inferred error set like this:
foo() catch |err| switch (err) {};
// TODO this is an explicit cast and should actually coerce the type
erorr set casting
// add a runtime safety check
test err should be comptime if error set has 0 members
comptime calling fn with inferred error set should give empty error set but still you can use try
comptime err to int of empty err set and of size 1 err set
comptime test for err
undefined in infer error
syntax - ?a!b should be ?(a!b) but it's (?a)!b
syntax - (error{}!void) as the return type
passing a fn()error{}!T to a fn()error!T should be a compile error, they're not compatible