Commit 763357c9c3

Andrew Kelley <andrew@ziglang.org>
2019-02-27 01:41:36
add test coverage for type used as switch case
closes #996
1 parent d5fc826
Changed files (1)
test/compile_errors.zig
@@ -2,6 +2,25 @@ const tests = @import("tests.zig");
 const builtin = @import("builtin");
 
 pub fn addCases(cases: *tests.CompileErrorContext) void {
+    cases.addTest(
+        "not an enum type",
+        \\export fn entry() void {
+        \\    var self: Error = undefined;
+        \\    switch (self) {
+        \\        InvalidToken => |x| return x.token,
+        \\        ExpectedVarDeclOrFn => |x| return x.token,
+        \\    }
+        \\}
+        \\const Error = union(enum) {
+        \\    A: InvalidToken,
+        \\    B: ExpectedVarDeclOrFn,
+        \\};
+        \\const InvalidToken = struct {};
+        \\const ExpectedVarDeclOrFn = struct {};
+    ,
+        ".tmp_source.zig:4:9: error: not an enum type",
+    );
+
     cases.addTest(
         "binary OR operator on error sets",
         \\pub const A = error.A;