diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-11-21 20:44:32 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-11-22 11:33:34 -0700 |
| commit | 46af8bd2ba723e4dbcff07e457d2786cd7c74440 (patch) | |
| tree | 5951651893bdc45332dca250f468dfdbad3d378c /src | |
| parent | 49d6dd3ecb0b5d0547f8a70b764e38af2f24f475 (diff) | |
| download | zig-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.zig | 11 |
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; }, |
