| ... | @@ -728,17 +728,7 @@ fn renderExpression(r: *Render, node: Ast.Node.Index, space: Space) Error!void { | ... | @@ -728,17 +728,7 @@ fn renderExpression(r: *Render, node: Ast.Node.Index, space: Space) Error!void { |
| 728 | | 728 | |
| 729 | try renderToken(r, error_token, .none); | 729 | try renderToken(r, error_token, .none); |
| 730 | | 730 | |
| 731 | if (lbrace + 1 == rbrace) { | 731 | if (!isOneLineErrorSetDecl(tree, lbrace, rbrace)) { |
| 732 | // There is nothing between the braces so render condensed: `error{}` | | |
| 733 | try renderToken(r, lbrace, .none); | | |
| 734 | return renderToken(r, rbrace, space); | | |
| 735 | } else if (lbrace + 2 == rbrace and tree.tokenTag(lbrace + 1) == .identifier) { | | |
| 736 | // There is exactly one member and no trailing comma or | | |
| 737 | // comments, so render without surrounding spaces: `error{Foo}` | | |
| 738 | try renderToken(r, lbrace, .none); | | |
| 739 | try renderIdentifier(r, lbrace + 1, .none, .eagerly_unquote); // identifier | | |
| 740 | return renderToken(r, rbrace, space); | | |
| 741 | } else if (!isOneLineErrorSetDecl(tree, lbrace, rbrace)) { | | |
| 742 | // Render each member on a new line. | 732 | // Render each member on a new line. |
| 743 | try ais.pushIndent(.normal); | 733 | try ais.pushIndent(.normal); |
| 744 | try renderToken(r, lbrace, .newline); | 734 | try renderToken(r, lbrace, .newline); |
| ... | @@ -763,14 +753,24 @@ fn renderExpression(r: *Render, node: Ast.Node.Index, space: Space) Error!void { | ... | @@ -763,14 +753,24 @@ fn renderExpression(r: *Render, node: Ast.Node.Index, space: Space) Error!void { |
| 763 | ais.popIndent(); | 753 | ais.popIndent(); |
| 764 | return renderToken(r, rbrace, space); | 754 | return renderToken(r, rbrace, space); |
| 765 | } else { | 755 | } else { |
| 766 | // Render each member on one line. | 756 | if (lbrace + 1 == rbrace) { |
| 767 | try renderToken(r, lbrace, .space); | 757 | // There is nothing between the braces so render condensed: `error{}` |
| 768 | var i = lbrace + 1; | 758 | try renderToken(r, lbrace, .none); |
| 769 | while (i < rbrace) : (i += 1) { | 759 | } else if (lbrace + 2 == rbrace) { |
| 770 | switch (tree.tokenTag(i)) { | 760 | // There is exactly one member and no trailing comma or |
| 771 | .identifier => try renderIdentifier(r, i, .comma_space, .eagerly_unquote), | 761 | // comments, so render without surrounding spaces: `error{Foo}` |
| 772 | .comma => {}, | 762 | try renderToken(r, lbrace, .none); |
| 773 | else => unreachable, | 763 | try renderIdentifier(r, lbrace + 1, .none, .eagerly_unquote); // identifier |
| | 764 | } else { |
| | 765 | // Render each member on one line. |
| | 766 | try renderToken(r, lbrace, .space); |
| | 767 | var i = lbrace + 1; |
| | 768 | while (i < rbrace) : (i += 1) { |
| | 769 | switch (tree.tokenTag(i)) { |
| | 770 | .identifier => try renderIdentifier(r, i, .comma_space, .eagerly_unquote), |
| | 771 | .comma => {}, |
| | 772 | else => unreachable, |
| | 773 | } |
| 774 | } | 774 | } |
| 775 | } | 775 | } |
| 776 | return renderToken(r, rbrace, space); | 776 | return renderToken(r, rbrace, space); |