// run-pass

#![allow(unused_imports, dead_code)]

mod test1 {

    mod foo { pub fn p() -> isize { 1 } }
    mod bar { pub fn p() -> isize { 2 } }

    pub mod baz {
        use test1::bar::p;

        pub fn my_main() { assert_eq!(p(), 2); }
    }
}

mod test2 {

    mod foo { pub fn p() -> isize { 1 } }
    mod bar { pub fn p() -> isize { 2 } }

    pub mod baz {
        use test2::bar::p;

        pub fn my_main() { assert_eq!(p(), 2); }
    }
}

fn main() {
    test1::baz::my_main();
    test2::baz::my_main();
}
