diff --git a/src/items.rs b/src/items.rs index a18cba69d65..818cf5d6c91 100644 --- a/src/items.rs +++ b/src/items.rs @@ -1163,6 +1163,7 @@ pub fn format_trait( pub fn format_trait_alias( context: &RewriteContext<'_>, ident: ast::Ident, + vis: &ast::Visibility, generics: &ast::Generics, generic_bounds: &ast::GenericBounds, shape: Shape, @@ -1171,7 +1172,8 @@ pub fn format_trait_alias( // 6 = "trait ", 2 = " =" let g_shape = shape.offset_left(6)?.sub_width(2)?; let generics_str = rewrite_generics(context, &alias, generics, g_shape)?; - let lhs = format!("trait {} =", generics_str); + let vis_str = format_visibility(context, vis); + let lhs = format!("{}trait {} =", vis_str, generics_str); // 1 = ";" rewrite_assign_rhs(context, lhs, generic_bounds, shape.sub_width(1)?).map(|s| s + ";") } diff --git a/src/visitor.rs b/src/visitor.rs index ed4ab867586..8ca53401126 100644 --- a/src/visitor.rs +++ b/src/visitor.rs @@ -363,6 +363,7 @@ impl<'b, 'a: 'b> FmtVisitor<'a> { let rw = format_trait_alias( &self.get_context(), item.ident, + &item.vis, generics, generic_bounds, shape, diff --git a/tests/source/trait.rs b/tests/source/trait.rs index d5ee4f04417..10802110951 100644 --- a/tests/source/trait.rs +++ b/tests/source/trait.rs @@ -84,7 +84,14 @@ trait FooBar = trait FooBar = Foo + Bar; +pub trait FooBar = + Foo + + Bar; +pub trait FooBar = + Foo + + Bar; trait AAAAAAAAAAAAAAAAAA = BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD; +pub trait AAAAAAAAAAAAAAAAAA = BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD; trait AAAAAAAAAAAAAAAAAAA = BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD; trait AAAAAAAAAAAAAAAAAA = BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDDD; trait AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA = FooBar; diff --git a/tests/target/trait.rs b/tests/target/trait.rs index 18747c47fef..89a82847923 100644 --- a/tests/target/trait.rs +++ b/tests/target/trait.rs @@ -113,7 +113,11 @@ trait MyTrait< // Trait aliases trait FooBar = Foo + Bar; trait FooBar = Foo + Bar; +pub trait FooBar = Foo + Bar; +pub trait FooBar = Foo + Bar; trait AAAAAAAAAAAAAAAAAA = BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD; +pub trait AAAAAAAAAAAAAAAAAA = + BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD; trait AAAAAAAAAAAAAAAAAAA = BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD; trait AAAAAAAAAAAAAAAAAA =