From c56c0ba49ab64b45190f8bd7e946bde9678139a5 Mon Sep 17 00:00:00 2001 From: Leapofod Date: Mon, 1 Dec 2025 11:08:43 +0700 Subject: fix: Use the new @Struct and @Tuple constructors @Type has been replaced with individual type-creating builtins as of zig commit c5383173a0de17210f3036acd942738e906997e5 --- build.zig.zon | 2 +- clap.zig | 44 ++++++++++++++++++-------------------------- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index 98e569f..fa52e70 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,7 +1,7 @@ .{ .name = .clap, .version = "0.11.0", - .minimum_zig_version = "0.15.1", + .minimum_zig_version = "0.16.0-dev.1484+d0ba6642b", .fingerprint = 0x65f99e6f07a316a0, .paths = .{ "clap", diff --git a/clap.zig b/clap.zig index 83e605a..2345163 100644 --- a/clap.zig +++ b/clap.zig @@ -891,7 +891,7 @@ fn Positionals( fields_len += 1; } - var fields: [fields_len]std.builtin.Type.StructField = undefined; + var field_types: [fields_len]type = undefined; var i: usize = 0; for (params) |param| { const longest = param.names.longest(); @@ -908,22 +908,11 @@ fn Positionals( }, }; - fields[i] = .{ - .name = std.fmt.comptimePrint("{}", .{i}), - .type = FieldT, - .default_value_ptr = null, - .is_comptime = false, - .alignment = @alignOf(FieldT), - }; + field_types[i] = FieldT; i += 1; } - return @Type(.{ .@"struct" = .{ - .layout = .auto, - .fields = &fields, - .decls = &.{}, - .is_tuple = true, - } }); + return @Tuple(&field_types); } fn initPositionals( @@ -1008,7 +997,9 @@ fn Arguments( fields_len += 1; } - var fields: [fields_len]std.builtin.Type.StructField = undefined; + var field_names: [fields_len][]const u8 = undefined; + var field_types: [fields_len]type = undefined; + var field_attrs: [fields_len]std.builtin.Type.StructField.Attributes = undefined; var i: usize = 0; for (params) |param| { const longest = param.names.longest(); @@ -1026,22 +1017,23 @@ fn Arguments( }; const name = longest.name[0..longest.name.len] ++ ""; // Adds null terminator - fields[i] = .{ - .name = name, - .type = @TypeOf(default_value), + field_names[i] = name; + field_types[i] = @TypeOf(default_value); + field_attrs[i] = .{ + .@"comptime" = false, + .@"align" = @alignOf(@TypeOf(default_value)), .default_value_ptr = @ptrCast(&default_value), - .is_comptime = false, - .alignment = @alignOf(@TypeOf(default_value)), }; i += 1; } - return @Type(.{ .@"struct" = .{ - .layout = .auto, - .fields = &fields, - .decls = &.{}, - .is_tuple = false, - } }); + return @Struct( + .auto, + null, + &field_names, + &field_types, + if (fields_len == 0) &@splat(.{}) else &field_attrs, + ); } test "str and u64" { -- cgit v1.2.3