authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2019-12-05 14:46:11+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2019-12-05 14:50:51+02:00
logd40ad92668ad19bebdcf9d4ac1cc30576f5358df
treedfbeccebe456bcd5e9c2bed8fc054848dbc6e231
parent10cc8cad86a39dd0f6d707c3ec30f490ba071230
signaturelock-open Commit is signed but in an unrecognized format.

use enum literals in render.zig


1 files changed, 126 insertions(+), 126 deletions(-)

lib/std/zig/render.zig+126-126
......@@ -75,7 +75,7 @@ fn renderRoot(
7575
7676 // render all the line comments at the beginning of the file
7777 while (tok_it.next()) |token| {
78 if (token.id != Token.Id.LineComment) break;
78 if (token.id != .LineComment) break;
7979 try stream.print("{}\n", mem.trimRight(u8, tree.tokenSlicePtr(token), " "));
8080 if (tok_it.peek()) |next_token| {
8181 const loc = tree.tokenLocationPtr(token.end, next_token);
......@@ -109,8 +109,8 @@ fn renderRoot(
109109 token_index -= 1;
110110 const token = tree.tokens.at(token_index);
111111 switch (token.id) {
112 Token.Id.LineComment => {},
113 Token.Id.DocComment => {
112 .LineComment => {},
113 .DocComment => {
114114 copy_start_token_index = token_index;
115115 continue;
116116 },
......@@ -149,8 +149,8 @@ fn renderRoot(
149149 while (token_index < decl_first_token_index) : (token_index += 1) {
150150 const token = tree.tokens.at(token_index);
151151 switch (token.id) {
152 Token.Id.LineComment => {},
153 Token.Id.Eof => unreachable,
152 .LineComment => {},
153 .Eof => unreachable,
154154 else => continue,
155155 }
156156 if (mem.eql(u8, mem.trim(u8, tree.tokenSlicePtr(token)[2..], " "), "zig fmt: on")) {
......@@ -169,8 +169,8 @@ fn renderRoot(
169169 token_index -= 1;
170170 const token = tree.tokens.at(token_index);
171171 switch (token.id) {
172 Token.Id.LineComment => {},
173 Token.Id.DocComment => {
172 .LineComment => {},
173 .DocComment => {
174174 copy_end_token_index = token_index;
175175 continue;
176176 },
......@@ -193,7 +193,7 @@ fn renderRoot(
193193fn renderExtraNewline(tree: *ast.Tree, stream: var, start_col: *usize, node: *ast.Node) @typeOf(stream).Child.Error!void {
194194 const first_token = node.firstToken();
195195 var prev_token = first_token;
196 while (tree.tokens.at(prev_token - 1).id == Token.Id.DocComment) {
196 while (tree.tokens.at(prev_token - 1).id == .DocComment) {
197197 prev_token -= 1;
198198 }
199199 const prev_token_end = tree.tokens.at(prev_token - 1).end;
......@@ -206,7 +206,7 @@ fn renderExtraNewline(tree: *ast.Tree, stream: var, start_col: *usize, node: *as
206206
207207fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, indent: usize, start_col: *usize, decl: *ast.Node) (@typeOf(stream).Child.Error || Error)!void {
208208 switch (decl.id) {
209 ast.Node.Id.FnProto => {
209 .FnProto => {
210210 const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl);
211211
212212 try renderDocComments(tree, stream, fn_proto, indent, start_col);
......@@ -220,7 +220,7 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
220220 }
221221 },
222222
223 ast.Node.Id.Use => {
223 .Use => {
224224 const use_decl = @fieldParentPtr(ast.Node.Use, "base", decl);
225225
226226 if (use_decl.visib_token) |visib_token| {
......@@ -231,14 +231,14 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
231231 try renderToken(tree, stream, use_decl.semicolon_token, indent, start_col, Space.Newline); // ;
232232 },
233233
234 ast.Node.Id.VarDecl => {
234 .VarDecl => {
235235 const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl);
236236
237237 try renderDocComments(tree, stream, var_decl, indent, start_col);
238238 try renderVarDecl(allocator, stream, tree, indent, start_col, var_decl);
239239 },
240240
241 ast.Node.Id.TestDecl => {
241 .TestDecl => {
242242 const test_decl = @fieldParentPtr(ast.Node.TestDecl, "base", decl);
243243
244244 try renderDocComments(tree, stream, test_decl, indent, start_col);
......@@ -247,7 +247,7 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
247247 try renderExpression(allocator, stream, tree, indent, start_col, test_decl.body_node, Space.Newline);
248248 },
249249
250 ast.Node.Id.ContainerField => {
250 .ContainerField => {
251251 const field = @fieldParentPtr(ast.Node.ContainerField, "base", decl);
252252
253253 try renderDocComments(tree, stream, field, indent, start_col);
......@@ -295,12 +295,12 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
295295 }
296296 },
297297
298 ast.Node.Id.Comptime => {
298 .Comptime => {
299299 assert(!decl.requireSemiColon());
300300 try renderExpression(allocator, stream, tree, indent, start_col, decl, Space.Newline);
301301 },
302302
303 ast.Node.Id.DocComment => {
303 .DocComment => {
304304 const comment = @fieldParentPtr(ast.Node.DocComment, "base", decl);
305305 var it = comment.lines.iterator(0);
306306 while (it.next()) |line_token_index| {
......@@ -324,11 +324,11 @@ fn renderExpression(
324324 space: Space,
325325) (@typeOf(stream).Child.Error || Error)!void {
326326 switch (base.id) {
327 ast.Node.Id.Identifier => {
327 .Identifier => {
328328 const identifier = @fieldParentPtr(ast.Node.Identifier, "base", base);
329329 return renderToken(tree, stream, identifier.token, indent, start_col, space);
330330 },
331 ast.Node.Id.Block => {
331 .Block => {
332332 const block = @fieldParentPtr(ast.Node.Block, "base", base);
333333
334334 if (block.label) |label| {
......@@ -357,20 +357,20 @@ fn renderExpression(
357357 return renderToken(tree, stream, block.rbrace, indent, start_col, space);
358358 }
359359 },
360 ast.Node.Id.Defer => {
360 .Defer => {
361361 const defer_node = @fieldParentPtr(ast.Node.Defer, "base", base);
362362
363363 try renderToken(tree, stream, defer_node.defer_token, indent, start_col, Space.Space);
364364 return renderExpression(allocator, stream, tree, indent, start_col, defer_node.expr, space);
365365 },
366 ast.Node.Id.Comptime => {
366 .Comptime => {
367367 const comptime_node = @fieldParentPtr(ast.Node.Comptime, "base", base);
368368
369369 try renderToken(tree, stream, comptime_node.comptime_token, indent, start_col, Space.Space);
370370 return renderExpression(allocator, stream, tree, indent, start_col, comptime_node.expr, space);
371371 },
372372
373 ast.Node.Id.Suspend => {
373 .Suspend => {
374374 const suspend_node = @fieldParentPtr(ast.Node.Suspend, "base", base);
375375
376376 if (suspend_node.body) |body| {
......@@ -381,7 +381,7 @@ fn renderExpression(
381381 }
382382 },
383383
384 ast.Node.Id.InfixOp => {
384 .InfixOp => {
385385 const infix_op_node = @fieldParentPtr(ast.Node.InfixOp, "base", base);
386386
387387 const op_space = switch (infix_op_node.op) {
......@@ -397,7 +397,7 @@ fn renderExpression(
397397
398398 try renderToken(tree, stream, infix_op_node.op_token, indent, start_col, after_op_space);
399399 if (after_op_space == Space.Newline and
400 tree.tokens.at(tree.nextToken(infix_op_node.op_token)).id != Token.Id.MultilineStringLiteralLine)
400 tree.tokens.at(tree.nextToken(infix_op_node.op_token)).id != .MultilineStringLiteralLine)
401401 {
402402 try stream.writeByteNTimes(' ', indent + indent_delta);
403403 start_col.* = indent + indent_delta;
......@@ -413,11 +413,11 @@ fn renderExpression(
413413 return renderExpression(allocator, stream, tree, indent, start_col, infix_op_node.rhs, space);
414414 },
415415
416 ast.Node.Id.PrefixOp => {
416 .PrefixOp => {
417417 const prefix_op_node = @fieldParentPtr(ast.Node.PrefixOp, "base", base);
418418
419419 switch (prefix_op_node.op) {
420 ast.Node.PrefixOp.Op.PtrType => |ptr_info| {
420 .PtrType => |ptr_info| {
421421 const op_tok_id = tree.tokens.at(prefix_op_node.op_token).id;
422422 switch (op_tok_id) {
423423 .Asterisk, .AsteriskAsterisk => try stream.writeByte('*'),
......@@ -477,7 +477,7 @@ fn renderExpression(
477477 }
478478 },
479479
480 ast.Node.PrefixOp.Op.SliceType => |ptr_info| {
480 .SliceType => |ptr_info| {
481481 try renderToken(tree, stream, prefix_op_node.op_token, indent, start_col, Space.None); // [
482482 if (ptr_info.sentinel) |sentinel| {
483483 const colon_token = tree.prevToken(sentinel.firstToken());
......@@ -524,7 +524,7 @@ fn renderExpression(
524524 }
525525 },
526526
527 ast.Node.PrefixOp.Op.ArrayType => |array_info| {
527 .ArrayType => |array_info| {
528528 const lbracket = prefix_op_node.op_token;
529529 const rbracket = tree.nextToken(if (array_info.sentinel) |sentinel|
530530 sentinel.lastToken()
......@@ -551,20 +551,20 @@ fn renderExpression(
551551 }
552552 try renderToken(tree, stream, rbracket, indent, start_col, Space.None); // ]
553553 },
554 ast.Node.PrefixOp.Op.BitNot,
555 ast.Node.PrefixOp.Op.BoolNot,
556 ast.Node.PrefixOp.Op.Negation,
557 ast.Node.PrefixOp.Op.NegationWrap,
558 ast.Node.PrefixOp.Op.OptionalType,
559 ast.Node.PrefixOp.Op.AddressOf,
554 .BitNot,
555 .BoolNot,
556 .Negation,
557 .NegationWrap,
558 .OptionalType,
559 .AddressOf,
560560 => {
561561 try renderToken(tree, stream, prefix_op_node.op_token, indent, start_col, Space.None);
562562 },
563563
564 ast.Node.PrefixOp.Op.Try,
565 ast.Node.PrefixOp.Op.Await,
566 ast.Node.PrefixOp.Op.Cancel,
567 ast.Node.PrefixOp.Op.Resume,
564 .Try,
565 .Await,
566 .Cancel,
567 .Resume,
568568 => {
569569 try renderToken(tree, stream, prefix_op_node.op_token, indent, start_col, Space.Space);
570570 },
......@@ -573,11 +573,11 @@ fn renderExpression(
573573 return renderExpression(allocator, stream, tree, indent, start_col, prefix_op_node.rhs, space);
574574 },
575575
576 ast.Node.Id.SuffixOp => {
576 .SuffixOp => {
577577 const suffix_op = @fieldParentPtr(ast.Node.SuffixOp, "base", base);
578578
579579 switch (suffix_op.op) {
580 @TagType(ast.Node.SuffixOp.Op).Call => |*call_info| {
580 .Call => |*call_info| {
581581 if (call_info.async_token) |async_token| {
582582 try renderToken(tree, stream, async_token, indent, start_col, Space.Space);
583583 }
......@@ -593,7 +593,7 @@ fn renderExpression(
593593
594594 const src_has_trailing_comma = blk: {
595595 const maybe_comma = tree.prevToken(suffix_op.rtoken);
596 break :blk tree.tokens.at(maybe_comma).id == Token.Id.Comma;
596 break :blk tree.tokens.at(maybe_comma).id == .Comma;
597597 };
598598
599599 if (src_has_trailing_comma) {
......@@ -604,7 +604,7 @@ fn renderExpression(
604604 while (true) {
605605 const param_node = it.next().?;
606606
607 const param_node_new_indent = if (param_node.*.id == ast.Node.Id.MultilineStringLiteral) blk: {
607 const param_node_new_indent = if (param_node.*.id == .MultilineStringLiteral) blk: {
608608 break :blk indent;
609609 } else blk: {
610610 try stream.writeByteNTimes(' ', new_indent);
......@@ -638,7 +638,7 @@ fn renderExpression(
638638 return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space);
639639 },
640640
641 ast.Node.SuffixOp.Op.ArrayAccess => |index_expr| {
641 .ArrayAccess => |index_expr| {
642642 const lbracket = tree.prevToken(index_expr.firstToken());
643643 const rbracket = tree.nextToken(index_expr.lastToken());
644644
......@@ -659,18 +659,18 @@ fn renderExpression(
659659 return renderToken(tree, stream, rbracket, indent, start_col, space); // ]
660660 },
661661
662 ast.Node.SuffixOp.Op.Deref => {
662 .Deref => {
663663 try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs.node, Space.None);
664664 return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); // .*
665665 },
666666
667 ast.Node.SuffixOp.Op.UnwrapOptional => {
667 .UnwrapOptional => {
668668 try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs.node, Space.None);
669669 try renderToken(tree, stream, tree.prevToken(suffix_op.rtoken), indent, start_col, Space.None); // .
670670 return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); // ?
671671 },
672672
673 @TagType(ast.Node.SuffixOp.Op).Slice => |range| {
673 .Slice => |range| {
674674 try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs.node, Space.None);
675675
676676 const lbracket = tree.prevToken(range.start.firstToken());
......@@ -690,7 +690,7 @@ fn renderExpression(
690690 return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); // ]
691691 },
692692
693 ast.Node.SuffixOp.Op.StructInitializer => |*field_inits| {
693 .StructInitializer => |*field_inits| {
694694 const lbrace = switch (suffix_op.lhs) {
695695 .dot => |dot| tree.nextToken(dot),
696696 .node => |node| tree.nextToken(node.lastToken()),
......@@ -707,7 +707,7 @@ fn renderExpression(
707707
708708 const src_has_trailing_comma = blk: {
709709 const maybe_comma = tree.prevToken(suffix_op.rtoken);
710 break :blk tree.tokens.at(maybe_comma).id == Token.Id.Comma;
710 break :blk tree.tokens.at(maybe_comma).id == .Comma;
711711 };
712712
713713 const src_same_line = blk: {
......@@ -731,7 +731,7 @@ fn renderExpression(
731731 const field_init = field_inits.at(0).*.cast(ast.Node.FieldInitializer).?;
732732
733733 if (field_init.expr.cast(ast.Node.SuffixOp)) |nested_suffix_op| {
734 if (nested_suffix_op.op == ast.Node.SuffixOp.Op.StructInitializer) {
734 if (nested_suffix_op.op == .StructInitializer) {
735735 break :blk;
736736 }
737737 }
......@@ -801,7 +801,7 @@ fn renderExpression(
801801 return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space);
802802 },
803803
804 ast.Node.SuffixOp.Op.ArrayInitializer => |*exprs| {
804 .ArrayInitializer => |*exprs| {
805805 const lbrace = switch (suffix_op.lhs) {
806806 .dot => |dot| tree.nextToken(dot),
807807 .node => |node| tree.nextToken(node.lastToken()),
......@@ -850,7 +850,7 @@ fn renderExpression(
850850 // all on one line
851851 const src_has_trailing_comma = trailblk: {
852852 const maybe_comma = tree.prevToken(suffix_op.rtoken);
853 break :trailblk tree.tokens.at(maybe_comma).id == Token.Id.Comma;
853 break :trailblk tree.tokens.at(maybe_comma).id == .Comma;
854854 };
855855 if (src_has_trailing_comma) {
856856 break :blk 1; // force row size 1
......@@ -891,7 +891,7 @@ fn renderExpression(
891891
892892 var new_indent = indent + indent_delta;
893893
894 if (tree.tokens.at(tree.nextToken(lbrace)).id != Token.Id.MultilineStringLiteralLine) {
894 if (tree.tokens.at(tree.nextToken(lbrace)).id != .MultilineStringLiteralLine) {
895895 try renderToken(tree, stream, lbrace, new_indent, start_col, Space.Newline);
896896 try stream.writeByteNTimes(' ', new_indent);
897897 } else {
......@@ -919,14 +919,14 @@ fn renderExpression(
919919 }
920920 col = 1;
921921
922 if (tree.tokens.at(tree.nextToken(comma)).id != Token.Id.MultilineStringLiteralLine) {
922 if (tree.tokens.at(tree.nextToken(comma)).id != .MultilineStringLiteralLine) {
923923 try renderToken(tree, stream, comma, new_indent, start_col, Space.Newline); // ,
924924 } else {
925925 try renderToken(tree, stream, comma, new_indent, start_col, Space.None); // ,
926926 }
927927
928928 try renderExtraNewline(tree, stream, start_col, next_expr.*);
929 if (next_expr.*.id != ast.Node.Id.MultilineStringLiteral) {
929 if (next_expr.*.id != .MultilineStringLiteral) {
930930 try stream.writeByteNTimes(' ', new_indent);
931931 }
932932 } else {
......@@ -934,7 +934,7 @@ fn renderExpression(
934934 }
935935 }
936936 const last_node = it.prev().?;
937 if (last_node.*.id != ast.Node.Id.MultilineStringLiteral) {
937 if (last_node.*.id != .MultilineStringLiteral) {
938938 try stream.writeByteNTimes(' ', indent);
939939 }
940940 return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space);
......@@ -957,11 +957,11 @@ fn renderExpression(
957957 }
958958 },
959959
960 ast.Node.Id.ControlFlowExpression => {
960 .ControlFlowExpression => {
961961 const flow_expr = @fieldParentPtr(ast.Node.ControlFlowExpression, "base", base);
962962
963963 switch (flow_expr.kind) {
964 ast.Node.ControlFlowExpression.Kind.Break => |maybe_label| {
964 .Break => |maybe_label| {
965965 if (maybe_label == null and flow_expr.rhs == null) {
966966 return renderToken(tree, stream, flow_expr.ltoken, indent, start_col, space); // break
967967 }
......@@ -977,7 +977,7 @@ fn renderExpression(
977977 try renderExpression(allocator, stream, tree, indent, start_col, label, Space.Space); // label
978978 }
979979 },
980 ast.Node.ControlFlowExpression.Kind.Continue => |maybe_label| {
980 .Continue => |maybe_label| {
981981 assert(flow_expr.rhs == null);
982982
983983 if (maybe_label == null and flow_expr.rhs == null) {
......@@ -992,7 +992,7 @@ fn renderExpression(
992992 return renderExpression(allocator, stream, tree, indent, start_col, label, space);
993993 }
994994 },
995 ast.Node.ControlFlowExpression.Kind.Return => {
995 .Return => {
996996 if (flow_expr.rhs == null) {
997997 return renderToken(tree, stream, flow_expr.ltoken, indent, start_col, space);
998998 }
......@@ -1003,7 +1003,7 @@ fn renderExpression(
10031003 return renderExpression(allocator, stream, tree, indent, start_col, flow_expr.rhs.?, space);
10041004 },
10051005
1006 ast.Node.Id.Payload => {
1006 .Payload => {
10071007 const payload = @fieldParentPtr(ast.Node.Payload, "base", base);
10081008
10091009 try renderToken(tree, stream, payload.lpipe, indent, start_col, Space.None);
......@@ -1011,7 +1011,7 @@ fn renderExpression(
10111011 return renderToken(tree, stream, payload.rpipe, indent, start_col, space);
10121012 },
10131013
1014 ast.Node.Id.PointerPayload => {
1014 .PointerPayload => {
10151015 const payload = @fieldParentPtr(ast.Node.PointerPayload, "base", base);
10161016
10171017 try renderToken(tree, stream, payload.lpipe, indent, start_col, Space.None);
......@@ -1022,7 +1022,7 @@ fn renderExpression(
10221022 return renderToken(tree, stream, payload.rpipe, indent, start_col, space);
10231023 },
10241024
1025 ast.Node.Id.PointerIndexPayload => {
1025 .PointerIndexPayload => {
10261026 const payload = @fieldParentPtr(ast.Node.PointerIndexPayload, "base", base);
10271027
10281028 try renderToken(tree, stream, payload.lpipe, indent, start_col, Space.None);
......@@ -1041,7 +1041,7 @@ fn renderExpression(
10411041 return renderToken(tree, stream, payload.rpipe, indent, start_col, space);
10421042 },
10431043
1044 ast.Node.Id.GroupedExpression => {
1044 .GroupedExpression => {
10451045 const grouped_expr = @fieldParentPtr(ast.Node.GroupedExpression, "base", base);
10461046
10471047 try renderToken(tree, stream, grouped_expr.lparen, indent, start_col, Space.None);
......@@ -1049,7 +1049,7 @@ fn renderExpression(
10491049 return renderToken(tree, stream, grouped_expr.rparen, indent, start_col, space);
10501050 },
10511051
1052 ast.Node.Id.FieldInitializer => {
1052 .FieldInitializer => {
10531053 const field_init = @fieldParentPtr(ast.Node.FieldInitializer, "base", base);
10541054
10551055 try renderToken(tree, stream, field_init.period_token, indent, start_col, Space.None); // .
......@@ -1058,43 +1058,43 @@ fn renderExpression(
10581058 return renderExpression(allocator, stream, tree, indent, start_col, field_init.expr, space);
10591059 },
10601060
1061 ast.Node.Id.IntegerLiteral => {
1061 .IntegerLiteral => {
10621062 const integer_literal = @fieldParentPtr(ast.Node.IntegerLiteral, "base", base);
10631063 return renderToken(tree, stream, integer_literal.token, indent, start_col, space);
10641064 },
1065 ast.Node.Id.FloatLiteral => {
1065 .FloatLiteral => {
10661066 const float_literal = @fieldParentPtr(ast.Node.FloatLiteral, "base", base);
10671067 return renderToken(tree, stream, float_literal.token, indent, start_col, space);
10681068 },
1069 ast.Node.Id.StringLiteral => {
1069 .StringLiteral => {
10701070 const string_literal = @fieldParentPtr(ast.Node.StringLiteral, "base", base);
10711071 return renderToken(tree, stream, string_literal.token, indent, start_col, space);
10721072 },
1073 ast.Node.Id.CharLiteral => {
1073 .CharLiteral => {
10741074 const char_literal = @fieldParentPtr(ast.Node.CharLiteral, "base", base);
10751075 return renderToken(tree, stream, char_literal.token, indent, start_col, space);
10761076 },
1077 ast.Node.Id.BoolLiteral => {
1077 .BoolLiteral => {
10781078 const bool_literal = @fieldParentPtr(ast.Node.CharLiteral, "base", base);
10791079 return renderToken(tree, stream, bool_literal.token, indent, start_col, space);
10801080 },
1081 ast.Node.Id.NullLiteral => {
1081 .NullLiteral => {
10821082 const null_literal = @fieldParentPtr(ast.Node.NullLiteral, "base", base);
10831083 return renderToken(tree, stream, null_literal.token, indent, start_col, space);
10841084 },
1085 ast.Node.Id.Unreachable => {
1085 .Unreachable => {
10861086 const unreachable_node = @fieldParentPtr(ast.Node.Unreachable, "base", base);
10871087 return renderToken(tree, stream, unreachable_node.token, indent, start_col, space);
10881088 },
1089 ast.Node.Id.ErrorType => {
1089 .ErrorType => {
10901090 const error_type = @fieldParentPtr(ast.Node.ErrorType, "base", base);
10911091 return renderToken(tree, stream, error_type.token, indent, start_col, space);
10921092 },
1093 ast.Node.Id.VarType => {
1093 .VarType => {
10941094 const var_type = @fieldParentPtr(ast.Node.VarType, "base", base);
10951095 return renderToken(tree, stream, var_type.token, indent, start_col, space);
10961096 },
1097 ast.Node.Id.ContainerDecl => {
1097 .ContainerDecl => {
10981098 const container_decl = @fieldParentPtr(ast.Node.ContainerDecl, "base", base);
10991099
11001100 if (container_decl.layout_token) |layout_token| {
......@@ -1159,7 +1159,7 @@ fn renderExpression(
11591159 }
11601160 },
11611161
1162 ast.Node.Id.ErrorSetDecl => {
1162 .ErrorSetDecl => {
11631163 const err_set_decl = @fieldParentPtr(ast.Node.ErrorSetDecl, "base", base);
11641164
11651165 const lbrace = tree.nextToken(err_set_decl.error_token);
......@@ -1209,20 +1209,20 @@ fn renderExpression(
12091209 return renderToken(tree, stream, err_set_decl.rbrace_token, indent, start_col, space); // }
12101210 },
12111211
1212 ast.Node.Id.ErrorTag => {
1212 .ErrorTag => {
12131213 const tag = @fieldParentPtr(ast.Node.ErrorTag, "base", base);
12141214
12151215 try renderDocComments(tree, stream, tag, indent, start_col);
12161216 return renderToken(tree, stream, tag.name_token, indent, start_col, space); // name
12171217 },
12181218
1219 ast.Node.Id.MultilineStringLiteral => {
1219 .MultilineStringLiteral => {
12201220 // TODO: Don't indent in this function, but let the caller indent.
12211221 // If this has been implemented, a lot of hacky solutions in i.e. ArrayInit and FunctionCall can be removed
12221222 const multiline_str_literal = @fieldParentPtr(ast.Node.MultilineStringLiteral, "base", base);
12231223
12241224 var skip_first_indent = true;
1225 if (tree.tokens.at(multiline_str_literal.firstToken() - 1).id != Token.Id.LineComment) {
1225 if (tree.tokens.at(multiline_str_literal.firstToken() - 1).id != .LineComment) {
12261226 try stream.print("\n");
12271227 skip_first_indent = false;
12281228 }
......@@ -1238,12 +1238,12 @@ fn renderExpression(
12381238 }
12391239 try stream.writeByteNTimes(' ', indent);
12401240 },
1241 ast.Node.Id.UndefinedLiteral => {
1241 .UndefinedLiteral => {
12421242 const undefined_literal = @fieldParentPtr(ast.Node.UndefinedLiteral, "base", base);
12431243 return renderToken(tree, stream, undefined_literal.token, indent, start_col, space);
12441244 },
12451245
1246 ast.Node.Id.BuiltinCall => {
1246 .BuiltinCall => {
12471247 const builtin_call = @fieldParentPtr(ast.Node.BuiltinCall, "base", base);
12481248
12491249 try renderToken(tree, stream, builtin_call.builtin_token, indent, start_col, Space.None); // @name
......@@ -1261,12 +1261,12 @@ fn renderExpression(
12611261 return renderToken(tree, stream, builtin_call.rparen_token, indent, start_col, space); // )
12621262 },
12631263
1264 ast.Node.Id.FnProto => {
1264 .FnProto => {
12651265 const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", base);
12661266
12671267 if (fn_proto.visib_token) |visib_token_index| {
12681268 const visib_token = tree.tokens.at(visib_token_index);
1269 assert(visib_token.id == Token.Id.Keyword_pub or visib_token.id == Token.Id.Keyword_export);
1269 assert(visib_token.id == .Keyword_pub or visib_token.id == .Keyword_export);
12701270
12711271 try renderToken(tree, stream, visib_token_index, indent, start_col, Space.Space); // pub
12721272 }
......@@ -1363,7 +1363,7 @@ fn renderExpression(
13631363 }
13641364 },
13651365
1366 ast.Node.Id.AnyFrameType => {
1366 .AnyFrameType => {
13671367 const anyframe_type = @fieldParentPtr(ast.Node.AnyFrameType, "base", base);
13681368
13691369 if (anyframe_type.result) |result| {
......@@ -1375,9 +1375,9 @@ fn renderExpression(
13751375 }
13761376 },
13771377
1378 ast.Node.Id.DocComment => unreachable, // doc comments are attached to nodes
1378 .DocComment => unreachable, // doc comments are attached to nodes
13791379
1380 ast.Node.Id.Switch => {
1380 .Switch => {
13811381 const switch_node = @fieldParentPtr(ast.Node.Switch, "base", base);
13821382
13831383 try renderToken(tree, stream, switch_node.switch_token, indent, start_col, Space.Space); // switch
......@@ -1414,14 +1414,14 @@ fn renderExpression(
14141414 return renderToken(tree, stream, switch_node.rbrace, indent, start_col, space); // }
14151415 },
14161416
1417 ast.Node.Id.SwitchCase => {
1417 .SwitchCase => {
14181418 const switch_case = @fieldParentPtr(ast.Node.SwitchCase, "base", base);
14191419
14201420 assert(switch_case.items.len != 0);
14211421 const src_has_trailing_comma = blk: {
14221422 const last_node = switch_case.items.at(switch_case.items.len - 1).*;
14231423 const maybe_comma = tree.nextToken(last_node.lastToken());
1424 break :blk tree.tokens.at(maybe_comma).id == Token.Id.Comma;
1424 break :blk tree.tokens.at(maybe_comma).id == .Comma;
14251425 };
14261426
14271427 if (switch_case.items.len == 1 or !src_has_trailing_comma) {
......@@ -1464,11 +1464,11 @@ fn renderExpression(
14641464
14651465 return renderExpression(allocator, stream, tree, indent, start_col, switch_case.expr, space);
14661466 },
1467 ast.Node.Id.SwitchElse => {
1467 .SwitchElse => {
14681468 const switch_else = @fieldParentPtr(ast.Node.SwitchElse, "base", base);
14691469 return renderToken(tree, stream, switch_else.token, indent, start_col, space);
14701470 },
1471 ast.Node.Id.Else => {
1471 .Else => {
14721472 const else_node = @fieldParentPtr(ast.Node.Else, "base", base);
14731473
14741474 const body_is_block = nodeIsBlock(else_node.body);
......@@ -1491,7 +1491,7 @@ fn renderExpression(
14911491 return renderExpression(allocator, stream, tree, indent, start_col, else_node.body, space);
14921492 },
14931493
1494 ast.Node.Id.While => {
1494 .While => {
14951495 const while_node = @fieldParentPtr(ast.Node.While, "base", base);
14961496
14971497 if (while_node.label) |label| {
......@@ -1566,7 +1566,7 @@ fn renderExpression(
15661566 }
15671567 },
15681568
1569 ast.Node.Id.For => {
1569 .For => {
15701570 const for_node = @fieldParentPtr(ast.Node.For, "base", base);
15711571
15721572 if (for_node.label) |label| {
......@@ -1584,7 +1584,7 @@ fn renderExpression(
15841584
15851585 const rparen = tree.nextToken(for_node.array_expr.lastToken());
15861586
1587 const body_is_block = for_node.body.id == ast.Node.Id.Block;
1587 const body_is_block = for_node.body.id == .Block;
15881588 const src_one_line_to_body = !body_is_block and tree.tokensOnSameLine(rparen, for_node.body.firstToken());
15891589 const body_on_same_line = body_is_block or src_one_line_to_body;
15901590
......@@ -1616,7 +1616,7 @@ fn renderExpression(
16161616 }
16171617 },
16181618
1619 ast.Node.Id.If => {
1619 .If => {
16201620 const if_node = @fieldParentPtr(ast.Node.If, "base", base);
16211621
16221622 const lparen = tree.prevToken(if_node.condition.firstToken());
......@@ -1627,7 +1627,7 @@ fn renderExpression(
16271627
16281628 try renderExpression(allocator, stream, tree, indent, start_col, if_node.condition, Space.None); // condition
16291629
1630 const body_is_if_block = if_node.body.id == ast.Node.Id.If;
1630 const body_is_if_block = if_node.body.id == .If;
16311631 const body_is_block = nodeIsBlock(if_node.body);
16321632
16331633 if (body_is_if_block) {
......@@ -1710,7 +1710,7 @@ fn renderExpression(
17101710 }
17111711 },
17121712
1713 ast.Node.Id.Asm => {
1713 .Asm => {
17141714 const asm_node = @fieldParentPtr(ast.Node.Asm, "base", base);
17151715
17161716 try renderToken(tree, stream, asm_node.asm_token, indent, start_col, Space.Space); // asm
......@@ -1731,7 +1731,7 @@ fn renderExpression(
17311731
17321732 const indent_once = indent + indent_delta;
17331733
1734 if (asm_node.template.id == ast.Node.Id.MultilineStringLiteral) {
1734 if (asm_node.template.id == .MultilineStringLiteral) {
17351735 // After rendering a multiline string literal the cursor is
17361736 // already offset by indent
17371737 try stream.writeByteNTimes(' ', indent_delta);
......@@ -1773,7 +1773,7 @@ fn renderExpression(
17731773 try stream.writeByteNTimes(' ', indent_once);
17741774 const comma_or_colon = tree.nextToken(node.lastToken());
17751775 break :blk switch (tree.tokens.at(comma_or_colon).id) {
1776 Token.Id.Comma => tree.nextToken(comma_or_colon),
1776 .Comma => tree.nextToken(comma_or_colon),
17771777 else => comma_or_colon,
17781778 };
17791779 }
......@@ -1811,7 +1811,7 @@ fn renderExpression(
18111811 try stream.writeByteNTimes(' ', indent_once);
18121812 const comma_or_colon = tree.nextToken(node.lastToken());
18131813 break :blk switch (tree.tokens.at(comma_or_colon).id) {
1814 Token.Id.Comma => tree.nextToken(comma_or_colon),
1814 .Comma => tree.nextToken(comma_or_colon),
18151815 else => comma_or_colon,
18161816 };
18171817 }
......@@ -1836,7 +1836,7 @@ fn renderExpression(
18361836 }
18371837 },
18381838
1839 ast.Node.Id.AsmInput => {
1839 .AsmInput => {
18401840 const asm_input = @fieldParentPtr(ast.Node.AsmInput, "base", base);
18411841
18421842 try stream.write("[");
......@@ -1848,7 +1848,7 @@ fn renderExpression(
18481848 return renderToken(tree, stream, asm_input.lastToken(), indent, start_col, space); // )
18491849 },
18501850
1851 ast.Node.Id.AsmOutput => {
1851 .AsmOutput => {
18521852 const asm_output = @fieldParentPtr(ast.Node.AsmOutput, "base", base);
18531853
18541854 try stream.write("[");
......@@ -1870,19 +1870,19 @@ fn renderExpression(
18701870 return renderToken(tree, stream, asm_output.lastToken(), indent, start_col, space); // )
18711871 },
18721872
1873 ast.Node.Id.EnumLiteral => {
1873 .EnumLiteral => {
18741874 const enum_literal = @fieldParentPtr(ast.Node.EnumLiteral, "base", base);
18751875
18761876 try renderToken(tree, stream, enum_literal.dot, indent, start_col, Space.None); // .
18771877 return renderToken(tree, stream, enum_literal.name, indent, start_col, space); // name
18781878 },
18791879
1880 ast.Node.Id.ContainerField,
1881 ast.Node.Id.Root,
1882 ast.Node.Id.VarDecl,
1883 ast.Node.Id.Use,
1884 ast.Node.Id.TestDecl,
1885 ast.Node.Id.ParamDecl,
1880 .ContainerField,
1881 .Root,
1882 .VarDecl,
1883 .Use,
1884 .TestDecl,
1885 .ParamDecl,
18861886 => unreachable,
18871887 }
18881888}
......@@ -1951,7 +1951,7 @@ fn renderVarDecl(
19511951 }
19521952
19531953 if (var_decl.init_node) |init_node| {
1954 const s = if (init_node.id == ast.Node.Id.MultilineStringLiteral) Space.None else Space.Space;
1954 const s = if (init_node.id == .MultilineStringLiteral) Space.None else Space.Space;
19551955 try renderToken(tree, stream, var_decl.eq_token, indent, start_col, s); // =
19561956 try renderExpression(allocator, stream, tree, indent, start_col, init_node, Space.None);
19571957 }
......@@ -1998,7 +1998,7 @@ fn renderStatement(
19981998 base: *ast.Node,
19991999) (@typeOf(stream).Child.Error || Error)!void {
20002000 switch (base.id) {
2001 ast.Node.Id.VarDecl => {
2001 .VarDecl => {
20022002 const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", base);
20032003 try renderVarDecl(allocator, stream, tree, indent, start_col, var_decl);
20042004 },
......@@ -2007,7 +2007,7 @@ fn renderStatement(
20072007 try renderExpression(allocator, stream, tree, indent, start_col, base, Space.None);
20082008
20092009 const semicolon_index = tree.nextToken(base.lastToken());
2010 assert(tree.tokens.at(semicolon_index).id == Token.Id.Semicolon);
2010 assert(tree.tokens.at(semicolon_index).id == .Semicolon);
20112011 try renderToken(tree, stream, semicolon_index, indent, start_col, Space.Newline);
20122012 } else {
20132013 try renderExpression(allocator, stream, tree, indent, start_col, base, Space.Newline);
......@@ -2054,13 +2054,13 @@ fn renderTokenOffset(
20542054 var next_token = tree.tokens.at(token_index + 1);
20552055
20562056 if (space == Space.Comma) switch (next_token.id) {
2057 Token.Id.Comma => return renderToken(tree, stream, token_index + 1, indent, start_col, Space.Newline),
2058 Token.Id.LineComment => {
2057 .Comma => return renderToken(tree, stream, token_index + 1, indent, start_col, Space.Newline),
2058 .LineComment => {
20592059 try stream.write(", ");
20602060 return renderToken(tree, stream, token_index + 1, indent, start_col, Space.Newline);
20612061 },
20622062 else => {
2063 if (token_index + 2 < tree.tokens.len and tree.tokens.at(token_index + 2).id == Token.Id.MultilineStringLiteralLine) {
2063 if (token_index + 2 < tree.tokens.len and tree.tokens.at(token_index + 2).id == .MultilineStringLiteralLine) {
20642064 try stream.write(",");
20652065 return;
20662066 } else {
......@@ -2073,7 +2073,7 @@ fn renderTokenOffset(
20732073
20742074 // Skip over same line doc comments
20752075 var offset: usize = 1;
2076 if (next_token.id == Token.Id.DocComment) {
2076 if (next_token.id == .DocComment) {
20772077 const loc = tree.tokenLocationPtr(token.end, next_token);
20782078 if (loc.line == 0) {
20792079 offset += 1;
......@@ -2081,11 +2081,11 @@ fn renderTokenOffset(
20812081 }
20822082 }
20832083
2084 if (next_token.id != Token.Id.LineComment) blk: {
2084 if (next_token.id != .LineComment) blk: {
20852085 switch (space) {
20862086 Space.None, Space.NoNewline => return,
20872087 Space.Newline => {
2088 if (next_token.id == Token.Id.MultilineStringLiteralLine) {
2088 if (next_token.id == .MultilineStringLiteralLine) {
20892089 return;
20902090 } else {
20912091 try stream.write("\n");
......@@ -2094,7 +2094,7 @@ fn renderTokenOffset(
20942094 }
20952095 },
20962096 Space.Space, Space.SpaceOrOutdent => {
2097 if (next_token.id == Token.Id.MultilineStringLiteralLine)
2097 if (next_token.id == .MultilineStringLiteralLine)
20982098 return;
20992099 try stream.writeByte(' ');
21002100 return;
......@@ -2130,13 +2130,13 @@ fn renderTokenOffset(
21302130 offset = 2;
21312131 token = next_token;
21322132 next_token = tree.tokens.at(token_index + offset);
2133 if (next_token.id != Token.Id.LineComment) {
2133 if (next_token.id != .LineComment) {
21342134 switch (space) {
21352135 Space.None, Space.Space => {
21362136 try stream.writeByte('\n');
21372137 const after_comment_token = tree.tokens.at(token_index + offset);
21382138 const next_line_indent = switch (after_comment_token.id) {
2139 Token.Id.RParen, Token.Id.RBrace, Token.Id.RBracket => indent,
2139 .RParen, .RBrace, .RBracket => indent,
21402140 else => indent + indent_delta,
21412141 };
21422142 try stream.writeByteNTimes(' ', next_line_indent);
......@@ -2148,7 +2148,7 @@ fn renderTokenOffset(
21482148 start_col.* = indent;
21492149 },
21502150 Space.Newline => {
2151 if (next_token.id == Token.Id.MultilineStringLiteralLine) {
2151 if (next_token.id == .MultilineStringLiteralLine) {
21522152 return;
21532153 } else {
21542154 try stream.write("\n");
......@@ -2174,10 +2174,10 @@ fn renderTokenOffset(
21742174 offset += 1;
21752175 token = next_token;
21762176 next_token = tree.tokens.at(token_index + offset);
2177 if (next_token.id != Token.Id.LineComment) {
2177 if (next_token.id != .LineComment) {
21782178 switch (space) {
21792179 Space.Newline => {
2180 if (next_token.id == Token.Id.MultilineStringLiteralLine) {
2180 if (next_token.id == .MultilineStringLiteralLine) {
21812181 return;
21822182 } else {
21832183 try stream.write("\n");
......@@ -2190,7 +2190,7 @@ fn renderTokenOffset(
21902190
21912191 const after_comment_token = tree.tokens.at(token_index + offset);
21922192 const next_line_indent = switch (after_comment_token.id) {
2193 Token.Id.RParen, Token.Id.RBrace, Token.Id.RBracket => blk: {
2193 .RParen, .RBrace, .RBracket => blk: {
21942194 if (indent > indent_delta) {
21952195 break :blk indent - indent_delta;
21962196 } else {
......@@ -2251,11 +2251,11 @@ fn renderDocComments(
22512251
22522252fn nodeIsBlock(base: *const ast.Node) bool {
22532253 return switch (base.id) {
2254 ast.Node.Id.Block,
2255 ast.Node.Id.If,
2256 ast.Node.Id.For,
2257 ast.Node.Id.While,
2258 ast.Node.Id.Switch,
2254 .Block,
2255 .If,
2256 .For,
2257 .While,
2258 .Switch,
22592259 => true,
22602260 else => false,
22612261 };