Fix pretty printing of parsed attrs in hir_pretty
This commit is contained in:
parent
6a38322d26
commit
279377f87a
8 changed files with 34 additions and 32 deletions
|
@ -125,7 +125,7 @@ macro_rules! print_tup {
|
|||
let ($t, $($ts),*) = self;
|
||||
let parens = print_tup!(num_should_render $t $($ts)*) > 1;
|
||||
if parens {
|
||||
p.word("(");
|
||||
p.popen();
|
||||
}
|
||||
|
||||
let mut printed_anything = $t.should_render();
|
||||
|
@ -134,14 +134,16 @@ macro_rules! print_tup {
|
|||
|
||||
$(
|
||||
if $ts.should_render() {
|
||||
p.word_space(",");
|
||||
if printed_anything {
|
||||
p.word_space(",");
|
||||
}
|
||||
printed_anything = true;
|
||||
}
|
||||
$ts.print_attribute(p);
|
||||
)*
|
||||
|
||||
if parens {
|
||||
p.word(")");
|
||||
p.pclose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -152,8 +154,8 @@ macro_rules! print_tup {
|
|||
|
||||
print_tup!(A B C D E F G H);
|
||||
print_skip!(Span, ());
|
||||
print_disp!(Symbol, u16, bool, NonZero<u32>);
|
||||
print_debug!(UintTy, IntTy, Align, AttrStyle, CommentKind, Transparency);
|
||||
print_disp!(u16, bool, NonZero<u32>);
|
||||
print_debug!(Symbol, UintTy, IntTy, Align, AttrStyle, CommentKind, Transparency);
|
||||
|
||||
/// Finds attributes in sequences of attributes by pattern matching.
|
||||
///
|
||||
|
|
|
@ -117,9 +117,9 @@ impl<'a> State<'a> {
|
|||
self.hardbreak()
|
||||
}
|
||||
hir::Attribute::Parsed(pa) => {
|
||||
self.word("#[attr=\"");
|
||||
self.word("#[attr = ");
|
||||
pa.print_attribute(self);
|
||||
self.word("\")]");
|
||||
self.word("]");
|
||||
self.hardbreak()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,12 +16,14 @@ fn print_fields(name: &Ident, fields: &Fields) -> (TokenStream, TokenStream, Tok
|
|||
let name = field.ident.as_ref().unwrap();
|
||||
let string_name = name.to_string();
|
||||
disps.push(quote! {
|
||||
if __printed_anything && #name.should_render() {
|
||||
__p.word_space(",");
|
||||
if #name.should_render() {
|
||||
if __printed_anything {
|
||||
__p.word_space(",");
|
||||
}
|
||||
__p.word(#string_name);
|
||||
__p.word_space(":");
|
||||
__printed_anything = true;
|
||||
}
|
||||
__p.word(#string_name);
|
||||
__p.word_space(":");
|
||||
#name.print_attribute(__p);
|
||||
});
|
||||
field_names.push(name);
|
||||
|
@ -35,6 +37,7 @@ fn print_fields(name: &Ident, fields: &Fields) -> (TokenStream, TokenStream, Tok
|
|||
return;
|
||||
}
|
||||
|
||||
__p.nbsp();
|
||||
__p.word("{");
|
||||
#(#disps)*
|
||||
__p.word("}");
|
||||
|
@ -48,8 +51,10 @@ fn print_fields(name: &Ident, fields: &Fields) -> (TokenStream, TokenStream, Tok
|
|||
for idx in 0..fields_unnamed.unnamed.len() {
|
||||
let name = format_ident!("f{idx}");
|
||||
disps.push(quote! {
|
||||
if __printed_anything && #name.should_render() {
|
||||
__p.word_space(",");
|
||||
if #name.should_render() {
|
||||
if __printed_anything {
|
||||
__p.word_space(",");
|
||||
}
|
||||
__printed_anything = true;
|
||||
}
|
||||
#name.print_attribute(__p);
|
||||
|
@ -66,9 +71,9 @@ fn print_fields(name: &Ident, fields: &Fields) -> (TokenStream, TokenStream, Tok
|
|||
return;
|
||||
}
|
||||
|
||||
__p.word("(");
|
||||
__p.popen();
|
||||
#(#disps)*
|
||||
__p.word(")");
|
||||
__p.pclose();
|
||||
},
|
||||
quote! { true },
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue