@@ -5453,9 +5453,9 @@ auto pretty_print_visualize(is_as_expression_node const& n, int indent)
54535453 -> std::string;
54545454auto pretty_print_visualize (id_expression_node const & n, int indent)
54555455 -> std::string;
5456- auto pretty_print_visualize (compound_statement_node const & n, int indent)
5456+ auto pretty_print_visualize (compound_statement_node const & n, int indent, bool after_else = false )
54575457 -> std::string;
5458- auto pretty_print_visualize (selection_statement_node const & n, int indent)
5458+ auto pretty_print_visualize (selection_statement_node const & n, int indent, bool no_indent = false )
54595459 -> std::string;
54605460auto pretty_print_visualize (iteration_statement_node const & n, int indent)
54615461 -> std::string;
@@ -5471,7 +5471,7 @@ auto pretty_print_visualize(jump_statement_node const& n, int indent)
54715471 -> std::string;
54725472auto pretty_print_visualize (using_statement_node const & n, int indent)
54735473 -> std::string;
5474- auto pretty_print_visualize (statement_node const & n, int indent)
5474+ auto pretty_print_visualize (statement_node const & n, int indent, bool no_indent = false )
54755475 -> std::string;
54765476auto pretty_print_visualize (parameter_declaration_node const & n, int indent, bool is_template_param = false )
54775477 -> std::string;
@@ -5837,30 +5837,51 @@ auto pretty_print_visualize(id_expression_node const& n, int indent)
58375837}
58385838
58395839
5840- auto pretty_print_visualize (compound_statement_node const & n, int indent)
5840+ auto pretty_print_visualize (compound_statement_node const & n, int indent, bool after_else /* = false */ )
58415841 -> std::string
58425842{
5843- auto ret = std::string{" \n " } + pre (indent) + " { " ;
5843+ auto ret = std::string{} ;
58445844
5845- for (auto & stmt : n.statements ) {
5846- assert (stmt);
5847- ret += pretty_print_visualize (*stmt, indent+1 );
5845+ // If this is just a plain "if" right after an "else", pull them together visually
5846+ if (
5847+ after_else
5848+ && std::ssize (n.statements ) == 1
5849+ && n.statements [0 ]
5850+ && n.statements [0 ]->is_selection ()
5851+ && n.statements [0 ]->get_parameters ().empty ()
5852+ )
5853+ {
5854+ ret += pretty_print_visualize (*n.statements [0 ], indent, true );
58485855 }
58495856
5850- ret += std::string{" \n " } + pre (indent) + " }" ;
5857+ else
5858+ {
5859+ ret += std::string{" \n " } + pre (indent) + " {" ;
5860+
5861+ for (auto & stmt : n.statements ) {
5862+ assert (stmt);
5863+ ret += pretty_print_visualize (*stmt, indent+1 );
5864+ }
5865+
5866+ ret += std::string{" \n " } + pre (indent) + " }" ;
5867+ }
58515868
58525869 return ret;
58535870}
58545871
58555872
5856- auto pretty_print_visualize (selection_statement_node const & n, int indent)
5873+ auto pretty_print_visualize (selection_statement_node const & n, int indent, bool no_indent /* = false */ )
58575874 -> std::string
58585875{
58595876 assert (n.identifier && n.expression && n.true_branch && n.false_branch );
58605877
58615878 auto ret = std::string{};
58625879
5863- ret += std::string{" \n " } + pre (indent) + n.identifier ->as_string_view () + " " ;
5880+ if (!no_indent) {
5881+ ret += std::string{" \n " } + pre (indent);
5882+ }
5883+ ret += n.identifier ->as_string_view ();
5884+ ret += " " ;
58645885
58655886 if (n.is_constexpr ) {
58665887 ret += " constexpr " ;
@@ -5871,7 +5892,7 @@ auto pretty_print_visualize(selection_statement_node const& n, int indent)
58715892
58725893 if (n.has_source_false_branch ) {
58735894 ret += std::string{" \n " } + pre (indent) + " else "
5874- + pretty_print_visualize (*n.false_branch , indent);
5895+ + pretty_print_visualize (*n.false_branch , indent, true );
58755896 }
58765897
58775898 return ret;
@@ -6076,7 +6097,7 @@ auto pretty_print_visualize(using_statement_node const& n, int indent)
60766097}
60776098
60786099
6079- auto pretty_print_visualize (statement_node const & n, int indent)
6100+ auto pretty_print_visualize (statement_node const & n, int indent, bool no_indent /* = false */ )
60806101 -> std::string
60816102{
60826103 auto ret = std::string{};
@@ -6097,7 +6118,7 @@ auto pretty_print_visualize(statement_node const& n, int indent)
60976118 }
60986119
60996120 ret += try_pretty_print_visualize<statement_node::compound >(n.statement , indent);
6100- ret += try_pretty_print_visualize<statement_node::selection >(n.statement , indent);
6121+ ret += try_pretty_print_visualize<statement_node::selection >(n.statement , indent, no_indent );
61016122 ret += try_pretty_print_visualize<statement_node::declaration>(n.statement , indent);
61026123 ret += try_pretty_print_visualize<statement_node::return_ >(n.statement , indent);
61036124 ret += try_pretty_print_visualize<statement_node::iteration >(n.statement , indent);
0 commit comments