aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-11-21 20:44:32 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-11-22 11:33:34 -0700
commit46af8bd2ba723e4dbcff07e457d2786cd7c74440 (patch)
tree5951651893bdc45332dca250f468dfdbad3d378c /src
parent49d6dd3ecb0b5d0547f8a70b764e38af2f24f475 (diff)
downloadzig-46af8bd2ba723e4dbcff07e457d2786cd7c74440.tar.gz
zig-46af8bd2ba723e4dbcff07e457d2786cd7c74440.zip
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 (limited to 'src')
-rw-r--r--src/resinator/parse.zig11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/resinator/parse.zig b/src/resinator/parse.zig
index 68537b94f6..7d56b92134 100644
--- 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;
},