From caa9a654a2009415d71ea257783110a8a8b870c8 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Thu, 26 May 2022 15:50:50 +0300 Subject: [PATCH] stage2: add test for fixed issue --- test/behavior.zig | 1 + test/behavior/bugs/11179.zig | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 test/behavior/bugs/11179.zig diff --git a/test/behavior.zig b/test/behavior.zig index 4d8b3587bc96..fabc8c0df1d4 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -81,6 +81,7 @@ test { _ = @import("behavior/bugs/11159.zig"); _ = @import("behavior/bugs/11162.zig"); _ = @import("behavior/bugs/11165.zig"); + _ = @import("behavior/bugs/11179.zig"); _ = @import("behavior/bugs/11181.zig"); _ = @import("behavior/bugs/11182.zig"); _ = @import("behavior/bugs/11213.zig"); diff --git a/test/behavior/bugs/11179.zig b/test/behavior/bugs/11179.zig new file mode 100644 index 000000000000..84fa6183f379 --- /dev/null +++ b/test/behavior/bugs/11179.zig @@ -0,0 +1,18 @@ +const std = @import("std"); +const Type = std.builtin.Type; + +test "Tuple" { + const fields_list = fields(@TypeOf(.{})); + if (fields_list.len != 0) + @compileError("Argument count mismatch"); +} + +pub fn fields(comptime T: type) switch (@typeInfo(T)) { + .Struct => []const Type.StructField, + else => unreachable, +} { + return switch (@typeInfo(T)) { + .Struct => |info| info.fields, + else => unreachable, + }; +}