// This test ensures that the `struct.B.html` only exists in `a`:
// since `a::B` is public (and inlined too), `self::a::B` doesn't
// need to be inlined as well.

#![crate_name = "foo"]

pub mod a {
    // @has 'foo/a/index.html'
    // Should only contain "Structs".
    // @count - '//*[@id="main-content"]//*[@class="item-table"]' 1
    // @has - '//*[@id="structs"]' 'Structs'
    // @has - '//*[@id="main-content"]//a[@href="struct.A.html"]' 'A'
    // @has - '//*[@id="main-content"]//a[@href="struct.B.html"]' 'B'
    mod b {
        pub struct B;
    }
    pub use self::b::B;
    pub struct A;
}

// @has 'foo/index.html'
// @!has - '//*[@id="structs"]' 'Structs'
// @has - '//*[@id="reexports"]' 'Re-exports'
// @has - '//*[@id="modules"]' 'Modules'
// @has - '//*[@id="main-content"]//*[@id="reexport.A"]' 'pub use self::a::A;'
// @has - '//*[@id="main-content"]//*[@id="reexport.B"]' 'pub use self::a::B;'
// Should only contain "Modules" and "Re-exports".
// @count - '//*[@id="main-content"]//*[@class="item-table"]' 2
pub use self::a::{A, B};