aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors/switch_expression-duplicate_error_prong.zig
diff options
context:
space:
mode:
authordweiller <4678790+dweiller@users.noreply.github.com>2023-11-30 19:12:47 +1100
committerdweiller <4678790+dweiller@users.noreply.github.com>2024-01-09 14:42:12 +1100
commit69ab687156f1099570ec2208efae8be6883073c0 (patch)
tree9b6f3361e5bfe5028b265afbbe426309d12055ec /test/cases/compile_errors/switch_expression-duplicate_error_prong.zig
parentfc6dc797ceff35c5bbaa51d914a62256bab3c409 (diff)
downloadzig-69ab687156f1099570ec2208efae8be6883073c0.tar.gz
zig-69ab687156f1099570ec2208efae8be6883073c0.zip
test: add tests for switch_block_err_union
Diffstat (limited to 'test/cases/compile_errors/switch_expression-duplicate_error_prong.zig')
-rw-r--r--test/cases/compile_errors/switch_expression-duplicate_error_prong.zig33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/cases/compile_errors/switch_expression-duplicate_error_prong.zig b/test/cases/compile_errors/switch_expression-duplicate_error_prong.zig
new file mode 100644
index 0000000000..bcebd25a58
--- /dev/null
+++ b/test/cases/compile_errors/switch_expression-duplicate_error_prong.zig
@@ -0,0 +1,33 @@
+fn f(n: Error!i32) i32 {
+ if (n) |x|
+ _ = x
+ else |e| switch (e) {
+ error.Foo => 1,
+ error.Bar => 2,
+ error.Baz => 3,
+ error.Foo => 2,
+ }
+}
+fn g(n: Error!i32) i32 {
+ n catch |e| switch (e) {
+ error.Foo => 1,
+ error.Bar => 2,
+ error.Baz => 3,
+ error.Foo => 2,
+ };
+}
+
+const Error = error{ Foo, Bar, Baz };
+
+export fn entry() usize {
+ return @sizeOf(@TypeOf(&f)) + @sizeOf(@TypeOf(&g));
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :8:9: error: duplicate switch value
+// :5:9: note: previous value here
+// :16:9: error: duplicate switch value
+// :13:9: note: previous value here