| //@ 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 crate::type_ns::A; | |
| pub use crate::value_ns::A; | |
| } | |
| mod merge3 { | |
| pub use crate::type_ns::A; | |
| pub use crate::value_ns::A; | |
| pub use crate::macro_ns::A; | |
| } | |
| mod use2 { | |
| pub use crate::merge2::A; | |
| } | |
| mod use3 { | |
| pub use crate::merge3::A; | |
| } | |
| fn main() { | |
| type B2 = use2::A; | |
| let a2 = use2::A; | |
| type B3 = use3::A; | |
| let a3 = use3::A; | |
| use3::A!(); | |
| } |