Remove pretty printer space inside block with only outer attrs · rust-lang/rust@cbccc4a (original) (raw)
`@@ -387,23 +387,23 @@ pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::ops::Dere
`
387
387
`self.print_string(sym.as_str(), style);
`
388
388
`}
`
389
389
``
390
``
`-
fn print_inner_attributes(&mut self, attrs: &[ast::Attribute]) {
`
``
390
`+
fn print_inner_attributes(&mut self, attrs: &[ast::Attribute]) -> bool {
`
391
391
`self.print_either_attributes(attrs, ast::AttrStyle::Inner, false, true)
`
392
392
`}
`
393
393
``
394
``
`-
fn print_inner_attributes_no_trailing_hardbreak(&mut self, attrs: &[ast::Attribute]) {
`
``
394
`+
fn print_inner_attributes_no_trailing_hardbreak(&mut self, attrs: &[ast::Attribute]) -> bool {
`
395
395
`self.print_either_attributes(attrs, ast::AttrStyle::Inner, false, false)
`
396
396
`}
`
397
397
``
398
``
`-
fn print_outer_attributes(&mut self, attrs: &[ast::Attribute]) {
`
``
398
`+
fn print_outer_attributes(&mut self, attrs: &[ast::Attribute]) -> bool {
`
399
399
`self.print_either_attributes(attrs, ast::AttrStyle::Outer, false, true)
`
400
400
`}
`
401
401
``
402
``
`-
fn print_inner_attributes_inline(&mut self, attrs: &[ast::Attribute]) {
`
``
402
`+
fn print_inner_attributes_inline(&mut self, attrs: &[ast::Attribute]) -> bool {
`
403
403
`self.print_either_attributes(attrs, ast::AttrStyle::Inner, true, true)
`
404
404
`}
`
405
405
``
406
``
`-
fn print_outer_attributes_inline(&mut self, attrs: &[ast::Attribute]) {
`
``
406
`+
fn print_outer_attributes_inline(&mut self, attrs: &[ast::Attribute]) -> bool {
`
407
407
`self.print_either_attributes(attrs, ast::AttrStyle::Outer, true, true)
`
408
408
`}
`
409
409
``
`@@ -413,20 +413,21 @@ pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::ops::Dere
`
413
413
`kind: ast::AttrStyle,
`
414
414
`is_inline: bool,
`
415
415
`trailing_hardbreak: bool,
`
416
``
`-
) {
`
417
``
`-
let mut count = 0;
`
``
416
`+
) -> bool {
`
``
417
`+
let mut printed = false;
`
418
418
`for attr in attrs {
`
419
419
`if attr.style == kind {
`
420
420
`self.print_attribute_inline(attr, is_inline);
`
421
421
`if is_inline {
`
422
422
`self.nbsp();
`
423
423
`}
`
424
``
`-
count += 1;
`
``
424
`+
printed = true;
`
425
425
`}
`
426
426
`}
`
427
``
`-
if count > 0 && trailing_hardbreak && !is_inline {
`
``
427
`+
if printed && trailing_hardbreak && !is_inline {
`
428
428
`self.hardbreak_if_not_bol();
`
429
429
`}
`
``
430
`+
printed
`
430
431
`}
`
431
432
``
432
433
`fn print_attribute(&mut self, attr: &ast::Attribute) {
`
`@@ -1646,7 +1647,7 @@ impl<'a> State<'a> {
`
1646
1647
`self.ann.pre(self, AnnNode::Block(blk));
`
1647
1648
`self.bopen();
`
1648
1649
``
1649
``
`-
self.print_inner_attributes(attrs);
`
``
1650
`+
let has_attrs = self.print_inner_attributes(attrs);
`
1650
1651
``
1651
1652
`for (i, st) in blk.stmts.iter().enumerate() {
`
1652
1653
`match st.kind {
`
`@@ -1660,7 +1661,7 @@ impl<'a> State<'a> {
`
1660
1661
`}
`
1661
1662
`}
`
1662
1663
``
1663
``
`-
let empty = attrs.is_empty() && blk.stmts.is_empty();
`
``
1664
`+
let empty = !has_attrs && blk.stmts.is_empty();
`
1664
1665
`self.bclose_maybe_open(blk.span, empty, close_box);
`
1665
1666
`self.ann.post(self, AnnNode::Block(blk))
`
1666
1667
`}
`