| //@ aux-crate:priv:shared=shared.rs |
| //@ aux-crate:priv:indirect1=indirect1.rs |
| //@ compile-flags: -Zunstable-options |
| |
| // A shared dependency, where it is only indirectly public. |
| // |
| // shared_indirect |
| // /\ |
| // (PRIVATE) / | (PRIVATE) |
| // / | |
| // indirect1 | | |
| // (PRIVATE) | | |
| // indirect2 | | |
| // \ | |
| // (public) \ / |
| // \/ |
| // shared |
| |
| #![crate_type = "lib"] |
| #![deny(exported_private_dependencies)] |
| |
| extern crate shared; |
| extern crate indirect1; |
| |
| pub fn leaks_priv() -> shared::Shared { |
| //~^ ERROR type `Shared` from private dependency 'shared' in public interface |
| shared::Shared |
| } |