aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorIsaac Hier <isaachier@gmail.com>2018-07-04 13:27:10 -0400
committerIsaac Hier <isaachier@gmail.com>2018-07-04 13:27:10 -0400
commit9cff23dbf9ff3da716a1c4397f9411eba09f6cac (patch)
treeebde3411341a755db5a13b13b9324dd99e8e0a51 /test
parent9395162a7c41689bcd1c0c48f9eabffc1485fc74 (diff)
downloadzig-9cff23dbf9ff3da716a1c4397f9411eba09f6cac.tar.gz
zig-9cff23dbf9ff3da716a1c4397f9411eba09f6cac.zip
Fix assertion crash on enum switch values
Diffstat (limited to 'test')
-rw-r--r--test/behavior.zig1
-rw-r--r--test/cases/switch_usize_enum_prongs.zig11
-rw-r--r--test/compile_errors.zig18
3 files changed, 18 insertions, 12 deletions
diff --git a/test/behavior.zig b/test/behavior.zig
index 803d4a5a08..d47eb8fd6c 100644
--- a/test/behavior.zig
+++ b/test/behavior.zig
@@ -52,7 +52,6 @@ comptime {
_ = @import("cases/switch.zig");
_ = @import("cases/switch_prong_err_enum.zig");
_ = @import("cases/switch_prong_implicit_cast.zig");
- _ = @import("cases/switch_usize_enum_prongs.zig");
_ = @import("cases/syntax.zig");
_ = @import("cases/this.zig");
_ = @import("cases/try.zig");
diff --git a/test/cases/switch_usize_enum_prongs.zig b/test/cases/switch_usize_enum_prongs.zig
deleted file mode 100644
index b49615e887..0000000000
--- a/test/cases/switch_usize_enum_prongs.zig
+++ /dev/null
@@ -1,11 +0,0 @@
-const E = enum(usize) { One, Two };
-
-test "aoeou" {
- foo(1);
-}
-
-fn foo(x: usize) void {
- switch (x) {
- E.One => {},
- }
-}
diff --git a/test/compile_errors.zig b/test/compile_errors.zig
index 7291a48a8f..8bd5480395 100644
--- a/test/compile_errors.zig
+++ b/test/compile_errors.zig
@@ -358,6 +358,24 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
".tmp_source.zig:3:14: note: other value is here",
);
+
+ cases.add(
+ "invalid cast from integral type to enum",
+ \\const E = enum(usize) { One, Two };
+ \\
+ \\export fn entry() void {
+ \\ foo(1);
+ \\}
+ \\
+ \\fn foo(x: usize) void {
+ \\ switch (x) {
+ \\ E.One => {},
+ \\ }
+ \\}
+ ,
+ ".tmp_source.zig:9:10: error: expected type 'usize', found 'E'"
+ );
+
cases.add(
"range operator in switch used on error set",
\\export fn entry() void {