// check-pass

#![feature(decl_macro)]

mod type_ns {
    pub type A = u8;
}
mod value_ns {
    pub const A: u8 = 0;
}
mod macro_ns {
    pub macro A() {}
}

mod merge2 {
    pub use type_ns::A;
    pub use value_ns::A;
}
mod merge3 {
    pub use type_ns::A;
    pub use value_ns::A;
    pub use macro_ns::A;
}

mod use2 {
    pub use merge2::A;
}
mod use3 {
    pub use merge3::A;
}

fn main() {
    type B2 = use2::A;
    let a2 = use2::A;

    type B3 = use3::A;
    let a3 = use3::A;
    use3::A!();
}
