@@ -4452,7 +4452,7 @@ auto pretty_print_visualize(expression_statement_node const& n, int indent)
44524452
44534453 auto ret = pretty_print_visualize (*n.expr , indent);
44544454
4455- if (n.has_semicolon ) {
4455+ if (n.has_semicolon && ret. back () != ' ; ' ) {
44564456 ret += " ;" ;
44574457 }
44584458
@@ -4654,8 +4654,10 @@ auto pretty_print_visualize(iteration_statement_node const& n, int indent)
46544654 + stmts
46554655 + next_expr
46564656 + " \n " + pre (indent) + " while "
4657- + pretty_print_visualize (*n.condition , indent)
4658- + " ;" ;
4657+ + pretty_print_visualize (*n.condition , indent);
4658+ if (ret.back () != ' ;' ) {
4659+ ret += " ;" ;
4660+ }
46594661 }
46604662 else {
46614663 assert (n.range && n.parameter && n.body );
@@ -4679,7 +4681,9 @@ auto pretty_print_visualize(return_statement_node const& n, int indent)
46794681 ret += " " + pretty_print_visualize (*n.expression , indent);
46804682 }
46814683
4682- ret += " ;" ;
4684+ if (ret.back () != ' ;' ) {
4685+ ret += " ;" ;
4686+ }
46834687
46844688 return ret;
46854689}
@@ -4759,7 +4763,7 @@ auto pretty_print_visualize(contract_node const& n, int indent)
47594763
47604764 ret += " )" ;
47614765
4762- if (*n.kind == " assert" ) {
4766+ if (*n.kind == " assert" && ret. back () != ' ; ' ) {
47634767 ret += " ;" ;
47644768 }
47654769
@@ -4778,7 +4782,9 @@ auto pretty_print_visualize(jump_statement_node const& n, int indent)
47784782 ret += " " + n.label ->to_string ();
47794783 }
47804784
4781- ret += " ;" ;
4785+ if (ret.back () != ' ;' ) {
4786+ ret += " ;" ;
4787+ }
47824788
47834789 return ret;
47844790}
@@ -4795,7 +4801,10 @@ auto pretty_print_visualize(using_statement_node const& n, int indent)
47954801 ret += " namespace " ;
47964802 }
47974803
4798- ret += pretty_print_visualize (*n.id , indent) + " ;" ;
4804+ ret += pretty_print_visualize (*n.id , indent);
4805+ if (ret.back () != ' ;' ) {
4806+ ret += " ;" ;
4807+ }
47994808
48004809 return ret;
48014810}
@@ -4979,6 +4988,9 @@ auto pretty_print_visualize(declaration_node const& n, int indent, bool include_
49794988 initializer += " =" ;
49804989 }
49814990 initializer += " " + pretty_print_visualize (*n.initializer , adjusted_indent);
4991+ if (initializer.ends_with (" ;;" )) {
4992+ initializer.pop_back ();
4993+ }
49824994 }
49834995 else if (!n.is_parameter ) {
49844996 initializer = " ;" ;
@@ -5083,24 +5095,30 @@ auto pretty_print_visualize(declaration_node const& n, int indent, bool include_
50835095 ret += " type"
50845096 + requires_clause
50855097 + " == "
5086- + pretty_print_visualize (*t, indent)
5087- + " ;" ;
5098+ + pretty_print_visualize (*t, indent);
5099+ if (ret.back () != ' ;' ) {
5100+ ret += " ;" ;
5101+ }
50885102 }
50895103 else if (a->is_namespace_alias ()) {
50905104 auto & id = std::get<alias_node::a_namespace>(a->initializer );
50915105 assert (id);
50925106 ret += " namespace == "
5093- + pretty_print_visualize (*id, indent)
5094- + " ;" ;
5107+ + pretty_print_visualize (*id, indent);
5108+ if (ret.back () != ' ;' ) {
5109+ ret += " ;" ;
5110+ }
50955111 }
50965112 else if (a->is_object_alias ()) {
50975113 auto & expr = std::get<alias_node::an_object>(a->initializer );
50985114 assert (expr);
50995115 ret += object_type_id
51005116 + requires_clause
51015117 + " == "
5102- + pretty_print_visualize (*expr, indent)
5103- + " ;" ;
5118+ + pretty_print_visualize (*expr, indent);
5119+ if (ret.back () != ' ;' ) {
5120+ ret += " ;" ;
5121+ }
51045122 }
51055123 }
51065124
0 commit comments