| ... | ... | @@ -1268,25 +1268,51 @@ fn renderExpression( |
| 1268 | 1268 | } |
| 1269 | 1269 | |
| 1270 | 1270 | try renderToken(tree, stream, err_set_decl.error_token, indent, start_col, Space.None); // error |
| 1271 | | try renderToken(tree, stream, lbrace, indent, start_col, Space.Newline); // { |
| 1272 | | const new_indent = indent + indent_delta; |
| 1273 | 1271 | |
| 1274 | | var it = err_set_decl.decls.iterator(0); |
| 1275 | | while (it.next()) |node| { |
| 1276 | | try stream.writeByteNTimes(' ', new_indent); |
| 1272 | const src_has_trailing_comma = blk: { |
| 1273 | const maybe_comma = tree.prevToken(err_set_decl.rbrace_token); |
| 1274 | break :blk tree.tokens.at(maybe_comma).id == .Comma; |
| 1275 | }; |
| 1277 | 1276 | |
| 1278 | | if (it.peek()) |next_node| { |
| 1279 | | try renderExpression(allocator, stream, tree, new_indent, start_col, node.*, Space.None); |
| 1280 | | try renderToken(tree, stream, tree.nextToken(node.*.lastToken()), new_indent, start_col, Space.Newline); // , |
| 1277 | if (src_has_trailing_comma) { |
| 1278 | try renderToken(tree, stream, lbrace, indent, start_col, Space.Newline); // { |
| 1279 | const new_indent = indent + indent_delta; |
| 1281 | 1280 | |
| 1282 | | try renderExtraNewline(tree, stream, start_col, next_node.*); |
| 1283 | | } else { |
| 1284 | | try renderExpression(allocator, stream, tree, new_indent, start_col, node.*, Space.Comma); |
| 1281 | var it = err_set_decl.decls.iterator(0); |
| 1282 | while (it.next()) |node| { |
| 1283 | try stream.writeByteNTimes(' ', new_indent); |
| 1284 | |
| 1285 | if (it.peek()) |next_node| { |
| 1286 | try renderExpression(allocator, stream, tree, new_indent, start_col, node.*, Space.None); |
| 1287 | try renderToken(tree, stream, tree.nextToken(node.*.lastToken()), new_indent, start_col, Space.Newline); // , |
| 1288 | |
| 1289 | try renderExtraNewline(tree, stream, start_col, next_node.*); |
| 1290 | } else { |
| 1291 | try renderExpression(allocator, stream, tree, new_indent, start_col, node.*, Space.Comma); |
| 1292 | } |
| 1285 | 1293 | } |
| 1286 | | } |
| 1287 | 1294 | |
| 1288 | | try stream.writeByteNTimes(' ', indent); |
| 1289 | | return renderToken(tree, stream, err_set_decl.rbrace_token, indent, start_col, space); // } |
| 1295 | try stream.writeByteNTimes(' ', indent); |
| 1296 | return renderToken(tree, stream, err_set_decl.rbrace_token, indent, start_col, space); // } |
| 1297 | } else { |
| 1298 | try renderToken(tree, stream, lbrace, indent, start_col, Space.Space); // { |
| 1299 | |
| 1300 | var it = err_set_decl.decls.iterator(0); |
| 1301 | while (it.next()) |node| { |
| 1302 | if (it.peek()) |next_node| { |
| 1303 | try renderExpression(allocator, stream, tree, indent, start_col, node.*, Space.None); |
| 1304 | |
| 1305 | const comma_token = tree.nextToken(node.*.lastToken()); |
| 1306 | assert(tree.tokens.at(comma_token).id == .Comma); |
| 1307 | try renderToken(tree, stream, comma_token, indent, start_col, Space.Space); // , |
| 1308 | try renderExtraNewline(tree, stream, start_col, next_node.*); |
| 1309 | } else { |
| 1310 | try renderExpression(allocator, stream, tree, indent, start_col, node.*, Space.Space); |
| 1311 | } |
| 1312 | } |
| 1313 | |
| 1314 | return renderToken(tree, stream, err_set_decl.rbrace_token, indent, start_col, space); // } |
| 1315 | } |
| 1290 | 1316 | }, |
| 1291 | 1317 | |
| 1292 | 1318 | .ErrorTag => { |
| ... | ... | @@ -1589,8 +1615,7 @@ fn renderExpression( |
| 1589 | 1615 | } |
| 1590 | 1616 | } else { |
| 1591 | 1617 | var it = switch_case.items.iterator(0); |
| 1592 | | while (true) { |
| 1593 | | const node = it.next().?; |
| 1618 | while (it.next()) |node| { |
| 1594 | 1619 | if (it.peek()) |next_node| { |
| 1595 | 1620 | try renderExpression(allocator, stream, tree, indent, start_col, node.*, Space.None); |
| 1596 | 1621 | |
| ... | ... | @@ -1601,7 +1626,6 @@ fn renderExpression( |
| 1601 | 1626 | } else { |
| 1602 | 1627 | try renderExpression(allocator, stream, tree, indent, start_col, node.*, Space.Comma); |
| 1603 | 1628 | try stream.writeByteNTimes(' ', indent); |
| 1604 | | break; |
| 1605 | 1629 | } |
| 1606 | 1630 | } |
| 1607 | 1631 | } |