@@ -17,7 +17,7 @@ import pp::box;
17
17
import pp:: cbox;
18
18
import pp:: ibox;
19
19
import pp:: word;
20
- import pp:: word_and_eol ;
20
+ import pp:: huge_word ;
21
21
import pp:: space;
22
22
import pp:: zerobreak;
23
23
import pp:: hardbreak;
@@ -152,7 +152,8 @@ fn commasep_cmnt[IN](ps s, breaks b, vec[IN] elts, fn(ps, &IN) op,
152
152
i += 1 u;
153
153
if ( i < len) {
154
154
word ( s. s , "," ) ;
155
- if ( !maybe_print_line_comment ( s, get_span ( elt) ) ) { space ( s. s ) ; }
155
+ maybe_print_trailing_comment ( s, get_span ( elt) ) ;
156
+ space ( s. s ) ;
156
157
}
157
158
}
158
159
end ( s. s ) ;
@@ -350,7 +351,7 @@ fn print_item(ps s, @ast::item item) {
350
351
pclose ( s) ;
351
352
}
352
353
word ( s. s , ";" ) ;
353
- maybe_print_line_comment ( s, v. span ) ;
354
+ maybe_print_trailing_comment ( s, v. span ) ;
354
355
}
355
356
bclose ( s, item. span ) ;
356
357
}
@@ -409,13 +410,13 @@ fn print_block(ps s, ast::block blk) {
409
410
}
410
411
}
411
412
if ( front:: parser:: stmt_ends_with_semi ( st) ) { word ( s. s , ";" ) ; }
412
- maybe_print_line_comment ( s, st. span ) ;
413
+ maybe_print_trailing_comment ( s, st. span ) ;
413
414
}
414
415
alt ( blk. node . expr ) {
415
416
case ( option:: some[ @ast:: expr] ( ?expr) ) {
416
417
space ( s. s ) ;
417
418
print_expr ( s, expr) ;
418
- maybe_print_line_comment ( s, expr. span ) ;
419
+ maybe_print_trailing_comment ( s, expr. span ) ;
419
420
}
420
421
case ( _) { }
421
422
}
@@ -1105,32 +1106,28 @@ fn maybe_print_comment(ps s, uint pos) {
1105
1106
}
1106
1107
}
1107
1108
1108
- fn maybe_print_line_comment ( ps s, common:: span span) -> bool {
1109
+ fn maybe_print_trailing_comment ( ps s, common:: span span) {
1109
1110
auto cm;
1110
1111
alt ( s. cm ) {
1111
1112
case ( option:: some[ codemap] ( ?ccm) ) {
1112
1113
cm = ccm;
1113
1114
}
1114
- case ( _) {
1115
- ret false ;
1116
- }
1115
+ case ( _) { ret; }
1117
1116
}
1118
1117
alt ( next_comment ( s) ) {
1119
1118
case ( option:: some[ lexer:: cmnt] ( ?cmnt) ) {
1120
- if ( cmnt. style != lexer:: trailing) { ret false ; }
1119
+ if ( cmnt. style != lexer:: trailing) { ret; }
1121
1120
1122
1121
auto span_line = codemap:: lookup_pos ( cm, span. hi ) ;
1123
1122
auto comment_line = codemap:: lookup_pos ( cm, cmnt. pos ) ;
1124
1123
if ( span_line. line == comment_line. line ) {
1125
1124
word ( s. s , " " ) ;
1126
1125
print_comment ( s, cmnt) ;
1127
1126
s. cur_cmnt += 1 u;
1128
- ret true;
1129
1127
}
1130
1128
}
1131
1129
case ( _) { }
1132
1130
}
1133
- ret false;
1134
1131
}
1135
1132
1136
1133
fn print_remaining_comments ( ps s) {
@@ -1148,21 +1145,24 @@ fn print_remaining_comments(ps s) {
1148
1145
fn print_comment ( ps s, lexer:: cmnt cmnt) {
1149
1146
alt ( cmnt. style ) {
1150
1147
case ( lexer:: isolated) {
1151
- zerobreak ( s. s ) ;
1148
+ hardbreak ( s. s ) ;
1152
1149
for ( str line in cmnt. lines) {
1153
- word_and_eol ( s. s , line) ;
1150
+ huge_word ( s. s , line) ;
1154
1151
zerobreak ( s. s ) ;
1155
1152
}
1156
- zerobreak ( s. s ) ;
1157
1153
}
1158
1154
case ( lexer:: trailing) {
1159
- cbox ( s. s , 0 u) ;
1160
- for ( str line in cmnt. lines) {
1161
- word_and_eol ( s. s , line) ;
1162
- zerobreak ( s. s ) ;
1155
+ if ( vec:: len ( cmnt. lines ) == 1 u) {
1156
+ word ( s. s , cmnt. lines . ( 0 ) ) ;
1157
+ hardbreak ( s. s ) ;
1158
+ } else {
1159
+ cbox ( s. s , 0 u) ;
1160
+ for ( str line in cmnt. lines) {
1161
+ huge_word ( s. s , line) ;
1162
+ zerobreak ( s. s ) ;
1163
+ }
1164
+ end ( s. s ) ;
1163
1165
}
1164
- end ( s. s ) ;
1165
- zerobreak ( s. s ) ;
1166
1166
}
1167
1167
case ( lexer:: mixed) {
1168
1168
assert vec:: len ( cmnt. lines ) == 1 u;
0 commit comments