summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jimmi Holst Christensen2024-03-30 16:36:20 +0100
committerGravatar Jimmi Holst Christensen2024-03-30 16:36:20 +0100
commit8c98e6404b22aafc0184e999d8f068b81cc22fa1 (patch)
tree07d32e03c9b3cdaaf722d50a7e948594282aa8f4
parentUpdated to latest zig (diff)
downloadzig-clap-8c98e6404b22aafc0184e999d8f068b81cc22fa1.tar.gz
zig-clap-8c98e6404b22aafc0184e999d8f068b81cc22fa1.tar.xz
zig-clap-8c98e6404b22aafc0184e999d8f068b81cc22fa1.zip
Arguments: Ensure no member of `fields` is undefined
related #122
-rw-r--r--clap.zig11
1 files changed, 9 insertions, 2 deletions
diff --git a/clap.zig b/clap.zig
index a64ba08..2fc70ca 100644
--- a/clap.zig
+++ b/clap.zig
@@ -895,8 +895,15 @@ fn Arguments(
895 comptime value_parsers: anytype, 895 comptime value_parsers: anytype,
896 comptime multi_arg_kind: MultiArgKind, 896 comptime multi_arg_kind: MultiArgKind,
897) type { 897) type {
898 var fields: [params.len]builtin.Type.StructField = undefined; 898 var fields_len: usize = 0;
899 for (params) |param| {
900 const longest = param.names.longest();
901 if (longest.kind == .positional)
902 continue;
903 fields_len += 1;
904 }
899 905
906 var fields: [fields_len]builtin.Type.StructField = undefined;
900 var i: usize = 0; 907 var i: usize = 0;
901 for (params) |param| { 908 for (params) |param| {
902 const longest = param.names.longest(); 909 const longest = param.names.longest();
@@ -926,7 +933,7 @@ fn Arguments(
926 933
927 return @Type(.{ .Struct = .{ 934 return @Type(.{ .Struct = .{
928 .layout = .auto, 935 .layout = .auto,
929 .fields = fields[0..i], 936 .fields = &fields,
930 .decls = &.{}, 937 .decls = &.{},
931 .is_tuple = false, 938 .is_tuple = false,
932 } }); 939 } });