warning: type `m1::Priv` is more private than the item `m1::::f` --> $DIR/issue-30079.rs:6:9 | LL | pub fn f(_: Priv) {} | ^^^^^^^^^^^^^^^^^ associated function `m1::::f` is reachable at visibility `pub(crate)` | note: but type `m1::Priv` is only usable at visibility `pub(self)` --> $DIR/issue-30079.rs:4:5 | LL | struct Priv; | ^^^^^^^^^^^ = note: `#[warn(private_interfaces)]` on by default error[E0446]: private type `m2::Priv` in public interface --> $DIR/issue-30079.rs:17:9 | LL | struct Priv; | ----------- `m2::Priv` declared as private LL | impl ::std::ops::Deref for ::SemiPriv { LL | type Target = Priv; | ^^^^^^^^^^^ can't leak private type error[E0446]: private type `m3::Priv` in public interface --> $DIR/issue-30079.rs:34:9 | LL | struct Priv; | ----------- `m3::Priv` declared as private LL | impl ::SemiPrivTrait for () { LL | type Assoc = Priv; | ^^^^^^^^^^ can't leak private type error: aborting due to 2 previous errors; 1 warning emitted For more information about this error, try `rustc --explain E0446`.