aboutsummaryrefslogtreecommitdiff
path: root/test/compile_errors.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-05-11 20:38:13 -0400
committerGitHub <noreply@github.com>2019-05-11 20:38:13 -0400
commitedcc7c72d1a684a8a16ca23ad26689f2cce4e803 (patch)
treec8191ced7f0f35e70b5a824ab9f1245310c50f6b /test/compile_errors.zig
parent6cf7fb1177848c2f2a20c1f4093b1e003c477911 (diff)
parentd210628c91f2d33a168c71fc7633745ead925dfc (diff)
downloadzig-edcc7c72d1a684a8a16ca23ad26689f2cce4e803.tar.gz
zig-edcc7c72d1a684a8a16ca23ad26689f2cce4e803.zip
Merge pull request #2459 from LemonBoy/enum-num-um-m
Signed types for enum tags
Diffstat (limited to 'test/compile_errors.zig')
-rw-r--r--test/compile_errors.zig40
1 files changed, 17 insertions, 23 deletions
diff --git a/test/compile_errors.zig b/test/compile_errors.zig
index 6fc2fa65e7..297673235d 100644
--- a/test/compile_errors.zig
+++ b/test/compile_errors.zig
@@ -13,6 +13,19 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
);
cases.add(
+ "overflow in enum value allocation",
+ \\const Moo = enum(u8) {
+ \\ Last = 255,
+ \\ Over,
+ \\};
+ \\pub fn main() void {
+ \\ var y = Moo.Last;
+ \\}
+ ,
+ "tmp.zig:3:5: error: enumeration value 256 too large for type 'u8'",
+ );
+
+ cases.add(
"attempt to cast enum literal to error",
\\export fn entry() void {
\\ switch (error.Hi) {
@@ -5383,8 +5396,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
"tmp.zig:12:20: note: referenced here",
);
- cases.add(
- "specify enum tag type that is too small",
+ cases.add("specify enum tag type that is too small",
\\const Small = enum (u2) {
\\ One,
\\ Two,
@@ -5396,9 +5408,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
\\export fn entry() void {
\\ var x = Small.One;
\\}
- ,
- "tmp.zig:1:21: error: 'u2' too small to hold all bits; must be at least 'u3'",
- );
+ , "tmp.zig:6:5: error: enumeration value 4 too large for type 'u2'");
cases.add(
"specify non-integer enum tag type",
@@ -5449,22 +5459,6 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
);
cases.add(
- "non unsigned integer enum tag type",
- \\const Small = enum(i2) {
- \\ One,
- \\ Two,
- \\ Three,
- \\ Four,
- \\};
- \\
- \\export fn entry() void {
- \\ var y = Small.Two;
- \\}
- ,
- "tmp.zig:1:20: error: expected unsigned integer, found 'i2'",
- );
-
- cases.add(
"struct fields with value assignments",
\\const MultipleChoice = struct {
\\ A: i32 = 20,
@@ -5522,8 +5516,8 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
\\ var x = MultipleChoice.C;
\\}
,
- "tmp.zig:6:9: error: enum tag value 60 already taken",
- "tmp.zig:4:9: note: other occurrence here",
+ "tmp.zig:6:5: error: enum tag value 60 already taken",
+ "tmp.zig:4:5: note: other occurrence here",
);
cases.add(