aboutsummaryrefslogtreecommitdiff
path: root/test/compile_errors.zig
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-05-07 13:40:35 -0400
committerAndrew Kelley <superjoe30@gmail.com>2017-05-07 13:40:35 -0400
commit7261cd19b78367d78f758f7ade370efbc3e25237 (patch)
tree750ec114dd9c6c15552796001e95d2f355b4f7ae /test/compile_errors.zig
parentdc2df155285576b8da621fbffac451c036af0ed0 (diff)
downloadzig-7261cd19b78367d78f758f7ade370efbc3e25237.tar.gz
zig-7261cd19b78367d78f758f7ade370efbc3e25237.zip
detect duplicate switch value even when else prong present
closes #43
Diffstat (limited to 'test/compile_errors.zig')
-rw-r--r--test/compile_errors.zig22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/compile_errors.zig b/test/compile_errors.zig
index 54ab8444b8..6cce0c89bd 100644
--- a/test/compile_errors.zig
+++ b/test/compile_errors.zig
@@ -581,6 +581,28 @@ pub fn addCases(cases: &tests.CompileErrorContext) {
, ".tmp_source.zig:13:15: error: duplicate switch value",
".tmp_source.zig:10:15: note: other value is here");
+ cases.add("switch expression - duplicate enumeration prong when else present",
+ \\const Number = enum {
+ \\ One,
+ \\ Two,
+ \\ Three,
+ \\ Four,
+ \\};
+ \\fn f(n: Number) -> i32 {
+ \\ switch (n) {
+ \\ Number.One => 1,
+ \\ Number.Two => 2,
+ \\ Number.Three => i32(3),
+ \\ Number.Four => 4,
+ \\ Number.Two => 2,
+ \\ else => 10,
+ \\ }
+ \\}
+ \\
+ \\export fn entry() -> usize { @sizeOf(@typeOf(f)) }
+ , ".tmp_source.zig:13:15: error: duplicate switch value",
+ ".tmp_source.zig:10:15: note: other value is here");
+
cases.add("switch expression - multiple else prongs",
\\fn f(x: u32) {
\\ const value: bool = switch (x) {