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 =