Commit 46af8bd2ba

Andrew Kelley <andrew@ziglang.org>
2023-11-22 04:44:32
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.
1 parent 49d6dd3
Changed files (1)
src
resinator
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;
             },