diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/behavior.zig | 1 | ||||
| -rw-r--r-- | test/cases/bugs/1322.zig | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/test/behavior.zig b/test/behavior.zig index 869024f296..3223131d08 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -10,6 +10,7 @@ comptime { _ = @import("cases/bool.zig"); _ = @import("cases/bugs/1111.zig"); _ = @import("cases/bugs/1277.zig"); + _ = @import("cases/bugs/1322.zig"); _ = @import("cases/bugs/1381.zig"); _ = @import("cases/bugs/1421.zig"); _ = @import("cases/bugs/1442.zig"); diff --git a/test/cases/bugs/1322.zig b/test/cases/bugs/1322.zig new file mode 100644 index 0000000000..2de92191ec --- /dev/null +++ b/test/cases/bugs/1322.zig @@ -0,0 +1,19 @@ +const std = @import("std"); + +const B = union(enum) { + c: C, + None, +}; + +const A = struct { + b: B, +}; + +const C = struct {}; + +test "tagged union with all void fields but a meaningful tag" { + var a: A = A{ .b = B{ .c = C{} } }; + std.debug.assert(@TagType(B)(a.b) == @TagType(B).c); + a = A{ .b = B.None }; + std.debug.assert(@TagType(B)(a.b) == @TagType(B).None); +} |
