mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
std.build: simpler fix to options implementation
Instead of messing with ArrayList and more logic, just unwrap the error of toOwnedSlice().
This commit is contained in:
parent
747f64b3fb
commit
abd9089aa6
@ -523,7 +523,7 @@ pub const Builder = struct {
|
||||
const name = self.dupe(name_raw);
|
||||
const description = self.dupe(description_raw);
|
||||
const type_id = comptime typeToEnum(T);
|
||||
const enum_options: ?ArrayList([]const u8) = if (type_id == .@"enum") blk: {
|
||||
const enum_options = if (type_id == .@"enum") blk: {
|
||||
const fields = comptime std.meta.fields(T);
|
||||
var options = ArrayList([]const u8).initCapacity(self.allocator, fields.len) catch unreachable;
|
||||
|
||||
@ -531,13 +531,13 @@ pub const Builder = struct {
|
||||
options.appendAssumeCapacity(field.name);
|
||||
}
|
||||
|
||||
break :blk options;
|
||||
break :blk options.toOwnedSlice() catch unreachable;
|
||||
} else null;
|
||||
const available_option = AvailableOption{
|
||||
.name = name,
|
||||
.type_id = type_id,
|
||||
.description = description,
|
||||
.enum_options = if (enum_options) |options| options.items else null,
|
||||
.enum_options = enum_options,
|
||||
};
|
||||
if ((self.available_options_map.fetchPut(name, available_option) catch unreachable) != null) {
|
||||
panic("Option '{s}' declared twice", .{name});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user