===================================================================
JsFile: typeResolution.js
mapUrl: typeResolution.js.map
sourceRoot: 
sources: typeResolution.ts
===================================================================
-------------------------------------------------------------------
emittedFile:typeResolution.js
sourceFile:typeResolution.ts
-------------------------------------------------------------------
>>>"use strict";
>>>Object.defineProperty(exports, "__esModule", { value: true });
>>>exports.TopLevelModule1 = void 0;
>>>var TopLevelModule1;
1 >
2 >^^^^
3 >    ^^^^^^^^^^^^^^^
4 >                   ^
5 >                    ^^^^^^^^^^->
1 >
2 >export namespace 
3 >    TopLevelModule1
4 >                    {
  >                       export namespace SubModule1 {
  >                           export namespace SubSubModule1 {
  >                               export class ClassA {
  >                                   public AisIn1_1_1() {
  >                                       // Try all qualified names of this type
  >                                       var a1: ClassA; a1.AisIn1_1_1();
  >                                       var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                       var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                       var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                       
  >                                       // Two variants of qualifying a peer type
  >                                       var b1: ClassB; b1.BisIn1_1_1();
  >                                       var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                       
  >                                       // Type only accessible from the root
  >                                       var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                       
  >                                       // Interface reference
  >                                       var d1: InterfaceX; d1.XisIn1_1_1();
  >                                       var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                   }
  >                               }
  >                               export class ClassB {
  >                                   public BisIn1_1_1() {
  >                                       /** Exactly the same as above in AisIn1_1_1 **/
  >                                       
  >                                       // Try all qualified names of this type
  >                                       var a1: ClassA; a1.AisIn1_1_1();
  >                                       var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                       var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                       var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                       
  >                                       // Two variants of qualifying a peer type
  >                                       var b1: ClassB; b1.BisIn1_1_1();
  >                                       var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                       
  >                                       // Type only accessible from the root
  >                                       var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                       var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                       
  >                                       // Interface reference
  >                                       var d1: InterfaceX; d1.XisIn1_1_1();
  >                                       var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                   }
  >                               }
  >                               export interface InterfaceX { XisIn1_1_1(); }
  >                               class NonExportedClassQ {
  >                                   constructor() {
  >                                       function QQ() {
  >                                           /* Sampling of stuff from AisIn1_1_1 */
  >                                           var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                           var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                           var d1: InterfaceX; d1.XisIn1_1_1();
  >                                           var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                       }
  >                                   }
  >                               }
  >                           }
  >                           
  >                           // Should have no effect on S1.SS1.ClassA above because it is not exported
  >                           class ClassA {
  >                               constructor() {
  >                                   function AA() {
  >                                       var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                       var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                       var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                       
  >                                       // Interface reference
  >                                       var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                   }
  >                               }
  >                           }
  >                       }
  >                   
  >                       export namespace SubModule2 {
  >                           export namespace SubSubModule2 {
  >                               // No code here since these are the mirror of the above calls
  >                               export class ClassA { public AisIn1_2_2() { } }
  >                               export class ClassB { public BisIn1_2_2() { } }
  >                               export class ClassC { public CisIn1_2_2() { } }
  >                               export interface InterfaceY { YisIn1_2_2(); }
  >                               interface NonExportedInterfaceQ { }
  >                           }
  >                           
  >                           export interface InterfaceY { YisIn1_2(); }
  >                       }
  >                       
  >                       class ClassA {
  >                           public AisIn1() { }
  >                       }
  >                   
  >                       interface InterfaceY {
  >                           YisIn1();
  >                       }
  >                       
  >                       namespace NotExportedModule {
  >                           export class ClassA { }
  >                       }
  >                   }
1 >Emitted(4, 1) Source(1, 1) + SourceIndex(0)
2 >Emitted(4, 5) Source(1, 18) + SourceIndex(0)
3 >Emitted(4, 20) Source(1, 33) + SourceIndex(0)
4 >Emitted(4, 21) Source(100, 2) + SourceIndex(0)
---
>>>(function (TopLevelModule1) {
1->
2 >^^^^^^^^^^^
3 >           ^^^^^^^^^^^^^^^
1->
2 >export namespace 
3 >           TopLevelModule1
1->Emitted(5, 1) Source(1, 1) + SourceIndex(0)
2 >Emitted(5, 12) Source(1, 18) + SourceIndex(0)
3 >Emitted(5, 27) Source(1, 33) + SourceIndex(0)
---
>>>    let SubModule1;
1 >^^^^
2 >    ^^^^
3 >        ^^^^^^^^^^
4 >                  ^
5 >                   ^^^^^^^^^^->
1 > {
  >    
2 >    export namespace 
3 >        SubModule1
4 >                   {
  >                          export namespace SubSubModule1 {
  >                              export class ClassA {
  >                                  public AisIn1_1_1() {
  >                                      // Try all qualified names of this type
  >                                      var a1: ClassA; a1.AisIn1_1_1();
  >                                      var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                      var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                      var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                      
  >                                      // Two variants of qualifying a peer type
  >                                      var b1: ClassB; b1.BisIn1_1_1();
  >                                      var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                      
  >                                      // Type only accessible from the root
  >                                      var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                      
  >                                      // Interface reference
  >                                      var d1: InterfaceX; d1.XisIn1_1_1();
  >                                      var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                  }
  >                              }
  >                              export class ClassB {
  >                                  public BisIn1_1_1() {
  >                                      /** Exactly the same as above in AisIn1_1_1 **/
  >                                      
  >                                      // Try all qualified names of this type
  >                                      var a1: ClassA; a1.AisIn1_1_1();
  >                                      var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                      var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                      var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                      
  >                                      // Two variants of qualifying a peer type
  >                                      var b1: ClassB; b1.BisIn1_1_1();
  >                                      var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                      
  >                                      // Type only accessible from the root
  >                                      var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                      var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                      
  >                                      // Interface reference
  >                                      var d1: InterfaceX; d1.XisIn1_1_1();
  >                                      var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                  }
  >                              }
  >                              export interface InterfaceX { XisIn1_1_1(); }
  >                              class NonExportedClassQ {
  >                                  constructor() {
  >                                      function QQ() {
  >                                          /* Sampling of stuff from AisIn1_1_1 */
  >                                          var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                          var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                          var d1: InterfaceX; d1.XisIn1_1_1();
  >                                          var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                      }
  >                                  }
  >                              }
  >                          }
  >                          
  >                          // Should have no effect on S1.SS1.ClassA above because it is not exported
  >                          class ClassA {
  >                              constructor() {
  >                                  function AA() {
  >                                      var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                      var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                      var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                      
  >                                      // Interface reference
  >                                      var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                  }
  >                              }
  >                          }
  >                      }
1 >Emitted(6, 5) Source(2, 5) + SourceIndex(0)
2 >Emitted(6, 9) Source(2, 22) + SourceIndex(0)
3 >Emitted(6, 19) Source(2, 32) + SourceIndex(0)
4 >Emitted(6, 20) Source(74, 6) + SourceIndex(0)
---
>>>    (function (SubModule1) {
1->^^^^
2 >    ^^^^^^^^^^^
3 >               ^^^^^^^^^^
4 >                         ^^->
1->
2 >    export namespace 
3 >               SubModule1
1->Emitted(7, 5) Source(2, 5) + SourceIndex(0)
2 >Emitted(7, 16) Source(2, 22) + SourceIndex(0)
3 >Emitted(7, 26) Source(2, 32) + SourceIndex(0)
---
>>>        let SubSubModule1;
1->^^^^^^^^
2 >        ^^^^
3 >            ^^^^^^^^^^^^^
4 >                         ^
5 >                          ^^^^^^^^^^->
1-> {
  >        
2 >        export namespace 
3 >            SubSubModule1
4 >                          {
  >                                     export class ClassA {
  >                                         public AisIn1_1_1() {
  >                                             // Try all qualified names of this type
  >                                             var a1: ClassA; a1.AisIn1_1_1();
  >                                             var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                             var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                             var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                             
  >                                             // Two variants of qualifying a peer type
  >                                             var b1: ClassB; b1.BisIn1_1_1();
  >                                             var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                             
  >                                             // Type only accessible from the root
  >                                             var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                             
  >                                             // Interface reference
  >                                             var d1: InterfaceX; d1.XisIn1_1_1();
  >                                             var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                         }
  >                                     }
  >                                     export class ClassB {
  >                                         public BisIn1_1_1() {
  >                                             /** Exactly the same as above in AisIn1_1_1 **/
  >                                             
  >                                             // Try all qualified names of this type
  >                                             var a1: ClassA; a1.AisIn1_1_1();
  >                                             var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                             var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                             var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                             
  >                                             // Two variants of qualifying a peer type
  >                                             var b1: ClassB; b1.BisIn1_1_1();
  >                                             var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                             
  >                                             // Type only accessible from the root
  >                                             var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                             var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                             
  >                                             // Interface reference
  >                                             var d1: InterfaceX; d1.XisIn1_1_1();
  >                                             var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                         }
  >                                     }
  >                                     export interface InterfaceX { XisIn1_1_1(); }
  >                                     class NonExportedClassQ {
  >                                         constructor() {
  >                                             function QQ() {
  >                                                 /* Sampling of stuff from AisIn1_1_1 */
  >                                                 var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                 var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                 var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                 var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                             }
  >                                         }
  >                                     }
  >                                 }
1->Emitted(8, 9) Source(3, 9) + SourceIndex(0)
2 >Emitted(8, 13) Source(3, 26) + SourceIndex(0)
3 >Emitted(8, 26) Source(3, 39) + SourceIndex(0)
4 >Emitted(8, 27) Source(59, 10) + SourceIndex(0)
---
>>>        (function (SubSubModule1) {
1->^^^^^^^^
2 >        ^^^^^^^^^^^
3 >                   ^^^^^^^^^^^^^
1->
2 >        export namespace 
3 >                   SubSubModule1
1->Emitted(9, 9) Source(3, 9) + SourceIndex(0)
2 >Emitted(9, 20) Source(3, 26) + SourceIndex(0)
3 >Emitted(9, 33) Source(3, 39) + SourceIndex(0)
---
>>>            class ClassA {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^
4 >                        ^^^^^^^->
1 > {
  >            
2 >            export class 
3 >                  ClassA
1 >Emitted(10, 13) Source(4, 13) + SourceIndex(0)
2 >Emitted(10, 19) Source(4, 26) + SourceIndex(0)
3 >Emitted(10, 25) Source(4, 32) + SourceIndex(0)
---
>>>                AisIn1_1_1() {
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^
3 >                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1-> {
  >                public 
2 >                AisIn1_1_1
1->Emitted(11, 17) Source(5, 24) + SourceIndex(0)
2 >Emitted(11, 27) Source(5, 34) + SourceIndex(0)
---
>>>                    // Try all qualified names of this type
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->() {
  >                    
2 >                    // Try all qualified names of this type
1->Emitted(12, 21) Source(6, 21) + SourceIndex(0)
2 >Emitted(12, 60) Source(6, 60) + SourceIndex(0)
---
>>>                    var a1;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a1: ClassA
4 >                          ;
1 >Emitted(13, 21) Source(7, 21) + SourceIndex(0)
2 >Emitted(13, 25) Source(7, 25) + SourceIndex(0)
3 >Emitted(13, 27) Source(7, 35) + SourceIndex(0)
4 >Emitted(13, 28) Source(7, 36) + SourceIndex(0)
---
>>>                    a1.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    a1
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(14, 21) Source(7, 37) + SourceIndex(0)
2 >Emitted(14, 23) Source(7, 39) + SourceIndex(0)
3 >Emitted(14, 24) Source(7, 40) + SourceIndex(0)
4 >Emitted(14, 34) Source(7, 50) + SourceIndex(0)
5 >Emitted(14, 36) Source(7, 52) + SourceIndex(0)
6 >Emitted(14, 37) Source(7, 53) + SourceIndex(0)
---
>>>                    var a2;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a2: SubSubModule1.ClassA
4 >                          ;
1 >Emitted(15, 21) Source(8, 21) + SourceIndex(0)
2 >Emitted(15, 25) Source(8, 25) + SourceIndex(0)
3 >Emitted(15, 27) Source(8, 49) + SourceIndex(0)
4 >Emitted(15, 28) Source(8, 50) + SourceIndex(0)
---
>>>                    a2.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    a2
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(16, 21) Source(8, 51) + SourceIndex(0)
2 >Emitted(16, 23) Source(8, 53) + SourceIndex(0)
3 >Emitted(16, 24) Source(8, 54) + SourceIndex(0)
4 >Emitted(16, 34) Source(8, 64) + SourceIndex(0)
5 >Emitted(16, 36) Source(8, 66) + SourceIndex(0)
6 >Emitted(16, 37) Source(8, 67) + SourceIndex(0)
---
>>>                    var a3;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a3: SubModule1.SubSubModule1.ClassA
4 >                          ;
1 >Emitted(17, 21) Source(9, 21) + SourceIndex(0)
2 >Emitted(17, 25) Source(9, 25) + SourceIndex(0)
3 >Emitted(17, 27) Source(9, 60) + SourceIndex(0)
4 >Emitted(17, 28) Source(9, 61) + SourceIndex(0)
---
>>>                    a3.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    a3
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(18, 21) Source(9, 62) + SourceIndex(0)
2 >Emitted(18, 23) Source(9, 64) + SourceIndex(0)
3 >Emitted(18, 24) Source(9, 65) + SourceIndex(0)
4 >Emitted(18, 34) Source(9, 75) + SourceIndex(0)
5 >Emitted(18, 36) Source(9, 77) + SourceIndex(0)
6 >Emitted(18, 37) Source(9, 78) + SourceIndex(0)
---
>>>                    var a4;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA
4 >                          ;
1 >Emitted(19, 21) Source(10, 21) + SourceIndex(0)
2 >Emitted(19, 25) Source(10, 25) + SourceIndex(0)
3 >Emitted(19, 27) Source(10, 76) + SourceIndex(0)
4 >Emitted(19, 28) Source(10, 77) + SourceIndex(0)
---
>>>                    a4.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
7 >                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^->
1-> 
2 >                    a4
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(20, 21) Source(10, 78) + SourceIndex(0)
2 >Emitted(20, 23) Source(10, 80) + SourceIndex(0)
3 >Emitted(20, 24) Source(10, 81) + SourceIndex(0)
4 >Emitted(20, 34) Source(10, 91) + SourceIndex(0)
5 >Emitted(20, 36) Source(10, 93) + SourceIndex(0)
6 >Emitted(20, 37) Source(10, 94) + SourceIndex(0)
---
>>>                    // Two variants of qualifying a peer type
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                    // Two variants of qualifying a peer type
1->Emitted(21, 21) Source(12, 21) + SourceIndex(0)
2 >Emitted(21, 62) Source(12, 62) + SourceIndex(0)
---
>>>                    var b1;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        b1: ClassB
4 >                          ;
1 >Emitted(22, 21) Source(13, 21) + SourceIndex(0)
2 >Emitted(22, 25) Source(13, 25) + SourceIndex(0)
3 >Emitted(22, 27) Source(13, 35) + SourceIndex(0)
4 >Emitted(22, 28) Source(13, 36) + SourceIndex(0)
---
>>>                    b1.BisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    b1
3 >                      .
4 >                       BisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(23, 21) Source(13, 37) + SourceIndex(0)
2 >Emitted(23, 23) Source(13, 39) + SourceIndex(0)
3 >Emitted(23, 24) Source(13, 40) + SourceIndex(0)
4 >Emitted(23, 34) Source(13, 50) + SourceIndex(0)
5 >Emitted(23, 36) Source(13, 52) + SourceIndex(0)
6 >Emitted(23, 37) Source(13, 53) + SourceIndex(0)
---
>>>                    var b2;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB
4 >                          ;
1 >Emitted(24, 21) Source(14, 21) + SourceIndex(0)
2 >Emitted(24, 25) Source(14, 25) + SourceIndex(0)
3 >Emitted(24, 27) Source(14, 76) + SourceIndex(0)
4 >Emitted(24, 28) Source(14, 77) + SourceIndex(0)
---
>>>                    b2.BisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
7 >                                    ^^^^^^^^^^^^^^^^^^^^^^->
1-> 
2 >                    b2
3 >                      .
4 >                       BisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(25, 21) Source(14, 78) + SourceIndex(0)
2 >Emitted(25, 23) Source(14, 80) + SourceIndex(0)
3 >Emitted(25, 24) Source(14, 81) + SourceIndex(0)
4 >Emitted(25, 34) Source(14, 91) + SourceIndex(0)
5 >Emitted(25, 36) Source(14, 93) + SourceIndex(0)
6 >Emitted(25, 37) Source(14, 94) + SourceIndex(0)
---
>>>                    // Type only accessible from the root
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                    // Type only accessible from the root
1->Emitted(26, 21) Source(16, 21) + SourceIndex(0)
2 >Emitted(26, 58) Source(16, 58) + SourceIndex(0)
---
>>>                    var c1;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA
4 >                          ;
1 >Emitted(27, 21) Source(17, 21) + SourceIndex(0)
2 >Emitted(27, 25) Source(17, 25) + SourceIndex(0)
3 >Emitted(27, 27) Source(17, 76) + SourceIndex(0)
4 >Emitted(27, 28) Source(17, 77) + SourceIndex(0)
---
>>>                    c1.AisIn1_2_2();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
7 >                                    ^^^^^^^->
1-> 
2 >                    c1
3 >                      .
4 >                       AisIn1_2_2
5 >                                 ()
6 >                                   ;
1->Emitted(28, 21) Source(17, 78) + SourceIndex(0)
2 >Emitted(28, 23) Source(17, 80) + SourceIndex(0)
3 >Emitted(28, 24) Source(17, 81) + SourceIndex(0)
4 >Emitted(28, 34) Source(17, 91) + SourceIndex(0)
5 >Emitted(28, 36) Source(17, 93) + SourceIndex(0)
6 >Emitted(28, 37) Source(17, 94) + SourceIndex(0)
---
>>>                    // Interface reference
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                    // Interface reference
1->Emitted(29, 21) Source(19, 21) + SourceIndex(0)
2 >Emitted(29, 43) Source(19, 43) + SourceIndex(0)
---
>>>                    var d1;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        d1: InterfaceX
4 >                          ;
1 >Emitted(30, 21) Source(20, 21) + SourceIndex(0)
2 >Emitted(30, 25) Source(20, 25) + SourceIndex(0)
3 >Emitted(30, 27) Source(20, 39) + SourceIndex(0)
4 >Emitted(30, 28) Source(20, 40) + SourceIndex(0)
---
>>>                    d1.XisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    d1
3 >                      .
4 >                       XisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(31, 21) Source(20, 41) + SourceIndex(0)
2 >Emitted(31, 23) Source(20, 43) + SourceIndex(0)
3 >Emitted(31, 24) Source(20, 44) + SourceIndex(0)
4 >Emitted(31, 34) Source(20, 54) + SourceIndex(0)
5 >Emitted(31, 36) Source(20, 56) + SourceIndex(0)
6 >Emitted(31, 37) Source(20, 57) + SourceIndex(0)
---
>>>                    var d2;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        d2: SubSubModule1.InterfaceX
4 >                          ;
1 >Emitted(32, 21) Source(21, 21) + SourceIndex(0)
2 >Emitted(32, 25) Source(21, 25) + SourceIndex(0)
3 >Emitted(32, 27) Source(21, 53) + SourceIndex(0)
4 >Emitted(32, 28) Source(21, 54) + SourceIndex(0)
---
>>>                    d2.XisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    d2
3 >                      .
4 >                       XisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(33, 21) Source(21, 55) + SourceIndex(0)
2 >Emitted(33, 23) Source(21, 57) + SourceIndex(0)
3 >Emitted(33, 24) Source(21, 58) + SourceIndex(0)
4 >Emitted(33, 34) Source(21, 68) + SourceIndex(0)
5 >Emitted(33, 36) Source(21, 70) + SourceIndex(0)
6 >Emitted(33, 37) Source(21, 71) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^
2 >                ^
1 >
  >                
2 >                }
1 >Emitted(34, 17) Source(22, 17) + SourceIndex(0)
2 >Emitted(34, 18) Source(22, 18) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >            }
1 >Emitted(35, 14) Source(23, 14) + SourceIndex(0)
---
>>>            SubSubModule1.ClassA = ClassA;
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^
3 >                          ^^^^^^
4 >                                ^^^^^^^^^
5 >                                         ^
1->
2 >            
3 >                          ClassA
4 >                                 {
  >                                                public AisIn1_1_1() {
  >                                                    // Try all qualified names of this type
  >                                                    var a1: ClassA; a1.AisIn1_1_1();
  >                                                    var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                    var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                    var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                    
  >                                                    // Two variants of qualifying a peer type
  >                                                    var b1: ClassB; b1.BisIn1_1_1();
  >                                                    var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                                    
  >                                                    // Type only accessible from the root
  >                                                    var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                    
  >                                                    // Interface reference
  >                                                    var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                    var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                }
  >                                            }
5 >                                         
1->Emitted(36, 13) Source(4, 26) + SourceIndex(0)
2 >Emitted(36, 27) Source(4, 26) + SourceIndex(0)
3 >Emitted(36, 33) Source(4, 32) + SourceIndex(0)
4 >Emitted(36, 42) Source(23, 14) + SourceIndex(0)
5 >Emitted(36, 43) Source(23, 14) + SourceIndex(0)
---
>>>            class ClassB {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^
4 >                        ^^^^^^^->
1 >
  >            
2 >            export class 
3 >                  ClassB
1 >Emitted(37, 13) Source(24, 13) + SourceIndex(0)
2 >Emitted(37, 19) Source(24, 26) + SourceIndex(0)
3 >Emitted(37, 25) Source(24, 32) + SourceIndex(0)
---
>>>                BisIn1_1_1() {
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^
3 >                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1-> {
  >                public 
2 >                BisIn1_1_1
1->Emitted(38, 17) Source(25, 24) + SourceIndex(0)
2 >Emitted(38, 27) Source(25, 34) + SourceIndex(0)
---
>>>                    /** Exactly the same as above in AisIn1_1_1 **/
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->() {
  >                    
2 >                    /** Exactly the same as above in AisIn1_1_1 **/
1->Emitted(39, 21) Source(26, 21) + SourceIndex(0)
2 >Emitted(39, 68) Source(26, 68) + SourceIndex(0)
---
>>>                    // Try all qualified names of this type
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1 >
  >                    
  >                    
2 >                    // Try all qualified names of this type
1 >Emitted(40, 21) Source(28, 21) + SourceIndex(0)
2 >Emitted(40, 60) Source(28, 60) + SourceIndex(0)
---
>>>                    var a1;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a1: ClassA
4 >                          ;
1 >Emitted(41, 21) Source(29, 21) + SourceIndex(0)
2 >Emitted(41, 25) Source(29, 25) + SourceIndex(0)
3 >Emitted(41, 27) Source(29, 35) + SourceIndex(0)
4 >Emitted(41, 28) Source(29, 36) + SourceIndex(0)
---
>>>                    a1.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    a1
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(42, 21) Source(29, 37) + SourceIndex(0)
2 >Emitted(42, 23) Source(29, 39) + SourceIndex(0)
3 >Emitted(42, 24) Source(29, 40) + SourceIndex(0)
4 >Emitted(42, 34) Source(29, 50) + SourceIndex(0)
5 >Emitted(42, 36) Source(29, 52) + SourceIndex(0)
6 >Emitted(42, 37) Source(29, 53) + SourceIndex(0)
---
>>>                    var a2;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a2: SubSubModule1.ClassA
4 >                          ;
1 >Emitted(43, 21) Source(30, 21) + SourceIndex(0)
2 >Emitted(43, 25) Source(30, 25) + SourceIndex(0)
3 >Emitted(43, 27) Source(30, 49) + SourceIndex(0)
4 >Emitted(43, 28) Source(30, 50) + SourceIndex(0)
---
>>>                    a2.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    a2
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(44, 21) Source(30, 51) + SourceIndex(0)
2 >Emitted(44, 23) Source(30, 53) + SourceIndex(0)
3 >Emitted(44, 24) Source(30, 54) + SourceIndex(0)
4 >Emitted(44, 34) Source(30, 64) + SourceIndex(0)
5 >Emitted(44, 36) Source(30, 66) + SourceIndex(0)
6 >Emitted(44, 37) Source(30, 67) + SourceIndex(0)
---
>>>                    var a3;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a3: SubModule1.SubSubModule1.ClassA
4 >                          ;
1 >Emitted(45, 21) Source(31, 21) + SourceIndex(0)
2 >Emitted(45, 25) Source(31, 25) + SourceIndex(0)
3 >Emitted(45, 27) Source(31, 60) + SourceIndex(0)
4 >Emitted(45, 28) Source(31, 61) + SourceIndex(0)
---
>>>                    a3.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    a3
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(46, 21) Source(31, 62) + SourceIndex(0)
2 >Emitted(46, 23) Source(31, 64) + SourceIndex(0)
3 >Emitted(46, 24) Source(31, 65) + SourceIndex(0)
4 >Emitted(46, 34) Source(31, 75) + SourceIndex(0)
5 >Emitted(46, 36) Source(31, 77) + SourceIndex(0)
6 >Emitted(46, 37) Source(31, 78) + SourceIndex(0)
---
>>>                    var a4;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA
4 >                          ;
1 >Emitted(47, 21) Source(32, 21) + SourceIndex(0)
2 >Emitted(47, 25) Source(32, 25) + SourceIndex(0)
3 >Emitted(47, 27) Source(32, 76) + SourceIndex(0)
4 >Emitted(47, 28) Source(32, 77) + SourceIndex(0)
---
>>>                    a4.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
7 >                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^->
1-> 
2 >                    a4
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(48, 21) Source(32, 78) + SourceIndex(0)
2 >Emitted(48, 23) Source(32, 80) + SourceIndex(0)
3 >Emitted(48, 24) Source(32, 81) + SourceIndex(0)
4 >Emitted(48, 34) Source(32, 91) + SourceIndex(0)
5 >Emitted(48, 36) Source(32, 93) + SourceIndex(0)
6 >Emitted(48, 37) Source(32, 94) + SourceIndex(0)
---
>>>                    // Two variants of qualifying a peer type
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                    // Two variants of qualifying a peer type
1->Emitted(49, 21) Source(34, 21) + SourceIndex(0)
2 >Emitted(49, 62) Source(34, 62) + SourceIndex(0)
---
>>>                    var b1;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        b1: ClassB
4 >                          ;
1 >Emitted(50, 21) Source(35, 21) + SourceIndex(0)
2 >Emitted(50, 25) Source(35, 25) + SourceIndex(0)
3 >Emitted(50, 27) Source(35, 35) + SourceIndex(0)
4 >Emitted(50, 28) Source(35, 36) + SourceIndex(0)
---
>>>                    b1.BisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    b1
3 >                      .
4 >                       BisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(51, 21) Source(35, 37) + SourceIndex(0)
2 >Emitted(51, 23) Source(35, 39) + SourceIndex(0)
3 >Emitted(51, 24) Source(35, 40) + SourceIndex(0)
4 >Emitted(51, 34) Source(35, 50) + SourceIndex(0)
5 >Emitted(51, 36) Source(35, 52) + SourceIndex(0)
6 >Emitted(51, 37) Source(35, 53) + SourceIndex(0)
---
>>>                    var b2;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB
4 >                          ;
1 >Emitted(52, 21) Source(36, 21) + SourceIndex(0)
2 >Emitted(52, 25) Source(36, 25) + SourceIndex(0)
3 >Emitted(52, 27) Source(36, 76) + SourceIndex(0)
4 >Emitted(52, 28) Source(36, 77) + SourceIndex(0)
---
>>>                    b2.BisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
7 >                                    ^^^^^^^^^^^^^^^^^^^^^^->
1-> 
2 >                    b2
3 >                      .
4 >                       BisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(53, 21) Source(36, 78) + SourceIndex(0)
2 >Emitted(53, 23) Source(36, 80) + SourceIndex(0)
3 >Emitted(53, 24) Source(36, 81) + SourceIndex(0)
4 >Emitted(53, 34) Source(36, 91) + SourceIndex(0)
5 >Emitted(53, 36) Source(36, 93) + SourceIndex(0)
6 >Emitted(53, 37) Source(36, 94) + SourceIndex(0)
---
>>>                    // Type only accessible from the root
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                    // Type only accessible from the root
1->Emitted(54, 21) Source(38, 21) + SourceIndex(0)
2 >Emitted(54, 58) Source(38, 58) + SourceIndex(0)
---
>>>                    var c1;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA
4 >                          ;
1 >Emitted(55, 21) Source(39, 21) + SourceIndex(0)
2 >Emitted(55, 25) Source(39, 25) + SourceIndex(0)
3 >Emitted(55, 27) Source(39, 76) + SourceIndex(0)
4 >Emitted(55, 28) Source(39, 77) + SourceIndex(0)
---
>>>                    c1.AisIn1_2_2();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    c1
3 >                      .
4 >                       AisIn1_2_2
5 >                                 ()
6 >                                   ;
1->Emitted(56, 21) Source(39, 78) + SourceIndex(0)
2 >Emitted(56, 23) Source(39, 80) + SourceIndex(0)
3 >Emitted(56, 24) Source(39, 81) + SourceIndex(0)
4 >Emitted(56, 34) Source(39, 91) + SourceIndex(0)
5 >Emitted(56, 36) Source(39, 93) + SourceIndex(0)
6 >Emitted(56, 37) Source(39, 94) + SourceIndex(0)
---
>>>                    var c2;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        c2: TopLevelModule2.SubModule3.ClassA
4 >                          ;
1 >Emitted(57, 21) Source(40, 21) + SourceIndex(0)
2 >Emitted(57, 25) Source(40, 25) + SourceIndex(0)
3 >Emitted(57, 27) Source(40, 62) + SourceIndex(0)
4 >Emitted(57, 28) Source(40, 63) + SourceIndex(0)
---
>>>                    c2.AisIn2_3();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^
5 >                               ^^
6 >                                 ^
7 >                                  ^^^^^^^^^->
1-> 
2 >                    c2
3 >                      .
4 >                       AisIn2_3
5 >                               ()
6 >                                 ;
1->Emitted(58, 21) Source(40, 64) + SourceIndex(0)
2 >Emitted(58, 23) Source(40, 66) + SourceIndex(0)
3 >Emitted(58, 24) Source(40, 67) + SourceIndex(0)
4 >Emitted(58, 32) Source(40, 75) + SourceIndex(0)
5 >Emitted(58, 34) Source(40, 77) + SourceIndex(0)
6 >Emitted(58, 35) Source(40, 78) + SourceIndex(0)
---
>>>                    // Interface reference
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                    // Interface reference
1->Emitted(59, 21) Source(42, 21) + SourceIndex(0)
2 >Emitted(59, 43) Source(42, 43) + SourceIndex(0)
---
>>>                    var d1;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        d1: InterfaceX
4 >                          ;
1 >Emitted(60, 21) Source(43, 21) + SourceIndex(0)
2 >Emitted(60, 25) Source(43, 25) + SourceIndex(0)
3 >Emitted(60, 27) Source(43, 39) + SourceIndex(0)
4 >Emitted(60, 28) Source(43, 40) + SourceIndex(0)
---
>>>                    d1.XisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    d1
3 >                      .
4 >                       XisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(61, 21) Source(43, 41) + SourceIndex(0)
2 >Emitted(61, 23) Source(43, 43) + SourceIndex(0)
3 >Emitted(61, 24) Source(43, 44) + SourceIndex(0)
4 >Emitted(61, 34) Source(43, 54) + SourceIndex(0)
5 >Emitted(61, 36) Source(43, 56) + SourceIndex(0)
6 >Emitted(61, 37) Source(43, 57) + SourceIndex(0)
---
>>>                    var d2;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        d2: SubSubModule1.InterfaceX
4 >                          ;
1 >Emitted(62, 21) Source(44, 21) + SourceIndex(0)
2 >Emitted(62, 25) Source(44, 25) + SourceIndex(0)
3 >Emitted(62, 27) Source(44, 53) + SourceIndex(0)
4 >Emitted(62, 28) Source(44, 54) + SourceIndex(0)
---
>>>                    d2.XisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    d2
3 >                      .
4 >                       XisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(63, 21) Source(44, 55) + SourceIndex(0)
2 >Emitted(63, 23) Source(44, 57) + SourceIndex(0)
3 >Emitted(63, 24) Source(44, 58) + SourceIndex(0)
4 >Emitted(63, 34) Source(44, 68) + SourceIndex(0)
5 >Emitted(63, 36) Source(44, 70) + SourceIndex(0)
6 >Emitted(63, 37) Source(44, 71) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^
2 >                ^
1 >
  >                
2 >                }
1 >Emitted(64, 17) Source(45, 17) + SourceIndex(0)
2 >Emitted(64, 18) Source(45, 18) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >            }
1 >Emitted(65, 14) Source(46, 14) + SourceIndex(0)
---
>>>            SubSubModule1.ClassB = ClassB;
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^
3 >                          ^^^^^^
4 >                                ^^^^^^^^^
5 >                                         ^
1->
2 >            
3 >                          ClassB
4 >                                 {
  >                                                public BisIn1_1_1() {
  >                                                    /** Exactly the same as above in AisIn1_1_1 **/
  >                                                    
  >                                                    // Try all qualified names of this type
  >                                                    var a1: ClassA; a1.AisIn1_1_1();
  >                                                    var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                    var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                    var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                    
  >                                                    // Two variants of qualifying a peer type
  >                                                    var b1: ClassB; b1.BisIn1_1_1();
  >                                                    var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                                    
  >                                                    // Type only accessible from the root
  >                                                    var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                    var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                                    
  >                                                    // Interface reference
  >                                                    var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                    var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                }
  >                                            }
5 >                                         
1->Emitted(66, 13) Source(24, 26) + SourceIndex(0)
2 >Emitted(66, 27) Source(24, 26) + SourceIndex(0)
3 >Emitted(66, 33) Source(24, 32) + SourceIndex(0)
4 >Emitted(66, 42) Source(46, 14) + SourceIndex(0)
5 >Emitted(66, 43) Source(46, 14) + SourceIndex(0)
---
>>>            class NonExportedClassQ {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^^^^^^^^^^^^
1 >
  >            export interface InterfaceX { XisIn1_1_1(); }
  >            
2 >            class 
3 >                  NonExportedClassQ
1 >Emitted(67, 13) Source(48, 13) + SourceIndex(0)
2 >Emitted(67, 19) Source(48, 19) + SourceIndex(0)
3 >Emitted(67, 36) Source(48, 36) + SourceIndex(0)
---
>>>                constructor() {
1 >^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^^^^^^^^^^^->
1 > {
  >                
1 >Emitted(68, 17) Source(49, 17) + SourceIndex(0)
---
>>>                    function QQ() {
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^
3 >                             ^^
4 >                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->constructor() {
  >                    
2 >                    function 
3 >                             QQ
1->Emitted(69, 21) Source(50, 21) + SourceIndex(0)
2 >Emitted(69, 30) Source(50, 30) + SourceIndex(0)
3 >Emitted(69, 32) Source(50, 32) + SourceIndex(0)
---
>>>                        /* Sampling of stuff from AisIn1_1_1 */
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->() {
  >                        
2 >                        /* Sampling of stuff from AisIn1_1_1 */
1->Emitted(70, 25) Source(51, 25) + SourceIndex(0)
2 >Emitted(70, 64) Source(51, 64) + SourceIndex(0)
---
>>>                        var a4;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                        
2 >                        var 
3 >                            a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA
4 >                              ;
1 >Emitted(71, 25) Source(52, 25) + SourceIndex(0)
2 >Emitted(71, 29) Source(52, 29) + SourceIndex(0)
3 >Emitted(71, 31) Source(52, 80) + SourceIndex(0)
4 >Emitted(71, 32) Source(52, 81) + SourceIndex(0)
---
>>>                        a4.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^
3 >                          ^
4 >                           ^^^^^^^^^^
5 >                                     ^^
6 >                                       ^
1-> 
2 >                        a4
3 >                          .
4 >                           AisIn1_1_1
5 >                                     ()
6 >                                       ;
1->Emitted(72, 25) Source(52, 82) + SourceIndex(0)
2 >Emitted(72, 27) Source(52, 84) + SourceIndex(0)
3 >Emitted(72, 28) Source(52, 85) + SourceIndex(0)
4 >Emitted(72, 38) Source(52, 95) + SourceIndex(0)
5 >Emitted(72, 40) Source(52, 97) + SourceIndex(0)
6 >Emitted(72, 41) Source(52, 98) + SourceIndex(0)
---
>>>                        var c1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                        
2 >                        var 
3 >                            c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA
4 >                              ;
1 >Emitted(73, 25) Source(53, 25) + SourceIndex(0)
2 >Emitted(73, 29) Source(53, 29) + SourceIndex(0)
3 >Emitted(73, 31) Source(53, 80) + SourceIndex(0)
4 >Emitted(73, 32) Source(53, 81) + SourceIndex(0)
---
>>>                        c1.AisIn1_2_2();
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^
3 >                          ^
4 >                           ^^^^^^^^^^
5 >                                     ^^
6 >                                       ^
1-> 
2 >                        c1
3 >                          .
4 >                           AisIn1_2_2
5 >                                     ()
6 >                                       ;
1->Emitted(74, 25) Source(53, 82) + SourceIndex(0)
2 >Emitted(74, 27) Source(53, 84) + SourceIndex(0)
3 >Emitted(74, 28) Source(53, 85) + SourceIndex(0)
4 >Emitted(74, 38) Source(53, 95) + SourceIndex(0)
5 >Emitted(74, 40) Source(53, 97) + SourceIndex(0)
6 >Emitted(74, 41) Source(53, 98) + SourceIndex(0)
---
>>>                        var d1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                        
2 >                        var 
3 >                            d1: InterfaceX
4 >                              ;
1 >Emitted(75, 25) Source(54, 25) + SourceIndex(0)
2 >Emitted(75, 29) Source(54, 29) + SourceIndex(0)
3 >Emitted(75, 31) Source(54, 43) + SourceIndex(0)
4 >Emitted(75, 32) Source(54, 44) + SourceIndex(0)
---
>>>                        d1.XisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^
3 >                          ^
4 >                           ^^^^^^^^^^
5 >                                     ^^
6 >                                       ^
1-> 
2 >                        d1
3 >                          .
4 >                           XisIn1_1_1
5 >                                     ()
6 >                                       ;
1->Emitted(76, 25) Source(54, 45) + SourceIndex(0)
2 >Emitted(76, 27) Source(54, 47) + SourceIndex(0)
3 >Emitted(76, 28) Source(54, 48) + SourceIndex(0)
4 >Emitted(76, 38) Source(54, 58) + SourceIndex(0)
5 >Emitted(76, 40) Source(54, 60) + SourceIndex(0)
6 >Emitted(76, 41) Source(54, 61) + SourceIndex(0)
---
>>>                        var c2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^->
1 >
  >                        
2 >                        var 
3 >                            c2: TopLevelModule2.SubModule3.ClassA
4 >                              ;
1 >Emitted(77, 25) Source(55, 25) + SourceIndex(0)
2 >Emitted(77, 29) Source(55, 29) + SourceIndex(0)
3 >Emitted(77, 31) Source(55, 66) + SourceIndex(0)
4 >Emitted(77, 32) Source(55, 67) + SourceIndex(0)
---
>>>                        c2.AisIn2_3();
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^
3 >                          ^
4 >                           ^^^^^^^^
5 >                                   ^^
6 >                                     ^
1-> 
2 >                        c2
3 >                          .
4 >                           AisIn2_3
5 >                                   ()
6 >                                     ;
1->Emitted(78, 25) Source(55, 68) + SourceIndex(0)
2 >Emitted(78, 27) Source(55, 70) + SourceIndex(0)
3 >Emitted(78, 28) Source(55, 71) + SourceIndex(0)
4 >Emitted(78, 36) Source(55, 79) + SourceIndex(0)
5 >Emitted(78, 38) Source(55, 81) + SourceIndex(0)
6 >Emitted(78, 39) Source(55, 82) + SourceIndex(0)
---
>>>                    }
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^
1 >
  >                    
2 >                    }
1 >Emitted(79, 21) Source(56, 21) + SourceIndex(0)
2 >Emitted(79, 22) Source(56, 22) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^
2 >                ^
1 >
  >                
2 >                }
1 >Emitted(80, 17) Source(57, 17) + SourceIndex(0)
2 >Emitted(80, 18) Source(57, 18) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >            }
1 >Emitted(81, 14) Source(58, 14) + SourceIndex(0)
---
>>>        })(SubSubModule1 = SubModule1.SubSubModule1 || (SubModule1.SubSubModule1 = {}));
1->^^^^^^^^
2 >        ^
3 >         ^^
4 >           ^^^^^^^^^^^^^
5 >                        ^^^
6 >                           ^^^^^^^^^^^
7 >                                      ^^^^^^^^^^^^^
8 >                                                   ^^^^^
9 >                                                        ^^^^^^^^^^^
10>                                                                   ^^^^^^^^^^^^^
11>                                                                                ^^^^^^^^
1->
  >        
2 >        }
3 >         
4 >           SubSubModule1
5 >                        
6 >                           
7 >                                      SubSubModule1
8 >                                                   
9 >                                                        
10>                                                                   SubSubModule1
11>                                                                                 {
  >                                                                                            export class ClassA {
  >                                                                                                public AisIn1_1_1() {
  >                                                                                                    // Try all qualified names of this type
  >                                                                                                    var a1: ClassA; a1.AisIn1_1_1();
  >                                                                                                    var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                                                                    var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                                                                    var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                                    
  >                                                                                                    // Two variants of qualifying a peer type
  >                                                                                                    var b1: ClassB; b1.BisIn1_1_1();
  >                                                                                                    var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                                                                                    
  >                                                                                                    // Type only accessible from the root
  >                                                                                                    var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                                    
  >                                                                                                    // Interface reference
  >                                                                                                    var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                                    var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                                                                }
  >                                                                                            }
  >                                                                                            export class ClassB {
  >                                                                                                public BisIn1_1_1() {
  >                                                                                                    /** Exactly the same as above in AisIn1_1_1 **/
  >                                                                                                    
  >                                                                                                    // Try all qualified names of this type
  >                                                                                                    var a1: ClassA; a1.AisIn1_1_1();
  >                                                                                                    var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                                                                    var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                                                                    var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                                    
  >                                                                                                    // Two variants of qualifying a peer type
  >                                                                                                    var b1: ClassB; b1.BisIn1_1_1();
  >                                                                                                    var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                                                                                    
  >                                                                                                    // Type only accessible from the root
  >                                                                                                    var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                                    var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                                                                                    
  >                                                                                                    // Interface reference
  >                                                                                                    var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                                    var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                                                                }
  >                                                                                            }
  >                                                                                            export interface InterfaceX { XisIn1_1_1(); }
  >                                                                                            class NonExportedClassQ {
  >                                                                                                constructor() {
  >                                                                                                    function QQ() {
  >                                                                                                        /* Sampling of stuff from AisIn1_1_1 */
  >                                                                                                        var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                                        var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                                        var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                                        var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                                                                                    }
  >                                                                                                }
  >                                                                                            }
  >                                                                                        }
1->Emitted(82, 9) Source(59, 9) + SourceIndex(0)
2 >Emitted(82, 10) Source(59, 10) + SourceIndex(0)
3 >Emitted(82, 12) Source(3, 26) + SourceIndex(0)
4 >Emitted(82, 25) Source(3, 39) + SourceIndex(0)
5 >Emitted(82, 28) Source(3, 26) + SourceIndex(0)
6 >Emitted(82, 39) Source(3, 26) + SourceIndex(0)
7 >Emitted(82, 52) Source(3, 39) + SourceIndex(0)
8 >Emitted(82, 57) Source(3, 26) + SourceIndex(0)
9 >Emitted(82, 68) Source(3, 26) + SourceIndex(0)
10>Emitted(82, 81) Source(3, 39) + SourceIndex(0)
11>Emitted(82, 89) Source(59, 10) + SourceIndex(0)
---
>>>        // Should have no effect on S1.SS1.ClassA above because it is not exported
1 >^^^^^^^^
2 >        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1 >
  >        
  >        
2 >        // Should have no effect on S1.SS1.ClassA above because it is not exported
1 >Emitted(83, 9) Source(61, 9) + SourceIndex(0)
2 >Emitted(83, 83) Source(61, 83) + SourceIndex(0)
---
>>>        class ClassA {
1 >^^^^^^^^
2 >        ^^^^^^
3 >              ^^^^^^
4 >                    ^^^^^^^^->
1 >
  >        
2 >        class 
3 >              ClassA
1 >Emitted(84, 9) Source(62, 9) + SourceIndex(0)
2 >Emitted(84, 15) Source(62, 15) + SourceIndex(0)
3 >Emitted(84, 21) Source(62, 21) + SourceIndex(0)
---
>>>            constructor() {
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^^^^^^^->
1-> {
  >            
1->Emitted(85, 13) Source(63, 13) + SourceIndex(0)
---
>>>                function AA() {
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^
3 >                         ^^
4 >                           ^->
1->constructor() {
  >                
2 >                function 
3 >                         AA
1->Emitted(86, 17) Source(64, 17) + SourceIndex(0)
2 >Emitted(86, 26) Source(64, 26) + SourceIndex(0)
3 >Emitted(86, 28) Source(64, 28) + SourceIndex(0)
---
>>>                    var a2;
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1->() {
  >                    
2 >                    var 
3 >                        a2: SubSubModule1.ClassA
4 >                          ;
1->Emitted(87, 21) Source(65, 21) + SourceIndex(0)
2 >Emitted(87, 25) Source(65, 25) + SourceIndex(0)
3 >Emitted(87, 27) Source(65, 49) + SourceIndex(0)
4 >Emitted(87, 28) Source(65, 50) + SourceIndex(0)
---
>>>                    a2.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    a2
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(88, 21) Source(65, 51) + SourceIndex(0)
2 >Emitted(88, 23) Source(65, 53) + SourceIndex(0)
3 >Emitted(88, 24) Source(65, 54) + SourceIndex(0)
4 >Emitted(88, 34) Source(65, 64) + SourceIndex(0)
5 >Emitted(88, 36) Source(65, 66) + SourceIndex(0)
6 >Emitted(88, 37) Source(65, 67) + SourceIndex(0)
---
>>>                    var a3;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a3: SubModule1.SubSubModule1.ClassA
4 >                          ;
1 >Emitted(89, 21) Source(66, 21) + SourceIndex(0)
2 >Emitted(89, 25) Source(66, 25) + SourceIndex(0)
3 >Emitted(89, 27) Source(66, 60) + SourceIndex(0)
4 >Emitted(89, 28) Source(66, 61) + SourceIndex(0)
---
>>>                    a3.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    a3
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(90, 21) Source(66, 62) + SourceIndex(0)
2 >Emitted(90, 23) Source(66, 64) + SourceIndex(0)
3 >Emitted(90, 24) Source(66, 65) + SourceIndex(0)
4 >Emitted(90, 34) Source(66, 75) + SourceIndex(0)
5 >Emitted(90, 36) Source(66, 77) + SourceIndex(0)
6 >Emitted(90, 37) Source(66, 78) + SourceIndex(0)
---
>>>                    var a4;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA
4 >                          ;
1 >Emitted(91, 21) Source(67, 21) + SourceIndex(0)
2 >Emitted(91, 25) Source(67, 25) + SourceIndex(0)
3 >Emitted(91, 27) Source(67, 76) + SourceIndex(0)
4 >Emitted(91, 28) Source(67, 77) + SourceIndex(0)
---
>>>                    a4.AisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
7 >                                    ^^^^^^^->
1-> 
2 >                    a4
3 >                      .
4 >                       AisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(92, 21) Source(67, 78) + SourceIndex(0)
2 >Emitted(92, 23) Source(67, 80) + SourceIndex(0)
3 >Emitted(92, 24) Source(67, 81) + SourceIndex(0)
4 >Emitted(92, 34) Source(67, 91) + SourceIndex(0)
5 >Emitted(92, 36) Source(67, 93) + SourceIndex(0)
6 >Emitted(92, 37) Source(67, 94) + SourceIndex(0)
---
>>>                    // Interface reference
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                    // Interface reference
1->Emitted(93, 21) Source(69, 21) + SourceIndex(0)
2 >Emitted(93, 43) Source(69, 43) + SourceIndex(0)
---
>>>                    var d2;
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^
3 >                        ^^
4 >                          ^
5 >                           ^^^^^^^^^^->
1 >
  >                    
2 >                    var 
3 >                        d2: SubSubModule1.InterfaceX
4 >                          ;
1 >Emitted(94, 21) Source(70, 21) + SourceIndex(0)
2 >Emitted(94, 25) Source(70, 25) + SourceIndex(0)
3 >Emitted(94, 27) Source(70, 53) + SourceIndex(0)
4 >Emitted(94, 28) Source(70, 54) + SourceIndex(0)
---
>>>                    d2.XisIn1_1_1();
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^
3 >                      ^
4 >                       ^^^^^^^^^^
5 >                                 ^^
6 >                                   ^
1-> 
2 >                    d2
3 >                      .
4 >                       XisIn1_1_1
5 >                                 ()
6 >                                   ;
1->Emitted(95, 21) Source(70, 55) + SourceIndex(0)
2 >Emitted(95, 23) Source(70, 57) + SourceIndex(0)
3 >Emitted(95, 24) Source(70, 58) + SourceIndex(0)
4 >Emitted(95, 34) Source(70, 68) + SourceIndex(0)
5 >Emitted(95, 36) Source(70, 70) + SourceIndex(0)
6 >Emitted(95, 37) Source(70, 71) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^
2 >                ^
1 >
  >                
2 >                }
1 >Emitted(96, 17) Source(71, 17) + SourceIndex(0)
2 >Emitted(96, 18) Source(71, 18) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^
2 >            ^
1 >
  >            
2 >            }
1 >Emitted(97, 13) Source(72, 13) + SourceIndex(0)
2 >Emitted(97, 14) Source(72, 14) + SourceIndex(0)
---
>>>        }
1 >^^^^^^^^^
2 >         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >        }
1 >Emitted(98, 10) Source(73, 10) + SourceIndex(0)
---
>>>    })(SubModule1 = TopLevelModule1.SubModule1 || (TopLevelModule1.SubModule1 = {}));
1->^^^^
2 >    ^
3 >     ^^
4 >       ^^^^^^^^^^
5 >                 ^^^
6 >                    ^^^^^^^^^^^^^^^^
7 >                                    ^^^^^^^^^^
8 >                                              ^^^^^
9 >                                                   ^^^^^^^^^^^^^^^^
10>                                                                   ^^^^^^^^^^
11>                                                                             ^^^^^^^^
1->
  >    
2 >    }
3 >     
4 >       SubModule1
5 >                 
6 >                    
7 >                                    SubModule1
8 >                                              
9 >                                                   
10>                                                                   SubModule1
11>                                                                              {
  >                                                                                     export namespace SubSubModule1 {
  >                                                                                         export class ClassA {
  >                                                                                             public AisIn1_1_1() {
  >                                                                                                 // Try all qualified names of this type
  >                                                                                                 var a1: ClassA; a1.AisIn1_1_1();
  >                                                                                                 var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                                                                 var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                                                                 var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                                 
  >                                                                                                 // Two variants of qualifying a peer type
  >                                                                                                 var b1: ClassB; b1.BisIn1_1_1();
  >                                                                                                 var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                                                                                 
  >                                                                                                 // Type only accessible from the root
  >                                                                                                 var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                                 
  >                                                                                                 // Interface reference
  >                                                                                                 var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                                 var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                                                             }
  >                                                                                         }
  >                                                                                         export class ClassB {
  >                                                                                             public BisIn1_1_1() {
  >                                                                                                 /** Exactly the same as above in AisIn1_1_1 **/
  >                                                                                                 
  >                                                                                                 // Try all qualified names of this type
  >                                                                                                 var a1: ClassA; a1.AisIn1_1_1();
  >                                                                                                 var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                                                                 var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                                                                 var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                                 
  >                                                                                                 // Two variants of qualifying a peer type
  >                                                                                                 var b1: ClassB; b1.BisIn1_1_1();
  >                                                                                                 var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                                                                                 
  >                                                                                                 // Type only accessible from the root
  >                                                                                                 var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                                 var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                                                                                 
  >                                                                                                 // Interface reference
  >                                                                                                 var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                                 var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                                                             }
  >                                                                                         }
  >                                                                                         export interface InterfaceX { XisIn1_1_1(); }
  >                                                                                         class NonExportedClassQ {
  >                                                                                             constructor() {
  >                                                                                                 function QQ() {
  >                                                                                                     /* Sampling of stuff from AisIn1_1_1 */
  >                                                                                                     var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                                     var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                                     var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                                     var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                                                                                 }
  >                                                                                             }
  >                                                                                         }
  >                                                                                     }
  >                                                                                     
  >                                                                                     // Should have no effect on S1.SS1.ClassA above because it is not exported
  >                                                                                     class ClassA {
  >                                                                                         constructor() {
  >                                                                                             function AA() {
  >                                                                                                 var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                                                                 var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                                                                 var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                                 
  >                                                                                                 // Interface reference
  >                                                                                                 var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                                                             }
  >                                                                                         }
  >                                                                                     }
  >                                                                                 }
1->Emitted(99, 5) Source(74, 5) + SourceIndex(0)
2 >Emitted(99, 6) Source(74, 6) + SourceIndex(0)
3 >Emitted(99, 8) Source(2, 22) + SourceIndex(0)
4 >Emitted(99, 18) Source(2, 32) + SourceIndex(0)
5 >Emitted(99, 21) Source(2, 22) + SourceIndex(0)
6 >Emitted(99, 37) Source(2, 22) + SourceIndex(0)
7 >Emitted(99, 47) Source(2, 32) + SourceIndex(0)
8 >Emitted(99, 52) Source(2, 22) + SourceIndex(0)
9 >Emitted(99, 68) Source(2, 22) + SourceIndex(0)
10>Emitted(99, 78) Source(2, 32) + SourceIndex(0)
11>Emitted(99, 86) Source(74, 6) + SourceIndex(0)
---
>>>    let SubModule2;
1 >^^^^
2 >    ^^^^
3 >        ^^^^^^^^^^
4 >                  ^
5 >                   ^^^^^^^^^^->
1 >
  >
  >    
2 >    export namespace 
3 >        SubModule2
4 >                   {
  >                          export namespace SubSubModule2 {
  >                              // No code here since these are the mirror of the above calls
  >                              export class ClassA { public AisIn1_2_2() { } }
  >                              export class ClassB { public BisIn1_2_2() { } }
  >                              export class ClassC { public CisIn1_2_2() { } }
  >                              export interface InterfaceY { YisIn1_2_2(); }
  >                              interface NonExportedInterfaceQ { }
  >                          }
  >                          
  >                          export interface InterfaceY { YisIn1_2(); }
  >                      }
1 >Emitted(100, 5) Source(76, 5) + SourceIndex(0)
2 >Emitted(100, 9) Source(76, 22) + SourceIndex(0)
3 >Emitted(100, 19) Source(76, 32) + SourceIndex(0)
4 >Emitted(100, 20) Source(87, 6) + SourceIndex(0)
---
>>>    (function (SubModule2) {
1->^^^^
2 >    ^^^^^^^^^^^
3 >               ^^^^^^^^^^
4 >                         ^^->
1->
2 >    export namespace 
3 >               SubModule2
1->Emitted(101, 5) Source(76, 5) + SourceIndex(0)
2 >Emitted(101, 16) Source(76, 22) + SourceIndex(0)
3 >Emitted(101, 26) Source(76, 32) + SourceIndex(0)
---
>>>        let SubSubModule2;
1->^^^^^^^^
2 >        ^^^^
3 >            ^^^^^^^^^^^^^
4 >                         ^
5 >                          ^^^^^^^^^^->
1-> {
  >        
2 >        export namespace 
3 >            SubSubModule2
4 >                          {
  >                                     // No code here since these are the mirror of the above calls
  >                                     export class ClassA { public AisIn1_2_2() { } }
  >                                     export class ClassB { public BisIn1_2_2() { } }
  >                                     export class ClassC { public CisIn1_2_2() { } }
  >                                     export interface InterfaceY { YisIn1_2_2(); }
  >                                     interface NonExportedInterfaceQ { }
  >                                 }
1->Emitted(102, 9) Source(77, 9) + SourceIndex(0)
2 >Emitted(102, 13) Source(77, 26) + SourceIndex(0)
3 >Emitted(102, 26) Source(77, 39) + SourceIndex(0)
4 >Emitted(102, 27) Source(84, 10) + SourceIndex(0)
---
>>>        (function (SubSubModule2) {
1->^^^^^^^^
2 >        ^^^^^^^^^^^
3 >                   ^^^^^^^^^^^^^
4 >                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
2 >        export namespace 
3 >                   SubSubModule2
1->Emitted(103, 9) Source(77, 9) + SourceIndex(0)
2 >Emitted(103, 20) Source(77, 26) + SourceIndex(0)
3 >Emitted(103, 33) Source(77, 39) + SourceIndex(0)
---
>>>            // No code here since these are the mirror of the above calls
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1-> {
  >            
2 >            // No code here since these are the mirror of the above calls
1->Emitted(104, 13) Source(78, 13) + SourceIndex(0)
2 >Emitted(104, 74) Source(78, 74) + SourceIndex(0)
---
>>>            class ClassA {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^
4 >                        ^^^^^^^^^->
1 >
  >            
2 >            export class 
3 >                  ClassA
1 >Emitted(105, 13) Source(79, 13) + SourceIndex(0)
2 >Emitted(105, 19) Source(79, 26) + SourceIndex(0)
3 >Emitted(105, 25) Source(79, 32) + SourceIndex(0)
---
>>>                AisIn1_2_2() { }
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^
3 >                          ^^^^^
4 >                               ^
1-> { public 
2 >                AisIn1_2_2
3 >                          () { 
4 >                               }
1->Emitted(106, 17) Source(79, 42) + SourceIndex(0)
2 >Emitted(106, 27) Source(79, 52) + SourceIndex(0)
3 >Emitted(106, 32) Source(79, 57) + SourceIndex(0)
4 >Emitted(106, 33) Source(79, 58) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 > }
1 >Emitted(107, 14) Source(79, 60) + SourceIndex(0)
---
>>>            SubSubModule2.ClassA = ClassA;
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^
3 >                          ^^^^^^
4 >                                ^^^^^^^^^
5 >                                         ^
1->
2 >            
3 >                          ClassA
4 >                                 { public AisIn1_2_2() { } }
5 >                                         
1->Emitted(108, 13) Source(79, 26) + SourceIndex(0)
2 >Emitted(108, 27) Source(79, 26) + SourceIndex(0)
3 >Emitted(108, 33) Source(79, 32) + SourceIndex(0)
4 >Emitted(108, 42) Source(79, 60) + SourceIndex(0)
5 >Emitted(108, 43) Source(79, 60) + SourceIndex(0)
---
>>>            class ClassB {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^
4 >                        ^^^^^^^^^->
1 >
  >            
2 >            export class 
3 >                  ClassB
1 >Emitted(109, 13) Source(80, 13) + SourceIndex(0)
2 >Emitted(109, 19) Source(80, 26) + SourceIndex(0)
3 >Emitted(109, 25) Source(80, 32) + SourceIndex(0)
---
>>>                BisIn1_2_2() { }
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^
3 >                          ^^^^^
4 >                               ^
1-> { public 
2 >                BisIn1_2_2
3 >                          () { 
4 >                               }
1->Emitted(110, 17) Source(80, 42) + SourceIndex(0)
2 >Emitted(110, 27) Source(80, 52) + SourceIndex(0)
3 >Emitted(110, 32) Source(80, 57) + SourceIndex(0)
4 >Emitted(110, 33) Source(80, 58) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 > }
1 >Emitted(111, 14) Source(80, 60) + SourceIndex(0)
---
>>>            SubSubModule2.ClassB = ClassB;
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^
3 >                          ^^^^^^
4 >                                ^^^^^^^^^
5 >                                         ^
1->
2 >            
3 >                          ClassB
4 >                                 { public BisIn1_2_2() { } }
5 >                                         
1->Emitted(112, 13) Source(80, 26) + SourceIndex(0)
2 >Emitted(112, 27) Source(80, 26) + SourceIndex(0)
3 >Emitted(112, 33) Source(80, 32) + SourceIndex(0)
4 >Emitted(112, 42) Source(80, 60) + SourceIndex(0)
5 >Emitted(112, 43) Source(80, 60) + SourceIndex(0)
---
>>>            class ClassC {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^
4 >                        ^^^^^^^^^->
1 >
  >            
2 >            export class 
3 >                  ClassC
1 >Emitted(113, 13) Source(81, 13) + SourceIndex(0)
2 >Emitted(113, 19) Source(81, 26) + SourceIndex(0)
3 >Emitted(113, 25) Source(81, 32) + SourceIndex(0)
---
>>>                CisIn1_2_2() { }
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^
3 >                          ^^^^^
4 >                               ^
1-> { public 
2 >                CisIn1_2_2
3 >                          () { 
4 >                               }
1->Emitted(114, 17) Source(81, 42) + SourceIndex(0)
2 >Emitted(114, 27) Source(81, 52) + SourceIndex(0)
3 >Emitted(114, 32) Source(81, 57) + SourceIndex(0)
4 >Emitted(114, 33) Source(81, 58) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 > }
1 >Emitted(115, 14) Source(81, 60) + SourceIndex(0)
---
>>>            SubSubModule2.ClassC = ClassC;
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^
3 >                          ^^^^^^
4 >                                ^^^^^^^^^
5 >                                         ^
6 >                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
2 >            
3 >                          ClassC
4 >                                 { public CisIn1_2_2() { } }
5 >                                         
1->Emitted(116, 13) Source(81, 26) + SourceIndex(0)
2 >Emitted(116, 27) Source(81, 26) + SourceIndex(0)
3 >Emitted(116, 33) Source(81, 32) + SourceIndex(0)
4 >Emitted(116, 42) Source(81, 60) + SourceIndex(0)
5 >Emitted(116, 43) Source(81, 60) + SourceIndex(0)
---
>>>        })(SubSubModule2 = SubModule2.SubSubModule2 || (SubModule2.SubSubModule2 = {}));
1->^^^^^^^^
2 >        ^
3 >         ^^
4 >           ^^^^^^^^^^^^^
5 >                        ^^^
6 >                           ^^^^^^^^^^^
7 >                                      ^^^^^^^^^^^^^
8 >                                                   ^^^^^
9 >                                                        ^^^^^^^^^^^
10>                                                                   ^^^^^^^^^^^^^
11>                                                                                ^^^^^^^^
1->
  >            export interface InterfaceY { YisIn1_2_2(); }
  >            interface NonExportedInterfaceQ { }
  >        
2 >        }
3 >         
4 >           SubSubModule2
5 >                        
6 >                           
7 >                                      SubSubModule2
8 >                                                   
9 >                                                        
10>                                                                   SubSubModule2
11>                                                                                 {
  >                                                                                            // No code here since these are the mirror of the above calls
  >                                                                                            export class ClassA { public AisIn1_2_2() { } }
  >                                                                                            export class ClassB { public BisIn1_2_2() { } }
  >                                                                                            export class ClassC { public CisIn1_2_2() { } }
  >                                                                                            export interface InterfaceY { YisIn1_2_2(); }
  >                                                                                            interface NonExportedInterfaceQ { }
  >                                                                                        }
1->Emitted(117, 9) Source(84, 9) + SourceIndex(0)
2 >Emitted(117, 10) Source(84, 10) + SourceIndex(0)
3 >Emitted(117, 12) Source(77, 26) + SourceIndex(0)
4 >Emitted(117, 25) Source(77, 39) + SourceIndex(0)
5 >Emitted(117, 28) Source(77, 26) + SourceIndex(0)
6 >Emitted(117, 39) Source(77, 26) + SourceIndex(0)
7 >Emitted(117, 52) Source(77, 39) + SourceIndex(0)
8 >Emitted(117, 57) Source(77, 26) + SourceIndex(0)
9 >Emitted(117, 68) Source(77, 26) + SourceIndex(0)
10>Emitted(117, 81) Source(77, 39) + SourceIndex(0)
11>Emitted(117, 89) Source(84, 10) + SourceIndex(0)
---
>>>    })(SubModule2 = TopLevelModule1.SubModule2 || (TopLevelModule1.SubModule2 = {}));
1 >^^^^
2 >    ^
3 >     ^^
4 >       ^^^^^^^^^^
5 >                 ^^^
6 >                    ^^^^^^^^^^^^^^^^
7 >                                    ^^^^^^^^^^
8 >                                              ^^^^^
9 >                                                   ^^^^^^^^^^^^^^^^
10>                                                                   ^^^^^^^^^^
11>                                                                             ^^^^^^^^
1 >
  >        
  >        export interface InterfaceY { YisIn1_2(); }
  >    
2 >    }
3 >     
4 >       SubModule2
5 >                 
6 >                    
7 >                                    SubModule2
8 >                                              
9 >                                                   
10>                                                                   SubModule2
11>                                                                              {
  >                                                                                     export namespace SubSubModule2 {
  >                                                                                         // No code here since these are the mirror of the above calls
  >                                                                                         export class ClassA { public AisIn1_2_2() { } }
  >                                                                                         export class ClassB { public BisIn1_2_2() { } }
  >                                                                                         export class ClassC { public CisIn1_2_2() { } }
  >                                                                                         export interface InterfaceY { YisIn1_2_2(); }
  >                                                                                         interface NonExportedInterfaceQ { }
  >                                                                                     }
  >                                                                                     
  >                                                                                     export interface InterfaceY { YisIn1_2(); }
  >                                                                                 }
1 >Emitted(118, 5) Source(87, 5) + SourceIndex(0)
2 >Emitted(118, 6) Source(87, 6) + SourceIndex(0)
3 >Emitted(118, 8) Source(76, 22) + SourceIndex(0)
4 >Emitted(118, 18) Source(76, 32) + SourceIndex(0)
5 >Emitted(118, 21) Source(76, 22) + SourceIndex(0)
6 >Emitted(118, 37) Source(76, 22) + SourceIndex(0)
7 >Emitted(118, 47) Source(76, 32) + SourceIndex(0)
8 >Emitted(118, 52) Source(76, 22) + SourceIndex(0)
9 >Emitted(118, 68) Source(76, 22) + SourceIndex(0)
10>Emitted(118, 78) Source(76, 32) + SourceIndex(0)
11>Emitted(118, 86) Source(87, 6) + SourceIndex(0)
---
>>>    class ClassA {
1 >^^^^
2 >    ^^^^^^
3 >          ^^^^^^
4 >                ^^^^^->
1 >
  >    
  >    
2 >    class 
3 >          ClassA
1 >Emitted(119, 5) Source(89, 5) + SourceIndex(0)
2 >Emitted(119, 11) Source(89, 11) + SourceIndex(0)
3 >Emitted(119, 17) Source(89, 17) + SourceIndex(0)
---
>>>        AisIn1() { }
1->^^^^^^^^
2 >        ^^^^^^
3 >              ^^^^^
4 >                   ^
1-> {
  >        public 
2 >        AisIn1
3 >              () { 
4 >                   }
1->Emitted(120, 9) Source(90, 16) + SourceIndex(0)
2 >Emitted(120, 15) Source(90, 22) + SourceIndex(0)
3 >Emitted(120, 20) Source(90, 27) + SourceIndex(0)
4 >Emitted(120, 21) Source(90, 28) + SourceIndex(0)
---
>>>    }
1 >^^^^^
2 >     ^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >    }
1 >Emitted(121, 6) Source(91, 6) + SourceIndex(0)
---
>>>    let NotExportedModule;
1->^^^^
2 >    ^^^^
3 >        ^^^^^^^^^^^^^^^^^
4 >                         ^
5 >                          ^^^^^^^^^^->
1->
  >
  >    interface InterfaceY {
  >        YisIn1();
  >    }
  >    
  >    
2 >    namespace 
3 >        NotExportedModule
4 >                          {
  >                                 export class ClassA { }
  >                             }
1->Emitted(122, 5) Source(97, 5) + SourceIndex(0)
2 >Emitted(122, 9) Source(97, 15) + SourceIndex(0)
3 >Emitted(122, 26) Source(97, 32) + SourceIndex(0)
4 >Emitted(122, 27) Source(99, 6) + SourceIndex(0)
---
>>>    (function (NotExportedModule) {
1->^^^^
2 >    ^^^^^^^^^^^
3 >               ^^^^^^^^^^^^^^^^^
1->
2 >    namespace 
3 >               NotExportedModule
1->Emitted(123, 5) Source(97, 5) + SourceIndex(0)
2 >Emitted(123, 16) Source(97, 15) + SourceIndex(0)
3 >Emitted(123, 33) Source(97, 32) + SourceIndex(0)
---
>>>        class ClassA {
1 >^^^^^^^^
2 >        ^^^^^^
3 >              ^^^^^^
1 > {
  >        
2 >        export class 
3 >              ClassA
1 >Emitted(124, 9) Source(98, 9) + SourceIndex(0)
2 >Emitted(124, 15) Source(98, 22) + SourceIndex(0)
3 >Emitted(124, 21) Source(98, 28) + SourceIndex(0)
---
>>>        }
1 >^^^^^^^^^
2 >         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 > { }
1 >Emitted(125, 10) Source(98, 32) + SourceIndex(0)
---
>>>        NotExportedModule.ClassA = ClassA;
1->^^^^^^^^
2 >        ^^^^^^^^^^^^^^^^^^
3 >                          ^^^^^^
4 >                                ^^^^^^^^^
5 >                                         ^
6 >                                          ^^^^^^^^^^^^^->
1->
2 >        
3 >                          ClassA
4 >                                 { }
5 >                                         
1->Emitted(126, 9) Source(98, 22) + SourceIndex(0)
2 >Emitted(126, 27) Source(98, 22) + SourceIndex(0)
3 >Emitted(126, 33) Source(98, 28) + SourceIndex(0)
4 >Emitted(126, 42) Source(98, 32) + SourceIndex(0)
5 >Emitted(126, 43) Source(98, 32) + SourceIndex(0)
---
>>>    })(NotExportedModule || (NotExportedModule = {}));
1->^^^^
2 >    ^
3 >     ^^
4 >       ^^^^^^^^^^^^^^^^^
5 >                        ^^^^^
6 >                             ^^^^^^^^^^^^^^^^^
7 >                                              ^^^^^^^^
8 >                                                      ^^^^^^^^^^^^^^^^^^^->
1->
  >    
2 >    }
3 >     
4 >       NotExportedModule
5 >                        
6 >                             NotExportedModule
7 >                                               {
  >                                                      export class ClassA { }
  >                                                  }
1->Emitted(127, 5) Source(99, 5) + SourceIndex(0)
2 >Emitted(127, 6) Source(99, 6) + SourceIndex(0)
3 >Emitted(127, 8) Source(97, 15) + SourceIndex(0)
4 >Emitted(127, 25) Source(97, 32) + SourceIndex(0)
5 >Emitted(127, 30) Source(97, 15) + SourceIndex(0)
6 >Emitted(127, 47) Source(97, 32) + SourceIndex(0)
7 >Emitted(127, 55) Source(99, 6) + SourceIndex(0)
---
>>>})(TopLevelModule1 || (exports.TopLevelModule1 = TopLevelModule1 = {}));
1->
2 >^
3 > ^^
4 >   ^^^^^^^^^^^^^^^
5 >                  ^^^^^^^^^^^^^
6 >                               ^^^^^^^^^^^^^^^
7 >                                              ^^^
8 >                                                 ^^^^^^^^^^^^^^^
9 >                                                                ^^^^^^^^
1->
  >
2 >}
3 > 
4 >   TopLevelModule1
5 >                  
6 >                               TopLevelModule1
7 >                                              
8 >                                                 TopLevelModule1
9 >                                                                 {
  >                                                                    export namespace SubModule1 {
  >                                                                        export namespace SubSubModule1 {
  >                                                                            export class ClassA {
  >                                                                                public AisIn1_1_1() {
  >                                                                                    // Try all qualified names of this type
  >                                                                                    var a1: ClassA; a1.AisIn1_1_1();
  >                                                                                    var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                                                    var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                                                    var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                    
  >                                                                                    // Two variants of qualifying a peer type
  >                                                                                    var b1: ClassB; b1.BisIn1_1_1();
  >                                                                                    var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                                                                    
  >                                                                                    // Type only accessible from the root
  >                                                                                    var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                    
  >                                                                                    // Interface reference
  >                                                                                    var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                    var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                                                }
  >                                                                            }
  >                                                                            export class ClassB {
  >                                                                                public BisIn1_1_1() {
  >                                                                                    /** Exactly the same as above in AisIn1_1_1 **/
  >                                                                                    
  >                                                                                    // Try all qualified names of this type
  >                                                                                    var a1: ClassA; a1.AisIn1_1_1();
  >                                                                                    var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                                                    var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                                                    var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                    
  >                                                                                    // Two variants of qualifying a peer type
  >                                                                                    var b1: ClassB; b1.BisIn1_1_1();
  >                                                                                    var b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB; b2.BisIn1_1_1();
  >                                                                                    
  >                                                                                    // Type only accessible from the root
  >                                                                                    var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                    var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                                                                    
  >                                                                                    // Interface reference
  >                                                                                    var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                    var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                                                }
  >                                                                            }
  >                                                                            export interface InterfaceX { XisIn1_1_1(); }
  >                                                                            class NonExportedClassQ {
  >                                                                                constructor() {
  >                                                                                    function QQ() {
  >                                                                                        /* Sampling of stuff from AisIn1_1_1 */
  >                                                                                        var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                        var c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA; c1.AisIn1_2_2();
  >                                                                                        var d1: InterfaceX; d1.XisIn1_1_1();
  >                                                                                        var c2: TopLevelModule2.SubModule3.ClassA; c2.AisIn2_3();
  >                                                                                    }
  >                                                                                }
  >                                                                            }
  >                                                                        }
  >                                                                        
  >                                                                        // Should have no effect on S1.SS1.ClassA above because it is not exported
  >                                                                        class ClassA {
  >                                                                            constructor() {
  >                                                                                function AA() {
  >                                                                                    var a2: SubSubModule1.ClassA; a2.AisIn1_1_1();
  >                                                                                    var a3: SubModule1.SubSubModule1.ClassA; a3.AisIn1_1_1();
  >                                                                                    var a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA; a4.AisIn1_1_1();
  >                                                                                    
  >                                                                                    // Interface reference
  >                                                                                    var d2: SubSubModule1.InterfaceX; d2.XisIn1_1_1();
  >                                                                                }
  >                                                                            }
  >                                                                        }
  >                                                                    }
  >                                                                
  >                                                                    export namespace SubModule2 {
  >                                                                        export namespace SubSubModule2 {
  >                                                                            // No code here since these are the mirror of the above calls
  >                                                                            export class ClassA { public AisIn1_2_2() { } }
  >                                                                            export class ClassB { public BisIn1_2_2() { } }
  >                                                                            export class ClassC { public CisIn1_2_2() { } }
  >                                                                            export interface InterfaceY { YisIn1_2_2(); }
  >                                                                            interface NonExportedInterfaceQ { }
  >                                                                        }
  >                                                                        
  >                                                                        export interface InterfaceY { YisIn1_2(); }
  >                                                                    }
  >                                                                    
  >                                                                    class ClassA {
  >                                                                        public AisIn1() { }
  >                                                                    }
  >                                                                
  >                                                                    interface InterfaceY {
  >                                                                        YisIn1();
  >                                                                    }
  >                                                                    
  >                                                                    namespace NotExportedModule {
  >                                                                        export class ClassA { }
  >                                                                    }
  >                                                                }
1->Emitted(128, 1) Source(100, 1) + SourceIndex(0)
2 >Emitted(128, 2) Source(100, 2) + SourceIndex(0)
3 >Emitted(128, 4) Source(1, 18) + SourceIndex(0)
4 >Emitted(128, 19) Source(1, 33) + SourceIndex(0)
5 >Emitted(128, 32) Source(1, 18) + SourceIndex(0)
6 >Emitted(128, 47) Source(1, 33) + SourceIndex(0)
7 >Emitted(128, 50) Source(1, 18) + SourceIndex(0)
8 >Emitted(128, 65) Source(1, 33) + SourceIndex(0)
9 >Emitted(128, 73) Source(100, 2) + SourceIndex(0)
---
>>>var TopLevelModule2;
1 >
2 >^^^^
3 >    ^^^^^^^^^^^^^^^
4 >                   ^
5 >                    ^^^^^^^^^^->
1 >
  >
  >
2 >namespace 
3 >    TopLevelModule2
4 >                    {
  >                       export namespace SubModule3 {
  >                           export class ClassA {
  >                               public AisIn2_3() { }
  >                           }
  >                       }
  >                   }
1 >Emitted(129, 1) Source(102, 1) + SourceIndex(0)
2 >Emitted(129, 5) Source(102, 11) + SourceIndex(0)
3 >Emitted(129, 20) Source(102, 26) + SourceIndex(0)
4 >Emitted(129, 21) Source(108, 2) + SourceIndex(0)
---
>>>(function (TopLevelModule2) {
1->
2 >^^^^^^^^^^^
3 >           ^^^^^^^^^^^^^^^
1->
2 >namespace 
3 >           TopLevelModule2
1->Emitted(130, 1) Source(102, 1) + SourceIndex(0)
2 >Emitted(130, 12) Source(102, 11) + SourceIndex(0)
3 >Emitted(130, 27) Source(102, 26) + SourceIndex(0)
---
>>>    let SubModule3;
1 >^^^^
2 >    ^^^^
3 >        ^^^^^^^^^^
4 >                  ^
5 >                   ^^^^^^^^^^->
1 > {
  >    
2 >    export namespace 
3 >        SubModule3
4 >                   {
  >                          export class ClassA {
  >                              public AisIn2_3() { }
  >                          }
  >                      }
1 >Emitted(131, 5) Source(103, 5) + SourceIndex(0)
2 >Emitted(131, 9) Source(103, 22) + SourceIndex(0)
3 >Emitted(131, 19) Source(103, 32) + SourceIndex(0)
4 >Emitted(131, 20) Source(107, 6) + SourceIndex(0)
---
>>>    (function (SubModule3) {
1->^^^^
2 >    ^^^^^^^^^^^
3 >               ^^^^^^^^^^
1->
2 >    export namespace 
3 >               SubModule3
1->Emitted(132, 5) Source(103, 5) + SourceIndex(0)
2 >Emitted(132, 16) Source(103, 22) + SourceIndex(0)
3 >Emitted(132, 26) Source(103, 32) + SourceIndex(0)
---
>>>        class ClassA {
1 >^^^^^^^^
2 >        ^^^^^^
3 >              ^^^^^^
4 >                    ^^^^^^^->
1 > {
  >        
2 >        export class 
3 >              ClassA
1 >Emitted(133, 9) Source(104, 9) + SourceIndex(0)
2 >Emitted(133, 15) Source(104, 22) + SourceIndex(0)
3 >Emitted(133, 21) Source(104, 28) + SourceIndex(0)
---
>>>            AisIn2_3() { }
1->^^^^^^^^^^^^
2 >            ^^^^^^^^
3 >                    ^^^^^
4 >                         ^
1-> {
  >            public 
2 >            AisIn2_3
3 >                    () { 
4 >                         }
1->Emitted(134, 13) Source(105, 20) + SourceIndex(0)
2 >Emitted(134, 21) Source(105, 28) + SourceIndex(0)
3 >Emitted(134, 26) Source(105, 33) + SourceIndex(0)
4 >Emitted(134, 27) Source(105, 34) + SourceIndex(0)
---
>>>        }
1 >^^^^^^^^^
2 >         ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >        }
1 >Emitted(135, 10) Source(106, 10) + SourceIndex(0)
---
>>>        SubModule3.ClassA = ClassA;
1->^^^^^^^^
2 >        ^^^^^^^^^^^
3 >                   ^^^^^^
4 >                         ^^^^^^^^^
5 >                                  ^
6 >                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
2 >        
3 >                   ClassA
4 >                          {
  >                                     public AisIn2_3() { }
  >                                 }
5 >                                  
1->Emitted(136, 9) Source(104, 22) + SourceIndex(0)
2 >Emitted(136, 20) Source(104, 22) + SourceIndex(0)
3 >Emitted(136, 26) Source(104, 28) + SourceIndex(0)
4 >Emitted(136, 35) Source(106, 10) + SourceIndex(0)
5 >Emitted(136, 36) Source(106, 10) + SourceIndex(0)
---
>>>    })(SubModule3 = TopLevelModule2.SubModule3 || (TopLevelModule2.SubModule3 = {}));
1->^^^^
2 >    ^
3 >     ^^
4 >       ^^^^^^^^^^
5 >                 ^^^
6 >                    ^^^^^^^^^^^^^^^^
7 >                                    ^^^^^^^^^^
8 >                                              ^^^^^
9 >                                                   ^^^^^^^^^^^^^^^^
10>                                                                   ^^^^^^^^^^
11>                                                                             ^^^^^^^^
1->
  >    
2 >    }
3 >     
4 >       SubModule3
5 >                 
6 >                    
7 >                                    SubModule3
8 >                                              
9 >                                                   
10>                                                                   SubModule3
11>                                                                              {
  >                                                                                     export class ClassA {
  >                                                                                         public AisIn2_3() { }
  >                                                                                     }
  >                                                                                 }
1->Emitted(137, 5) Source(107, 5) + SourceIndex(0)
2 >Emitted(137, 6) Source(107, 6) + SourceIndex(0)
3 >Emitted(137, 8) Source(103, 22) + SourceIndex(0)
4 >Emitted(137, 18) Source(103, 32) + SourceIndex(0)
5 >Emitted(137, 21) Source(103, 22) + SourceIndex(0)
6 >Emitted(137, 37) Source(103, 22) + SourceIndex(0)
7 >Emitted(137, 47) Source(103, 32) + SourceIndex(0)
8 >Emitted(137, 52) Source(103, 22) + SourceIndex(0)
9 >Emitted(137, 68) Source(103, 22) + SourceIndex(0)
10>Emitted(137, 78) Source(103, 32) + SourceIndex(0)
11>Emitted(137, 86) Source(107, 6) + SourceIndex(0)
---
>>>})(TopLevelModule2 || (TopLevelModule2 = {}));
1 >
2 >^
3 > ^^
4 >   ^^^^^^^^^^^^^^^
5 >                  ^^^^^
6 >                       ^^^^^^^^^^^^^^^
7 >                                      ^^^^^^^^
1 >
  >
2 >}
3 > 
4 >   TopLevelModule2
5 >                  
6 >                       TopLevelModule2
7 >                                       {
  >                                          export namespace SubModule3 {
  >                                              export class ClassA {
  >                                                  public AisIn2_3() { }
  >                                              }
  >                                          }
  >                                      }
1 >Emitted(138, 1) Source(108, 1) + SourceIndex(0)
2 >Emitted(138, 2) Source(108, 2) + SourceIndex(0)
3 >Emitted(138, 4) Source(102, 11) + SourceIndex(0)
4 >Emitted(138, 19) Source(102, 26) + SourceIndex(0)
5 >Emitted(138, 24) Source(102, 11) + SourceIndex(0)
6 >Emitted(138, 39) Source(102, 26) + SourceIndex(0)
7 >Emitted(138, 47) Source(108, 2) + SourceIndex(0)
---
>>>//# sourceMappingURL=typeResolution.js.map