| ... | ... | @@ -232,9 +232,9 @@ fn renderContainerDecl(allocator: *mem.Allocator, stream: anytype, tree: *ast.Tr |
| 232 | 232 | .FnProto => { |
| 233 | 233 | const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl); |
| 234 | 234 | |
| 235 | | try renderDocComments(tree, stream, fn_proto, fn_proto.getTrailer("doc_comments"), indent, start_col); |
| 235 | try renderDocComments(tree, stream, fn_proto, fn_proto.getTrailer(.doc_comments), indent, start_col); |
| 236 | 236 | |
| 237 | | if (fn_proto.getTrailer("body_node")) |body_node| { |
| 237 | if (fn_proto.getTrailer(.body_node)) |body_node| { |
| 238 | 238 | try renderExpression(allocator, stream, tree, indent, start_col, decl, .Space); |
| 239 | 239 | try renderExpression(allocator, stream, tree, indent, start_col, body_node, space); |
| 240 | 240 | } else { |
| ... | ... | @@ -257,7 +257,7 @@ fn renderContainerDecl(allocator: *mem.Allocator, stream: anytype, tree: *ast.Tr |
| 257 | 257 | .VarDecl => { |
| 258 | 258 | const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl); |
| 259 | 259 | |
| 260 | | try renderDocComments(tree, stream, var_decl, var_decl.getTrailer("doc_comments"), indent, start_col); |
| 260 | try renderDocComments(tree, stream, var_decl, var_decl.getTrailer(.doc_comments), indent, start_col); |
| 261 | 261 | try renderVarDecl(allocator, stream, tree, indent, start_col, var_decl); |
| 262 | 262 | }, |
| 263 | 263 | |
| ... | ... | @@ -1520,23 +1520,23 @@ fn renderExpression( |
| 1520 | 1520 | .FnProto => { |
| 1521 | 1521 | const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", base); |
| 1522 | 1522 | |
| 1523 | | if (fn_proto.getTrailer("visib_token")) |visib_token_index| { |
| 1523 | if (fn_proto.getTrailer(.visib_token)) |visib_token_index| { |
| 1524 | 1524 | const visib_token = tree.token_ids[visib_token_index]; |
| 1525 | 1525 | assert(visib_token == .Keyword_pub or visib_token == .Keyword_export); |
| 1526 | 1526 | |
| 1527 | 1527 | try renderToken(tree, stream, visib_token_index, indent, start_col, Space.Space); // pub |
| 1528 | 1528 | } |
| 1529 | 1529 | |
| 1530 | | if (fn_proto.getTrailer("extern_export_inline_token")) |extern_export_inline_token| { |
| 1531 | | if (fn_proto.getTrailer("is_extern_prototype") == null) |
| 1530 | if (fn_proto.getTrailer(.extern_export_inline_token)) |extern_export_inline_token| { |
| 1531 | if (fn_proto.getTrailer(.is_extern_prototype) == null) |
| 1532 | 1532 | try renderToken(tree, stream, extern_export_inline_token, indent, start_col, Space.Space); // extern/export/inline |
| 1533 | 1533 | } |
| 1534 | 1534 | |
| 1535 | | if (fn_proto.getTrailer("lib_name")) |lib_name| { |
| 1535 | if (fn_proto.getTrailer(.lib_name)) |lib_name| { |
| 1536 | 1536 | try renderExpression(allocator, stream, tree, indent, start_col, lib_name, Space.Space); |
| 1537 | 1537 | } |
| 1538 | 1538 | |
| 1539 | | const lparen = if (fn_proto.getTrailer("name_token")) |name_token| blk: { |
| 1539 | const lparen = if (fn_proto.getTrailer(.name_token)) |name_token| blk: { |
| 1540 | 1540 | try renderToken(tree, stream, fn_proto.fn_token, indent, start_col, Space.Space); // fn |
| 1541 | 1541 | try renderToken(tree, stream, name_token, indent, start_col, Space.None); // name |
| 1542 | 1542 | break :blk tree.nextToken(name_token); |
| ... | ... | @@ -1549,11 +1549,11 @@ fn renderExpression( |
| 1549 | 1549 | const rparen = tree.prevToken( |
| 1550 | 1550 | // the first token for the annotation expressions is the left |
| 1551 | 1551 | // parenthesis, hence the need for two prevToken |
| 1552 | | if (fn_proto.getTrailer("align_expr")) |align_expr| |
| 1552 | if (fn_proto.getTrailer(.align_expr)) |align_expr| |
| 1553 | 1553 | tree.prevToken(tree.prevToken(align_expr.firstToken())) |
| 1554 | | else if (fn_proto.getTrailer("section_expr")) |section_expr| |
| 1554 | else if (fn_proto.getTrailer(.section_expr)) |section_expr| |
| 1555 | 1555 | tree.prevToken(tree.prevToken(section_expr.firstToken())) |
| 1556 | | else if (fn_proto.getTrailer("callconv_expr")) |callconv_expr| |
| 1556 | else if (fn_proto.getTrailer(.callconv_expr)) |callconv_expr| |
| 1557 | 1557 | tree.prevToken(tree.prevToken(callconv_expr.firstToken())) |
| 1558 | 1558 | else switch (fn_proto.return_type) { |
| 1559 | 1559 | .Explicit => |node| node.firstToken(), |
| ... | ... | @@ -1574,12 +1574,12 @@ fn renderExpression( |
| 1574 | 1574 | for (fn_proto.params()) |param_decl, i| { |
| 1575 | 1575 | try renderParamDecl(allocator, stream, tree, indent, start_col, param_decl, Space.None); |
| 1576 | 1576 | |
| 1577 | | if (i + 1 < fn_proto.params_len or fn_proto.getTrailer("var_args_token") != null) { |
| 1577 | if (i + 1 < fn_proto.params_len or fn_proto.getTrailer(.var_args_token) != null) { |
| 1578 | 1578 | const comma = tree.nextToken(param_decl.lastToken()); |
| 1579 | 1579 | try renderToken(tree, stream, comma, indent, start_col, Space.Space); // , |
| 1580 | 1580 | } |
| 1581 | 1581 | } |
| 1582 | | if (fn_proto.getTrailer("var_args_token")) |var_args_token| { |
| 1582 | if (fn_proto.getTrailer(.var_args_token)) |var_args_token| { |
| 1583 | 1583 | try renderToken(tree, stream, var_args_token, indent, start_col, Space.None); |
| 1584 | 1584 | } |
| 1585 | 1585 | } else { |
| ... | ... | @@ -1591,7 +1591,7 @@ fn renderExpression( |
| 1591 | 1591 | try stream.writeByteNTimes(' ', new_indent); |
| 1592 | 1592 | try renderParamDecl(allocator, stream, tree, new_indent, start_col, param_decl, Space.Comma); |
| 1593 | 1593 | } |
| 1594 | | if (fn_proto.getTrailer("var_args_token")) |var_args_token| { |
| 1594 | if (fn_proto.getTrailer(.var_args_token)) |var_args_token| { |
| 1595 | 1595 | try stream.writeByteNTimes(' ', new_indent); |
| 1596 | 1596 | try renderToken(tree, stream, var_args_token, new_indent, start_col, Space.Comma); |
| 1597 | 1597 | } |
| ... | ... | @@ -1600,7 +1600,7 @@ fn renderExpression( |
| 1600 | 1600 | |
| 1601 | 1601 | try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) |
| 1602 | 1602 | |
| 1603 | | if (fn_proto.getTrailer("align_expr")) |align_expr| { |
| 1603 | if (fn_proto.getTrailer(.align_expr)) |align_expr| { |
| 1604 | 1604 | const align_rparen = tree.nextToken(align_expr.lastToken()); |
| 1605 | 1605 | const align_lparen = tree.prevToken(align_expr.firstToken()); |
| 1606 | 1606 | const align_kw = tree.prevToken(align_lparen); |
| ... | ... | @@ -1611,7 +1611,7 @@ fn renderExpression( |
| 1611 | 1611 | try renderToken(tree, stream, align_rparen, indent, start_col, Space.Space); // ) |
| 1612 | 1612 | } |
| 1613 | 1613 | |
| 1614 | | if (fn_proto.getTrailer("section_expr")) |section_expr| { |
| 1614 | if (fn_proto.getTrailer(.section_expr)) |section_expr| { |
| 1615 | 1615 | const section_rparen = tree.nextToken(section_expr.lastToken()); |
| 1616 | 1616 | const section_lparen = tree.prevToken(section_expr.firstToken()); |
| 1617 | 1617 | const section_kw = tree.prevToken(section_lparen); |
| ... | ... | @@ -1622,7 +1622,7 @@ fn renderExpression( |
| 1622 | 1622 | try renderToken(tree, stream, section_rparen, indent, start_col, Space.Space); // ) |
| 1623 | 1623 | } |
| 1624 | 1624 | |
| 1625 | | if (fn_proto.getTrailer("callconv_expr")) |callconv_expr| { |
| 1625 | if (fn_proto.getTrailer(.callconv_expr)) |callconv_expr| { |
| 1626 | 1626 | const callconv_rparen = tree.nextToken(callconv_expr.lastToken()); |
| 1627 | 1627 | const callconv_lparen = tree.prevToken(callconv_expr.firstToken()); |
| 1628 | 1628 | const callconv_kw = tree.prevToken(callconv_lparen); |
| ... | ... | @@ -1631,9 +1631,9 @@ fn renderExpression( |
| 1631 | 1631 | try renderToken(tree, stream, callconv_lparen, indent, start_col, Space.None); // ( |
| 1632 | 1632 | try renderExpression(allocator, stream, tree, indent, start_col, callconv_expr, Space.None); |
| 1633 | 1633 | try renderToken(tree, stream, callconv_rparen, indent, start_col, Space.Space); // ) |
| 1634 | | } else if (fn_proto.getTrailer("is_extern_prototype") != null) { |
| 1634 | } else if (fn_proto.getTrailer(.is_extern_prototype) != null) { |
| 1635 | 1635 | try stream.writeAll("callconv(.C) "); |
| 1636 | | } else if (fn_proto.getTrailer("is_async") != null) { |
| 1636 | } else if (fn_proto.getTrailer(.is_async) != null) { |
| 1637 | 1637 | try stream.writeAll("callconv(.Async) "); |
| 1638 | 1638 | } |
| 1639 | 1639 | |
| ... | ... | @@ -2221,69 +2221,69 @@ fn renderVarDecl( |
| 2221 | 2221 | start_col: *usize, |
| 2222 | 2222 | var_decl: *ast.Node.VarDecl, |
| 2223 | 2223 | ) (@TypeOf(stream).Error || Error)!void { |
| 2224 | | if (var_decl.getTrailer("visib_token")) |visib_token| { |
| 2224 | if (var_decl.getTrailer(.visib_token)) |visib_token| { |
| 2225 | 2225 | try renderToken(tree, stream, visib_token, indent, start_col, Space.Space); // pub |
| 2226 | 2226 | } |
| 2227 | 2227 | |
| 2228 | | if (var_decl.getTrailer("extern_export_token")) |extern_export_token| { |
| 2228 | if (var_decl.getTrailer(.extern_export_token)) |extern_export_token| { |
| 2229 | 2229 | try renderToken(tree, stream, extern_export_token, indent, start_col, Space.Space); // extern |
| 2230 | 2230 | |
| 2231 | | if (var_decl.getTrailer("lib_name")) |lib_name| { |
| 2231 | if (var_decl.getTrailer(.lib_name)) |lib_name| { |
| 2232 | 2232 | try renderExpression(allocator, stream, tree, indent, start_col, lib_name, Space.Space); // "lib" |
| 2233 | 2233 | } |
| 2234 | 2234 | } |
| 2235 | 2235 | |
| 2236 | | if (var_decl.getTrailer("comptime_token")) |comptime_token| { |
| 2236 | if (var_decl.getTrailer(.comptime_token)) |comptime_token| { |
| 2237 | 2237 | try renderToken(tree, stream, comptime_token, indent, start_col, Space.Space); // comptime |
| 2238 | 2238 | } |
| 2239 | 2239 | |
| 2240 | | if (var_decl.getTrailer("thread_local_token")) |thread_local_token| { |
| 2240 | if (var_decl.getTrailer(.thread_local_token)) |thread_local_token| { |
| 2241 | 2241 | try renderToken(tree, stream, thread_local_token, indent, start_col, Space.Space); // threadlocal |
| 2242 | 2242 | } |
| 2243 | 2243 | try renderToken(tree, stream, var_decl.mut_token, indent, start_col, Space.Space); // var |
| 2244 | 2244 | |
| 2245 | | const name_space = if (var_decl.getTrailer("type_node") == null and |
| 2246 | | (var_decl.getTrailer("align_node") != null or |
| 2247 | | var_decl.getTrailer("section_node") != null or |
| 2248 | | var_decl.getTrailer("init_node") != null)) |
| 2245 | const name_space = if (var_decl.getTrailer(.type_node) == null and |
| 2246 | (var_decl.getTrailer(.align_node) != null or |
| 2247 | var_decl.getTrailer(.section_node) != null or |
| 2248 | var_decl.getTrailer(.init_node) != null)) |
| 2249 | 2249 | Space.Space |
| 2250 | 2250 | else |
| 2251 | 2251 | Space.None; |
| 2252 | 2252 | try renderToken(tree, stream, var_decl.name_token, indent, start_col, name_space); |
| 2253 | 2253 | |
| 2254 | | if (var_decl.getTrailer("type_node")) |type_node| { |
| 2254 | if (var_decl.getTrailer(.type_node)) |type_node| { |
| 2255 | 2255 | try renderToken(tree, stream, tree.nextToken(var_decl.name_token), indent, start_col, Space.Space); |
| 2256 | | const s = if (var_decl.getTrailer("align_node") != null or |
| 2257 | | var_decl.getTrailer("section_node") != null or |
| 2258 | | var_decl.getTrailer("init_node") != null) Space.Space else Space.None; |
| 2256 | const s = if (var_decl.getTrailer(.align_node) != null or |
| 2257 | var_decl.getTrailer(.section_node) != null or |
| 2258 | var_decl.getTrailer(.init_node) != null) Space.Space else Space.None; |
| 2259 | 2259 | try renderExpression(allocator, stream, tree, indent, start_col, type_node, s); |
| 2260 | 2260 | } |
| 2261 | 2261 | |
| 2262 | | if (var_decl.getTrailer("align_node")) |align_node| { |
| 2262 | if (var_decl.getTrailer(.align_node)) |align_node| { |
| 2263 | 2263 | const lparen = tree.prevToken(align_node.firstToken()); |
| 2264 | 2264 | const align_kw = tree.prevToken(lparen); |
| 2265 | 2265 | const rparen = tree.nextToken(align_node.lastToken()); |
| 2266 | 2266 | try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align |
| 2267 | 2267 | try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( |
| 2268 | 2268 | try renderExpression(allocator, stream, tree, indent, start_col, align_node, Space.None); |
| 2269 | | const s = if (var_decl.getTrailer("section_node") != null or var_decl.getTrailer("init_node") != null) Space.Space else Space.None; |
| 2269 | const s = if (var_decl.getTrailer(.section_node) != null or var_decl.getTrailer(.init_node) != null) Space.Space else Space.None; |
| 2270 | 2270 | try renderToken(tree, stream, rparen, indent, start_col, s); // ) |
| 2271 | 2271 | } |
| 2272 | 2272 | |
| 2273 | | if (var_decl.getTrailer("section_node")) |section_node| { |
| 2273 | if (var_decl.getTrailer(.section_node)) |section_node| { |
| 2274 | 2274 | const lparen = tree.prevToken(section_node.firstToken()); |
| 2275 | 2275 | const section_kw = tree.prevToken(lparen); |
| 2276 | 2276 | const rparen = tree.nextToken(section_node.lastToken()); |
| 2277 | 2277 | try renderToken(tree, stream, section_kw, indent, start_col, Space.None); // linksection |
| 2278 | 2278 | try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( |
| 2279 | 2279 | try renderExpression(allocator, stream, tree, indent, start_col, section_node, Space.None); |
| 2280 | | const s = if (var_decl.getTrailer("init_node") != null) Space.Space else Space.None; |
| 2280 | const s = if (var_decl.getTrailer(.init_node) != null) Space.Space else Space.None; |
| 2281 | 2281 | try renderToken(tree, stream, rparen, indent, start_col, s); // ) |
| 2282 | 2282 | } |
| 2283 | 2283 | |
| 2284 | | if (var_decl.getTrailer("init_node")) |init_node| { |
| 2284 | if (var_decl.getTrailer(.init_node)) |init_node| { |
| 2285 | 2285 | const s = if (init_node.tag == .MultilineStringLiteral) Space.None else Space.Space; |
| 2286 | | try renderToken(tree, stream, var_decl.getTrailer("eq_token").?, indent, start_col, s); // = |
| 2286 | try renderToken(tree, stream, var_decl.getTrailer(.eq_token).?, indent, start_col, s); // = |
| 2287 | 2287 | try renderExpression(allocator, stream, tree, indent, start_col, init_node, Space.None); |
| 2288 | 2288 | } |
| 2289 | 2289 | |