Remove pretty printer space inside block with only outer attrs
This commit is contained in:
parent
83b15bfe1c
commit
cbccc4a597
@ -387,23 +387,23 @@ fn print_symbol(&mut self, sym: Symbol, style: ast::StrStyle) {
|
||||
self.print_string(sym.as_str(), style);
|
||||
}
|
||||
|
||||
fn print_inner_attributes(&mut self, attrs: &[ast::Attribute]) {
|
||||
fn print_inner_attributes(&mut self, attrs: &[ast::Attribute]) -> bool {
|
||||
self.print_either_attributes(attrs, ast::AttrStyle::Inner, false, true)
|
||||
}
|
||||
|
||||
fn print_inner_attributes_no_trailing_hardbreak(&mut self, attrs: &[ast::Attribute]) {
|
||||
fn print_inner_attributes_no_trailing_hardbreak(&mut self, attrs: &[ast::Attribute]) -> bool {
|
||||
self.print_either_attributes(attrs, ast::AttrStyle::Inner, false, false)
|
||||
}
|
||||
|
||||
fn print_outer_attributes(&mut self, attrs: &[ast::Attribute]) {
|
||||
fn print_outer_attributes(&mut self, attrs: &[ast::Attribute]) -> bool {
|
||||
self.print_either_attributes(attrs, ast::AttrStyle::Outer, false, true)
|
||||
}
|
||||
|
||||
fn print_inner_attributes_inline(&mut self, attrs: &[ast::Attribute]) {
|
||||
fn print_inner_attributes_inline(&mut self, attrs: &[ast::Attribute]) -> bool {
|
||||
self.print_either_attributes(attrs, ast::AttrStyle::Inner, true, true)
|
||||
}
|
||||
|
||||
fn print_outer_attributes_inline(&mut self, attrs: &[ast::Attribute]) {
|
||||
fn print_outer_attributes_inline(&mut self, attrs: &[ast::Attribute]) -> bool {
|
||||
self.print_either_attributes(attrs, ast::AttrStyle::Outer, true, true)
|
||||
}
|
||||
|
||||
@ -413,20 +413,21 @@ fn print_either_attributes(
|
||||
kind: ast::AttrStyle,
|
||||
is_inline: bool,
|
||||
trailing_hardbreak: bool,
|
||||
) {
|
||||
let mut count = 0;
|
||||
) -> bool {
|
||||
let mut printed = false;
|
||||
for attr in attrs {
|
||||
if attr.style == kind {
|
||||
self.print_attribute_inline(attr, is_inline);
|
||||
if is_inline {
|
||||
self.nbsp();
|
||||
}
|
||||
count += 1;
|
||||
printed = true;
|
||||
}
|
||||
}
|
||||
if count > 0 && trailing_hardbreak && !is_inline {
|
||||
if printed && trailing_hardbreak && !is_inline {
|
||||
self.hardbreak_if_not_bol();
|
||||
}
|
||||
printed
|
||||
}
|
||||
|
||||
fn print_attribute(&mut self, attr: &ast::Attribute) {
|
||||
@ -1646,7 +1647,7 @@ fn print_poly_trait_ref(&mut self, t: &ast::PolyTraitRef) {
|
||||
self.ann.pre(self, AnnNode::Block(blk));
|
||||
self.bopen();
|
||||
|
||||
self.print_inner_attributes(attrs);
|
||||
let has_attrs = self.print_inner_attributes(attrs);
|
||||
|
||||
for (i, st) in blk.stmts.iter().enumerate() {
|
||||
match st.kind {
|
||||
@ -1660,7 +1661,7 @@ fn print_poly_trait_ref(&mut self, t: &ast::PolyTraitRef) {
|
||||
}
|
||||
}
|
||||
|
||||
let empty = attrs.is_empty() && blk.stmts.is_empty();
|
||||
let empty = !has_attrs && blk.stmts.is_empty();
|
||||
self.bclose_maybe_open(blk.span, empty, close_box);
|
||||
self.ann.post(self, AnnNode::Block(blk))
|
||||
}
|
||||
|
@ -9,8 +9,8 @@
|
||||
fn main() {
|
||||
#![rustc_dummy]
|
||||
#[rustc_dummy]
|
||||
fn f() { }
|
||||
fn f() {}
|
||||
|
||||
#[rustc_dummy]
|
||||
fn g() { }
|
||||
fn g() {}
|
||||
}
|
||||
|
@ -7,8 +7,8 @@
|
||||
fn main() {
|
||||
#![rustc_dummy("hi", 1, 2, 1.012, pi = 3.14, bye, name("John"))]
|
||||
#[rustc_dummy = 8]
|
||||
fn f() { }
|
||||
fn f() {}
|
||||
|
||||
#[rustc_dummy(1, 2, 3)]
|
||||
fn g() { }
|
||||
fn g() {}
|
||||
}
|
||||
|
@ -4,4 +4,4 @@
|
||||
// pp-exact
|
||||
|
||||
#[rustfmt::r#final(final)]
|
||||
fn main() { }
|
||||
fn main() {}
|
||||
|
@ -45,4 +45,4 @@ fn clone() -> S
|
||||
}]
|
||||
#[rustc_dummy =
|
||||
"aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa"]
|
||||
fn main() { }
|
||||
fn main() {}
|
||||
|
@ -5,7 +5,7 @@
|
||||
// some single-line non-doc comment
|
||||
|
||||
/// some single line outer-docs
|
||||
fn a() { }
|
||||
fn a() {}
|
||||
|
||||
fn b() {
|
||||
//! some single line inner-docs
|
||||
@ -17,7 +17,7 @@ fn b() {
|
||||
//////////////////////////////////
|
||||
/// some single-line outer-docs preceded by a separator
|
||||
/// (and trailing whitespaces)
|
||||
fn c() { }
|
||||
fn c() {}
|
||||
|
||||
/*
|
||||
* some multi-line non-doc comment
|
||||
@ -26,7 +26,7 @@ fn c() { }
|
||||
/**
|
||||
* some multi-line outer-docs
|
||||
*/
|
||||
fn d() { }
|
||||
fn d() {}
|
||||
|
||||
fn e() {
|
||||
/*!
|
||||
@ -43,10 +43,10 @@ fn e() {
|
||||
/**
|
||||
* some multi-line outer-docs preceded by a separator
|
||||
*/
|
||||
fn f() { }
|
||||
fn f() {}
|
||||
|
||||
#[doc = "unsugared outer doc-comments work also"]
|
||||
fn g() { }
|
||||
fn g() {}
|
||||
|
||||
fn h() {
|
||||
#![doc = "as do inner ones"]
|
||||
|
@ -235,7 +235,7 @@ fn test_expr() {
|
||||
#[attr]
|
||||
{}
|
||||
),
|
||||
"#[attr] { }", // FIXME
|
||||
"#[attr] {}",
|
||||
);
|
||||
assert_eq!(
|
||||
stringify_expr!(
|
||||
|
Loading…
Reference in New Issue
Block a user