aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/error.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2024-01-29 11:57:29 +0200
committerVeikka Tuominen <git@vexu.eu>2024-01-29 13:48:45 +0200
commitf7822029100de9f91c9a7758ffb32d95f7768f70 (patch)
tree551ee2c7a6600facd02e27c62650483f89ba0986 /test/behavior/error.zig
parentabb8e7478d365088301a9390c12f86b2ad381ce9 (diff)
downloadzig-f7822029100de9f91c9a7758ffb32d95f7768f70.tar.gz
zig-f7822029100de9f91c9a7758ffb32d95f7768f70.zip
Sema: do not emit `@errorCast` safety check when dest is adhoc inferred error set
Closes #17354
Diffstat (limited to 'test/behavior/error.zig')
-rw-r--r--test/behavior/error.zig12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/behavior/error.zig b/test/behavior/error.zig
index 1d5457fa3a..8e4dd2c091 100644
--- a/test/behavior/error.zig
+++ b/test/behavior/error.zig
@@ -1027,3 +1027,15 @@ test "generic type constructed from inferred error set of unresolved function" {
};
_ = std.io.multiWriter(.{S.writer()});
}
+
+test "errorCast to adhoc inferred error set" {
+ const S = struct {
+ inline fn baz() !i32 {
+ return @errorCast(err());
+ }
+ fn err() anyerror!i32 {
+ return 1234;
+ }
+ };
+ try std.testing.expect((try S.baz()) == 1234);
+}