warning: private type `m1::Priv` in public interface (error E0446)
  --> $DIR/issue-30079.rs:6:9
   |
LL |         pub fn f(_: Priv) {}
   |         ^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
   = note: `#[warn(private_in_public)]` on by default

error[E0446]: private type `m2::Priv` in public interface
  --> $DIR/issue-30079.rs:18: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:35: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`.
