mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-31 22:41:50 +00:00
Remove pretty printer space inside block with only outer attrs
This commit is contained in:
parent
83b15bfe1c
commit
cbccc4a597
@ -387,23 +387,23 @@ pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::ops::Dere
|
|||||||
self.print_string(sym.as_str(), style);
|
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)
|
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)
|
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)
|
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)
|
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)
|
self.print_either_attributes(attrs, ast::AttrStyle::Outer, true, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -413,20 +413,21 @@ pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::ops::Dere
|
|||||||
kind: ast::AttrStyle,
|
kind: ast::AttrStyle,
|
||||||
is_inline: bool,
|
is_inline: bool,
|
||||||
trailing_hardbreak: bool,
|
trailing_hardbreak: bool,
|
||||||
) {
|
) -> bool {
|
||||||
let mut count = 0;
|
let mut printed = false;
|
||||||
for attr in attrs {
|
for attr in attrs {
|
||||||
if attr.style == kind {
|
if attr.style == kind {
|
||||||
self.print_attribute_inline(attr, is_inline);
|
self.print_attribute_inline(attr, is_inline);
|
||||||
if is_inline {
|
if is_inline {
|
||||||
self.nbsp();
|
self.nbsp();
|
||||||
}
|
}
|
||||||
count += 1;
|
printed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if count > 0 && trailing_hardbreak && !is_inline {
|
if printed && trailing_hardbreak && !is_inline {
|
||||||
self.hardbreak_if_not_bol();
|
self.hardbreak_if_not_bol();
|
||||||
}
|
}
|
||||||
|
printed
|
||||||
}
|
}
|
||||||
|
|
||||||
fn print_attribute(&mut self, attr: &ast::Attribute) {
|
fn print_attribute(&mut self, attr: &ast::Attribute) {
|
||||||
@ -1646,7 +1647,7 @@ impl<'a> State<'a> {
|
|||||||
self.ann.pre(self, AnnNode::Block(blk));
|
self.ann.pre(self, AnnNode::Block(blk));
|
||||||
self.bopen();
|
self.bopen();
|
||||||
|
|
||||||
self.print_inner_attributes(attrs);
|
let has_attrs = self.print_inner_attributes(attrs);
|
||||||
|
|
||||||
for (i, st) in blk.stmts.iter().enumerate() {
|
for (i, st) in blk.stmts.iter().enumerate() {
|
||||||
match st.kind {
|
match st.kind {
|
||||||
@ -1660,7 +1661,7 @@ impl<'a> State<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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.bclose_maybe_open(blk.span, empty, close_box);
|
||||||
self.ann.post(self, AnnNode::Block(blk))
|
self.ann.post(self, AnnNode::Block(blk))
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
fn main() {
|
fn main() {
|
||||||
#![rustc_dummy]
|
#![rustc_dummy]
|
||||||
#[rustc_dummy]
|
#[rustc_dummy]
|
||||||
fn f() { }
|
fn f() {}
|
||||||
|
|
||||||
#[rustc_dummy]
|
#[rustc_dummy]
|
||||||
fn g() { }
|
fn g() {}
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
fn main() {
|
fn main() {
|
||||||
#![rustc_dummy("hi", 1, 2, 1.012, pi = 3.14, bye, name("John"))]
|
#![rustc_dummy("hi", 1, 2, 1.012, pi = 3.14, bye, name("John"))]
|
||||||
#[rustc_dummy = 8]
|
#[rustc_dummy = 8]
|
||||||
fn f() { }
|
fn f() {}
|
||||||
|
|
||||||
#[rustc_dummy(1, 2, 3)]
|
#[rustc_dummy(1, 2, 3)]
|
||||||
fn g() { }
|
fn g() {}
|
||||||
}
|
}
|
||||||
|
@ -4,4 +4,4 @@
|
|||||||
// pp-exact
|
// pp-exact
|
||||||
|
|
||||||
#[rustfmt::r#final(final)]
|
#[rustfmt::r#final(final)]
|
||||||
fn main() { }
|
fn main() {}
|
||||||
|
@ -45,4 +45,4 @@ mac! {
|
|||||||
}]
|
}]
|
||||||
#[rustc_dummy =
|
#[rustc_dummy =
|
||||||
"aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa"]
|
"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 non-doc comment
|
||||||
|
|
||||||
/// some single line outer-docs
|
/// some single line outer-docs
|
||||||
fn a() { }
|
fn a() {}
|
||||||
|
|
||||||
fn b() {
|
fn b() {
|
||||||
//! some single line inner-docs
|
//! some single line inner-docs
|
||||||
@ -17,7 +17,7 @@ fn b() {
|
|||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
/// some single-line outer-docs preceded by a separator
|
/// some single-line outer-docs preceded by a separator
|
||||||
/// (and trailing whitespaces)
|
/// (and trailing whitespaces)
|
||||||
fn c() { }
|
fn c() {}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* some multi-line non-doc comment
|
* some multi-line non-doc comment
|
||||||
@ -26,7 +26,7 @@ fn c() { }
|
|||||||
/**
|
/**
|
||||||
* some multi-line outer-docs
|
* some multi-line outer-docs
|
||||||
*/
|
*/
|
||||||
fn d() { }
|
fn d() {}
|
||||||
|
|
||||||
fn e() {
|
fn e() {
|
||||||
/*!
|
/*!
|
||||||
@ -43,10 +43,10 @@ fn e() {
|
|||||||
/**
|
/**
|
||||||
* some multi-line outer-docs preceded by a separator
|
* some multi-line outer-docs preceded by a separator
|
||||||
*/
|
*/
|
||||||
fn f() { }
|
fn f() {}
|
||||||
|
|
||||||
#[doc = "unsugared outer doc-comments work also"]
|
#[doc = "unsugared outer doc-comments work also"]
|
||||||
fn g() { }
|
fn g() {}
|
||||||
|
|
||||||
fn h() {
|
fn h() {
|
||||||
#![doc = "as do inner ones"]
|
#![doc = "as do inner ones"]
|
||||||
|
@ -235,7 +235,7 @@ fn test_expr() {
|
|||||||
#[attr]
|
#[attr]
|
||||||
{}
|
{}
|
||||||
),
|
),
|
||||||
"#[attr] { }", // FIXME
|
"#[attr] {}",
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
stringify_expr!(
|
stringify_expr!(
|
||||||
|
Loading…
Reference in New Issue
Block a user