aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors/switch_expression-missing_error_prong.zig
diff options
context:
space:
mode:
Diffstat (limited to 'test/cases/compile_errors/switch_expression-missing_error_prong.zig')
-rw-r--r--test/cases/compile_errors/switch_expression-missing_error_prong.zig33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/cases/compile_errors/switch_expression-missing_error_prong.zig b/test/cases/compile_errors/switch_expression-missing_error_prong.zig
new file mode 100644
index 0000000000..ee28057c43
--- /dev/null
+++ b/test/cases/compile_errors/switch_expression-missing_error_prong.zig
@@ -0,0 +1,33 @@
+const Error = error {
+ One,
+ Two,
+ Three,
+ Four,
+};
+fn f(n: Error!i32) i32 {
+ if (n) |x| x else |e| switch (e) {
+ error.One => 1,
+ error.Two => 2,
+ error.Three => 3,
+ }
+}
+fn h(n: Error!i32) i32 {
+ n catch |e| switch (e) {
+ error.One => 1,
+ error.Two => 2,
+ error.Three => 3,
+ };
+}
+
+export fn entry() usize {
+ return @sizeOf(@TypeOf(&f)) + @sizeOf(@TypeOf(&h));
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :8:27: error: switch must handle all possibilities
+// :8:27: note: unhandled error value: 'error.Four'
+// :15:17: error: switch must handle all possibilities
+// :15:17: note: unhandled error value: 'error.Four'