//@ has 'glob_shadowing/index.html'
//@ count - '//div[@class="item-name"]' 6
//@ !has - '//div[@class="desc docblock-short"]' 'sub1::describe'
//@ has - '//div[@class="desc docblock-short"]' 'sub2::describe'

//@ !has - '//div[@class="desc docblock-short"]' 'sub1::describe2'

//@ !has - '//div[@class="desc docblock-short"]' 'sub1::prelude'
//@ has - '//div[@class="desc docblock-short"]' 'mod::prelude'

//@ has - '//div[@class="desc docblock-short"]' 'sub1::Foo (struct)'
//@ has - '//div[@class="desc docblock-short"]' 'mod::Foo (function)'

//@ has - '//div[@class="desc docblock-short"]' 'sub4::inner::X'

//@ has 'glob_shadowing/fn.describe.html'
//@ has - '//div[@class="docblock"]' 'sub2::describe'

mod sub1 {
    // this should be shadowed by sub2::describe
    /// sub1::describe
    pub fn describe() -> &'static str {
        "sub1::describe"
    }

    // this should be shadowed by mod::prelude
    /// sub1::prelude
    pub mod prelude {
    }

    // this should *not* be shadowed, because sub1::Foo and mod::Foo are in different namespaces
    /// sub1::Foo (struct)
    pub struct Foo;

    // this should be shadowed,
    // because both sub1::describe2 and sub3::describe2 are from glob reexport
    /// sub1::describe2
    pub fn describe2() -> &'static str {
        "sub1::describe2"
    }
}

mod sub2 {
    /// sub2::describe
    pub fn describe() -> &'static str {
        "sub2::describe"
    }
}

mod sub3 {
    // this should be shadowed
    // because both sub1::describe2 and sub3::describe2 are from glob reexport
    /// sub3::describe2
    pub fn describe2() -> &'static str {
        "sub3::describe2"
    }
}

mod sub4 {
    // this should be shadowed by sub4::inner::X
    /// sub4::X
    pub const X: usize = 0;
    pub mod inner {
        pub use super::*;
        /// sub4::inner::X
        pub const X: usize = 1;
    }
}

/// mod::Foo (function)
pub fn Foo() {}

#[doc(inline)]
pub use sub2::describe;

#[doc(inline)]
pub use sub1::*;

#[doc(inline)]
pub use sub3::*;

#[doc(inline)]
pub use sub4::inner::*;

/// mod::prelude
pub mod prelude {}
