// run-pass

#![allow(unused_variables)]
pub struct A;

mod test {
    pub use super :: A;

    pub use self :: A as B;
}

impl A {
    fn f() {}
    fn g() {
        Self :: f()
    }
}

fn main() {
    let a: A = test::A;
    let b: A = test::B;
    let c: () = A::g();
}
