error[E0445]: private trait `Foo` in public interface --> $DIR/E0445.rs:12:1 | LL | trait Foo { | --------- `Foo` declared as private ... LL | pub trait Bar : Foo {} | ^^^^^^^^^^^^^^^^^^^ can't leak private trait warning: trait `Foo` is more private than the item `Bar` | note: trait `Bar` is reachable at visibility `pub` --> $DIR/E0445.rs:12:1 | LL | pub trait Bar : Foo {} | ^^^^^^^^^^^^^^^^^^^ note: but trait `Foo` is only usable at visibility `pub(crate)` --> $DIR/E0445.rs:8:1 | LL | trait Foo { | ^^^^^^^^^ note: the lint level is defined here --> $DIR/E0445.rs:1:8 | LL | #[warn(private_bounds)] | ^^^^^^^^^^^^^^ error[E0445]: private trait `Foo` in public interface --> $DIR/E0445.rs:14:1 | LL | trait Foo { | --------- `Foo` declared as private ... LL | pub struct Bar2(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^ can't leak private trait warning: trait `Foo` is more private than the item `Bar2` | note: struct `Bar2` is reachable at visibility `pub` --> $DIR/E0445.rs:14:1 | LL | pub struct Bar2(pub T); | ^^^^^^^^^^^^^^^^^^^^^^^ note: but trait `Foo` is only usable at visibility `pub(crate)` --> $DIR/E0445.rs:8:1 | LL | trait Foo { | ^^^^^^^^^ error[E0445]: private trait `Foo` in public interface --> $DIR/E0445.rs:16:1 | LL | trait Foo { | --------- `Foo` declared as private ... LL | pub fn foo (t: T) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak private trait warning: trait `Foo` is more private than the item `foo` | note: function `foo` is reachable at visibility `pub` --> $DIR/E0445.rs:16:1 | LL | pub fn foo (t: T) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: but trait `Foo` is only usable at visibility `pub(crate)` --> $DIR/E0445.rs:8:1 | LL | trait Foo { | ^^^^^^^^^ error: aborting due to 3 previous errors; 3 warnings emitted For more information about this error, try `rustc --explain E0445`.