diff options
| author | Isaac Freund <ifreund@ifreund.xyz> | 2021-03-22 14:54:13 +0100 |
|---|---|---|
| committer | Isaac Freund <ifreund@ifreund.xyz> | 2021-03-22 14:54:13 +0100 |
| commit | 8111453cc12f7908110850cf64efedb9c69ede98 (patch) | |
| tree | 80c6774eda1c73f3b45e04989840f734756d7b19 /lib/std | |
| parent | 4f3071a8172b1e5d0aa22c07471de2056df1608a (diff) | |
| download | zig-8111453cc12f7908110850cf64efedb9c69ede98.tar.gz zig-8111453cc12f7908110850cf64efedb9c69ede98.zip | |
astgen: implement array types
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/zig/ast.zig | 9 | ||||
| -rw-r--r-- | lib/std/zig/render.zig | 6 |
2 files changed, 8 insertions, 7 deletions
diff --git a/lib/std/zig/ast.zig b/lib/std/zig/ast.zig index 0b0459ec88..cb3ea3ecf3 100644 --- a/lib/std/zig/ast.zig +++ b/lib/std/zig/ast.zig @@ -1430,7 +1430,7 @@ pub const Tree = struct { .ast = .{ .lbracket = tree.nodes.items(.main_token)[node], .elem_count = data.lhs, - .sentinel = null, + .sentinel = 0, .elem_type = data.rhs, }, }; @@ -1440,6 +1440,7 @@ pub const Tree = struct { assert(tree.nodes.items(.tag)[node] == .array_type_sentinel); const data = tree.nodes.items(.data)[node]; const extra = tree.extraData(data.rhs, Node.ArrayTypeSentinel); + assert(extra.sentinel != 0); return .{ .ast = .{ .lbracket = tree.nodes.items(.main_token)[node], @@ -2262,7 +2263,7 @@ pub const full = struct { pub const Ast = struct { lbracket: TokenIndex, elem_count: Node.Index, - sentinel: ?Node.Index, + sentinel: Node.Index, elem_type: Node.Index, }; }; @@ -2549,9 +2550,9 @@ pub const Node = struct { @"await", /// `?lhs`. rhs unused. main_token is the `?`. optional_type, - /// `[lhs]rhs`. lhs can be omitted to make it a slice. + /// `[lhs]rhs`. array_type, - /// `[lhs:a]b`. `array_type_sentinel[rhs]`. + /// `[lhs:a]b`. `ArrayTypeSentinel[rhs]`. array_type_sentinel, /// `[*]align(lhs) rhs`. lhs can be omitted. /// `*align(lhs) rhs`. lhs can be omitted. diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig index 640f25829a..7add8383f3 100644 --- a/lib/std/zig/render.zig +++ b/lib/std/zig/render.zig @@ -717,9 +717,9 @@ fn renderArrayType( ais.pushIndentNextLine(); try renderToken(ais, tree, array_type.ast.lbracket, inner_space); // lbracket try renderExpression(gpa, ais, tree, array_type.ast.elem_count, inner_space); - if (array_type.ast.sentinel) |sentinel| { - try renderToken(ais, tree, tree.firstToken(sentinel) - 1, inner_space); // colon - try renderExpression(gpa, ais, tree, sentinel, inner_space); + if (array_type.ast.sentinel != 0) { + try renderToken(ais, tree, tree.firstToken(array_type.ast.sentinel) - 1, inner_space); // colon + try renderExpression(gpa, ais, tree, array_type.ast.sentinel, inner_space); } ais.popIndent(); try renderToken(ais, tree, rbracket, .none); // rbracket |
