//@ aux-crate:priv:shared=shared.rs //@ aux-crate:reexport=reexport.rs //@ compile-flags: -Zunstable-options //@ check-pass // A shared dependency, where the public side reexports the same item as a // direct private dependency. // // shared_direct_private // /\ // (public) / | (PRIVATE) // / | // reexport | // \ | // (public) \ / // \/ // shared // #![crate_type = "lib"] #![deny(exported_private_dependencies)] extern crate shared; extern crate reexport; // FIXME: Should this trigger? // // One could make an argument that I said I want "reexport" to be public, and // since "reexport" says "shared_direct_private" is public, then it should // transitively be public for me. However, as written, this is explicitly // referring to a dependency that is marked "private", which I think is // confusing. pub fn leaks_priv() -> shared::Shared { shared::Shared } pub fn leaks_pub() -> reexport::Shared { reexport::Shared }