| ... | ... | @@ -101,6 +101,9 @@ fn renderTopLevelDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index) Error!voi |
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | fn renderContainerDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: Space) Error!void { |
| 104 | const token_tags = tree.tokens.items(.tag); |
| 105 | const main_tokens = tree.nodes.items(.main_token); |
| 106 | const datas = tree.nodes.items(.data); |
| 104 | 107 | switch (tree.nodes.items(.tag)[decl]) { |
| 105 | 108 | .UsingNamespace, |
| 106 | 109 | .FnProtoSimple, |
| ... | ... | @@ -112,142 +115,137 @@ fn renderContainerDecl(ais: *Ais, tree: ast.Tree, decl: ast.Node.Index, space: S |
| 112 | 115 | .LocalVarDecl, |
| 113 | 116 | .SimpleVarDecl, |
| 114 | 117 | .AlignedVarDecl, |
| 115 | | .TestDecl, |
| 116 | 118 | .ContainerFieldInit, |
| 117 | 119 | .ContainerFieldAlign, |
| 118 | 120 | .ContainerField, |
| 119 | 121 | => @panic("TODO implement renderContainerDecl"), |
| 120 | 122 | |
| 121 | | .Comptime => return renderExpression(ais, tree, decl, space), |
| 122 | | |
| 123 | | else => unreachable, |
| 124 | | } |
| 125 | | //switch (tag) { |
| 126 | | // .FnProto => { |
| 127 | | // const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl); |
| 128 | | |
| 129 | | // try renderDocComments(tree, ais, fn_proto, fn_proto.getDocComments()); |
| 123 | // .FnProto => { |
| 124 | // const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl); |
| 130 | 125 | |
| 131 | | // if (fn_proto.getBodyNode()) |body_node| { |
| 132 | | // try renderExpression(allocator, ais, tree, decl, .Space); |
| 133 | | // try renderExpression(allocator, ais, tree, body_node, space); |
| 134 | | // } else { |
| 135 | | // try renderExpression(allocator, ais, tree, decl, .None); |
| 136 | | // try renderToken(ais, tree, tree.nextToken(decl.lastToken()), space); |
| 137 | | // } |
| 138 | | // }, |
| 139 | | |
| 140 | | // .Use => { |
| 141 | | // const use_decl = @fieldParentPtr(ast.Node.Use, "base", decl); |
| 142 | | |
| 143 | | // if (use_decl.visib_token) |visib_token| { |
| 144 | | // try renderToken(ais, tree, visib_token, .Space); // pub |
| 145 | | // } |
| 146 | | // try renderToken(ais, tree, use_decl.use_token, .Space); // usingnamespace |
| 147 | | // try renderExpression(allocator, ais, tree, use_decl.expr, .None); |
| 148 | | // try renderToken(ais, tree, use_decl.semicolon_token, space); // ; |
| 149 | | // }, |
| 126 | // try renderDocComments(ais, tree, fn_proto, fn_proto.getDocComments()); |
| 150 | 127 | |
| 151 | | // .VarDecl => { |
| 152 | | // const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl); |
| 128 | // if (fn_proto.getBodyNode()) |body_node| { |
| 129 | // try renderExpression(ais, tree, decl, .Space); |
| 130 | // try renderExpression(ais, tree, body_node, space); |
| 131 | // } else { |
| 132 | // try renderExpression(ais, tree, decl, .None); |
| 133 | // try renderToken(ais, tree, tree.nextToken(decl.lastToken()), space); |
| 134 | // } |
| 135 | // }, |
| 153 | 136 | |
| 154 | | // try renderDocComments(tree, ais, var_decl, var_decl.getDocComments()); |
| 155 | | // try renderVarDecl(allocator, ais, tree, var_decl); |
| 156 | | // }, |
| 137 | // .Use => { |
| 138 | // const use_decl = @fieldParentPtr(ast.Node.Use, "base", decl); |
| 157 | 139 | |
| 158 | | // .TestDecl => { |
| 159 | | // const test_decl = @fieldParentPtr(ast.Node.TestDecl, "base", decl); |
| 140 | // if (use_decl.visib_token) |visib_token| { |
| 141 | // try renderToken(ais, tree, visib_token, .Space); // pub |
| 142 | // } |
| 143 | // try renderToken(ais, tree, use_decl.use_token, .Space); // usingnamespace |
| 144 | // try renderExpression(ais, tree, use_decl.expr, .None); |
| 145 | // try renderToken(ais, tree, use_decl.semicolon_token, space); // ; |
| 146 | // }, |
| 147 | |
| 148 | // .VarDecl => { |
| 149 | // const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl); |
| 150 | |
| 151 | // try renderDocComments(ais, tree, var_decl, var_decl.getDocComments()); |
| 152 | // try renderVarDecl(allocator, ais, tree, var_decl); |
| 153 | // }, |
| 154 | |
| 155 | .TestDecl => { |
| 156 | const test_token = main_tokens[decl]; |
| 157 | try renderDocComments(ais, tree, test_token); |
| 158 | try renderToken(ais, tree, test_token, .Space); |
| 159 | if (token_tags[test_token + 1] == .StringLiteral) { |
| 160 | try renderToken(ais, tree, test_token + 1, .Space); |
| 161 | } |
| 162 | try renderExpression(ais, tree, datas[decl].rhs, space); |
| 163 | }, |
| 160 | 164 | |
| 161 | | // try renderDocComments(tree, ais, test_decl, test_decl.doc_comments); |
| 162 | | // try renderToken(ais, tree, test_decl.test_token, .Space); |
| 163 | | // if (test_decl.name) |name| |
| 164 | | // try renderExpression(allocator, ais, tree, name, .Space); |
| 165 | | // try renderExpression(allocator, ais, tree, test_decl.body_node, space); |
| 166 | | // }, |
| 165 | // .ContainerField => { |
| 166 | // const field = @fieldParentPtr(ast.Node.ContainerField, "base", decl); |
| 167 | 167 | |
| 168 | | // .ContainerField => { |
| 169 | | // const field = @fieldParentPtr(ast.Node.ContainerField, "base", decl); |
| 168 | // try renderDocComments(ais, tree, field, field.doc_comments); |
| 169 | // if (field.comptime_token) |t| { |
| 170 | // try renderToken(ais, tree, t, .Space); // comptime |
| 171 | // } |
| 170 | 172 | |
| 171 | | // try renderDocComments(tree, ais, field, field.doc_comments); |
| 172 | | // if (field.comptime_token) |t| { |
| 173 | | // try renderToken(ais, tree, t, .Space); // comptime |
| 174 | | // } |
| 173 | // const src_has_trailing_comma = blk: { |
| 174 | // const maybe_comma = tree.nextToken(field.lastToken()); |
| 175 | // break :blk tree.token_tags[maybe_comma] == .Comma; |
| 176 | // }; |
| 175 | 177 | |
| 176 | | // const src_has_trailing_comma = blk: { |
| 177 | | // const maybe_comma = tree.nextToken(field.lastToken()); |
| 178 | | // break :blk tree.token_tags[maybe_comma] == .Comma; |
| 179 | | // }; |
| 180 | | |
| 181 | | // // The trailing comma is emitted at the end, but if it's not present |
| 182 | | // // we still have to respect the specified `space` parameter |
| 183 | | // const last_token_space: Space = if (src_has_trailing_comma) .None else space; |
| 184 | | |
| 185 | | // if (field.type_expr == null and field.value_expr == null) { |
| 186 | | // try renderToken(ais, tree, field.name_token, last_token_space); // name |
| 187 | | // } else if (field.type_expr != null and field.value_expr == null) { |
| 188 | | // try renderToken(ais, tree, field.name_token, .None); // name |
| 189 | | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // : |
| 190 | | |
| 191 | | // if (field.align_expr) |align_value_expr| { |
| 192 | | // try renderExpression(allocator, ais, tree, field.type_expr.?, .Space); // type |
| 193 | | // const lparen_token = tree.prevToken(align_value_expr.firstToken()); |
| 194 | | // const align_kw = tree.prevToken(lparen_token); |
| 195 | | // const rparen_token = tree.nextToken(align_value_expr.lastToken()); |
| 196 | | // try renderToken(ais, tree, align_kw, .None); // align |
| 197 | | // try renderToken(ais, tree, lparen_token, .None); // ( |
| 198 | | // try renderExpression(allocator, ais, tree, align_value_expr, .None); // alignment |
| 199 | | // try renderToken(ais, tree, rparen_token, last_token_space); // ) |
| 200 | | // } else { |
| 201 | | // try renderExpression(allocator, ais, tree, field.type_expr.?, last_token_space); // type |
| 202 | | // } |
| 203 | | // } else if (field.type_expr == null and field.value_expr != null) { |
| 204 | | // try renderToken(ais, tree, field.name_token, .Space); // name |
| 205 | | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // = |
| 206 | | // try renderExpression(allocator, ais, tree, field.value_expr.?, last_token_space); // value |
| 207 | | // } else { |
| 208 | | // try renderToken(ais, tree, field.name_token, .None); // name |
| 209 | | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // : |
| 210 | | |
| 211 | | // if (field.align_expr) |align_value_expr| { |
| 212 | | // try renderExpression(allocator, ais, tree, field.type_expr.?, .Space); // type |
| 213 | | // const lparen_token = tree.prevToken(align_value_expr.firstToken()); |
| 214 | | // const align_kw = tree.prevToken(lparen_token); |
| 215 | | // const rparen_token = tree.nextToken(align_value_expr.lastToken()); |
| 216 | | // try renderToken(ais, tree, align_kw, .None); // align |
| 217 | | // try renderToken(ais, tree, lparen_token, .None); // ( |
| 218 | | // try renderExpression(allocator, ais, tree, align_value_expr, .None); // alignment |
| 219 | | // try renderToken(ais, tree, rparen_token, .Space); // ) |
| 220 | | // } else { |
| 221 | | // try renderExpression(allocator, ais, tree, field.type_expr.?, .Space); // type |
| 222 | | // } |
| 223 | | // try renderToken(ais, tree, tree.prevToken(field.value_expr.?.firstToken()), .Space); // = |
| 224 | | // try renderExpression(allocator, ais, tree, field.value_expr.?, last_token_space); // value |
| 225 | | // } |
| 178 | // // The trailing comma is emitted at the end, but if it's not present |
| 179 | // // we still have to respect the specified `space` parameter |
| 180 | // const last_token_space: Space = if (src_has_trailing_comma) .None else space; |
| 181 | |
| 182 | // if (field.type_expr == null and field.value_expr == null) { |
| 183 | // try renderToken(ais, tree, field.name_token, last_token_space); // name |
| 184 | // } else if (field.type_expr != null and field.value_expr == null) { |
| 185 | // try renderToken(ais, tree, field.name_token, .None); // name |
| 186 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // : |
| 187 | |
| 188 | // if (field.align_expr) |align_value_expr| { |
| 189 | // try renderExpression(ais, tree, field.type_expr.?, .Space); // type |
| 190 | // const lparen_token = tree.prevToken(align_value_expr.firstToken()); |
| 191 | // const align_kw = tree.prevToken(lparen_token); |
| 192 | // const rparen_token = tree.nextToken(align_value_expr.lastToken()); |
| 193 | // try renderToken(ais, tree, align_kw, .None); // align |
| 194 | // try renderToken(ais, tree, lparen_token, .None); // ( |
| 195 | // try renderExpression(ais, tree, align_value_expr, .None); // alignment |
| 196 | // try renderToken(ais, tree, rparen_token, last_token_space); // ) |
| 197 | // } else { |
| 198 | // try renderExpression(ais, tree, field.type_expr.?, last_token_space); // type |
| 199 | // } |
| 200 | // } else if (field.type_expr == null and field.value_expr != null) { |
| 201 | // try renderToken(ais, tree, field.name_token, .Space); // name |
| 202 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // = |
| 203 | // try renderExpression(ais, tree, field.value_expr.?, last_token_space); // value |
| 204 | // } else { |
| 205 | // try renderToken(ais, tree, field.name_token, .None); // name |
| 206 | // try renderToken(ais, tree, tree.nextToken(field.name_token), .Space); // : |
| 207 | |
| 208 | // if (field.align_expr) |align_value_expr| { |
| 209 | // try renderExpression(ais, tree, field.type_expr.?, .Space); // type |
| 210 | // const lparen_token = tree.prevToken(align_value_expr.firstToken()); |
| 211 | // const align_kw = tree.prevToken(lparen_token); |
| 212 | // const rparen_token = tree.nextToken(align_value_expr.lastToken()); |
| 213 | // try renderToken(ais, tree, align_kw, .None); // align |
| 214 | // try renderToken(ais, tree, lparen_token, .None); // ( |
| 215 | // try renderExpression(ais, tree, align_value_expr, .None); // alignment |
| 216 | // try renderToken(ais, tree, rparen_token, .Space); // ) |
| 217 | // } else { |
| 218 | // try renderExpression(ais, tree, field.type_expr.?, .Space); // type |
| 219 | // } |
| 220 | // try renderToken(ais, tree, tree.prevToken(field.value_expr.?.firstToken()), .Space); // = |
| 221 | // try renderExpression(ais, tree, field.value_expr.?, last_token_space); // value |
| 222 | // } |
| 226 | 223 | |
| 227 | | // if (src_has_trailing_comma) { |
| 228 | | // const comma = tree.nextToken(field.lastToken()); |
| 229 | | // try renderToken(ais, tree, comma, space); |
| 230 | | // } |
| 231 | | // }, |
| 224 | // if (src_has_trailing_comma) { |
| 225 | // const comma = tree.nextToken(field.lastToken()); |
| 226 | // try renderToken(ais, tree, comma, space); |
| 227 | // } |
| 228 | // }, |
| 229 | .Comptime => return renderExpression(ais, tree, decl, space), |
| 232 | 230 | |
| 233 | | // .DocComment => { |
| 234 | | // const comment = @fieldParentPtr(ast.Node.DocComment, "base", decl); |
| 235 | | // const kind = tree.token_tags[comment.first_line]; |
| 236 | | // try renderToken(ais, tree, comment.first_line, .Newline); |
| 237 | | // var tok_i = comment.first_line + 1; |
| 238 | | // while (true) : (tok_i += 1) { |
| 239 | | // const tok_id = tree.token_tags[tok_i]; |
| 240 | | // if (tok_id == kind) { |
| 241 | | // try renderToken(ais, tree, tok_i, .Newline); |
| 242 | | // } else if (tok_id == .LineComment) { |
| 243 | | // continue; |
| 244 | | // } else { |
| 245 | | // break; |
| 246 | | // } |
| 247 | | // } |
| 248 | | // }, |
| 249 | | // else => unreachable, |
| 250 | | //} |
| 231 | // .DocComment => { |
| 232 | // const comment = @fieldParentPtr(ast.Node.DocComment, "base", decl); |
| 233 | // const kind = tree.token_tags[comment.first_line]; |
| 234 | // try renderToken(ais, tree, comment.first_line, .Newline); |
| 235 | // var tok_i = comment.first_line + 1; |
| 236 | // while (true) : (tok_i += 1) { |
| 237 | // const tok_id = tree.token_tags[tok_i]; |
| 238 | // if (tok_id == kind) { |
| 239 | // try renderToken(ais, tree, tok_i, .Newline); |
| 240 | // } else if (tok_id == .LineComment) { |
| 241 | // continue; |
| 242 | // } else { |
| 243 | // break; |
| 244 | // } |
| 245 | // } |
| 246 | // }, |
| 247 | else => unreachable, |
| 248 | } |
| 251 | 249 | } |
| 252 | 250 | |
| 253 | 251 | fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Space) Error!void { |
| ... | ... | @@ -319,9 +317,9 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 319 | 317 | |
| 320 | 318 | // try renderToken(ais, tree, defer_node.defer_token, Space.Space); |
| 321 | 319 | // if (defer_node.payload) |payload| { |
| 322 | | // try renderExpression(allocator, ais, tree, payload, Space.Space); |
| 320 | // try renderExpression(ais, tree, payload, Space.Space); |
| 323 | 321 | // } |
| 324 | | // return renderExpression(allocator, ais, tree, defer_node.expr, space); |
| 322 | // return renderExpression(ais, tree, defer_node.expr, space); |
| 325 | 323 | //}, |
| 326 | 324 | .Comptime => { |
| 327 | 325 | const comptime_token = tree.nodes.items(.main_token)[node]; |
| ... | ... | @@ -337,7 +335,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 337 | 335 | // } else { |
| 338 | 336 | // try renderToken(ais, tree, nosuspend_node.nosuspend_token, Space.Space); |
| 339 | 337 | // } |
| 340 | | // return renderExpression(allocator, ais, tree, nosuspend_node.expr, space); |
| 338 | // return renderExpression(ais, tree, nosuspend_node.expr, space); |
| 341 | 339 | //}, |
| 342 | 340 | |
| 343 | 341 | //.Suspend => { |
| ... | ... | @@ -345,7 +343,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 345 | 343 | |
| 346 | 344 | // if (suspend_node.body) |body| { |
| 347 | 345 | // try renderToken(ais, tree, suspend_node.suspend_token, Space.Space); |
| 348 | | // return renderExpression(allocator, ais, tree, body, space); |
| 346 | // return renderExpression(ais, tree, body, space); |
| 349 | 347 | // } else { |
| 350 | 348 | // return renderToken(ais, tree, suspend_node.suspend_token, space); |
| 351 | 349 | // } |
| ... | ... | @@ -355,7 +353,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 355 | 353 | // const infix_op_node = @fieldParentPtr(ast.Node.Catch, "base", base); |
| 356 | 354 | |
| 357 | 355 | // const op_space = Space.Space; |
| 358 | | // try renderExpression(allocator, ais, tree, infix_op_node.lhs, op_space); |
| 356 | // try renderExpression(ais, tree, infix_op_node.lhs, op_space); |
| 359 | 357 | |
| 360 | 358 | // const after_op_space = blk: { |
| 361 | 359 | // const same_line = tree.tokensOnSameLine(infix_op_node.op_token, tree.nextToken(infix_op_node.op_token)); |
| ... | ... | @@ -365,11 +363,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 365 | 363 | // try renderToken(ais, tree, infix_op_node.op_token, after_op_space); |
| 366 | 364 | |
| 367 | 365 | // if (infix_op_node.payload) |payload| { |
| 368 | | // try renderExpression(allocator, ais, tree, payload, Space.Space); |
| 366 | // try renderExpression(ais, tree, payload, Space.Space); |
| 369 | 367 | // } |
| 370 | 368 | |
| 371 | 369 | // ais.pushIndentOneShot(); |
| 372 | | // return renderExpression(allocator, ais, tree, infix_op_node.rhs, space); |
| 370 | // return renderExpression(ais, tree, infix_op_node.rhs, space); |
| 373 | 371 | //}, |
| 374 | 372 | |
| 375 | 373 | //.Add, |
| ... | ... | @@ -421,7 +419,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 421 | 419 | // .Period, .ErrorUnion, .Range => Space.None, |
| 422 | 420 | // else => Space.Space, |
| 423 | 421 | // }; |
| 424 | | // try renderExpression(allocator, ais, tree, infix_op_node.lhs, op_space); |
| 422 | // try renderExpression(ais, tree, infix_op_node.lhs, op_space); |
| 425 | 423 | |
| 426 | 424 | // const after_op_space = blk: { |
| 427 | 425 | // const loc = tree.tokenLocation(tree.token_locs[infix_op_node.op_token].end, tree.nextToken(infix_op_node.op_token)); |
| ... | ... | @@ -434,7 +432,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 434 | 432 | // try renderToken(ais, tree, infix_op_node.op_token, after_op_space); |
| 435 | 433 | // } |
| 436 | 434 | // ais.pushIndentOneShot(); |
| 437 | | // return renderExpression(allocator, ais, tree, infix_op_node.rhs, space); |
| 435 | // return renderExpression(ais, tree, infix_op_node.rhs, space); |
| 438 | 436 | //}, |
| 439 | 437 | |
| 440 | 438 | //.BitNot, |
| ... | ... | @@ -446,7 +444,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 446 | 444 | //=> { |
| 447 | 445 | // const casted_node = @fieldParentPtr(ast.Node.SimplePrefixOp, "base", base); |
| 448 | 446 | // try renderToken(ais, tree, casted_node.op_token, Space.None); |
| 449 | | // return renderExpression(allocator, ais, tree, casted_node.rhs, space); |
| 447 | // return renderExpression(ais, tree, casted_node.rhs, space); |
| 450 | 448 | //}, |
| 451 | 449 | |
| 452 | 450 | //.Try, |
| ... | ... | @@ -455,7 +453,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 455 | 453 | //=> { |
| 456 | 454 | // const casted_node = @fieldParentPtr(ast.Node.SimplePrefixOp, "base", base); |
| 457 | 455 | // try renderToken(ais, tree, casted_node.op_token, Space.Space); |
| 458 | | // return renderExpression(allocator, ais, tree, casted_node.rhs, space); |
| 456 | // return renderExpression(ais, tree, casted_node.rhs, space); |
| 459 | 457 | //}, |
| 460 | 458 | |
| 461 | 459 | //.ArrayType => { |
| ... | ... | @@ -503,7 +501,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 503 | 501 | // .LBracket => Space.None, |
| 504 | 502 | // else => Space.Space, |
| 505 | 503 | // }; |
| 506 | | // try renderExpression(allocator, ais, tree, sentinel, sentinel_space); |
| 504 | // try renderExpression(ais, tree, sentinel, sentinel_space); |
| 507 | 505 | // } |
| 508 | 506 | // switch (op_tok_id) { |
| 509 | 507 | // .Asterisk, .AsteriskAsterisk => {}, |
| ... | ... | @@ -520,16 +518,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 520 | 518 | // try renderToken(ais, tree, align_token, Space.None); // align |
| 521 | 519 | // try renderToken(ais, tree, lparen_token, Space.None); // ( |
| 522 | 520 | |
| 523 | | // try renderExpression(allocator, ais, tree, align_info.node, Space.None); |
| 521 | // try renderExpression(ais, tree, align_info.node, Space.None); |
| 524 | 522 | |
| 525 | 523 | // if (align_info.bit_range) |bit_range| { |
| 526 | 524 | // const colon1 = tree.prevToken(bit_range.start.firstToken()); |
| 527 | 525 | // const colon2 = tree.prevToken(bit_range.end.firstToken()); |
| 528 | 526 | |
| 529 | 527 | // try renderToken(ais, tree, colon1, Space.None); // : |
| 530 | | // try renderExpression(allocator, ais, tree, bit_range.start, Space.None); |
| 528 | // try renderExpression(ais, tree, bit_range.start, Space.None); |
| 531 | 529 | // try renderToken(ais, tree, colon2, Space.None); // : |
| 532 | | // try renderExpression(allocator, ais, tree, bit_range.end, Space.None); |
| 530 | // try renderExpression(ais, tree, bit_range.end, Space.None); |
| 533 | 531 | |
| 534 | 532 | // const rparen_token = tree.nextToken(bit_range.end.lastToken()); |
| 535 | 533 | // try renderToken(ais, tree, rparen_token, Space.Space); // ) |
| ... | ... | @@ -544,7 +542,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 544 | 542 | // if (ptr_type.ptr_info.volatile_token) |volatile_token| { |
| 545 | 543 | // try renderToken(ais, tree, volatile_token, Space.Space); // volatile |
| 546 | 544 | // } |
| 547 | | // return renderExpression(allocator, ais, tree, ptr_type.rhs, space); |
| 545 | // return renderExpression(ais, tree, ptr_type.rhs, space); |
| 548 | 546 | //}, |
| 549 | 547 | |
| 550 | 548 | //.SliceType => { |
| ... | ... | @@ -553,7 +551,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 553 | 551 | // if (slice_type.ptr_info.sentinel) |sentinel| { |
| 554 | 552 | // const colon_token = tree.prevToken(sentinel.firstToken()); |
| 555 | 553 | // try renderToken(ais, tree, colon_token, Space.None); // : |
| 556 | | // try renderExpression(allocator, ais, tree, sentinel, Space.None); |
| 554 | // try renderExpression(ais, tree, sentinel, Space.None); |
| 557 | 555 | // try renderToken(ais, tree, tree.nextToken(sentinel.lastToken()), Space.None); // ] |
| 558 | 556 | // } else { |
| 559 | 557 | // try renderToken(ais, tree, tree.nextToken(slice_type.op_token), Space.None); // ] |
| ... | ... | @@ -569,16 +567,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 569 | 567 | // try renderToken(ais, tree, align_token, Space.None); // align |
| 570 | 568 | // try renderToken(ais, tree, lparen_token, Space.None); // ( |
| 571 | 569 | |
| 572 | | // try renderExpression(allocator, ais, tree, align_info.node, Space.None); |
| 570 | // try renderExpression(ais, tree, align_info.node, Space.None); |
| 573 | 571 | |
| 574 | 572 | // if (align_info.bit_range) |bit_range| { |
| 575 | 573 | // const colon1 = tree.prevToken(bit_range.start.firstToken()); |
| 576 | 574 | // const colon2 = tree.prevToken(bit_range.end.firstToken()); |
| 577 | 575 | |
| 578 | 576 | // try renderToken(ais, tree, colon1, Space.None); // : |
| 579 | | // try renderExpression(allocator, ais, tree, bit_range.start, Space.None); |
| 577 | // try renderExpression(ais, tree, bit_range.start, Space.None); |
| 580 | 578 | // try renderToken(ais, tree, colon2, Space.None); // : |
| 581 | | // try renderExpression(allocator, ais, tree, bit_range.end, Space.None); |
| 579 | // try renderExpression(ais, tree, bit_range.end, Space.None); |
| 582 | 580 | |
| 583 | 581 | // const rparen_token = tree.nextToken(bit_range.end.lastToken()); |
| 584 | 582 | // try renderToken(ais, tree, rparen_token, Space.Space); // ) |
| ... | ... | @@ -593,7 +591,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 593 | 591 | // if (slice_type.ptr_info.volatile_token) |volatile_token| { |
| 594 | 592 | // try renderToken(ais, tree, volatile_token, Space.Space); |
| 595 | 593 | // } |
| 596 | | // return renderExpression(allocator, ais, tree, slice_type.rhs, space); |
| 594 | // return renderExpression(ais, tree, slice_type.rhs, space); |
| 597 | 595 | //}, |
| 598 | 596 | |
| 599 | 597 | //.ArrayInitializer, .ArrayInitializerDot => { |
| ... | ... | @@ -622,7 +620,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 622 | 620 | |
| 623 | 621 | // switch (lhs) { |
| 624 | 622 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 625 | | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), |
| 623 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 626 | 624 | // } |
| 627 | 625 | |
| 628 | 626 | // if (exprs.len == 0) { |
| ... | ... | @@ -634,7 +632,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 634 | 632 | // const expr = exprs[0]; |
| 635 | 633 | |
| 636 | 634 | // try renderToken(ais, tree, lbrace, Space.None); |
| 637 | | // try renderExpression(allocator, ais, tree, expr, Space.None); |
| 635 | // try renderExpression(ais, tree, expr, Space.None); |
| 638 | 636 | // return renderToken(ais, tree, rtoken, space); |
| 639 | 637 | // } |
| 640 | 638 | |
| ... | ... | @@ -748,7 +746,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 748 | 746 | // for (section_exprs) |expr, i| { |
| 749 | 747 | // if (i + 1 < section_exprs.len) { |
| 750 | 748 | // const next_expr = section_exprs[i + 1]; |
| 751 | | // try renderExpression(allocator, ais, tree, expr, Space.None); |
| 749 | // try renderExpression(ais, tree, expr, Space.None); |
| 752 | 750 | |
| 753 | 751 | // const comma = tree.nextToken(expr.*.lastToken()); |
| 754 | 752 | |
| ... | ... | @@ -775,10 +773,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 775 | 773 | // } else { |
| 776 | 774 | // const maybe_comma = tree.nextToken(expr.*.lastToken()); |
| 777 | 775 | // if (tree.token_tags[maybe_comma] == .Comma) { |
| 778 | | // try renderExpression(allocator, ais, tree, expr, Space.None); // , |
| 776 | // try renderExpression(ais, tree, expr, Space.None); // , |
| 779 | 777 | // try renderToken(ais, tree, maybe_comma, Space.Newline); // , |
| 780 | 778 | // } else { |
| 781 | | // try renderExpression(allocator, ais, tree, expr, Space.Comma); // , |
| 779 | // try renderExpression(ais, tree, expr, Space.Comma); // , |
| 782 | 780 | // } |
| 783 | 781 | // } |
| 784 | 782 | // } |
| ... | ... | @@ -797,11 +795,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 797 | 795 | // for (exprs) |expr, i| { |
| 798 | 796 | // if (i + 1 < exprs.len) { |
| 799 | 797 | // const next_expr = exprs[i + 1]; |
| 800 | | // try renderExpression(allocator, ais, tree, expr, Space.None); |
| 798 | // try renderExpression(ais, tree, expr, Space.None); |
| 801 | 799 | // const comma = tree.nextToken(expr.*.lastToken()); |
| 802 | 800 | // try renderToken(ais, tree, comma, Space.Space); // , |
| 803 | 801 | // } else { |
| 804 | | // try renderExpression(allocator, ais, tree, expr, Space.Space); |
| 802 | // try renderExpression(ais, tree, expr, Space.Space); |
| 805 | 803 | // } |
| 806 | 804 | // } |
| 807 | 805 | |
| ... | ... | @@ -835,7 +833,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 835 | 833 | // if (field_inits.len == 0) { |
| 836 | 834 | // switch (lhs) { |
| 837 | 835 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 838 | | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), |
| 836 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 839 | 837 | // } |
| 840 | 838 | |
| 841 | 839 | // { |
| ... | ... | @@ -886,10 +884,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 886 | 884 | |
| 887 | 885 | // switch (lhs) { |
| 888 | 886 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 889 | | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), |
| 887 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 890 | 888 | // } |
| 891 | 889 | // try renderToken(ais, tree, lbrace, Space.Space); |
| 892 | | // try renderExpression(allocator, ais, tree, field_inits[0], Space.Space); |
| 890 | // try renderExpression(ais, tree, field_inits[0], Space.Space); |
| 893 | 891 | // return renderToken(ais, tree, rtoken, space); |
| 894 | 892 | // } |
| 895 | 893 | |
| ... | ... | @@ -897,18 +895,18 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 897 | 895 | // // render all on one line, no trailing comma |
| 898 | 896 | // switch (lhs) { |
| 899 | 897 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 900 | | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), |
| 898 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 901 | 899 | // } |
| 902 | 900 | // try renderToken(ais, tree, lbrace, Space.Space); |
| 903 | 901 | |
| 904 | 902 | // for (field_inits) |field_init, i| { |
| 905 | 903 | // if (i + 1 < field_inits.len) { |
| 906 | | // try renderExpression(allocator, ais, tree, field_init, Space.None); |
| 904 | // try renderExpression(ais, tree, field_init, Space.None); |
| 907 | 905 | |
| 908 | 906 | // const comma = tree.nextToken(field_init.lastToken()); |
| 909 | 907 | // try renderToken(ais, tree, comma, Space.Space); |
| 910 | 908 | // } else { |
| 911 | | // try renderExpression(allocator, ais, tree, field_init, Space.Space); |
| 909 | // try renderExpression(ais, tree, field_init, Space.Space); |
| 912 | 910 | // } |
| 913 | 911 | // } |
| 914 | 912 | |
| ... | ... | @@ -918,7 +916,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 918 | 916 | // { |
| 919 | 917 | // switch (lhs) { |
| 920 | 918 | // .dot => |dot| try renderToken(ais, tree, dot, Space.None), |
| 921 | | // .node => |node| try renderExpression(allocator, ais, tree, node, Space.None), |
| 919 | // .node => |node| try renderExpression(ais, tree, node, Space.None), |
| 922 | 920 | // } |
| 923 | 921 | |
| 924 | 922 | // ais.pushIndentNextLine(); |
| ... | ... | @@ -929,14 +927,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 929 | 927 | // for (field_inits) |field_init, i| { |
| 930 | 928 | // if (i + 1 < field_inits.len) { |
| 931 | 929 | // const next_field_init = field_inits[i + 1]; |
| 932 | | // try renderExpression(allocator, ais, tree, field_init, Space.None); |
| 930 | // try renderExpression(ais, tree, field_init, Space.None); |
| 933 | 931 | |
| 934 | 932 | // const comma = tree.nextToken(field_init.lastToken()); |
| 935 | 933 | // try renderToken(ais, tree, comma, Space.Newline); |
| 936 | 934 | |
| 937 | 935 | // try renderExtraNewline(tree, ais, next_field_init); |
| 938 | 936 | // } else { |
| 939 | | // try renderExpression(allocator, ais, tree, field_init, Space.Comma); |
| 937 | // try renderExpression(ais, tree, field_init, Space.Comma); |
| 940 | 938 | // } |
| 941 | 939 | // } |
| 942 | 940 | // } |
| ... | ... | @@ -950,7 +948,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 950 | 948 | // try renderToken(ais, tree, async_token, Space.Space); |
| 951 | 949 | // } |
| 952 | 950 | |
| 953 | | // try renderExpression(allocator, ais, tree, call.lhs, Space.None); |
| 951 | // try renderExpression(ais, tree, call.lhs, Space.None); |
| 954 | 952 | |
| 955 | 953 | // const lparen = tree.nextToken(call.lhs.lastToken()); |
| 956 | 954 | |
| ... | ... | @@ -974,7 +972,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 974 | 972 | // for (params) |param_node, i| { |
| 975 | 973 | // if (i + 1 < params.len) { |
| 976 | 974 | // const next_node = params[i + 1]; |
| 977 | | // try renderExpression(allocator, ais, tree, param_node, Space.None); |
| 975 | // try renderExpression(ais, tree, param_node, Space.None); |
| 978 | 976 | |
| 979 | 977 | // // Unindent the comma for multiline string literals |
| 980 | 978 | // const maybe_multiline_string = param_node.firstToken(); |
| ... | ... | @@ -986,7 +984,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 986 | 984 | // try renderToken(ais, tree, comma, Space.Newline); // , |
| 987 | 985 | // try renderExtraNewline(tree, ais, next_node); |
| 988 | 986 | // } else { |
| 989 | | // try renderExpression(allocator, ais, tree, param_node, Space.Comma); |
| 987 | // try renderExpression(ais, tree, param_node, Space.Comma); |
| 990 | 988 | // } |
| 991 | 989 | // } |
| 992 | 990 | // } |
| ... | ... | @@ -1003,7 +1001,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1003 | 1001 | // ais.pushIndentOneShot(); |
| 1004 | 1002 | // } |
| 1005 | 1003 | |
| 1006 | | // try renderExpression(allocator, ais, tree, param_node, Space.None); |
| 1004 | // try renderExpression(ais, tree, param_node, Space.None); |
| 1007 | 1005 | |
| 1008 | 1006 | // if (i + 1 < params.len) { |
| 1009 | 1007 | // const comma = tree.nextToken(param_node.lastToken()); |
| ... | ... | @@ -1019,7 +1017,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1019 | 1017 | // const lbracket = tree.nextToken(suffix_op.lhs.lastToken()); |
| 1020 | 1018 | // const rbracket = tree.nextToken(suffix_op.index_expr.lastToken()); |
| 1021 | 1019 | |
| 1022 | | // try renderExpression(allocator, ais, tree, suffix_op.lhs, Space.None); |
| 1020 | // try renderExpression(ais, tree, suffix_op.lhs, Space.None); |
| 1023 | 1021 | // try renderToken(ais, tree, lbracket, Space.None); // [ |
| 1024 | 1022 | |
| 1025 | 1023 | // const starts_with_comment = tree.token_tags[lbracket + 1] == .LineComment; |
| ... | ... | @@ -1029,7 +1027,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1029 | 1027 | |
| 1030 | 1028 | // ais.pushIndent(); |
| 1031 | 1029 | // defer ais.popIndent(); |
| 1032 | | // try renderExpression(allocator, ais, tree, suffix_op.index_expr, new_space); |
| 1030 | // try renderExpression(ais, tree, suffix_op.index_expr, new_space); |
| 1033 | 1031 | // } |
| 1034 | 1032 | // if (starts_with_comment) try ais.maybeInsertNewline(); |
| 1035 | 1033 | // return renderToken(ais, tree, rbracket, space); // ] |
| ... | ... | @@ -1037,7 +1035,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1037 | 1035 | |
| 1038 | 1036 | //.Slice => { |
| 1039 | 1037 | // const suffix_op = base.castTag(.Slice).?; |
| 1040 | | // try renderExpression(allocator, ais, tree, suffix_op.lhs, Space.None); |
| 1038 | // try renderExpression(ais, tree, suffix_op.lhs, Space.None); |
| 1041 | 1039 | |
| 1042 | 1040 | // const lbracket = tree.prevToken(suffix_op.start.firstToken()); |
| 1043 | 1041 | // const dotdot = tree.nextToken(suffix_op.start.lastToken()); |
| ... | ... | @@ -1048,16 +1046,16 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1048 | 1046 | // const after_op_space = if (suffix_op.end != null) after_start_space else Space.None; |
| 1049 | 1047 | |
| 1050 | 1048 | // try renderToken(ais, tree, lbracket, Space.None); // [ |
| 1051 | | // try renderExpression(allocator, ais, tree, suffix_op.start, after_start_space); |
| 1049 | // try renderExpression(ais, tree, suffix_op.start, after_start_space); |
| 1052 | 1050 | // try renderToken(ais, tree, dotdot, after_op_space); // .. |
| 1053 | 1051 | // if (suffix_op.end) |end| { |
| 1054 | 1052 | // const after_end_space = if (suffix_op.sentinel != null) Space.Space else Space.None; |
| 1055 | | // try renderExpression(allocator, ais, tree, end, after_end_space); |
| 1053 | // try renderExpression(ais, tree, end, after_end_space); |
| 1056 | 1054 | // } |
| 1057 | 1055 | // if (suffix_op.sentinel) |sentinel| { |
| 1058 | 1056 | // const colon = tree.prevToken(sentinel.firstToken()); |
| 1059 | 1057 | // try renderToken(ais, tree, colon, Space.None); // : |
| 1060 | | // try renderExpression(allocator, ais, tree, sentinel, Space.None); |
| 1058 | // try renderExpression(ais, tree, sentinel, Space.None); |
| 1061 | 1059 | // } |
| 1062 | 1060 | // return renderToken(ais, tree, suffix_op.rtoken, space); // ] |
| 1063 | 1061 | //}, |
| ... | ... | @@ -1065,13 +1063,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1065 | 1063 | //.Deref => { |
| 1066 | 1064 | // const suffix_op = base.castTag(.Deref).?; |
| 1067 | 1065 | |
| 1068 | | // try renderExpression(allocator, ais, tree, suffix_op.lhs, Space.None); |
| 1066 | // try renderExpression(ais, tree, suffix_op.lhs, Space.None); |
| 1069 | 1067 | // return renderToken(ais, tree, suffix_op.rtoken, space); // .* |
| 1070 | 1068 | //}, |
| 1071 | 1069 | //.UnwrapOptional => { |
| 1072 | 1070 | // const suffix_op = base.castTag(.UnwrapOptional).?; |
| 1073 | 1071 | |
| 1074 | | // try renderExpression(allocator, ais, tree, suffix_op.lhs, Space.None); |
| 1072 | // try renderExpression(ais, tree, suffix_op.lhs, Space.None); |
| 1075 | 1073 | // try renderToken(ais, tree, tree.prevToken(suffix_op.rtoken), Space.None); // . |
| 1076 | 1074 | // return renderToken(ais, tree, suffix_op.rtoken, space); // ? |
| 1077 | 1075 | //}, |
| ... | ... | @@ -1095,7 +1093,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1095 | 1093 | // } |
| 1096 | 1094 | // try renderToken(ais, tree, label, Space.Space); // label |
| 1097 | 1095 | // } |
| 1098 | | // return renderExpression(allocator, ais, tree, maybe_rhs.?, space); |
| 1096 | // return renderExpression(ais, tree, maybe_rhs.?, space); |
| 1099 | 1097 | //}, |
| 1100 | 1098 | |
| 1101 | 1099 | //.Continue => { |
| ... | ... | @@ -1114,7 +1112,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1114 | 1112 | // const flow_expr = base.castTag(.Return).?; |
| 1115 | 1113 | // if (flow_expr.getRHS()) |rhs| { |
| 1116 | 1114 | // try renderToken(ais, tree, flow_expr.ltoken, Space.Space); |
| 1117 | | // return renderExpression(allocator, ais, tree, rhs, space); |
| 1115 | // return renderExpression(ais, tree, rhs, space); |
| 1118 | 1116 | // } else { |
| 1119 | 1117 | // return renderToken(ais, tree, flow_expr.ltoken, space); |
| 1120 | 1118 | // } |
| ... | ... | @@ -1124,7 +1122,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1124 | 1122 | // const payload = @fieldParentPtr(ast.Node.Payload, "base", base); |
| 1125 | 1123 | |
| 1126 | 1124 | // try renderToken(ais, tree, payload.lpipe, Space.None); |
| 1127 | | // try renderExpression(allocator, ais, tree, payload.error_symbol, Space.None); |
| 1125 | // try renderExpression(ais, tree, payload.error_symbol, Space.None); |
| 1128 | 1126 | // return renderToken(ais, tree, payload.rpipe, space); |
| 1129 | 1127 | //}, |
| 1130 | 1128 | |
| ... | ... | @@ -1135,7 +1133,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1135 | 1133 | // if (payload.ptr_token) |ptr_token| { |
| 1136 | 1134 | // try renderToken(ais, tree, ptr_token, Space.None); |
| 1137 | 1135 | // } |
| 1138 | | // try renderExpression(allocator, ais, tree, payload.value_symbol, Space.None); |
| 1136 | // try renderExpression(ais, tree, payload.value_symbol, Space.None); |
| 1139 | 1137 | // return renderToken(ais, tree, payload.rpipe, space); |
| 1140 | 1138 | //}, |
| 1141 | 1139 | |
| ... | ... | @@ -1146,13 +1144,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1146 | 1144 | // if (payload.ptr_token) |ptr_token| { |
| 1147 | 1145 | // try renderToken(ais, tree, ptr_token, Space.None); |
| 1148 | 1146 | // } |
| 1149 | | // try renderExpression(allocator, ais, tree, payload.value_symbol, Space.None); |
| 1147 | // try renderExpression(ais, tree, payload.value_symbol, Space.None); |
| 1150 | 1148 | |
| 1151 | 1149 | // if (payload.index_symbol) |index_symbol| { |
| 1152 | 1150 | // const comma = tree.nextToken(payload.value_symbol.lastToken()); |
| 1153 | 1151 | |
| 1154 | 1152 | // try renderToken(ais, tree, comma, Space.Space); |
| 1155 | | // try renderExpression(allocator, ais, tree, index_symbol, Space.None); |
| 1153 | // try renderExpression(ais, tree, index_symbol, Space.None); |
| 1156 | 1154 | // } |
| 1157 | 1155 | |
| 1158 | 1156 | // return renderToken(ais, tree, payload.rpipe, space); |
| ... | ... | @@ -1164,7 +1162,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1164 | 1162 | // try renderToken(ais, tree, grouped_expr.lparen, Space.None); |
| 1165 | 1163 | // { |
| 1166 | 1164 | // ais.pushIndentOneShot(); |
| 1167 | | // try renderExpression(allocator, ais, tree, grouped_expr.expr, Space.None); |
| 1165 | // try renderExpression(ais, tree, grouped_expr.expr, Space.None); |
| 1168 | 1166 | // } |
| 1169 | 1167 | // return renderToken(ais, tree, grouped_expr.rparen, space); |
| 1170 | 1168 | //}, |
| ... | ... | @@ -1175,7 +1173,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1175 | 1173 | // try renderToken(ais, tree, field_init.period_token, Space.None); // . |
| 1176 | 1174 | // try renderToken(ais, tree, field_init.name_token, Space.Space); // name |
| 1177 | 1175 | // try renderToken(ais, tree, tree.nextToken(field_init.name_token), Space.Space); // = |
| 1178 | | // return renderExpression(allocator, ais, tree, field_init.expr, space); |
| 1176 | // return renderExpression(ais, tree, field_init.expr, space); |
| 1179 | 1177 | //}, |
| 1180 | 1178 | |
| 1181 | 1179 | //.ContainerDecl => { |
| ... | ... | @@ -1200,7 +1198,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1200 | 1198 | |
| 1201 | 1199 | // if (enum_tag_type) |expr| { |
| 1202 | 1200 | // try renderToken(ais, tree, tree.nextToken(enum_token), Space.None); // ( |
| 1203 | | // try renderExpression(allocator, ais, tree, expr, Space.None); |
| 1201 | // try renderExpression(ais, tree, expr, Space.None); |
| 1204 | 1202 | |
| 1205 | 1203 | // const rparen = tree.nextToken(expr.lastToken()); |
| 1206 | 1204 | // try renderToken(ais, tree, rparen, Space.None); // ) |
| ... | ... | @@ -1216,7 +1214,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1216 | 1214 | // const rparen = tree.nextToken(type_expr.lastToken()); |
| 1217 | 1215 | |
| 1218 | 1216 | // try renderToken(ais, tree, lparen, Space.None); // ( |
| 1219 | | // try renderExpression(allocator, ais, tree, type_expr, Space.None); |
| 1217 | // try renderExpression(ais, tree, type_expr, Space.None); |
| 1220 | 1218 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1221 | 1219 | // }, |
| 1222 | 1220 | // } |
| ... | ... | @@ -1317,7 +1315,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1317 | 1315 | |
| 1318 | 1316 | // try renderToken(ais, tree, err_set_decl.error_token, Space.None); // error |
| 1319 | 1317 | // try renderToken(ais, tree, lbrace, Space.None); // { |
| 1320 | | // try renderExpression(allocator, ais, tree, node, Space.None); |
| 1318 | // try renderExpression(ais, tree, node, Space.None); |
| 1321 | 1319 | // return renderToken(ais, tree, err_set_decl.rbrace_token, space); // } |
| 1322 | 1320 | // } |
| 1323 | 1321 | |
| ... | ... | @@ -1337,12 +1335,12 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1337 | 1335 | // const decls = err_set_decl.decls(); |
| 1338 | 1336 | // for (decls) |node, i| { |
| 1339 | 1337 | // if (i + 1 < decls.len) { |
| 1340 | | // try renderExpression(allocator, ais, tree, node, Space.None); |
| 1338 | // try renderExpression(ais, tree, node, Space.None); |
| 1341 | 1339 | // try renderToken(ais, tree, tree.nextToken(node.lastToken()), Space.Newline); // , |
| 1342 | 1340 | |
| 1343 | 1341 | // try renderExtraNewline(tree, ais, decls[i + 1]); |
| 1344 | 1342 | // } else { |
| 1345 | | // try renderExpression(allocator, ais, tree, node, Space.Comma); |
| 1343 | // try renderExpression(ais, tree, node, Space.Comma); |
| 1346 | 1344 | // } |
| 1347 | 1345 | // } |
| 1348 | 1346 | // } |
| ... | ... | @@ -1354,14 +1352,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1354 | 1352 | // const decls = err_set_decl.decls(); |
| 1355 | 1353 | // for (decls) |node, i| { |
| 1356 | 1354 | // if (i + 1 < decls.len) { |
| 1357 | | // try renderExpression(allocator, ais, tree, node, Space.None); |
| 1355 | // try renderExpression(ais, tree, node, Space.None); |
| 1358 | 1356 | |
| 1359 | 1357 | // const comma_token = tree.nextToken(node.lastToken()); |
| 1360 | 1358 | // assert(tree.token_tags[comma_token] == .Comma); |
| 1361 | 1359 | // try renderToken(ais, tree, comma_token, Space.Space); // , |
| 1362 | 1360 | // try renderExtraNewline(tree, ais, decls[i + 1]); |
| 1363 | 1361 | // } else { |
| 1364 | | // try renderExpression(allocator, ais, tree, node, Space.Space); |
| 1362 | // try renderExpression(ais, tree, node, Space.Space); |
| 1365 | 1363 | // } |
| 1366 | 1364 | // } |
| 1367 | 1365 | |
| ... | ... | @@ -1372,7 +1370,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1372 | 1370 | //.ErrorTag => { |
| 1373 | 1371 | // const tag = @fieldParentPtr(ast.Node.ErrorTag, "base", base); |
| 1374 | 1372 | |
| 1375 | | // try renderDocComments(tree, ais, tag, tag.doc_comments); |
| 1373 | // try renderDocComments(ais, tree, tag, tag.doc_comments); |
| 1376 | 1374 | // return renderToken(ais, tree, tag.name_token, space); // name |
| 1377 | 1375 | //}, |
| 1378 | 1376 | |
| ... | ... | @@ -1431,7 +1429,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1431 | 1429 | // if (param_node.*.tag == .MultilineStringLiteral or tree.token_tags[maybe_comment] == .LineComment) { |
| 1432 | 1430 | // ais.pushIndentOneShot(); |
| 1433 | 1431 | // } |
| 1434 | | // try renderExpression(allocator, ais, tree, param_node, Space.None); |
| 1432 | // try renderExpression(ais, tree, param_node, Space.None); |
| 1435 | 1433 | |
| 1436 | 1434 | // if (i + 1 < params.len) { |
| 1437 | 1435 | // const comma_token = tree.nextToken(param_node.lastToken()); |
| ... | ... | @@ -1445,7 +1443,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1445 | 1443 | // try renderToken(ais, tree, lparen, Space.Newline); // ( |
| 1446 | 1444 | |
| 1447 | 1445 | // for (builtin_call.params()) |param_node| { |
| 1448 | | // try renderExpression(allocator, ais, tree, param_node, Space.Comma); |
| 1446 | // try renderExpression(ais, tree, param_node, Space.Comma); |
| 1449 | 1447 | // } |
| 1450 | 1448 | // } |
| 1451 | 1449 | |
| ... | ... | @@ -1468,7 +1466,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1468 | 1466 | // } |
| 1469 | 1467 | |
| 1470 | 1468 | // if (fn_proto.getLibName()) |lib_name| { |
| 1471 | | // try renderExpression(allocator, ais, tree, lib_name, Space.Space); |
| 1469 | // try renderExpression(ais, tree, lib_name, Space.Space); |
| 1472 | 1470 | // } |
| 1473 | 1471 | |
| 1474 | 1472 | // const lparen = if (fn_proto.getNameToken()) |name_token| blk: { |
| ... | ... | @@ -1541,7 +1539,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1541 | 1539 | |
| 1542 | 1540 | // try renderToken(ais, tree, align_kw, Space.None); // align |
| 1543 | 1541 | // try renderToken(ais, tree, align_lparen, Space.None); // ( |
| 1544 | | // try renderExpression(allocator, ais, tree, align_expr, Space.None); |
| 1542 | // try renderExpression(ais, tree, align_expr, Space.None); |
| 1545 | 1543 | // try renderToken(ais, tree, align_rparen, Space.Space); // ) |
| 1546 | 1544 | // } |
| 1547 | 1545 | |
| ... | ... | @@ -1552,7 +1550,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1552 | 1550 | |
| 1553 | 1551 | // try renderToken(ais, tree, section_kw, Space.None); // section |
| 1554 | 1552 | // try renderToken(ais, tree, section_lparen, Space.None); // ( |
| 1555 | | // try renderExpression(allocator, ais, tree, section_expr, Space.None); |
| 1553 | // try renderExpression(ais, tree, section_expr, Space.None); |
| 1556 | 1554 | // try renderToken(ais, tree, section_rparen, Space.Space); // ) |
| 1557 | 1555 | // } |
| 1558 | 1556 | |
| ... | ... | @@ -1563,7 +1561,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1563 | 1561 | |
| 1564 | 1562 | // try renderToken(ais, tree, callconv_kw, Space.None); // callconv |
| 1565 | 1563 | // try renderToken(ais, tree, callconv_lparen, Space.None); // ( |
| 1566 | | // try renderExpression(allocator, ais, tree, callconv_expr, Space.None); |
| 1564 | // try renderExpression(ais, tree, callconv_expr, Space.None); |
| 1567 | 1565 | // try renderToken(ais, tree, callconv_rparen, Space.Space); // ) |
| 1568 | 1566 | // } else if (fn_proto.getIsExternPrototype() != null) { |
| 1569 | 1567 | // try ais.writer().writeAll("callconv(.C) "); |
| ... | ... | @@ -1573,11 +1571,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1573 | 1571 | |
| 1574 | 1572 | // switch (fn_proto.return_type) { |
| 1575 | 1573 | // .Explicit => |node| { |
| 1576 | | // return renderExpression(allocator, ais, tree, node, space); |
| 1574 | // return renderExpression(ais, tree, node, space); |
| 1577 | 1575 | // }, |
| 1578 | 1576 | // .InferErrorSet => |node| { |
| 1579 | 1577 | // try renderToken(ais, tree, tree.prevToken(node.firstToken()), Space.None); // ! |
| 1580 | | // return renderExpression(allocator, ais, tree, node, space); |
| 1578 | // return renderExpression(ais, tree, node, space); |
| 1581 | 1579 | // }, |
| 1582 | 1580 | // .Invalid => unreachable, |
| 1583 | 1581 | // } |
| ... | ... | @@ -1589,7 +1587,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1589 | 1587 | // if (anyframe_type.result) |result| { |
| 1590 | 1588 | // try renderToken(ais, tree, anyframe_type.anyframe_token, Space.None); // anyframe |
| 1591 | 1589 | // try renderToken(ais, tree, result.arrow_token, Space.None); // -> |
| 1592 | | // return renderExpression(allocator, ais, tree, result.return_type, space); |
| 1590 | // return renderExpression(ais, tree, result.return_type, space); |
| 1593 | 1591 | // } else { |
| 1594 | 1592 | // return renderToken(ais, tree, anyframe_type.anyframe_token, space); // anyframe |
| 1595 | 1593 | // } |
| ... | ... | @@ -1607,13 +1605,13 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1607 | 1605 | // const lbrace = tree.nextToken(rparen); |
| 1608 | 1606 | |
| 1609 | 1607 | // if (switch_node.cases_len == 0) { |
| 1610 | | // try renderExpression(allocator, ais, tree, switch_node.expr, Space.None); |
| 1608 | // try renderExpression(ais, tree, switch_node.expr, Space.None); |
| 1611 | 1609 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1612 | 1610 | // try renderToken(ais, tree, lbrace, Space.None); // { |
| 1613 | 1611 | // return renderToken(ais, tree, switch_node.rbrace, space); // } |
| 1614 | 1612 | // } |
| 1615 | 1613 | |
| 1616 | | // try renderExpression(allocator, ais, tree, switch_node.expr, Space.None); |
| 1614 | // try renderExpression(ais, tree, switch_node.expr, Space.None); |
| 1617 | 1615 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1618 | 1616 | |
| 1619 | 1617 | // { |
| ... | ... | @@ -1623,7 +1621,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1623 | 1621 | |
| 1624 | 1622 | // const cases = switch_node.cases(); |
| 1625 | 1623 | // for (cases) |node, i| { |
| 1626 | | // try renderExpression(allocator, ais, tree, node, Space.Comma); |
| 1624 | // try renderExpression(ais, tree, node, Space.Comma); |
| 1627 | 1625 | |
| 1628 | 1626 | // if (i + 1 < cases.len) { |
| 1629 | 1627 | // try renderExtraNewline(tree, ais, cases[i + 1]); |
| ... | ... | @@ -1648,26 +1646,26 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1648 | 1646 | // const items = switch_case.items(); |
| 1649 | 1647 | // for (items) |node, i| { |
| 1650 | 1648 | // if (i + 1 < items.len) { |
| 1651 | | // try renderExpression(allocator, ais, tree, node, Space.None); |
| 1649 | // try renderExpression(ais, tree, node, Space.None); |
| 1652 | 1650 | |
| 1653 | 1651 | // const comma_token = tree.nextToken(node.lastToken()); |
| 1654 | 1652 | // try renderToken(ais, tree, comma_token, Space.Space); // , |
| 1655 | 1653 | // try renderExtraNewline(tree, ais, items[i + 1]); |
| 1656 | 1654 | // } else { |
| 1657 | | // try renderExpression(allocator, ais, tree, node, Space.Space); |
| 1655 | // try renderExpression(ais, tree, node, Space.Space); |
| 1658 | 1656 | // } |
| 1659 | 1657 | // } |
| 1660 | 1658 | // } else { |
| 1661 | 1659 | // const items = switch_case.items(); |
| 1662 | 1660 | // for (items) |node, i| { |
| 1663 | 1661 | // if (i + 1 < items.len) { |
| 1664 | | // try renderExpression(allocator, ais, tree, node, Space.None); |
| 1662 | // try renderExpression(ais, tree, node, Space.None); |
| 1665 | 1663 | |
| 1666 | 1664 | // const comma_token = tree.nextToken(node.lastToken()); |
| 1667 | 1665 | // try renderToken(ais, tree, comma_token, Space.Newline); // , |
| 1668 | 1666 | // try renderExtraNewline(tree, ais, items[i + 1]); |
| 1669 | 1667 | // } else { |
| 1670 | | // try renderExpression(allocator, ais, tree, node, Space.Comma); |
| 1668 | // try renderExpression(ais, tree, node, Space.Comma); |
| 1671 | 1669 | // } |
| 1672 | 1670 | // } |
| 1673 | 1671 | // } |
| ... | ... | @@ -1675,10 +1673,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1675 | 1673 | // try renderToken(ais, tree, switch_case.arrow_token, Space.Space); // => |
| 1676 | 1674 | |
| 1677 | 1675 | // if (switch_case.payload) |payload| { |
| 1678 | | // try renderExpression(allocator, ais, tree, payload, Space.Space); |
| 1676 | // try renderExpression(ais, tree, payload, Space.Space); |
| 1679 | 1677 | // } |
| 1680 | 1678 | |
| 1681 | | // return renderExpression(allocator, ais, tree, switch_case.expr, space); |
| 1679 | // return renderExpression(ais, tree, switch_case.expr, space); |
| 1682 | 1680 | //}, |
| 1683 | 1681 | //.SwitchElse => { |
| 1684 | 1682 | // const switch_else = @fieldParentPtr(ast.Node.SwitchElse, "base", base); |
| ... | ... | @@ -1695,15 +1693,15 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1695 | 1693 | |
| 1696 | 1694 | // if (else_node.payload) |payload| { |
| 1697 | 1695 | // const payload_space = if (same_line) Space.Space else Space.Newline; |
| 1698 | | // try renderExpression(allocator, ais, tree, payload, payload_space); |
| 1696 | // try renderExpression(ais, tree, payload, payload_space); |
| 1699 | 1697 | // } |
| 1700 | 1698 | |
| 1701 | 1699 | // if (same_line) { |
| 1702 | | // return renderExpression(allocator, ais, tree, else_node.body, space); |
| 1700 | // return renderExpression(ais, tree, else_node.body, space); |
| 1703 | 1701 | // } else { |
| 1704 | 1702 | // ais.pushIndent(); |
| 1705 | 1703 | // defer ais.popIndent(); |
| 1706 | | // return renderExpression(allocator, ais, tree, else_node.body, space); |
| 1704 | // return renderExpression(ais, tree, else_node.body, space); |
| 1707 | 1705 | // } |
| 1708 | 1706 | //}, |
| 1709 | 1707 | |
| ... | ... | @@ -1721,7 +1719,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1721 | 1719 | |
| 1722 | 1720 | // try renderToken(ais, tree, while_node.while_token, Space.Space); // while |
| 1723 | 1721 | // try renderToken(ais, tree, tree.nextToken(while_node.while_token), Space.None); // ( |
| 1724 | | // try renderExpression(allocator, ais, tree, while_node.condition, Space.None); |
| 1722 | // try renderExpression(ais, tree, while_node.condition, Space.None); |
| 1725 | 1723 | |
| 1726 | 1724 | // const cond_rparen = tree.nextToken(while_node.condition.lastToken()); |
| 1727 | 1725 | |
| ... | ... | @@ -1748,7 +1746,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1748 | 1746 | |
| 1749 | 1747 | // if (while_node.payload) |payload| { |
| 1750 | 1748 | // const payload_space = if (while_node.continue_expr != null) Space.Space else block_start_space; |
| 1751 | | // try renderExpression(allocator, ais, tree, payload, payload_space); |
| 1749 | // try renderExpression(ais, tree, payload, payload_space); |
| 1752 | 1750 | // } |
| 1753 | 1751 | |
| 1754 | 1752 | // if (while_node.continue_expr) |continue_expr| { |
| ... | ... | @@ -1759,7 +1757,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1759 | 1757 | // try renderToken(ais, tree, colon, Space.Space); // : |
| 1760 | 1758 | // try renderToken(ais, tree, lparen, Space.None); // ( |
| 1761 | 1759 | |
| 1762 | | // try renderExpression(allocator, ais, tree, continue_expr, Space.None); |
| 1760 | // try renderExpression(ais, tree, continue_expr, Space.None); |
| 1763 | 1761 | |
| 1764 | 1762 | // try renderToken(ais, tree, rparen, block_start_space); // ) |
| 1765 | 1763 | // } |
| ... | ... | @@ -1767,11 +1765,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1767 | 1765 | // { |
| 1768 | 1766 | // if (!body_is_block) ais.pushIndent(); |
| 1769 | 1767 | // defer if (!body_is_block) ais.popIndent(); |
| 1770 | | // try renderExpression(allocator, ais, tree, while_node.body, after_body_space); |
| 1768 | // try renderExpression(ais, tree, while_node.body, after_body_space); |
| 1771 | 1769 | // } |
| 1772 | 1770 | |
| 1773 | 1771 | // if (while_node.@"else") |@"else"| { |
| 1774 | | // return renderExpression(allocator, ais, tree, &@"else".base, space); |
| 1772 | // return renderExpression(ais, tree, &@"else".base, space); |
| 1775 | 1773 | // } |
| 1776 | 1774 | //}, |
| 1777 | 1775 | |
| ... | ... | @@ -1789,7 +1787,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1789 | 1787 | |
| 1790 | 1788 | // try renderToken(ais, tree, for_node.for_token, Space.Space); // for |
| 1791 | 1789 | // try renderToken(ais, tree, tree.nextToken(for_node.for_token), Space.None); // ( |
| 1792 | | // try renderExpression(allocator, ais, tree, for_node.array_expr, Space.None); |
| 1790 | // try renderExpression(ais, tree, for_node.array_expr, Space.None); |
| 1793 | 1791 | |
| 1794 | 1792 | // const rparen = tree.nextToken(for_node.array_expr.lastToken()); |
| 1795 | 1793 | |
| ... | ... | @@ -1800,7 +1798,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1800 | 1798 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1801 | 1799 | |
| 1802 | 1800 | // const space_after_payload = if (body_on_same_line) Space.Space else Space.Newline; |
| 1803 | | // try renderExpression(allocator, ais, tree, for_node.payload, space_after_payload); // |x| |
| 1801 | // try renderExpression(ais, tree, for_node.payload, space_after_payload); // |x| |
| 1804 | 1802 | |
| 1805 | 1803 | // const space_after_body = blk: { |
| 1806 | 1804 | // if (for_node.@"else") |@"else"| { |
| ... | ... | @@ -1818,11 +1816,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1818 | 1816 | // { |
| 1819 | 1817 | // if (!body_on_same_line) ais.pushIndent(); |
| 1820 | 1818 | // defer if (!body_on_same_line) ais.popIndent(); |
| 1821 | | // try renderExpression(allocator, ais, tree, for_node.body, space_after_body); // { body } |
| 1819 | // try renderExpression(ais, tree, for_node.body, space_after_body); // { body } |
| 1822 | 1820 | // } |
| 1823 | 1821 | |
| 1824 | 1822 | // if (for_node.@"else") |@"else"| { |
| 1825 | | // return renderExpression(allocator, ais, tree, &@"else".base, space); // else |
| 1823 | // return renderExpression(ais, tree, &@"else".base, space); // else |
| 1826 | 1824 | // } |
| 1827 | 1825 | //}, |
| 1828 | 1826 | |
| ... | ... | @@ -1835,7 +1833,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1835 | 1833 | // try renderToken(ais, tree, if_node.if_token, Space.Space); // if |
| 1836 | 1834 | // try renderToken(ais, tree, lparen, Space.None); // ( |
| 1837 | 1835 | |
| 1838 | | // try renderExpression(allocator, ais, tree, if_node.condition, Space.None); // condition |
| 1836 | // try renderExpression(ais, tree, if_node.condition, Space.None); // condition |
| 1839 | 1837 | |
| 1840 | 1838 | // const body_is_if_block = if_node.body.tag == .If; |
| 1841 | 1839 | // const body_is_block = nodeIsBlock(if_node.body); |
| ... | ... | @@ -1847,14 +1845,14 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1847 | 1845 | // try renderToken(ais, tree, rparen, after_rparen_space); // ) |
| 1848 | 1846 | |
| 1849 | 1847 | // if (if_node.payload) |payload| { |
| 1850 | | // try renderExpression(allocator, ais, tree, payload, Space.BlockStart); // |x| |
| 1848 | // try renderExpression(ais, tree, payload, Space.BlockStart); // |x| |
| 1851 | 1849 | // } |
| 1852 | 1850 | |
| 1853 | 1851 | // if (if_node.@"else") |@"else"| { |
| 1854 | | // try renderExpression(allocator, ais, tree, if_node.body, Space.SpaceOrOutdent); |
| 1855 | | // return renderExpression(allocator, ais, tree, &@"else".base, space); |
| 1852 | // try renderExpression(ais, tree, if_node.body, Space.SpaceOrOutdent); |
| 1853 | // return renderExpression(ais, tree, &@"else".base, space); |
| 1856 | 1854 | // } else { |
| 1857 | | // return renderExpression(allocator, ais, tree, if_node.body, space); |
| 1855 | // return renderExpression(ais, tree, if_node.body, space); |
| 1858 | 1856 | // } |
| 1859 | 1857 | // } |
| 1860 | 1858 | |
| ... | ... | @@ -1870,7 +1868,7 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1870 | 1868 | // } |
| 1871 | 1869 | |
| 1872 | 1870 | // if (if_node.payload) |payload| { |
| 1873 | | // try renderExpression(allocator, ais, tree, payload, Space.Newline); |
| 1871 | // try renderExpression(ais, tree, payload, Space.Newline); |
| 1874 | 1872 | // } |
| 1875 | 1873 | |
| 1876 | 1874 | // if (if_node.@"else") |@"else"| { |
| ... | ... | @@ -1879,33 +1877,33 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1879 | 1877 | // { |
| 1880 | 1878 | // ais.pushIndent(); |
| 1881 | 1879 | // defer ais.popIndent(); |
| 1882 | | // try renderExpression(allocator, ais, tree, if_node.body, Space.Newline); |
| 1880 | // try renderExpression(ais, tree, if_node.body, Space.Newline); |
| 1883 | 1881 | // } |
| 1884 | 1882 | |
| 1885 | 1883 | // if (else_is_block) { |
| 1886 | 1884 | // try renderToken(ais, tree, @"else".else_token, Space.Space); // else |
| 1887 | 1885 | |
| 1888 | 1886 | // if (@"else".payload) |payload| { |
| 1889 | | // try renderExpression(allocator, ais, tree, payload, Space.Space); |
| 1887 | // try renderExpression(ais, tree, payload, Space.Space); |
| 1890 | 1888 | // } |
| 1891 | 1889 | |
| 1892 | | // return renderExpression(allocator, ais, tree, @"else".body, space); |
| 1890 | // return renderExpression(ais, tree, @"else".body, space); |
| 1893 | 1891 | // } else { |
| 1894 | 1892 | // const after_else_space = if (@"else".payload == null) Space.Newline else Space.Space; |
| 1895 | 1893 | // try renderToken(ais, tree, @"else".else_token, after_else_space); // else |
| 1896 | 1894 | |
| 1897 | 1895 | // if (@"else".payload) |payload| { |
| 1898 | | // try renderExpression(allocator, ais, tree, payload, Space.Newline); |
| 1896 | // try renderExpression(ais, tree, payload, Space.Newline); |
| 1899 | 1897 | // } |
| 1900 | 1898 | |
| 1901 | 1899 | // ais.pushIndent(); |
| 1902 | 1900 | // defer ais.popIndent(); |
| 1903 | | // return renderExpression(allocator, ais, tree, @"else".body, space); |
| 1901 | // return renderExpression(ais, tree, @"else".body, space); |
| 1904 | 1902 | // } |
| 1905 | 1903 | // } else { |
| 1906 | 1904 | // ais.pushIndent(); |
| 1907 | 1905 | // defer ais.popIndent(); |
| 1908 | | // return renderExpression(allocator, ais, tree, if_node.body, space); |
| 1906 | // return renderExpression(ais, tree, if_node.body, space); |
| 1909 | 1907 | // } |
| 1910 | 1908 | // } |
| 1911 | 1909 | |
| ... | ... | @@ -1914,20 +1912,20 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1914 | 1912 | // try renderToken(ais, tree, rparen, Space.Space); // ) |
| 1915 | 1913 | |
| 1916 | 1914 | // if (if_node.payload) |payload| { |
| 1917 | | // try renderExpression(allocator, ais, tree, payload, Space.Space); |
| 1915 | // try renderExpression(ais, tree, payload, Space.Space); |
| 1918 | 1916 | // } |
| 1919 | 1917 | |
| 1920 | 1918 | // if (if_node.@"else") |@"else"| { |
| 1921 | | // try renderExpression(allocator, ais, tree, if_node.body, Space.Space); |
| 1919 | // try renderExpression(ais, tree, if_node.body, Space.Space); |
| 1922 | 1920 | // try renderToken(ais, tree, @"else".else_token, Space.Space); |
| 1923 | 1921 | |
| 1924 | 1922 | // if (@"else".payload) |payload| { |
| 1925 | | // try renderExpression(allocator, ais, tree, payload, Space.Space); |
| 1923 | // try renderExpression(ais, tree, payload, Space.Space); |
| 1926 | 1924 | // } |
| 1927 | 1925 | |
| 1928 | | // return renderExpression(allocator, ais, tree, @"else".body, space); |
| 1926 | // return renderExpression(ais, tree, @"else".body, space); |
| 1929 | 1927 | // } else { |
| 1930 | | // return renderExpression(allocator, ais, tree, if_node.body, space); |
| 1928 | // return renderExpression(ais, tree, if_node.body, space); |
| 1931 | 1929 | // } |
| 1932 | 1930 | //}, |
| 1933 | 1931 | |
| ... | ... | @@ -1948,11 +1946,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 1948 | 1946 | // defer ais.popIndent(); |
| 1949 | 1947 | |
| 1950 | 1948 | // if (asm_node.outputs.len == 0 and asm_node.inputs.len == 0 and asm_node.clobbers.len == 0) { |
| 1951 | | // try renderExpression(allocator, ais, tree, asm_node.template, Space.None); |
| 1949 | // try renderExpression(ais, tree, asm_node.template, Space.None); |
| 1952 | 1950 | // break :asmblk; |
| 1953 | 1951 | // } |
| 1954 | 1952 | |
| 1955 | | // try renderExpression(allocator, ais, tree, asm_node.template, Space.Newline); |
| 1953 | // try renderExpression(ais, tree, asm_node.template, Space.Newline); |
| 1956 | 1954 | |
| 1957 | 1955 | // ais.setIndentDelta(asm_indent_delta); |
| 1958 | 1956 | // defer ais.setIndentDelta(indent_delta); |
| ... | ... | @@ -2027,10 +2025,10 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac |
| 2027 | 2025 | // defer ais.popIndent(); |
| 2028 | 2026 | // for (asm_node.clobbers) |clobber_node, i| { |
| 2029 | 2027 | // if (i + 1 >= asm_node.clobbers.len) { |
| 2030 | | // try renderExpression(allocator, ais, tree, clobber_node, Space.Newline); |
| 2028 | // try renderExpression(ais, tree, clobber_node, Space.Newline); |
| 2031 | 2029 | // break :asmblk; |
| 2032 | 2030 | // } else { |
| 2033 | | // try renderExpression(allocator, ais, tree, clobber_node, Space.None); |
| 2031 | // try renderExpression(ais, tree, clobber_node, Space.None); |
| 2034 | 2032 | // const comma = tree.nextToken(clobber_node.lastToken()); |
| 2035 | 2033 | // try renderToken(ais, tree, comma, Space.Space); // , |
| 2036 | 2034 | // } |
| ... | ... | @@ -2081,7 +2079,7 @@ fn renderArrayType( |
| 2081 | 2079 | defer if (do_indent) ais.popIndent(); |
| 2082 | 2080 | |
| 2083 | 2081 | try renderToken(ais, tree, lbracket, Space.None); // [ |
| 2084 | | try renderExpression(allocator, ais, tree, len_expr, new_space); |
| 2082 | try renderExpression(ais, tree, len_expr, new_space); |
| 2085 | 2083 | |
| 2086 | 2084 | if (starts_with_comment) { |
| 2087 | 2085 | try ais.maybeInsertNewline(); |
| ... | ... | @@ -2089,7 +2087,7 @@ fn renderArrayType( |
| 2089 | 2087 | if (opt_sentinel) |sentinel| { |
| 2090 | 2088 | const colon_token = tree.prevToken(sentinel.firstToken()); |
| 2091 | 2089 | try renderToken(ais, tree, colon_token, Space.None); // : |
| 2092 | | try renderExpression(allocator, ais, tree, sentinel, Space.None); |
| 2090 | try renderExpression(ais, tree, sentinel, Space.None); |
| 2093 | 2091 | } |
| 2094 | 2092 | if (starts_with_comment) { |
| 2095 | 2093 | try ais.maybeInsertNewline(); |
| ... | ... | @@ -2097,7 +2095,7 @@ fn renderArrayType( |
| 2097 | 2095 | } |
| 2098 | 2096 | try renderToken(ais, tree, rbracket, Space.None); // ] |
| 2099 | 2097 | |
| 2100 | | return renderExpression(allocator, ais, tree, rhs, space); |
| 2098 | return renderExpression(ais, tree, rhs, space); |
| 2101 | 2099 | } |
| 2102 | 2100 | |
| 2103 | 2101 | fn renderAsmOutput( |
| ... | ... | @@ -2108,18 +2106,18 @@ fn renderAsmOutput( |
| 2108 | 2106 | space: Space, |
| 2109 | 2107 | ) Error!void { |
| 2110 | 2108 | try ais.writer().writeAll("["); |
| 2111 | | try renderExpression(allocator, ais, tree, asm_output.symbolic_name, Space.None); |
| 2109 | try renderExpression(ais, tree, asm_output.symbolic_name, Space.None); |
| 2112 | 2110 | try ais.writer().writeAll("] "); |
| 2113 | | try renderExpression(allocator, ais, tree, asm_output.constraint, Space.None); |
| 2111 | try renderExpression(ais, tree, asm_output.constraint, Space.None); |
| 2114 | 2112 | try ais.writer().writeAll(" ("); |
| 2115 | 2113 | |
| 2116 | 2114 | switch (asm_output.kind) { |
| 2117 | 2115 | .Variable => |variable_name| { |
| 2118 | | try renderExpression(allocator, ais, tree, &variable_name.base, Space.None); |
| 2116 | try renderExpression(ais, tree, &variable_name.base, Space.None); |
| 2119 | 2117 | }, |
| 2120 | 2118 | .Return => |return_type| { |
| 2121 | 2119 | try ais.writer().writeAll("-> "); |
| 2122 | | try renderExpression(allocator, ais, tree, return_type, Space.None); |
| 2120 | try renderExpression(ais, tree, return_type, Space.None); |
| 2123 | 2121 | }, |
| 2124 | 2122 | } |
| 2125 | 2123 | |
| ... | ... | @@ -2134,11 +2132,11 @@ fn renderAsmInput( |
| 2134 | 2132 | space: Space, |
| 2135 | 2133 | ) Error!void { |
| 2136 | 2134 | try ais.writer().writeAll("["); |
| 2137 | | try renderExpression(allocator, ais, tree, asm_input.symbolic_name, Space.None); |
| 2135 | try renderExpression(ais, tree, asm_input.symbolic_name, Space.None); |
| 2138 | 2136 | try ais.writer().writeAll("] "); |
| 2139 | | try renderExpression(allocator, ais, tree, asm_input.constraint, Space.None); |
| 2137 | try renderExpression(ais, tree, asm_input.constraint, Space.None); |
| 2140 | 2138 | try ais.writer().writeAll(" ("); |
| 2141 | | try renderExpression(allocator, ais, tree, asm_input.expr, Space.None); |
| 2139 | try renderExpression(ais, tree, asm_input.expr, Space.None); |
| 2142 | 2140 | return renderToken(ais, tree, asm_input.lastToken(), space); // ) |
| 2143 | 2141 | } |
| 2144 | 2142 | |
| ... | ... | @@ -2156,7 +2154,7 @@ fn renderVarDecl( |
| 2156 | 2154 | try renderToken(ais, tree, extern_export_token, Space.Space); // extern |
| 2157 | 2155 | |
| 2158 | 2156 | if (var_decl.getLibName()) |lib_name| { |
| 2159 | | try renderExpression(allocator, ais, tree, lib_name, Space.Space); // "lib" |
| 2157 | try renderExpression(ais, tree, lib_name, Space.Space); // "lib" |
| 2160 | 2158 | } |
| 2161 | 2159 | } |
| 2162 | 2160 | |
| ... | ... | @@ -2183,7 +2181,7 @@ fn renderVarDecl( |
| 2183 | 2181 | const s = if (var_decl.getAlignNode() != null or |
| 2184 | 2182 | var_decl.getSectionNode() != null or |
| 2185 | 2183 | var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2186 | | try renderExpression(allocator, ais, tree, type_node, s); |
| 2184 | try renderExpression(ais, tree, type_node, s); |
| 2187 | 2185 | } |
| 2188 | 2186 | |
| 2189 | 2187 | if (var_decl.getAlignNode()) |align_node| { |
| ... | ... | @@ -2192,7 +2190,7 @@ fn renderVarDecl( |
| 2192 | 2190 | const rparen = tree.nextToken(align_node.lastToken()); |
| 2193 | 2191 | try renderToken(ais, tree, align_kw, Space.None); // align |
| 2194 | 2192 | try renderToken(ais, tree, lparen, Space.None); // ( |
| 2195 | | try renderExpression(allocator, ais, tree, align_node, Space.None); |
| 2193 | try renderExpression(ais, tree, align_node, Space.None); |
| 2196 | 2194 | const s = if (var_decl.getSectionNode() != null or var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2197 | 2195 | try renderToken(ais, tree, rparen, s); // ) |
| 2198 | 2196 | } |
| ... | ... | @@ -2203,7 +2201,7 @@ fn renderVarDecl( |
| 2203 | 2201 | const rparen = tree.nextToken(section_node.lastToken()); |
| 2204 | 2202 | try renderToken(ais, tree, section_kw, Space.None); // linksection |
| 2205 | 2203 | try renderToken(ais, tree, lparen, Space.None); // ( |
| 2206 | | try renderExpression(allocator, ais, tree, section_node, Space.None); |
| 2204 | try renderExpression(ais, tree, section_node, Space.None); |
| 2207 | 2205 | const s = if (var_decl.getInitNode() != null) Space.Space else Space.None; |
| 2208 | 2206 | try renderToken(ais, tree, rparen, s); // ) |
| 2209 | 2207 | } |
| ... | ... | @@ -2221,7 +2219,7 @@ fn renderVarDecl( |
| 2221 | 2219 | try renderToken(ais, tree, eq_token, eq_space); // = |
| 2222 | 2220 | } |
| 2223 | 2221 | ais.pushIndentOneShot(); |
| 2224 | | try renderExpression(allocator, ais, tree, init_node, Space.None); |
| 2222 | try renderExpression(ais, tree, init_node, Space.None); |
| 2225 | 2223 | } |
| 2226 | 2224 | |
| 2227 | 2225 | try renderToken(ais, tree, var_decl.semicolon_token, Space.Newline); |
| ... | ... | @@ -2234,7 +2232,7 @@ fn renderParamDecl( |
| 2234 | 2232 | param_decl: ast.Node.FnProto.ParamDecl, |
| 2235 | 2233 | space: Space, |
| 2236 | 2234 | ) Error!void { |
| 2237 | | try renderDocComments(tree, ais, param_decl, param_decl.doc_comments); |
| 2235 | try renderDocComments(ais, tree, param_decl, param_decl.doc_comments); |
| 2238 | 2236 | |
| 2239 | 2237 | if (param_decl.comptime_token) |comptime_token| { |
| 2240 | 2238 | try renderToken(ais, tree, comptime_token, Space.Space); |
| ... | ... | @@ -2247,7 +2245,7 @@ fn renderParamDecl( |
| 2247 | 2245 | try renderToken(ais, tree, tree.nextToken(name_token), Space.Space); // : |
| 2248 | 2246 | } |
| 2249 | 2247 | switch (param_decl.param_type) { |
| 2250 | | .any_type, .type_expr => |node| try renderExpression(allocator, ais, tree, node, space), |
| 2248 | .any_type, .type_expr => |node| try renderExpression(ais, tree, node, space), |
| 2251 | 2249 | } |
| 2252 | 2250 | } |
| 2253 | 2251 | |
| ... | ... | @@ -2260,13 +2258,13 @@ fn renderStatement(ais: *Ais, tree: ast.Tree, base: ast.Node.Index) Error!void { |
| 2260 | 2258 | // }, |
| 2261 | 2259 | // else => { |
| 2262 | 2260 | // if (base.requireSemiColon()) { |
| 2263 | | // try renderExpression(allocator, ais, tree, base, Space.None); |
| 2261 | // try renderExpression(ais, tree, base, Space.None); |
| 2264 | 2262 | |
| 2265 | 2263 | // const semicolon_index = tree.nextToken(base.lastToken()); |
| 2266 | 2264 | // assert(tree.token_tags[semicolon_index] == .Semicolon); |
| 2267 | 2265 | // try renderToken(ais, tree, semicolon_index, Space.Newline); |
| 2268 | 2266 | // } else { |
| 2269 | | // try renderExpression(allocator, ais, tree, base, Space.Newline); |
| 2267 | // try renderExpression(ais, tree, base, Space.Newline); |
| 2270 | 2268 | // } |
| 2271 | 2269 | // }, |
| 2272 | 2270 | //} |
| ... | ... | @@ -2338,34 +2336,32 @@ fn renderToken(ais: *Ais, tree: ast.Tree, token_index: ast.TokenIndex, space: Sp |
| 2338 | 2336 | } |
| 2339 | 2337 | } |
| 2340 | 2338 | |
| 2341 | | fn renderDocComments( |
| 2342 | | tree: ast.Tree, |
| 2343 | | ais: *Ais, |
| 2344 | | node: anytype, |
| 2345 | | doc_comments: ?ast.Node.Index.DocComment, |
| 2346 | | ) Error!void { |
| 2347 | | const comment = doc_comments orelse return; |
| 2348 | | return renderDocCommentsToken(tree, ais, comment, node.firstToken()); |
| 2349 | | } |
| 2350 | | |
| 2351 | | fn renderDocCommentsToken( |
| 2352 | | tree: ast.Tree, |
| 2353 | | ais: *Ais, |
| 2354 | | comment: ast.Node.Index.DocComment, |
| 2355 | | first_token: ast.TokenIndex, |
| 2356 | | ) Error!void { |
| 2357 | | var tok_i = comment.first_line; |
| 2358 | | while (true) : (tok_i += 1) { |
| 2359 | | switch (tree.token_tags[tok_i]) { |
| 2360 | | .DocComment, .ContainerDocComment => { |
| 2361 | | if (comment.first_line < first_token) { |
| 2362 | | try renderToken(ais, tree, tok_i, Space.Newline); |
| 2339 | /// end_token is the token one past the last doc comment token. This function |
| 2340 | /// searches backwards from there. |
| 2341 | fn renderDocComments(ais: *Ais, tree: ast.Tree, end_token: ast.TokenIndex) Error!void { |
| 2342 | // Search backwards for the first doc comment. |
| 2343 | const token_tags = tree.tokens.items(.tag); |
| 2344 | if (end_token == 0) return; |
| 2345 | var tok = end_token - 1; |
| 2346 | while (token_tags[tok] == .DocComment) { |
| 2347 | if (tok == 0) break; |
| 2348 | tok -= 1; |
| 2349 | } else { |
| 2350 | tok += 1; |
| 2351 | } |
| 2352 | const first_tok = tok; |
| 2353 | if (tok == end_token) return; |
| 2354 | |
| 2355 | while (true) : (tok += 1) { |
| 2356 | switch (token_tags[tok]) { |
| 2357 | .DocComment => { |
| 2358 | if (first_tok < end_token) { |
| 2359 | try renderToken(ais, tree, tok, .Newline); |
| 2363 | 2360 | } else { |
| 2364 | | try renderToken(ais, tree, tok_i, Space.NoComment); |
| 2361 | try renderToken(ais, tree, tok, .NoComment); |
| 2365 | 2362 | try ais.insertNewline(); |
| 2366 | 2363 | } |
| 2367 | 2364 | }, |
| 2368 | | .LineComment => continue, |
| 2369 | 2365 | else => break, |
| 2370 | 2366 | } |
| 2371 | 2367 | } |