#todo { passes, but prints errors #} #skip x86_64-linux-none-whole-selfhosted-new-nopic #skip x86_64-linux-none-whole-selfhosted-new-pic #skip x86_64-linux-none-incremental-selfhosted-new-nopic #skip x86_64-linux-none-incremental-selfhosted-new-pic #exe { --name enums -Mroot=enums.zig #} #write enums.zig { const Enums = struct { const Zero = enum(u4) { _ }; const One = enum { first }; const Two = enum(i32) { first, second, _ }; const Three = enum { first, second, third }; zero: Zero = @fromBackingInt(13), one: One = .first, two: Two = @fromBackingInt(-1234), three: Three = .second, }; fn testEnums(enums: Enums) void { _ = enums; } pub fn main() void { testEnums(.{}); } #} #update #check lldb { (lldb) breakpoint set --file enums.zig --source-pattern-regexp '_ = enums;' Breakpoint 1: where = enums`enums.testEnums + #... at enums.zig:14:1, address = 0x#... (lldb) process launch Process #... launched: '#.../enums' (#...) Process #... stopped * thread #1, name = 'enums', stop reason = breakpoint 1.1 frame #0: enums`enums.testEnums(enums=(.zero = @fromBackingInt(13), .one = .first, .two = @fromBackingInt(-1234), .three = .second)) at enums.zig:14:1 (lldb) expression --show-types -- Enums (type) $0 = struct { (type) Zero = enum {} (type) One = enum { (root.enums.Enums.One) first = .first } (type) Two = enum { (root.enums.Enums.Two) first = .first (root.enums.Enums.Two) second = .second } (type) Three = enum { (root.enums.Enums.Three) first = .first (root.enums.Enums.Three) second = .second (root.enums.Enums.Three) third = .third } } (lldb) frame variable --show-all-children --show-types -- enums (root.enums.Enums) enums = { (root.enums.Enums.Zero) .zero = @fromBackingInt(13) (root.enums.Enums.One) .one = .first (root.enums.Enums.Two) .two = @fromBackingInt(-1234) (root.enums.Enums.Three) .three = .second } (lldb) breakpoint delete --force 1 1 breakpoints deleted; 0 breakpoint locations disabled. #}