Example:
fn main() {
let a = 10; // Comment 1
// Comment 2
}
=>
fn main() {
let a =
10; // Comment 1
// Comment 2
}
Affected tests:
[pretty] pretty\issue-20427.rs
[pretty] pretty\issue-22992.rs
[pretty] pretty\issue-23338-ensure-param-drop-order.rs
[pretty] pretty\issue-27401-dropflag-reinit.rs
The issue disappears if comments are not packed into ibox (see try!(self.ibox(0)) and self.end() in pprust.rs/fn print_comment/comments::Trailing), but formatting become worse and other tests fail.
I spent whole day investigating how these boxes work and reading Derek C. Oppen's "Pretty Printing" but still have no idea why this extra newline appears.
Example:
=>
Affected tests:
[pretty] pretty\issue-20427.rs
[pretty] pretty\issue-22992.rs
[pretty] pretty\issue-23338-ensure-param-drop-order.rs
[pretty] pretty\issue-27401-dropflag-reinit.rs
The issue disappears if comments are not packed into
ibox(seetry!(self.ibox(0))andself.end()in pprust.rs/fn print_comment/comments::Trailing), but formatting become worse and other tests fail.I spent whole day investigating how these boxes work and reading Derek C. Oppen's "Pretty Printing" but still have no idea why this extra newline appears.