aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorInKryption <inkryption07@gmail.com>2022-09-20 21:40:16 +0200
committerVeikka Tuominen <git@vexu.eu>2022-09-27 18:38:37 +0300
commitc75e8f3616d895d213faad5ad2678d3997f17d8a (patch)
treee74ecd06d1967eb671527a7cdea508cc3a22d29e /test
parentc673e6a48a0adee0385767a431cee815f45df160 (diff)
downloadzig-c75e8f3616d895d213faad5ad2678d3997f17d8a.tar.gz
zig-c75e8f3616d895d213faad5ad2678d3997f17d8a.zip
Sema: check that reified enum field values fits tag type.
Diffstat (limited to 'test')
-rw-r--r--test/cases/compile_errors/stage2/reified_enum_field_value_overflow.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/cases/compile_errors/stage2/reified_enum_field_value_overflow.zig b/test/cases/compile_errors/stage2/reified_enum_field_value_overflow.zig
new file mode 100644
index 0000000000..ad8596ebcc
--- /dev/null
+++ b/test/cases/compile_errors/stage2/reified_enum_field_value_overflow.zig
@@ -0,0 +1,20 @@
+comptime {
+ const E = @Type(.{ .Enum = .{
+ .layout = .Auto,
+ .tag_type = u1,
+ .fields = &.{
+ .{ .name = "f0", .value = 0 },
+ .{ .name = "f1", .value = 1 },
+ .{ .name = "f2", .value = 2 },
+ },
+ .decls = &.{},
+ .is_exhaustive = true,
+ } });
+ _ = E;
+}
+
+// error
+// target=native
+// backend=stage2
+//
+// :2:15: error: field 'f2' with enumeration value '2' is too large for backing int type 'u1'