=== tests/cases/compiler/declarationEmit_nameConflicts_0.ts ===
import im = require('./declarationEmit_nameConflicts_1');
>im : typeof im

export module M {
>M : typeof M

    export function f() { }
>f : () => void

    export class C { }
>C : C

    export module N {
>N : typeof N

        export function g() { };
>g : () => void

        export interface I { }
>I : I
    }

    export import a = M.f;
>a : () => void
>M : typeof M
>f : () => void

    export import b = M.C;
>b : typeof C
>M : typeof M
>C : C

    export import c = N;
>c : typeof N
>N : typeof N

    export import d = im;
>d : typeof d
>im : typeof d
}

export module M.P {
>M : typeof M
>P : typeof P

    export function f() { }
>f : () => void

    export class C { }
>C : C

    export module N {
>N : typeof N

        export function g() { };
>g : () => void

        export interface I { }
>I : I
    }
    export import im = M.P.f;
>im : () => void
>M : typeof M
>P : typeof P
>f : () => void

    export var a = M.a; // emitted incorrectly as typeof f
>a : () => void
>M.a : () => void
>M : typeof M
>a : () => void

    export var b = M.b; // ok
>b : typeof M.C
>M.b : typeof M.C
>M : typeof M
>b : typeof M.C

    export var c = M.c; // ok
>c : typeof M.N
>M.c : typeof M.N
>M : typeof M
>c : typeof M.N

    export var g = M.c.g; // ok
>g : () => void
>M.c.g : () => void
>M.c : typeof M.N
>M : typeof M
>c : typeof M.N
>g : () => void

    export var d = M.d; // emitted incorrectly as typeof im
>d : typeof M.d
>M.d : typeof M.d
>M : typeof M
>d : typeof M.d
}

export module M.Q {
>M : typeof M
>Q : typeof Q

    export function f() { }
>f : () => void

    export class C { }
>C : C

    export module N {
>N : typeof N

        export function g() { };
>g : () => void

        export interface I { }
>I : I
    }
    export interface b extends M.b { } // ok
>b : b
>M.b : any
>M : typeof M
>b : M.C

    export interface I extends M.c.I { } // ok
>I : I
>M.c.I : any
>M.c : typeof M.N
>M : typeof M
>c : typeof M.N
>I : M.c.I

    export module c {
>c : any

        export interface I extends M.c.I { } // ok
>I : I
>M.c.I : any
>M.c : typeof M.N
>M : typeof M
>c : typeof M.N
>I : M.c.I
    }
}
=== tests/cases/compiler/declarationEmit_nameConflicts_1.ts ===
module f { export class c { } }
>f : typeof f
>c : c

export = f;
>f : typeof f

