zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 46af8bd2ba723e4dbcff07e457d2786cd7c74440 (tree)
parent 49d6dd3ecb0b5d0547f8a70b764e38af2f24f475
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Tue, 21 Nov 2023 20:44:32 -0700

resinator: use ArrayList instead of BoundedArray

In this case it improved maintainability because magic number `4` is no
longer repeated 3 times, and there is no longer a redundant branch in
the loop.

Diffstat:
Msrc/resinator/parse.zig | 11+++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/resinator/parse.zig b/src/resinator/parse.zig @@ -1246,13 +1246,16 @@ pub const Parser = struct { self.nextToken(.normal) catch unreachable; switch (statement_type) { .file_version, .product_version => { - var parts = std.BoundedArray(*Node, 4){}; + var parts_buffer: [4]*Node = undefined; + var parts = std.ArrayListUnmanaged(*Node).initBuffer(&parts_buffer); - while (parts.len < 4) { + while (true) { const value = try self.parseExpression(.{ .allowed_types = .{ .number = true } }); parts.addOneAssumeCapacity().* = value; - if (parts.len == 4 or !(try self.parseOptionalToken(.comma))) { + if (parts.unusedCapacitySlice().len == 0 or + !(try self.parseOptionalToken(.comma))) + { break; } } @@ -1260,7 +1263,7 @@ pub const Parser = struct { const node = try self.state.arena.create(Node.VersionStatement); node.* = .{ .type = type_token, - .parts = try self.state.arena.dupe(*Node, parts.slice()), + .parts = try self.state.arena.dupe(*Node, parts.items), }; return &node.base; },