@@ -11,11 +11,15 @@ import pp;
11
11
12
12
import pp:: printer;
13
13
import pp:: break_offset;
14
+ import pp:: box;
14
15
import pp:: cbox;
15
16
import pp:: ibox;
16
17
import pp:: wrd;
17
18
import pp:: space;
18
19
import pp:: hardbreak;
20
+ import pp:: breaks;
21
+ import pp:: consistent;
22
+ import pp:: inconsistent;
19
23
import pp:: end;
20
24
import pp:: eof;
21
25
@@ -117,8 +121,8 @@ fn bclose(ps s, common::span span) {
117
121
end ( s. s ) ; // close the outer-box
118
122
}
119
123
120
- fn commasep[ IN ] ( ps s, vec[ IN ] elts, fn ( ps, & IN ) op) {
121
- ibox ( s. s , 0 u) ;
124
+ fn commasep[ IN ] ( ps s, breaks b , vec[ IN ] elts, fn ( ps, & IN ) op) {
125
+ box ( s. s , 0 u, b ) ;
122
126
auto first = true ;
123
127
for ( IN elt in elts) {
124
128
if ( first) { first = false ; }
@@ -128,9 +132,9 @@ fn commasep[IN](ps s, vec[IN] elts, fn(ps, &IN) op) {
128
132
end ( s. s ) ;
129
133
}
130
134
131
- fn commasep_cmnt[ IN ] ( ps s, vec[ IN ] elts, fn ( ps, & IN ) op,
135
+ fn commasep_cmnt[ IN ] ( ps s, breaks b , vec[ IN ] elts, fn ( ps, & IN ) op,
132
136
fn ( & IN ) -> common:: span get_span) {
133
- ibox ( s. s , 0 u) ;
137
+ box ( s. s , 0 u, b ) ;
134
138
auto len = vec:: len[ IN ] ( elts) ;
135
139
auto i = 0 u;
136
140
for ( IN elt in elts) {
@@ -144,11 +148,11 @@ fn commasep_cmnt[IN](ps s, vec[IN] elts, fn(ps, &IN) op,
144
148
end ( s. s ) ;
145
149
}
146
150
147
- fn commasep_exprs ( ps s, vec[ @ast:: expr] exprs ) {
151
+ fn commasep_exprs ( ps s, breaks b , vec[ @ast:: expr] exprs ) {
148
152
fn expr_span ( & @ast:: expr expr) -> common:: span { ret expr. span ; }
149
153
auto f = print_expr;
150
154
auto gs = expr_span;
151
- commasep_cmnt[ @ast:: expr] ( s, exprs, f, gs) ;
155
+ commasep_cmnt[ @ast:: expr] ( s, b , exprs, f, gs) ;
152
156
}
153
157
154
158
fn print_mod ( ps s, ast:: _mod _mod) {
@@ -192,7 +196,7 @@ fn print_type(ps s, &@ast::ty ty) {
192
196
wrd ( s. s , "tup" ) ;
193
197
popen ( s) ;
194
198
auto f = print_mt;
195
- commasep[ ast:: mt] ( s, elts, f) ;
199
+ commasep[ ast:: mt] ( s, inconsistent , elts, f) ;
196
200
pclose ( s) ;
197
201
}
198
202
case ( ast:: ty_rec ( ?fields) ) {
@@ -213,7 +217,7 @@ fn print_type(ps s, &@ast::ty ty) {
213
217
}
214
218
auto f = print_field;
215
219
auto gs = get_span;
216
- commasep_cmnt[ ast:: ty_field] ( s, fields, f, gs) ;
220
+ commasep_cmnt[ ast:: ty_field] ( s, consistent , fields, f, gs) ;
217
221
pclose ( s) ;
218
222
}
219
223
case ( ast:: ty_obj ( ?methods) ) {
@@ -332,7 +336,7 @@ fn print_item(ps s, @ast::item item) {
332
336
print_type ( s, arg. ty ) ;
333
337
}
334
338
auto f = print_variant_arg;
335
- commasep[ ast:: variant_arg] ( s, v. node . args , f) ;
339
+ commasep[ ast:: variant_arg] ( s, consistent , v. node . args , f) ;
336
340
pclose ( s) ;
337
341
}
338
342
wrd ( s. s , ";" ) ;
@@ -355,7 +359,7 @@ fn print_item(ps s, @ast::item item) {
355
359
fn get_span ( & ast:: obj_field f) -> common:: span { ret f. ty . span ; }
356
360
auto f = print_field;
357
361
auto gs = get_span;
358
- commasep_cmnt[ ast:: obj_field] ( s, _obj. fields , f, gs) ;
362
+ commasep_cmnt[ ast:: obj_field] ( s, consistent , _obj. fields , f, gs) ;
359
363
pclose ( s) ;
360
364
space ( s. s ) ;
361
365
bopen ( s) ;
@@ -457,7 +461,7 @@ fn print_expr(ps s, &@ast::expr expr) {
457
461
}
458
462
ibox ( s. s , indent_unit) ;
459
463
wrd ( s. s , "[" ) ;
460
- commasep_exprs ( s, exprs) ;
464
+ commasep_exprs ( s, inconsistent , exprs) ;
461
465
wrd ( s. s , "]" ) ;
462
466
end ( s. s ) ;
463
467
}
@@ -473,7 +477,7 @@ fn print_expr(ps s, &@ast::expr expr) {
473
477
popen ( s) ;
474
478
auto f = printElt;
475
479
auto gs = get_span;
476
- commasep_cmnt[ ast:: elt] ( s, exprs, f, gs) ;
480
+ commasep_cmnt[ ast:: elt] ( s, inconsistent , exprs, f, gs) ;
477
481
pclose ( s) ;
478
482
}
479
483
case ( ast:: expr_rec ( ?fields, ?wth, _) ) {
@@ -492,7 +496,7 @@ fn print_expr(ps s, &@ast::expr expr) {
492
496
popen ( s) ;
493
497
auto f = print_field;
494
498
auto gs = get_span;
495
- commasep_cmnt[ ast:: field] ( s, fields, f, gs) ;
499
+ commasep_cmnt[ ast:: field] ( s, consistent , fields, f, gs) ;
496
500
alt ( wth) {
497
501
case ( option:: some[ @ast:: expr] ( ?expr) ) {
498
502
if ( vec:: len[ ast:: field] ( fields) > 0 u) { space ( s. s ) ; }
@@ -508,7 +512,7 @@ fn print_expr(ps s, &@ast::expr expr) {
508
512
case ( ast:: expr_call ( ?func, ?args, _) ) {
509
513
print_expr ( s, func) ;
510
514
popen ( s) ;
511
- commasep_exprs ( s, args) ;
515
+ commasep_exprs ( s, inconsistent , args) ;
512
516
pclose ( s) ;
513
517
}
514
518
case ( ast:: expr_self_method ( ?ident, _) ) {
@@ -528,14 +532,14 @@ fn print_expr(ps s, &@ast::expr expr) {
528
532
print_expr ( s, func) ;
529
533
popen ( s) ;
530
534
auto f = print_opt;
531
- commasep[ option:: t[ @ast:: expr] ] ( s, args, f) ;
535
+ commasep[ option:: t[ @ast:: expr] ] ( s, inconsistent , args, f) ;
532
536
pclose ( s) ;
533
537
}
534
538
case ( ast:: expr_spawn ( _, _, ?e, ?es, _) ) {
535
539
word_nbsp ( s, "spawn" ) ;
536
540
print_expr ( s, e) ;
537
541
popen ( s) ;
538
- commasep_exprs ( s, es) ;
542
+ commasep_exprs ( s, inconsistent , es) ;
539
543
pclose ( s) ;
540
544
}
541
545
case ( ast:: expr_binary ( ?op, ?lhs, ?rhs, _) ) {
@@ -742,7 +746,7 @@ fn print_expr(ps s, &@ast::expr expr) {
742
746
print_path ( s, path) ;
743
747
if ( vec:: len[ @ast:: expr] ( args) > 0 u) {
744
748
popen ( s) ;
745
- commasep_exprs ( s, args) ;
749
+ commasep_exprs ( s, inconsistent , args) ;
746
750
pclose ( s) ;
747
751
}
748
752
// FIXME: extension 'body'
@@ -855,7 +859,7 @@ fn print_path(ps s, ast::path path) {
855
859
if ( vec:: len[ @ast:: ty] ( path. node . types ) > 0 u) {
856
860
wrd ( s. s , "[" ) ;
857
861
auto f = print_type;
858
- commasep[ @ast:: ty] ( s, path. node . types , f) ;
862
+ commasep[ @ast:: ty] ( s, inconsistent , path. node . types , f) ;
859
863
wrd ( s. s , "]" ) ;
860
864
}
861
865
}
@@ -871,7 +875,7 @@ fn print_pat(ps s, &@ast::pat pat) {
871
875
if ( vec:: len[ @ast:: pat] ( args) > 0 u) {
872
876
popen ( s) ;
873
877
auto f = print_pat;
874
- commasep[ @ast:: pat] ( s, args, f) ;
878
+ commasep[ @ast:: pat] ( s, inconsistent , args, f) ;
875
879
pclose ( s) ;
876
880
}
877
881
}
@@ -900,7 +904,7 @@ fn print_fn(ps s, ast::fn_decl decl, str name,
900
904
end ( s. s ) ;
901
905
}
902
906
auto f = print_arg;
903
- commasep[ ast:: arg] ( s, decl. inputs , f) ;
907
+ commasep[ ast:: arg] ( s, inconsistent , decl. inputs , f) ;
904
908
pclose ( s) ;
905
909
maybe_print_comment ( s, decl. output . span . lo ) ;
906
910
if ( decl. output . node != ast:: ty_nil) {
@@ -917,7 +921,7 @@ fn print_type_params(ps s, vec[ast::ty_param] params) {
917
921
wrd ( s. s , param) ;
918
922
}
919
923
auto f = printParam;
920
- commasep[ ast:: ty_param] ( s, params, f) ;
924
+ commasep[ ast:: ty_param] ( s, inconsistent , params, f) ;
921
925
wrd ( s. s , "]" ) ;
922
926
}
923
927
}
@@ -939,7 +943,7 @@ fn print_view_item(ps s, @ast::view_item item) {
939
943
end ( s. s ) ;
940
944
}
941
945
auto f = print_meta;
942
- commasep[ @ast:: meta_item] ( s, mta, f) ;
946
+ commasep[ @ast:: meta_item] ( s, consistent , mta, f) ;
943
947
pclose ( s) ;
944
948
}
945
949
}
@@ -1042,7 +1046,7 @@ fn print_ty_fn(ps s, ast::proto proto, option::t[str] id,
1042
1046
print_type ( s, input. ty ) ;
1043
1047
}
1044
1048
auto f = print_arg;
1045
- commasep[ ast:: ty_arg] ( s, inputs, f) ;
1049
+ commasep[ ast:: ty_arg] ( s, inconsistent , inputs, f) ;
1046
1050
pclose ( s) ;
1047
1051
maybe_print_comment ( s, output. span . lo ) ;
1048
1052
if ( output. node != ast:: ty_nil) {
0 commit comments