@@ -4452,7 +4452,7 @@ auto pretty_print_visualize(expression_statement_node const& n, int indent)
4452
4452
4453
4453
auto ret = pretty_print_visualize (*n.expr , indent);
4454
4454
4455
- if (n.has_semicolon ) {
4455
+ if (n.has_semicolon && ret. back () != ' ; ' ) {
4456
4456
ret += " ;" ;
4457
4457
}
4458
4458
@@ -4654,8 +4654,10 @@ auto pretty_print_visualize(iteration_statement_node const& n, int indent)
4654
4654
+ stmts
4655
4655
+ next_expr
4656
4656
+ " \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
+ }
4659
4661
}
4660
4662
else {
4661
4663
assert (n.range && n.parameter && n.body );
@@ -4679,7 +4681,9 @@ auto pretty_print_visualize(return_statement_node const& n, int indent)
4679
4681
ret += " " + pretty_print_visualize (*n.expression , indent);
4680
4682
}
4681
4683
4682
- ret += " ;" ;
4684
+ if (ret.back () != ' ;' ) {
4685
+ ret += " ;" ;
4686
+ }
4683
4687
4684
4688
return ret;
4685
4689
}
@@ -4759,7 +4763,7 @@ auto pretty_print_visualize(contract_node const& n, int indent)
4759
4763
4760
4764
ret += " )" ;
4761
4765
4762
- if (*n.kind == " assert" ) {
4766
+ if (*n.kind == " assert" && ret. back () != ' ; ' ) {
4763
4767
ret += " ;" ;
4764
4768
}
4765
4769
@@ -4778,7 +4782,9 @@ auto pretty_print_visualize(jump_statement_node const& n, int indent)
4778
4782
ret += " " + n.label ->to_string ();
4779
4783
}
4780
4784
4781
- ret += " ;" ;
4785
+ if (ret.back () != ' ;' ) {
4786
+ ret += " ;" ;
4787
+ }
4782
4788
4783
4789
return ret;
4784
4790
}
@@ -4795,7 +4801,10 @@ auto pretty_print_visualize(using_statement_node const& n, int indent)
4795
4801
ret += " namespace " ;
4796
4802
}
4797
4803
4798
- ret += pretty_print_visualize (*n.id , indent) + " ;" ;
4804
+ ret += pretty_print_visualize (*n.id , indent);
4805
+ if (ret.back () != ' ;' ) {
4806
+ ret += " ;" ;
4807
+ }
4799
4808
4800
4809
return ret;
4801
4810
}
@@ -4979,6 +4988,9 @@ auto pretty_print_visualize(declaration_node const& n, int indent, bool include_
4979
4988
initializer += " =" ;
4980
4989
}
4981
4990
initializer += " " + pretty_print_visualize (*n.initializer , adjusted_indent);
4991
+ if (initializer.ends_with (" ;;" )) {
4992
+ initializer.pop_back ();
4993
+ }
4982
4994
}
4983
4995
else if (!n.is_parameter ) {
4984
4996
initializer = " ;" ;
@@ -5083,24 +5095,30 @@ auto pretty_print_visualize(declaration_node const& n, int indent, bool include_
5083
5095
ret += " type"
5084
5096
+ requires_clause
5085
5097
+ " == "
5086
- + pretty_print_visualize (*t, indent)
5087
- + " ;" ;
5098
+ + pretty_print_visualize (*t, indent);
5099
+ if (ret.back () != ' ;' ) {
5100
+ ret += " ;" ;
5101
+ }
5088
5102
}
5089
5103
else if (a->is_namespace_alias ()) {
5090
5104
auto & id = std::get<alias_node::a_namespace>(a->initializer );
5091
5105
assert (id);
5092
5106
ret += " namespace == "
5093
- + pretty_print_visualize (*id, indent)
5094
- + " ;" ;
5107
+ + pretty_print_visualize (*id, indent);
5108
+ if (ret.back () != ' ;' ) {
5109
+ ret += " ;" ;
5110
+ }
5095
5111
}
5096
5112
else if (a->is_object_alias ()) {
5097
5113
auto & expr = std::get<alias_node::an_object>(a->initializer );
5098
5114
assert (expr);
5099
5115
ret += object_type_id
5100
5116
+ requires_clause
5101
5117
+ " == "
5102
- + pretty_print_visualize (*expr, indent)
5103
- + " ;" ;
5118
+ + pretty_print_visualize (*expr, indent);
5119
+ if (ret.back () != ' ;' ) {
5120
+ ret += " ;" ;
5121
+ }
5104
5122
}
5105
5123
}
5106
5124
0 commit comments