Skip to content

Commit

Permalink
Auto merge of #85515 - jedel1043:fix-85480, r=petrochenkov
Browse files Browse the repository at this point in the history
Fix ast pretty printing for anonymous types

Fixes #85480.
  • Loading branch information
bors committed May 24, 2021
2 parents 3f9646d + d59b1f1 commit 68424e2
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 10 deletions.
16 changes: 6 additions & 10 deletions compiler/rustc_ast_pretty/src/pprust/state.rs
Expand Up @@ -955,12 +955,12 @@ impl<'a> State<'a> {
self.pclose();
}
ast::TyKind::AnonymousStruct(ref fields, ..) => {
self.s.word("struct");
self.print_record_struct_body(fields, ty.span);
self.head("struct");
self.print_record_struct_body(&fields, ty.span);
}
ast::TyKind::AnonymousUnion(ref fields, ..) => {
self.s.word("union");
self.print_record_struct_body(fields, ty.span);
self.head("union");
self.print_record_struct_body(&fields, ty.span);
}
ast::TyKind::Paren(ref typ) => {
self.popen();
Expand Down Expand Up @@ -1397,12 +1397,7 @@ impl<'a> State<'a> {
}
}

crate fn print_record_struct_body(
&mut self,
fields: &Vec<ast::FieldDef>,
span: rustc_span::Span,
) {
self.nbsp();
crate fn print_record_struct_body(&mut self, fields: &[ast::FieldDef], span: rustc_span::Span) {
self.bopen();
self.hardbreak_if_not_bol();

Expand Down Expand Up @@ -1451,6 +1446,7 @@ impl<'a> State<'a> {
}
ast::VariantData::Struct(ref fields, ..) => {
self.print_where_clause(&generics.where_clause);
self.nbsp();
self.print_record_struct_body(fields, span);
}
}
Expand Down
24 changes: 24 additions & 0 deletions src/test/pretty/anonymous-types.rs
@@ -0,0 +1,24 @@
// Test for issue 85480
// Pretty print anonymous struct and union types

// pp-exact
// pretty-compare-only

struct Foo {
_: union {
_: struct {
a: u8,
b: u16,
},
c: u32,
},
d: u64,
e: f32,
}

type A =
struct {
field: u8,
};

fn main() { }

0 comments on commit 68424e2

Please sign in to comment.