| //@ check-pass |
| |
| pub mod upstream_a { |
| mod inner { |
| pub struct Foo {} |
| pub struct Bar {} |
| } |
| |
| struct Foo; |
| //~^ WARN private item shadows public glob re-export |
| |
| pub use self::inner::*; |
| } |
| |
| pub mod upstream_b { |
| mod inner { |
| pub struct Foo {} |
| pub struct Qux {} |
| } |
| |
| mod other { |
| pub struct Foo; |
| } |
| |
| pub use self::inner::*; |
| |
| use self::other::Foo; |
| //~^ WARN private item shadows public glob re-export |
| } |
| |
| pub mod upstream_c { |
| mod no_def_id { |
| #![allow(non_camel_case_types)] |
| pub struct u8; |
| pub struct World; |
| } |
| |
| pub use self::no_def_id::*; |
| |
| use std::primitive::u8; |
| //~^ WARN private item shadows public glob re-export |
| } |
| |
| // Downstream crate |
| // mod downstream { |
| // fn proof() { |
| // let _ = crate::upstream_a::Foo; |
| // let _ = crate::upstream_b::Foo; |
| // } |
| // } |
| |
| pub fn main() {} |