=== tests/cases/compiler/typeResolution.ts === export module TopLevelModule1 { >TopLevelModule1 : typeof TopLevelModule1, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) export module SubModule1 { >SubModule1 : typeof SubModule1, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) export module SubSubModule1 { >SubSubModule1 : typeof SubSubModule1, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) export class ClassA { >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) public AisIn1_1_1() { >AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) // Try all qualified names of this type var a1: ClassA; a1.AisIn1_1_1(); >a1 : ClassA, Symbol(a1, Decl(typeResolution.ts, 6, 23)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a1.AisIn1_1_1() : void >a1.AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a1 : ClassA, Symbol(a1, Decl(typeResolution.ts, 6, 23)) >AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); >a2 : ClassA, Symbol(a2, Decl(typeResolution.ts, 7, 23)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a2.AisIn1_1_1() : void >a2.AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a2 : ClassA, Symbol(a2, Decl(typeResolution.ts, 7, 23)) >AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); >a3 : ClassA, Symbol(a3, Decl(typeResolution.ts, 8, 23)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a3.AisIn1_1_1() : void >a3.AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a3 : ClassA, Symbol(a3, Decl(typeResolution.ts, 8, 23)) >AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); >a4 : ClassA, Symbol(a4, Decl(typeResolution.ts, 9, 23)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a4.AisIn1_1_1() : void >a4.AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a4 : ClassA, Symbol(a4, Decl(typeResolution.ts, 9, 23)) >AisIn1_1_1 : () => void, Symbol(AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) // Two variants of qualifying a peer type var b1: ClassB; b1.BisIn1_1_1(); >b1 : ClassB, Symbol(b1, Decl(typeResolution.ts, 12, 23)) >ClassB : ClassB, Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) >b1.BisIn1_1_1() : void >b1.BisIn1_1_1 : () => void, Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) >b1 : ClassB, Symbol(b1, Decl(typeResolution.ts, 12, 23)) >BisIn1_1_1 : () => void, Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); >b2 : ClassB, Symbol(b2, Decl(typeResolution.ts, 13, 23)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassB : ClassB, Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) >b2.BisIn1_1_1() : void >b2.BisIn1_1_1 : () => void, Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) >b2 : ClassB, Symbol(b2, Decl(typeResolution.ts, 13, 23)) >BisIn1_1_1 : () => void, Symbol(ClassB.BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) // Type only accessible from the root var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); >c1 : SubModule2.SubSubModule2.ClassA, Symbol(c1, Decl(typeResolution.ts, 16, 23)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule2 : any, Symbol(SubModule2, Decl(typeResolution.ts, 73, 5)) >SubSubModule2 : any, Symbol(SubModule2.SubSubModule2, Decl(typeResolution.ts, 75, 30)) >ClassA : SubModule2.SubSubModule2.ClassA, Symbol(SubModule2.SubSubModule2.ClassA, Decl(typeResolution.ts, 76, 37)) >c1.AisIn1_2_2() : void >c1.AisIn1_2_2 : () => void, Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) >c1 : SubModule2.SubSubModule2.ClassA, Symbol(c1, Decl(typeResolution.ts, 16, 23)) >AisIn1_2_2 : () => void, Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) // Interface reference var d1: InterfaceX; d1.XisIn1_1_1(); >d1 : InterfaceX, Symbol(d1, Decl(typeResolution.ts, 19, 23)) >InterfaceX : InterfaceX, Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) >d1.XisIn1_1_1() : any >d1.XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) >d1 : InterfaceX, Symbol(d1, Decl(typeResolution.ts, 19, 23)) >XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); >d2 : InterfaceX, Symbol(d2, Decl(typeResolution.ts, 20, 23)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >InterfaceX : InterfaceX, Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) >d2.XisIn1_1_1() : any >d2.XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) >d2 : InterfaceX, Symbol(d2, Decl(typeResolution.ts, 20, 23)) >XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) } } export class ClassB { >ClassB : ClassB, Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) public BisIn1_1_1() { >BisIn1_1_1 : () => void, Symbol(BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) /** Exactly the same as above in AisIn1_1_1 **/ // Try all qualified names of this type var a1: ClassA; a1.AisIn1_1_1(); >a1 : ClassA, Symbol(a1, Decl(typeResolution.ts, 28, 23)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a1.AisIn1_1_1() : void >a1.AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a1 : ClassA, Symbol(a1, Decl(typeResolution.ts, 28, 23)) >AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); >a2 : ClassA, Symbol(a2, Decl(typeResolution.ts, 29, 23)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a2.AisIn1_1_1() : void >a2.AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a2 : ClassA, Symbol(a2, Decl(typeResolution.ts, 29, 23)) >AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); >a3 : ClassA, Symbol(a3, Decl(typeResolution.ts, 30, 23)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a3.AisIn1_1_1() : void >a3.AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a3 : ClassA, Symbol(a3, Decl(typeResolution.ts, 30, 23)) >AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); >a4 : ClassA, Symbol(a4, Decl(typeResolution.ts, 31, 23)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a4.AisIn1_1_1() : void >a4.AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a4 : ClassA, Symbol(a4, Decl(typeResolution.ts, 31, 23)) >AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) // Two variants of qualifying a peer type var b1: ClassB; b1.BisIn1_1_1(); >b1 : ClassB, Symbol(b1, Decl(typeResolution.ts, 34, 23)) >ClassB : ClassB, Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) >b1.BisIn1_1_1() : void >b1.BisIn1_1_1 : () => void, Symbol(BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) >b1 : ClassB, Symbol(b1, Decl(typeResolution.ts, 34, 23)) >BisIn1_1_1 : () => void, Symbol(BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1(); >b2 : ClassB, Symbol(b2, Decl(typeResolution.ts, 35, 23)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassB : ClassB, Symbol(ClassB, Decl(typeResolution.ts, 22, 13)) >b2.BisIn1_1_1() : void >b2.BisIn1_1_1 : () => void, Symbol(BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) >b2 : ClassB, Symbol(b2, Decl(typeResolution.ts, 35, 23)) >BisIn1_1_1 : () => void, Symbol(BisIn1_1_1, Decl(typeResolution.ts, 23, 33)) // Type only accessible from the root var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); >c1 : SubModule2.SubSubModule2.ClassA, Symbol(c1, Decl(typeResolution.ts, 38, 23)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule2 : any, Symbol(SubModule2, Decl(typeResolution.ts, 73, 5)) >SubSubModule2 : any, Symbol(SubModule2.SubSubModule2, Decl(typeResolution.ts, 75, 30)) >ClassA : SubModule2.SubSubModule2.ClassA, Symbol(SubModule2.SubSubModule2.ClassA, Decl(typeResolution.ts, 76, 37)) >c1.AisIn1_2_2() : void >c1.AisIn1_2_2 : () => void, Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) >c1 : SubModule2.SubSubModule2.ClassA, Symbol(c1, Decl(typeResolution.ts, 38, 23)) >AisIn1_2_2 : () => void, Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); >c2 : TopLevelModule2.SubModule3.ClassA, Symbol(c2, Decl(typeResolution.ts, 39, 23)) >TopLevelModule2 : any, Symbol(TopLevelModule2, Decl(typeResolution.ts, 99, 1)) >SubModule3 : any, Symbol(TopLevelModule2.SubModule3, Decl(typeResolution.ts, 101, 24)) >ClassA : TopLevelModule2.SubModule3.ClassA, Symbol(TopLevelModule2.SubModule3.ClassA, Decl(typeResolution.ts, 102, 30)) >c2.AisIn2_3() : void >c2.AisIn2_3 : () => void, Symbol(TopLevelModule2.SubModule3.ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) >c2 : TopLevelModule2.SubModule3.ClassA, Symbol(c2, Decl(typeResolution.ts, 39, 23)) >AisIn2_3 : () => void, Symbol(TopLevelModule2.SubModule3.ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) // Interface reference var d1: InterfaceX; d1.XisIn1_1_1(); >d1 : InterfaceX, Symbol(d1, Decl(typeResolution.ts, 42, 23)) >InterfaceX : InterfaceX, Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) >d1.XisIn1_1_1() : any >d1.XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) >d1 : InterfaceX, Symbol(d1, Decl(typeResolution.ts, 42, 23)) >XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); >d2 : InterfaceX, Symbol(d2, Decl(typeResolution.ts, 43, 23)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >InterfaceX : InterfaceX, Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) >d2.XisIn1_1_1() : any >d2.XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) >d2 : InterfaceX, Symbol(d2, Decl(typeResolution.ts, 43, 23)) >XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) } } export interface InterfaceX { XisIn1_1_1(); } >InterfaceX : InterfaceX, Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) >XisIn1_1_1 : () => any, Symbol(XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) class NonExportedClassQ { >NonExportedClassQ : NonExportedClassQ, Symbol(NonExportedClassQ, Decl(typeResolution.ts, 46, 57)) constructor() { function QQ() { >QQ : () => void, Symbol(QQ, Decl(typeResolution.ts, 48, 31)) /* Sampling of stuff from AisIn1_1_1 */ var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); >a4 : ClassA, Symbol(a4, Decl(typeResolution.ts, 51, 27)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 2, 37)) >a4.AisIn1_1_1() : void >a4.AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a4 : ClassA, Symbol(a4, Decl(typeResolution.ts, 51, 27)) >AisIn1_1_1 : () => void, Symbol(ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2(); >c1 : SubModule2.SubSubModule2.ClassA, Symbol(c1, Decl(typeResolution.ts, 52, 27)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule2 : any, Symbol(SubModule2, Decl(typeResolution.ts, 73, 5)) >SubSubModule2 : any, Symbol(SubModule2.SubSubModule2, Decl(typeResolution.ts, 75, 30)) >ClassA : SubModule2.SubSubModule2.ClassA, Symbol(SubModule2.SubSubModule2.ClassA, Decl(typeResolution.ts, 76, 37)) >c1.AisIn1_2_2() : void >c1.AisIn1_2_2 : () => void, Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) >c1 : SubModule2.SubSubModule2.ClassA, Symbol(c1, Decl(typeResolution.ts, 52, 27)) >AisIn1_2_2 : () => void, Symbol(SubModule2.SubSubModule2.ClassA.AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) var d1: InterfaceX; d1.XisIn1_1_1(); >d1 : InterfaceX, Symbol(d1, Decl(typeResolution.ts, 53, 27)) >InterfaceX : InterfaceX, Symbol(InterfaceX, Decl(typeResolution.ts, 45, 13)) >d1.XisIn1_1_1() : any >d1.XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) >d1 : InterfaceX, Symbol(d1, Decl(typeResolution.ts, 53, 27)) >XisIn1_1_1 : () => any, Symbol(InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3(); >c2 : TopLevelModule2.SubModule3.ClassA, Symbol(c2, Decl(typeResolution.ts, 54, 27)) >TopLevelModule2 : any, Symbol(TopLevelModule2, Decl(typeResolution.ts, 99, 1)) >SubModule3 : any, Symbol(TopLevelModule2.SubModule3, Decl(typeResolution.ts, 101, 24)) >ClassA : TopLevelModule2.SubModule3.ClassA, Symbol(TopLevelModule2.SubModule3.ClassA, Decl(typeResolution.ts, 102, 30)) >c2.AisIn2_3() : void >c2.AisIn2_3 : () => void, Symbol(TopLevelModule2.SubModule3.ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) >c2 : TopLevelModule2.SubModule3.ClassA, Symbol(c2, Decl(typeResolution.ts, 54, 27)) >AisIn2_3 : () => void, Symbol(TopLevelModule2.SubModule3.ClassA.AisIn2_3, Decl(typeResolution.ts, 103, 29)) } } } } // Should have no effect on S1.SS1.ClassA above because it is not exported class ClassA { >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 58, 9)) constructor() { function AA() { >AA : () => void, Symbol(AA, Decl(typeResolution.ts, 62, 27)) var a2: SubSubModule1.ClassA; a2.AisIn1_1_1(); >a2 : SubSubModule1.ClassA, Symbol(a2, Decl(typeResolution.ts, 64, 23)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : SubSubModule1.ClassA, Symbol(SubSubModule1.ClassA, Decl(typeResolution.ts, 2, 37)) >a2.AisIn1_1_1() : void >a2.AisIn1_1_1 : () => void, Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a2 : SubSubModule1.ClassA, Symbol(a2, Decl(typeResolution.ts, 64, 23)) >AisIn1_1_1 : () => void, Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1(); >a3 : SubSubModule1.ClassA, Symbol(a3, Decl(typeResolution.ts, 65, 23)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : SubSubModule1.ClassA, Symbol(SubSubModule1.ClassA, Decl(typeResolution.ts, 2, 37)) >a3.AisIn1_1_1() : void >a3.AisIn1_1_1 : () => void, Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a3 : SubSubModule1.ClassA, Symbol(a3, Decl(typeResolution.ts, 65, 23)) >AisIn1_1_1 : () => void, Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1(); >a4 : SubSubModule1.ClassA, Symbol(a4, Decl(typeResolution.ts, 66, 23)) >TopLevelModule1 : any, Symbol(TopLevelModule1, Decl(typeResolution.ts, 0, 0)) >SubModule1 : any, Symbol(SubModule1, Decl(typeResolution.ts, 0, 31)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >ClassA : SubSubModule1.ClassA, Symbol(SubSubModule1.ClassA, Decl(typeResolution.ts, 2, 37)) >a4.AisIn1_1_1() : void >a4.AisIn1_1_1 : () => void, Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) >a4 : SubSubModule1.ClassA, Symbol(a4, Decl(typeResolution.ts, 66, 23)) >AisIn1_1_1 : () => void, Symbol(SubSubModule1.ClassA.AisIn1_1_1, Decl(typeResolution.ts, 3, 33)) // Interface reference var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1(); >d2 : SubSubModule1.InterfaceX, Symbol(d2, Decl(typeResolution.ts, 69, 23)) >SubSubModule1 : any, Symbol(SubSubModule1, Decl(typeResolution.ts, 1, 30)) >InterfaceX : SubSubModule1.InterfaceX, Symbol(SubSubModule1.InterfaceX, Decl(typeResolution.ts, 45, 13)) >d2.XisIn1_1_1() : any >d2.XisIn1_1_1 : () => any, Symbol(SubSubModule1.InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) >d2 : SubSubModule1.InterfaceX, Symbol(d2, Decl(typeResolution.ts, 69, 23)) >XisIn1_1_1 : () => any, Symbol(SubSubModule1.InterfaceX.XisIn1_1_1, Decl(typeResolution.ts, 46, 41)) } } } } export module SubModule2 { >SubModule2 : typeof SubModule2, Symbol(SubModule2, Decl(typeResolution.ts, 73, 5)) export module SubSubModule2 { >SubSubModule2 : typeof SubSubModule2, Symbol(SubSubModule2, Decl(typeResolution.ts, 75, 30)) // No code here since these are the mirror of the above calls export class ClassA { public AisIn1_2_2() { } } >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 76, 37)) >AisIn1_2_2 : () => void, Symbol(AisIn1_2_2, Decl(typeResolution.ts, 78, 33)) export class ClassB { public BisIn1_2_2() { } } >ClassB : ClassB, Symbol(ClassB, Decl(typeResolution.ts, 78, 59)) >BisIn1_2_2 : () => void, Symbol(BisIn1_2_2, Decl(typeResolution.ts, 79, 33)) export class ClassC { public CisIn1_2_2() { } } >ClassC : ClassC, Symbol(ClassC, Decl(typeResolution.ts, 79, 59)) >CisIn1_2_2 : () => void, Symbol(CisIn1_2_2, Decl(typeResolution.ts, 80, 33)) export interface InterfaceY { YisIn1_2_2(); } >InterfaceY : InterfaceY, Symbol(InterfaceY, Decl(typeResolution.ts, 80, 59)) >YisIn1_2_2 : () => any, Symbol(YisIn1_2_2, Decl(typeResolution.ts, 81, 41)) interface NonExportedInterfaceQ { } >NonExportedInterfaceQ : NonExportedInterfaceQ, Symbol(NonExportedInterfaceQ, Decl(typeResolution.ts, 81, 57)) } export interface InterfaceY { YisIn1_2(); } >InterfaceY : InterfaceY, Symbol(InterfaceY, Decl(typeResolution.ts, 83, 9)) >YisIn1_2 : () => any, Symbol(YisIn1_2, Decl(typeResolution.ts, 85, 37)) } class ClassA { >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 86, 5)) public AisIn1() { } >AisIn1 : () => void, Symbol(AisIn1, Decl(typeResolution.ts, 88, 18)) } interface InterfaceY { >InterfaceY : InterfaceY, Symbol(InterfaceY, Decl(typeResolution.ts, 90, 5)) YisIn1(); >YisIn1 : () => any, Symbol(YisIn1, Decl(typeResolution.ts, 92, 26)) } module NotExportedModule { >NotExportedModule : typeof NotExportedModule, Symbol(NotExportedModule, Decl(typeResolution.ts, 94, 5)) export class ClassA { } >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 96, 30)) } } module TopLevelModule2 { >TopLevelModule2 : typeof TopLevelModule2, Symbol(TopLevelModule2, Decl(typeResolution.ts, 99, 1)) export module SubModule3 { >SubModule3 : typeof SubModule3, Symbol(SubModule3, Decl(typeResolution.ts, 101, 24)) export class ClassA { >ClassA : ClassA, Symbol(ClassA, Decl(typeResolution.ts, 102, 30)) public AisIn2_3() { } >AisIn2_3 : () => void, Symbol(AisIn2_3, Decl(typeResolution.ts, 103, 29)) } } }