===================================================================
JsFile: typeResolution.js
mapUrl: typeResolution.js.map
sourceRoot: 
sources: typeResolution.ts
===================================================================
-------------------------------------------------------------------
emittedFile:typeResolution.js
sourceFile:typeResolution.ts
-------------------------------------------------------------------
>>>define(["require", "exports"], function (require, exports) {
>>>    "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(5, 5) Source(1, 1) + SourceIndex(0)
2 >Emitted(5, 9) Source(1, 18) + SourceIndex(0)
3 >Emitted(5, 24) Source(1, 33) + SourceIndex(0)
4 >Emitted(5, 25) Source(100, 2) + SourceIndex(0)
---
>>>    (function (TopLevelModule1) {
1->^^^^
2 >    ^^^^^^^^^^^
3 >               ^^^^^^^^^^^^^^^
1->
2 >    export namespace 
3 >               TopLevelModule1
1->Emitted(6, 5) Source(1, 1) + SourceIndex(0)
2 >Emitted(6, 16) Source(1, 18) + SourceIndex(0)
3 >Emitted(6, 31) 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(7, 9) Source(2, 5) + SourceIndex(0)
2 >Emitted(7, 13) Source(2, 22) + SourceIndex(0)
3 >Emitted(7, 23) Source(2, 32) + SourceIndex(0)
4 >Emitted(7, 24) Source(74, 6) + SourceIndex(0)
---
>>>        (function (SubModule1) {
1->^^^^^^^^
2 >        ^^^^^^^^^^^
3 >                   ^^^^^^^^^^
4 >                             ^^->
1->
2 >        export namespace 
3 >                   SubModule1
1->Emitted(8, 9) Source(2, 5) + SourceIndex(0)
2 >Emitted(8, 20) Source(2, 22) + SourceIndex(0)
3 >Emitted(8, 30) 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(9, 13) Source(3, 9) + SourceIndex(0)
2 >Emitted(9, 17) Source(3, 26) + SourceIndex(0)
3 >Emitted(9, 30) Source(3, 39) + SourceIndex(0)
4 >Emitted(9, 31) Source(59, 10) + SourceIndex(0)
---
>>>            (function (SubSubModule1) {
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^
3 >                       ^^^^^^^^^^^^^
1->
2 >            export namespace 
3 >                       SubSubModule1
1->Emitted(10, 13) Source(3, 9) + SourceIndex(0)
2 >Emitted(10, 24) Source(3, 26) + SourceIndex(0)
3 >Emitted(10, 37) Source(3, 39) + SourceIndex(0)
---
>>>                class ClassA {
1 >^^^^^^^^^^^^^^^^
2 >                ^^^^^^
3 >                      ^^^^^^
4 >                            ^^^^^^^->
1 > {
  >            
2 >                export class 
3 >                      ClassA
1 >Emitted(11, 17) Source(4, 13) + SourceIndex(0)
2 >Emitted(11, 23) Source(4, 26) + SourceIndex(0)
3 >Emitted(11, 29) Source(4, 32) + SourceIndex(0)
---
>>>                    AisIn1_1_1() {
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^
3 >                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1-> {
  >                public 
2 >                    AisIn1_1_1
1->Emitted(12, 21) Source(5, 24) + SourceIndex(0)
2 >Emitted(12, 31) 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(13, 25) Source(6, 21) + SourceIndex(0)
2 >Emitted(13, 64) Source(6, 60) + SourceIndex(0)
---
>>>                        var a1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a1: ClassA
4 >                              ;
1 >Emitted(14, 25) Source(7, 21) + SourceIndex(0)
2 >Emitted(14, 29) Source(7, 25) + SourceIndex(0)
3 >Emitted(14, 31) Source(7, 35) + SourceIndex(0)
4 >Emitted(14, 32) 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(15, 25) Source(7, 37) + SourceIndex(0)
2 >Emitted(15, 27) Source(7, 39) + SourceIndex(0)
3 >Emitted(15, 28) Source(7, 40) + SourceIndex(0)
4 >Emitted(15, 38) Source(7, 50) + SourceIndex(0)
5 >Emitted(15, 40) Source(7, 52) + SourceIndex(0)
6 >Emitted(15, 41) Source(7, 53) + SourceIndex(0)
---
>>>                        var a2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a2: SubSubModule1.ClassA
4 >                              ;
1 >Emitted(16, 25) Source(8, 21) + SourceIndex(0)
2 >Emitted(16, 29) Source(8, 25) + SourceIndex(0)
3 >Emitted(16, 31) Source(8, 49) + SourceIndex(0)
4 >Emitted(16, 32) 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(17, 25) Source(8, 51) + SourceIndex(0)
2 >Emitted(17, 27) Source(8, 53) + SourceIndex(0)
3 >Emitted(17, 28) Source(8, 54) + SourceIndex(0)
4 >Emitted(17, 38) Source(8, 64) + SourceIndex(0)
5 >Emitted(17, 40) Source(8, 66) + SourceIndex(0)
6 >Emitted(17, 41) Source(8, 67) + SourceIndex(0)
---
>>>                        var a3;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a3: SubModule1.SubSubModule1.ClassA
4 >                              ;
1 >Emitted(18, 25) Source(9, 21) + SourceIndex(0)
2 >Emitted(18, 29) Source(9, 25) + SourceIndex(0)
3 >Emitted(18, 31) Source(9, 60) + SourceIndex(0)
4 >Emitted(18, 32) 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(19, 25) Source(9, 62) + SourceIndex(0)
2 >Emitted(19, 27) Source(9, 64) + SourceIndex(0)
3 >Emitted(19, 28) Source(9, 65) + SourceIndex(0)
4 >Emitted(19, 38) Source(9, 75) + SourceIndex(0)
5 >Emitted(19, 40) Source(9, 77) + SourceIndex(0)
6 >Emitted(19, 41) Source(9, 78) + SourceIndex(0)
---
>>>                        var a4;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA
4 >                              ;
1 >Emitted(20, 25) Source(10, 21) + SourceIndex(0)
2 >Emitted(20, 29) Source(10, 25) + SourceIndex(0)
3 >Emitted(20, 31) Source(10, 76) + SourceIndex(0)
4 >Emitted(20, 32) 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(21, 25) Source(10, 78) + SourceIndex(0)
2 >Emitted(21, 27) Source(10, 80) + SourceIndex(0)
3 >Emitted(21, 28) Source(10, 81) + SourceIndex(0)
4 >Emitted(21, 38) Source(10, 91) + SourceIndex(0)
5 >Emitted(21, 40) Source(10, 93) + SourceIndex(0)
6 >Emitted(21, 41) 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(22, 25) Source(12, 21) + SourceIndex(0)
2 >Emitted(22, 66) Source(12, 62) + SourceIndex(0)
---
>>>                        var b1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            b1: ClassB
4 >                              ;
1 >Emitted(23, 25) Source(13, 21) + SourceIndex(0)
2 >Emitted(23, 29) Source(13, 25) + SourceIndex(0)
3 >Emitted(23, 31) Source(13, 35) + SourceIndex(0)
4 >Emitted(23, 32) 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(24, 25) Source(13, 37) + SourceIndex(0)
2 >Emitted(24, 27) Source(13, 39) + SourceIndex(0)
3 >Emitted(24, 28) Source(13, 40) + SourceIndex(0)
4 >Emitted(24, 38) Source(13, 50) + SourceIndex(0)
5 >Emitted(24, 40) Source(13, 52) + SourceIndex(0)
6 >Emitted(24, 41) Source(13, 53) + SourceIndex(0)
---
>>>                        var b2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB
4 >                              ;
1 >Emitted(25, 25) Source(14, 21) + SourceIndex(0)
2 >Emitted(25, 29) Source(14, 25) + SourceIndex(0)
3 >Emitted(25, 31) Source(14, 76) + SourceIndex(0)
4 >Emitted(25, 32) 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(26, 25) Source(14, 78) + SourceIndex(0)
2 >Emitted(26, 27) Source(14, 80) + SourceIndex(0)
3 >Emitted(26, 28) Source(14, 81) + SourceIndex(0)
4 >Emitted(26, 38) Source(14, 91) + SourceIndex(0)
5 >Emitted(26, 40) Source(14, 93) + SourceIndex(0)
6 >Emitted(26, 41) Source(14, 94) + SourceIndex(0)
---
>>>                        // Type only accessible from the root
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                        // Type only accessible from the root
1->Emitted(27, 25) Source(16, 21) + SourceIndex(0)
2 >Emitted(27, 62) Source(16, 58) + SourceIndex(0)
---
>>>                        var c1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA
4 >                              ;
1 >Emitted(28, 25) Source(17, 21) + SourceIndex(0)
2 >Emitted(28, 29) Source(17, 25) + SourceIndex(0)
3 >Emitted(28, 31) Source(17, 76) + SourceIndex(0)
4 >Emitted(28, 32) 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(29, 25) Source(17, 78) + SourceIndex(0)
2 >Emitted(29, 27) Source(17, 80) + SourceIndex(0)
3 >Emitted(29, 28) Source(17, 81) + SourceIndex(0)
4 >Emitted(29, 38) Source(17, 91) + SourceIndex(0)
5 >Emitted(29, 40) Source(17, 93) + SourceIndex(0)
6 >Emitted(29, 41) Source(17, 94) + SourceIndex(0)
---
>>>                        // Interface reference
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                        // Interface reference
1->Emitted(30, 25) Source(19, 21) + SourceIndex(0)
2 >Emitted(30, 47) Source(19, 43) + SourceIndex(0)
---
>>>                        var d1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            d1: InterfaceX
4 >                              ;
1 >Emitted(31, 25) Source(20, 21) + SourceIndex(0)
2 >Emitted(31, 29) Source(20, 25) + SourceIndex(0)
3 >Emitted(31, 31) Source(20, 39) + SourceIndex(0)
4 >Emitted(31, 32) 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(32, 25) Source(20, 41) + SourceIndex(0)
2 >Emitted(32, 27) Source(20, 43) + SourceIndex(0)
3 >Emitted(32, 28) Source(20, 44) + SourceIndex(0)
4 >Emitted(32, 38) Source(20, 54) + SourceIndex(0)
5 >Emitted(32, 40) Source(20, 56) + SourceIndex(0)
6 >Emitted(32, 41) Source(20, 57) + SourceIndex(0)
---
>>>                        var d2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            d2: SubSubModule1.InterfaceX
4 >                              ;
1 >Emitted(33, 25) Source(21, 21) + SourceIndex(0)
2 >Emitted(33, 29) Source(21, 25) + SourceIndex(0)
3 >Emitted(33, 31) Source(21, 53) + SourceIndex(0)
4 >Emitted(33, 32) 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(34, 25) Source(21, 55) + SourceIndex(0)
2 >Emitted(34, 27) Source(21, 57) + SourceIndex(0)
3 >Emitted(34, 28) Source(21, 58) + SourceIndex(0)
4 >Emitted(34, 38) Source(21, 68) + SourceIndex(0)
5 >Emitted(34, 40) Source(21, 70) + SourceIndex(0)
6 >Emitted(34, 41) Source(21, 71) + SourceIndex(0)
---
>>>                    }
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^
1 >
  >                
2 >                    }
1 >Emitted(35, 21) Source(22, 17) + SourceIndex(0)
2 >Emitted(35, 22) Source(22, 18) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^^
2 >                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >            }
1 >Emitted(36, 18) Source(23, 14) + SourceIndex(0)
---
>>>                SubSubModule1.ClassA = ClassA;
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^^^^^^^^^^^
3 >                                    ^^^^^^^^^
4 >                                             ^
1->
2 >                ClassA
3 >                                     {
  >                                                    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();
  >                                                    }
  >                                                }
4 >                                             
1->Emitted(37, 17) Source(4, 26) + SourceIndex(0)
2 >Emitted(37, 37) Source(4, 32) + SourceIndex(0)
3 >Emitted(37, 46) Source(23, 14) + SourceIndex(0)
4 >Emitted(37, 47) Source(23, 14) + SourceIndex(0)
---
>>>                class ClassB {
1 >^^^^^^^^^^^^^^^^
2 >                ^^^^^^
3 >                      ^^^^^^
4 >                            ^^^^^^^->
1 >
  >            
2 >                export class 
3 >                      ClassB
1 >Emitted(38, 17) Source(24, 13) + SourceIndex(0)
2 >Emitted(38, 23) Source(24, 26) + SourceIndex(0)
3 >Emitted(38, 29) Source(24, 32) + SourceIndex(0)
---
>>>                    BisIn1_1_1() {
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^
3 >                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1-> {
  >                public 
2 >                    BisIn1_1_1
1->Emitted(39, 21) Source(25, 24) + SourceIndex(0)
2 >Emitted(39, 31) 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(40, 25) Source(26, 21) + SourceIndex(0)
2 >Emitted(40, 72) 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(41, 25) Source(28, 21) + SourceIndex(0)
2 >Emitted(41, 64) Source(28, 60) + SourceIndex(0)
---
>>>                        var a1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a1: ClassA
4 >                              ;
1 >Emitted(42, 25) Source(29, 21) + SourceIndex(0)
2 >Emitted(42, 29) Source(29, 25) + SourceIndex(0)
3 >Emitted(42, 31) Source(29, 35) + SourceIndex(0)
4 >Emitted(42, 32) 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(43, 25) Source(29, 37) + SourceIndex(0)
2 >Emitted(43, 27) Source(29, 39) + SourceIndex(0)
3 >Emitted(43, 28) Source(29, 40) + SourceIndex(0)
4 >Emitted(43, 38) Source(29, 50) + SourceIndex(0)
5 >Emitted(43, 40) Source(29, 52) + SourceIndex(0)
6 >Emitted(43, 41) Source(29, 53) + SourceIndex(0)
---
>>>                        var a2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a2: SubSubModule1.ClassA
4 >                              ;
1 >Emitted(44, 25) Source(30, 21) + SourceIndex(0)
2 >Emitted(44, 29) Source(30, 25) + SourceIndex(0)
3 >Emitted(44, 31) Source(30, 49) + SourceIndex(0)
4 >Emitted(44, 32) 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(45, 25) Source(30, 51) + SourceIndex(0)
2 >Emitted(45, 27) Source(30, 53) + SourceIndex(0)
3 >Emitted(45, 28) Source(30, 54) + SourceIndex(0)
4 >Emitted(45, 38) Source(30, 64) + SourceIndex(0)
5 >Emitted(45, 40) Source(30, 66) + SourceIndex(0)
6 >Emitted(45, 41) Source(30, 67) + SourceIndex(0)
---
>>>                        var a3;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a3: SubModule1.SubSubModule1.ClassA
4 >                              ;
1 >Emitted(46, 25) Source(31, 21) + SourceIndex(0)
2 >Emitted(46, 29) Source(31, 25) + SourceIndex(0)
3 >Emitted(46, 31) Source(31, 60) + SourceIndex(0)
4 >Emitted(46, 32) 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(47, 25) Source(31, 62) + SourceIndex(0)
2 >Emitted(47, 27) Source(31, 64) + SourceIndex(0)
3 >Emitted(47, 28) Source(31, 65) + SourceIndex(0)
4 >Emitted(47, 38) Source(31, 75) + SourceIndex(0)
5 >Emitted(47, 40) Source(31, 77) + SourceIndex(0)
6 >Emitted(47, 41) Source(31, 78) + SourceIndex(0)
---
>>>                        var a4;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA
4 >                              ;
1 >Emitted(48, 25) Source(32, 21) + SourceIndex(0)
2 >Emitted(48, 29) Source(32, 25) + SourceIndex(0)
3 >Emitted(48, 31) Source(32, 76) + SourceIndex(0)
4 >Emitted(48, 32) 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(49, 25) Source(32, 78) + SourceIndex(0)
2 >Emitted(49, 27) Source(32, 80) + SourceIndex(0)
3 >Emitted(49, 28) Source(32, 81) + SourceIndex(0)
4 >Emitted(49, 38) Source(32, 91) + SourceIndex(0)
5 >Emitted(49, 40) Source(32, 93) + SourceIndex(0)
6 >Emitted(49, 41) 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(50, 25) Source(34, 21) + SourceIndex(0)
2 >Emitted(50, 66) Source(34, 62) + SourceIndex(0)
---
>>>                        var b1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            b1: ClassB
4 >                              ;
1 >Emitted(51, 25) Source(35, 21) + SourceIndex(0)
2 >Emitted(51, 29) Source(35, 25) + SourceIndex(0)
3 >Emitted(51, 31) Source(35, 35) + SourceIndex(0)
4 >Emitted(51, 32) 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(52, 25) Source(35, 37) + SourceIndex(0)
2 >Emitted(52, 27) Source(35, 39) + SourceIndex(0)
3 >Emitted(52, 28) Source(35, 40) + SourceIndex(0)
4 >Emitted(52, 38) Source(35, 50) + SourceIndex(0)
5 >Emitted(52, 40) Source(35, 52) + SourceIndex(0)
6 >Emitted(52, 41) Source(35, 53) + SourceIndex(0)
---
>>>                        var b2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            b2: TopLevelModule1.SubModule1.SubSubModule1.ClassB
4 >                              ;
1 >Emitted(53, 25) Source(36, 21) + SourceIndex(0)
2 >Emitted(53, 29) Source(36, 25) + SourceIndex(0)
3 >Emitted(53, 31) Source(36, 76) + SourceIndex(0)
4 >Emitted(53, 32) 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(54, 25) Source(36, 78) + SourceIndex(0)
2 >Emitted(54, 27) Source(36, 80) + SourceIndex(0)
3 >Emitted(54, 28) Source(36, 81) + SourceIndex(0)
4 >Emitted(54, 38) Source(36, 91) + SourceIndex(0)
5 >Emitted(54, 40) Source(36, 93) + SourceIndex(0)
6 >Emitted(54, 41) Source(36, 94) + SourceIndex(0)
---
>>>                        // Type only accessible from the root
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                        // Type only accessible from the root
1->Emitted(55, 25) Source(38, 21) + SourceIndex(0)
2 >Emitted(55, 62) Source(38, 58) + SourceIndex(0)
---
>>>                        var c1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA
4 >                              ;
1 >Emitted(56, 25) Source(39, 21) + SourceIndex(0)
2 >Emitted(56, 29) Source(39, 25) + SourceIndex(0)
3 >Emitted(56, 31) Source(39, 76) + SourceIndex(0)
4 >Emitted(56, 32) 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(57, 25) Source(39, 78) + SourceIndex(0)
2 >Emitted(57, 27) Source(39, 80) + SourceIndex(0)
3 >Emitted(57, 28) Source(39, 81) + SourceIndex(0)
4 >Emitted(57, 38) Source(39, 91) + SourceIndex(0)
5 >Emitted(57, 40) Source(39, 93) + SourceIndex(0)
6 >Emitted(57, 41) Source(39, 94) + SourceIndex(0)
---
>>>                        var c2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            c2: TopLevelModule2.SubModule3.ClassA
4 >                              ;
1 >Emitted(58, 25) Source(40, 21) + SourceIndex(0)
2 >Emitted(58, 29) Source(40, 25) + SourceIndex(0)
3 >Emitted(58, 31) Source(40, 62) + SourceIndex(0)
4 >Emitted(58, 32) 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(59, 25) Source(40, 64) + SourceIndex(0)
2 >Emitted(59, 27) Source(40, 66) + SourceIndex(0)
3 >Emitted(59, 28) Source(40, 67) + SourceIndex(0)
4 >Emitted(59, 36) Source(40, 75) + SourceIndex(0)
5 >Emitted(59, 38) Source(40, 77) + SourceIndex(0)
6 >Emitted(59, 39) Source(40, 78) + SourceIndex(0)
---
>>>                        // Interface reference
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                        // Interface reference
1->Emitted(60, 25) Source(42, 21) + SourceIndex(0)
2 >Emitted(60, 47) Source(42, 43) + SourceIndex(0)
---
>>>                        var d1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            d1: InterfaceX
4 >                              ;
1 >Emitted(61, 25) Source(43, 21) + SourceIndex(0)
2 >Emitted(61, 29) Source(43, 25) + SourceIndex(0)
3 >Emitted(61, 31) Source(43, 39) + SourceIndex(0)
4 >Emitted(61, 32) 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(62, 25) Source(43, 41) + SourceIndex(0)
2 >Emitted(62, 27) Source(43, 43) + SourceIndex(0)
3 >Emitted(62, 28) Source(43, 44) + SourceIndex(0)
4 >Emitted(62, 38) Source(43, 54) + SourceIndex(0)
5 >Emitted(62, 40) Source(43, 56) + SourceIndex(0)
6 >Emitted(62, 41) Source(43, 57) + SourceIndex(0)
---
>>>                        var d2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            d2: SubSubModule1.InterfaceX
4 >                              ;
1 >Emitted(63, 25) Source(44, 21) + SourceIndex(0)
2 >Emitted(63, 29) Source(44, 25) + SourceIndex(0)
3 >Emitted(63, 31) Source(44, 53) + SourceIndex(0)
4 >Emitted(63, 32) 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(64, 25) Source(44, 55) + SourceIndex(0)
2 >Emitted(64, 27) Source(44, 57) + SourceIndex(0)
3 >Emitted(64, 28) Source(44, 58) + SourceIndex(0)
4 >Emitted(64, 38) Source(44, 68) + SourceIndex(0)
5 >Emitted(64, 40) Source(44, 70) + SourceIndex(0)
6 >Emitted(64, 41) Source(44, 71) + SourceIndex(0)
---
>>>                    }
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^
1 >
  >                
2 >                    }
1 >Emitted(65, 21) Source(45, 17) + SourceIndex(0)
2 >Emitted(65, 22) Source(45, 18) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^^
2 >                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >            }
1 >Emitted(66, 18) Source(46, 14) + SourceIndex(0)
---
>>>                SubSubModule1.ClassB = ClassB;
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^^^^^^^^^^^
3 >                                    ^^^^^^^^^
4 >                                             ^
1->
2 >                ClassB
3 >                                     {
  >                                                    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();
  >                                                    }
  >                                                }
4 >                                             
1->Emitted(67, 17) Source(24, 26) + SourceIndex(0)
2 >Emitted(67, 37) Source(24, 32) + SourceIndex(0)
3 >Emitted(67, 46) Source(46, 14) + SourceIndex(0)
4 >Emitted(67, 47) Source(46, 14) + SourceIndex(0)
---
>>>                class NonExportedClassQ {
1 >^^^^^^^^^^^^^^^^
2 >                ^^^^^^
3 >                      ^^^^^^^^^^^^^^^^^
1 >
  >            export interface InterfaceX { XisIn1_1_1(); }
  >            
2 >                class 
3 >                      NonExportedClassQ
1 >Emitted(68, 17) Source(48, 13) + SourceIndex(0)
2 >Emitted(68, 23) Source(48, 19) + SourceIndex(0)
3 >Emitted(68, 40) Source(48, 36) + SourceIndex(0)
---
>>>                    constructor() {
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^^^^^^^^^^^->
1 > {
  >                
1 >Emitted(69, 21) Source(49, 17) + SourceIndex(0)
---
>>>                        function QQ() {
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^^^^^^
3 >                                 ^^
4 >                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->constructor() {
  >                    
2 >                        function 
3 >                                 QQ
1->Emitted(70, 25) Source(50, 21) + SourceIndex(0)
2 >Emitted(70, 34) Source(50, 30) + SourceIndex(0)
3 >Emitted(70, 36) 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(71, 29) Source(51, 25) + SourceIndex(0)
2 >Emitted(71, 68) Source(51, 64) + SourceIndex(0)
---
>>>                            var a4;
1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 >                            ^^^^
3 >                                ^^
4 >                                  ^
5 >                                   ^^^^^^^^^^->
1 >
  >                        
2 >                            var 
3 >                                a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA
4 >                                  ;
1 >Emitted(72, 29) Source(52, 25) + SourceIndex(0)
2 >Emitted(72, 33) Source(52, 29) + SourceIndex(0)
3 >Emitted(72, 35) Source(52, 80) + SourceIndex(0)
4 >Emitted(72, 36) 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(73, 29) Source(52, 82) + SourceIndex(0)
2 >Emitted(73, 31) Source(52, 84) + SourceIndex(0)
3 >Emitted(73, 32) Source(52, 85) + SourceIndex(0)
4 >Emitted(73, 42) Source(52, 95) + SourceIndex(0)
5 >Emitted(73, 44) Source(52, 97) + SourceIndex(0)
6 >Emitted(73, 45) Source(52, 98) + SourceIndex(0)
---
>>>                            var c1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 >                            ^^^^
3 >                                ^^
4 >                                  ^
5 >                                   ^^^^^^^^^^->
1 >
  >                        
2 >                            var 
3 >                                c1: TopLevelModule1.SubModule2.SubSubModule2.ClassA
4 >                                  ;
1 >Emitted(74, 29) Source(53, 25) + SourceIndex(0)
2 >Emitted(74, 33) Source(53, 29) + SourceIndex(0)
3 >Emitted(74, 35) Source(53, 80) + SourceIndex(0)
4 >Emitted(74, 36) 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(75, 29) Source(53, 82) + SourceIndex(0)
2 >Emitted(75, 31) Source(53, 84) + SourceIndex(0)
3 >Emitted(75, 32) Source(53, 85) + SourceIndex(0)
4 >Emitted(75, 42) Source(53, 95) + SourceIndex(0)
5 >Emitted(75, 44) Source(53, 97) + SourceIndex(0)
6 >Emitted(75, 45) Source(53, 98) + SourceIndex(0)
---
>>>                            var d1;
1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 >                            ^^^^
3 >                                ^^
4 >                                  ^
5 >                                   ^^^^^^^^^^->
1 >
  >                        
2 >                            var 
3 >                                d1: InterfaceX
4 >                                  ;
1 >Emitted(76, 29) Source(54, 25) + SourceIndex(0)
2 >Emitted(76, 33) Source(54, 29) + SourceIndex(0)
3 >Emitted(76, 35) Source(54, 43) + SourceIndex(0)
4 >Emitted(76, 36) 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(77, 29) Source(54, 45) + SourceIndex(0)
2 >Emitted(77, 31) Source(54, 47) + SourceIndex(0)
3 >Emitted(77, 32) Source(54, 48) + SourceIndex(0)
4 >Emitted(77, 42) Source(54, 58) + SourceIndex(0)
5 >Emitted(77, 44) Source(54, 60) + SourceIndex(0)
6 >Emitted(77, 45) Source(54, 61) + SourceIndex(0)
---
>>>                            var c2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 >                            ^^^^
3 >                                ^^
4 >                                  ^
5 >                                   ^^^^^^^^->
1 >
  >                        
2 >                            var 
3 >                                c2: TopLevelModule2.SubModule3.ClassA
4 >                                  ;
1 >Emitted(78, 29) Source(55, 25) + SourceIndex(0)
2 >Emitted(78, 33) Source(55, 29) + SourceIndex(0)
3 >Emitted(78, 35) Source(55, 66) + SourceIndex(0)
4 >Emitted(78, 36) 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(79, 29) Source(55, 68) + SourceIndex(0)
2 >Emitted(79, 31) Source(55, 70) + SourceIndex(0)
3 >Emitted(79, 32) Source(55, 71) + SourceIndex(0)
4 >Emitted(79, 40) Source(55, 79) + SourceIndex(0)
5 >Emitted(79, 42) Source(55, 81) + SourceIndex(0)
6 >Emitted(79, 43) Source(55, 82) + SourceIndex(0)
---
>>>                        }
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^
1 >
  >                    
2 >                        }
1 >Emitted(80, 25) Source(56, 21) + SourceIndex(0)
2 >Emitted(80, 26) Source(56, 22) + SourceIndex(0)
---
>>>                    }
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^
1 >
  >                
2 >                    }
1 >Emitted(81, 21) Source(57, 17) + SourceIndex(0)
2 >Emitted(81, 22) Source(57, 18) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^^
2 >                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >            }
1 >Emitted(82, 18) Source(58, 14) + SourceIndex(0)
---
>>>            })(SubSubModule1 = SubModule1.SubSubModule1 || (SubModule1.SubSubModule1 = {}));
1->^^^^^^^^^^^^
2 >            ^
3 >             ^^
4 >               ^^^^^^^^^^^^^
5 >                            ^^^
6 >                               ^^^^^^^^^^^^^^^^^^^^^^^^
7 >                                                       ^^^^^
8 >                                                            ^^^^^^^^^^^^^^^^^^^^^^^^
9 >                                                                                    ^^^^^^^^
1->
  >        
2 >            }
3 >             
4 >               SubSubModule1
5 >                            
6 >                               SubSubModule1
7 >                                                       
8 >                                                            SubSubModule1
9 >                                                                                     {
  >                                                                                                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(83, 13) Source(59, 9) + SourceIndex(0)
2 >Emitted(83, 14) Source(59, 10) + SourceIndex(0)
3 >Emitted(83, 16) Source(3, 26) + SourceIndex(0)
4 >Emitted(83, 29) Source(3, 39) + SourceIndex(0)
5 >Emitted(83, 32) Source(3, 26) + SourceIndex(0)
6 >Emitted(83, 56) Source(3, 39) + SourceIndex(0)
7 >Emitted(83, 61) Source(3, 26) + SourceIndex(0)
8 >Emitted(83, 85) Source(3, 39) + SourceIndex(0)
9 >Emitted(83, 93) 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(84, 13) Source(61, 9) + SourceIndex(0)
2 >Emitted(84, 87) Source(61, 83) + SourceIndex(0)
---
>>>            class ClassA {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^
4 >                        ^^^^^^^^->
1 >
  >        
2 >            class 
3 >                  ClassA
1 >Emitted(85, 13) Source(62, 9) + SourceIndex(0)
2 >Emitted(85, 19) Source(62, 15) + SourceIndex(0)
3 >Emitted(85, 25) Source(62, 21) + SourceIndex(0)
---
>>>                constructor() {
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^^^^^^^^^^^->
1-> {
  >            
1->Emitted(86, 17) Source(63, 13) + SourceIndex(0)
---
>>>                    function AA() {
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^
3 >                             ^^
4 >                               ^->
1->constructor() {
  >                
2 >                    function 
3 >                             AA
1->Emitted(87, 21) Source(64, 17) + SourceIndex(0)
2 >Emitted(87, 30) Source(64, 26) + SourceIndex(0)
3 >Emitted(87, 32) Source(64, 28) + SourceIndex(0)
---
>>>                        var a2;
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1->() {
  >                    
2 >                        var 
3 >                            a2: SubSubModule1.ClassA
4 >                              ;
1->Emitted(88, 25) Source(65, 21) + SourceIndex(0)
2 >Emitted(88, 29) Source(65, 25) + SourceIndex(0)
3 >Emitted(88, 31) Source(65, 49) + SourceIndex(0)
4 >Emitted(88, 32) 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(89, 25) Source(65, 51) + SourceIndex(0)
2 >Emitted(89, 27) Source(65, 53) + SourceIndex(0)
3 >Emitted(89, 28) Source(65, 54) + SourceIndex(0)
4 >Emitted(89, 38) Source(65, 64) + SourceIndex(0)
5 >Emitted(89, 40) Source(65, 66) + SourceIndex(0)
6 >Emitted(89, 41) Source(65, 67) + SourceIndex(0)
---
>>>                        var a3;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a3: SubModule1.SubSubModule1.ClassA
4 >                              ;
1 >Emitted(90, 25) Source(66, 21) + SourceIndex(0)
2 >Emitted(90, 29) Source(66, 25) + SourceIndex(0)
3 >Emitted(90, 31) Source(66, 60) + SourceIndex(0)
4 >Emitted(90, 32) 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(91, 25) Source(66, 62) + SourceIndex(0)
2 >Emitted(91, 27) Source(66, 64) + SourceIndex(0)
3 >Emitted(91, 28) Source(66, 65) + SourceIndex(0)
4 >Emitted(91, 38) Source(66, 75) + SourceIndex(0)
5 >Emitted(91, 40) Source(66, 77) + SourceIndex(0)
6 >Emitted(91, 41) Source(66, 78) + SourceIndex(0)
---
>>>                        var a4;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            a4: TopLevelModule1.SubModule1.SubSubModule1.ClassA
4 >                              ;
1 >Emitted(92, 25) Source(67, 21) + SourceIndex(0)
2 >Emitted(92, 29) Source(67, 25) + SourceIndex(0)
3 >Emitted(92, 31) Source(67, 76) + SourceIndex(0)
4 >Emitted(92, 32) 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(93, 25) Source(67, 78) + SourceIndex(0)
2 >Emitted(93, 27) Source(67, 80) + SourceIndex(0)
3 >Emitted(93, 28) Source(67, 81) + SourceIndex(0)
4 >Emitted(93, 38) Source(67, 91) + SourceIndex(0)
5 >Emitted(93, 40) Source(67, 93) + SourceIndex(0)
6 >Emitted(93, 41) Source(67, 94) + SourceIndex(0)
---
>>>                        // Interface reference
1->^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^^^^^^^^^^^^^^^^^^^
1->
  >                    
  >                    
2 >                        // Interface reference
1->Emitted(94, 25) Source(69, 21) + SourceIndex(0)
2 >Emitted(94, 47) Source(69, 43) + SourceIndex(0)
---
>>>                        var d2;
1 >^^^^^^^^^^^^^^^^^^^^^^^^
2 >                        ^^^^
3 >                            ^^
4 >                              ^
5 >                               ^^^^^^^^^^->
1 >
  >                    
2 >                        var 
3 >                            d2: SubSubModule1.InterfaceX
4 >                              ;
1 >Emitted(95, 25) Source(70, 21) + SourceIndex(0)
2 >Emitted(95, 29) Source(70, 25) + SourceIndex(0)
3 >Emitted(95, 31) Source(70, 53) + SourceIndex(0)
4 >Emitted(95, 32) 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(96, 25) Source(70, 55) + SourceIndex(0)
2 >Emitted(96, 27) Source(70, 57) + SourceIndex(0)
3 >Emitted(96, 28) Source(70, 58) + SourceIndex(0)
4 >Emitted(96, 38) Source(70, 68) + SourceIndex(0)
5 >Emitted(96, 40) Source(70, 70) + SourceIndex(0)
6 >Emitted(96, 41) Source(70, 71) + SourceIndex(0)
---
>>>                    }
1 >^^^^^^^^^^^^^^^^^^^^
2 >                    ^
1 >
  >                
2 >                    }
1 >Emitted(97, 21) Source(71, 17) + SourceIndex(0)
2 >Emitted(97, 22) Source(71, 18) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^
2 >                ^
1 >
  >            
2 >                }
1 >Emitted(98, 17) Source(72, 13) + SourceIndex(0)
2 >Emitted(98, 18) Source(72, 14) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >        }
1 >Emitted(99, 14) Source(73, 10) + SourceIndex(0)
---
>>>        })(SubModule1 = TopLevelModule1.SubModule1 || (TopLevelModule1.SubModule1 = {}));
1->^^^^^^^^
2 >        ^
3 >         ^^
4 >           ^^^^^^^^^^
5 >                     ^^^
6 >                        ^^^^^^^^^^^^^^^^^^^^^^^^^^
7 >                                                  ^^^^^
8 >                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
9 >                                                                                 ^^^^^^^^
1->
  >    
2 >        }
3 >         
4 >           SubModule1
5 >                     
6 >                        SubModule1
7 >                                                  
8 >                                                       SubModule1
9 >                                                                                  {
  >                                                                                         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(100, 9) Source(74, 5) + SourceIndex(0)
2 >Emitted(100, 10) Source(74, 6) + SourceIndex(0)
3 >Emitted(100, 12) Source(2, 22) + SourceIndex(0)
4 >Emitted(100, 22) Source(2, 32) + SourceIndex(0)
5 >Emitted(100, 25) Source(2, 22) + SourceIndex(0)
6 >Emitted(100, 51) Source(2, 32) + SourceIndex(0)
7 >Emitted(100, 56) Source(2, 22) + SourceIndex(0)
8 >Emitted(100, 82) Source(2, 32) + SourceIndex(0)
9 >Emitted(100, 90) 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(101, 9) Source(76, 5) + SourceIndex(0)
2 >Emitted(101, 13) Source(76, 22) + SourceIndex(0)
3 >Emitted(101, 23) Source(76, 32) + SourceIndex(0)
4 >Emitted(101, 24) Source(87, 6) + SourceIndex(0)
---
>>>        (function (SubModule2) {
1->^^^^^^^^
2 >        ^^^^^^^^^^^
3 >                   ^^^^^^^^^^
4 >                             ^^->
1->
2 >        export namespace 
3 >                   SubModule2
1->Emitted(102, 9) Source(76, 5) + SourceIndex(0)
2 >Emitted(102, 20) Source(76, 22) + SourceIndex(0)
3 >Emitted(102, 30) 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(103, 13) Source(77, 9) + SourceIndex(0)
2 >Emitted(103, 17) Source(77, 26) + SourceIndex(0)
3 >Emitted(103, 30) Source(77, 39) + SourceIndex(0)
4 >Emitted(103, 31) Source(84, 10) + SourceIndex(0)
---
>>>            (function (SubSubModule2) {
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^
3 >                       ^^^^^^^^^^^^^
4 >                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
2 >            export namespace 
3 >                       SubSubModule2
1->Emitted(104, 13) Source(77, 9) + SourceIndex(0)
2 >Emitted(104, 24) Source(77, 26) + SourceIndex(0)
3 >Emitted(104, 37) 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(105, 17) Source(78, 13) + SourceIndex(0)
2 >Emitted(105, 78) Source(78, 74) + SourceIndex(0)
---
>>>                class ClassA {
1 >^^^^^^^^^^^^^^^^
2 >                ^^^^^^
3 >                      ^^^^^^
4 >                            ^^^^^^^^^->
1 >
  >            
2 >                export class 
3 >                      ClassA
1 >Emitted(106, 17) Source(79, 13) + SourceIndex(0)
2 >Emitted(106, 23) Source(79, 26) + SourceIndex(0)
3 >Emitted(106, 29) Source(79, 32) + SourceIndex(0)
---
>>>                    AisIn1_2_2() { }
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^
3 >                              ^^^^^
4 >                                   ^
1-> { public 
2 >                    AisIn1_2_2
3 >                              () { 
4 >                                   }
1->Emitted(107, 21) Source(79, 42) + SourceIndex(0)
2 >Emitted(107, 31) Source(79, 52) + SourceIndex(0)
3 >Emitted(107, 36) Source(79, 57) + SourceIndex(0)
4 >Emitted(107, 37) Source(79, 58) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^^
2 >                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 > }
1 >Emitted(108, 18) Source(79, 60) + SourceIndex(0)
---
>>>                SubSubModule2.ClassA = ClassA;
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^^^^^^^^^^^
3 >                                    ^^^^^^^^^
4 >                                             ^
1->
2 >                ClassA
3 >                                     { public AisIn1_2_2() { } }
4 >                                             
1->Emitted(109, 17) Source(79, 26) + SourceIndex(0)
2 >Emitted(109, 37) Source(79, 32) + SourceIndex(0)
3 >Emitted(109, 46) Source(79, 60) + SourceIndex(0)
4 >Emitted(109, 47) Source(79, 60) + SourceIndex(0)
---
>>>                class ClassB {
1 >^^^^^^^^^^^^^^^^
2 >                ^^^^^^
3 >                      ^^^^^^
4 >                            ^^^^^^^^^->
1 >
  >            
2 >                export class 
3 >                      ClassB
1 >Emitted(110, 17) Source(80, 13) + SourceIndex(0)
2 >Emitted(110, 23) Source(80, 26) + SourceIndex(0)
3 >Emitted(110, 29) Source(80, 32) + SourceIndex(0)
---
>>>                    BisIn1_2_2() { }
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^
3 >                              ^^^^^
4 >                                   ^
1-> { public 
2 >                    BisIn1_2_2
3 >                              () { 
4 >                                   }
1->Emitted(111, 21) Source(80, 42) + SourceIndex(0)
2 >Emitted(111, 31) Source(80, 52) + SourceIndex(0)
3 >Emitted(111, 36) Source(80, 57) + SourceIndex(0)
4 >Emitted(111, 37) Source(80, 58) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^^
2 >                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 > }
1 >Emitted(112, 18) Source(80, 60) + SourceIndex(0)
---
>>>                SubSubModule2.ClassB = ClassB;
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^^^^^^^^^^^
3 >                                    ^^^^^^^^^
4 >                                             ^
1->
2 >                ClassB
3 >                                     { public BisIn1_2_2() { } }
4 >                                             
1->Emitted(113, 17) Source(80, 26) + SourceIndex(0)
2 >Emitted(113, 37) Source(80, 32) + SourceIndex(0)
3 >Emitted(113, 46) Source(80, 60) + SourceIndex(0)
4 >Emitted(113, 47) Source(80, 60) + SourceIndex(0)
---
>>>                class ClassC {
1 >^^^^^^^^^^^^^^^^
2 >                ^^^^^^
3 >                      ^^^^^^
4 >                            ^^^^^^^^^->
1 >
  >            
2 >                export class 
3 >                      ClassC
1 >Emitted(114, 17) Source(81, 13) + SourceIndex(0)
2 >Emitted(114, 23) Source(81, 26) + SourceIndex(0)
3 >Emitted(114, 29) Source(81, 32) + SourceIndex(0)
---
>>>                    CisIn1_2_2() { }
1->^^^^^^^^^^^^^^^^^^^^
2 >                    ^^^^^^^^^^
3 >                              ^^^^^
4 >                                   ^
1-> { public 
2 >                    CisIn1_2_2
3 >                              () { 
4 >                                   }
1->Emitted(115, 21) Source(81, 42) + SourceIndex(0)
2 >Emitted(115, 31) Source(81, 52) + SourceIndex(0)
3 >Emitted(115, 36) Source(81, 57) + SourceIndex(0)
4 >Emitted(115, 37) Source(81, 58) + SourceIndex(0)
---
>>>                }
1 >^^^^^^^^^^^^^^^^^
2 >                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 > }
1 >Emitted(116, 18) Source(81, 60) + SourceIndex(0)
---
>>>                SubSubModule2.ClassC = ClassC;
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^^^^^^^^^^^^^
3 >                                    ^^^^^^^^^
4 >                                             ^
5 >                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
2 >                ClassC
3 >                                     { public CisIn1_2_2() { } }
4 >                                             
1->Emitted(117, 17) Source(81, 26) + SourceIndex(0)
2 >Emitted(117, 37) Source(81, 32) + SourceIndex(0)
3 >Emitted(117, 46) Source(81, 60) + SourceIndex(0)
4 >Emitted(117, 47) Source(81, 60) + SourceIndex(0)
---
>>>            })(SubSubModule2 = SubModule2.SubSubModule2 || (SubModule2.SubSubModule2 = {}));
1->^^^^^^^^^^^^
2 >            ^
3 >             ^^
4 >               ^^^^^^^^^^^^^
5 >                            ^^^
6 >                               ^^^^^^^^^^^^^^^^^^^^^^^^
7 >                                                       ^^^^^
8 >                                                            ^^^^^^^^^^^^^^^^^^^^^^^^
9 >                                                                                    ^^^^^^^^
1->
  >            export interface InterfaceY { YisIn1_2_2(); }
  >            interface NonExportedInterfaceQ { }
  >        
2 >            }
3 >             
4 >               SubSubModule2
5 >                            
6 >                               SubSubModule2
7 >                                                       
8 >                                                            SubSubModule2
9 >                                                                                     {
  >                                                                                                // 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(118, 13) Source(84, 9) + SourceIndex(0)
2 >Emitted(118, 14) Source(84, 10) + SourceIndex(0)
3 >Emitted(118, 16) Source(77, 26) + SourceIndex(0)
4 >Emitted(118, 29) Source(77, 39) + SourceIndex(0)
5 >Emitted(118, 32) Source(77, 26) + SourceIndex(0)
6 >Emitted(118, 56) Source(77, 39) + SourceIndex(0)
7 >Emitted(118, 61) Source(77, 26) + SourceIndex(0)
8 >Emitted(118, 85) Source(77, 39) + SourceIndex(0)
9 >Emitted(118, 93) Source(84, 10) + SourceIndex(0)
---
>>>        })(SubModule2 = TopLevelModule1.SubModule2 || (TopLevelModule1.SubModule2 = {}));
1 >^^^^^^^^
2 >        ^
3 >         ^^
4 >           ^^^^^^^^^^
5 >                     ^^^
6 >                        ^^^^^^^^^^^^^^^^^^^^^^^^^^
7 >                                                  ^^^^^
8 >                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
9 >                                                                                 ^^^^^^^^
1 >
  >        
  >        export interface InterfaceY { YisIn1_2(); }
  >    
2 >        }
3 >         
4 >           SubModule2
5 >                     
6 >                        SubModule2
7 >                                                  
8 >                                                       SubModule2
9 >                                                                                  {
  >                                                                                         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(119, 9) Source(87, 5) + SourceIndex(0)
2 >Emitted(119, 10) Source(87, 6) + SourceIndex(0)
3 >Emitted(119, 12) Source(76, 22) + SourceIndex(0)
4 >Emitted(119, 22) Source(76, 32) + SourceIndex(0)
5 >Emitted(119, 25) Source(76, 22) + SourceIndex(0)
6 >Emitted(119, 51) Source(76, 32) + SourceIndex(0)
7 >Emitted(119, 56) Source(76, 22) + SourceIndex(0)
8 >Emitted(119, 82) Source(76, 32) + SourceIndex(0)
9 >Emitted(119, 90) Source(87, 6) + SourceIndex(0)
---
>>>        class ClassA {
1 >^^^^^^^^
2 >        ^^^^^^
3 >              ^^^^^^
4 >                    ^^^^^->
1 >
  >    
  >    
2 >        class 
3 >              ClassA
1 >Emitted(120, 9) Source(89, 5) + SourceIndex(0)
2 >Emitted(120, 15) Source(89, 11) + SourceIndex(0)
3 >Emitted(120, 21) Source(89, 17) + SourceIndex(0)
---
>>>            AisIn1() { }
1->^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^
4 >                       ^
1-> {
  >        public 
2 >            AisIn1
3 >                  () { 
4 >                       }
1->Emitted(121, 13) Source(90, 16) + SourceIndex(0)
2 >Emitted(121, 19) Source(90, 22) + SourceIndex(0)
3 >Emitted(121, 24) Source(90, 27) + SourceIndex(0)
4 >Emitted(121, 25) Source(90, 28) + SourceIndex(0)
---
>>>        }
1 >^^^^^^^^^
2 >         ^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >    }
1 >Emitted(122, 10) 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(123, 9) Source(97, 5) + SourceIndex(0)
2 >Emitted(123, 13) Source(97, 15) + SourceIndex(0)
3 >Emitted(123, 30) Source(97, 32) + SourceIndex(0)
4 >Emitted(123, 31) Source(99, 6) + SourceIndex(0)
---
>>>        (function (NotExportedModule) {
1->^^^^^^^^
2 >        ^^^^^^^^^^^
3 >                   ^^^^^^^^^^^^^^^^^
1->
2 >        namespace 
3 >                   NotExportedModule
1->Emitted(124, 9) Source(97, 5) + SourceIndex(0)
2 >Emitted(124, 20) Source(97, 15) + SourceIndex(0)
3 >Emitted(124, 37) Source(97, 32) + SourceIndex(0)
---
>>>            class ClassA {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^
1 > {
  >        
2 >            export class 
3 >                  ClassA
1 >Emitted(125, 13) Source(98, 9) + SourceIndex(0)
2 >Emitted(125, 19) Source(98, 22) + SourceIndex(0)
3 >Emitted(125, 25) Source(98, 28) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 > { }
1 >Emitted(126, 14) Source(98, 32) + SourceIndex(0)
---
>>>            NotExportedModule.ClassA = ClassA;
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^^^^^^^^^^^
3 >                                    ^^^^^^^^^
4 >                                             ^
5 >                                              ^^^^^^^^^^^^^->
1->
2 >            ClassA
3 >                                     { }
4 >                                             
1->Emitted(127, 13) Source(98, 22) + SourceIndex(0)
2 >Emitted(127, 37) Source(98, 28) + SourceIndex(0)
3 >Emitted(127, 46) Source(98, 32) + SourceIndex(0)
4 >Emitted(127, 47) 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(128, 9) Source(99, 5) + SourceIndex(0)
2 >Emitted(128, 10) Source(99, 6) + SourceIndex(0)
3 >Emitted(128, 12) Source(97, 15) + SourceIndex(0)
4 >Emitted(128, 29) Source(97, 32) + SourceIndex(0)
5 >Emitted(128, 34) Source(97, 15) + SourceIndex(0)
6 >Emitted(128, 51) Source(97, 32) + SourceIndex(0)
7 >Emitted(128, 59) Source(99, 6) + SourceIndex(0)
---
>>>    })(TopLevelModule1 || (exports.TopLevelModule1 = TopLevelModule1 = {}));
1->^^^^
2 >    ^
3 >     ^^
4 >       ^^^^^^^^^^^^^^^
5 >                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6 >                                                     ^^^^^^^^^^^^^^^
7 >                                                                    ^^^^^^^^
1->
  >
2 >    }
3 >     
4 >       TopLevelModule1
5 >                      
6 >                                                     TopLevelModule1
7 >                                                                     {
  >                                                                        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(129, 5) Source(100, 1) + SourceIndex(0)
2 >Emitted(129, 6) Source(100, 2) + SourceIndex(0)
3 >Emitted(129, 8) Source(1, 18) + SourceIndex(0)
4 >Emitted(129, 23) Source(1, 33) + SourceIndex(0)
5 >Emitted(129, 54) Source(1, 18) + SourceIndex(0)
6 >Emitted(129, 69) Source(1, 33) + SourceIndex(0)
7 >Emitted(129, 77) 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(130, 5) Source(102, 1) + SourceIndex(0)
2 >Emitted(130, 9) Source(102, 11) + SourceIndex(0)
3 >Emitted(130, 24) Source(102, 26) + SourceIndex(0)
4 >Emitted(130, 25) Source(108, 2) + SourceIndex(0)
---
>>>    (function (TopLevelModule2) {
1->^^^^
2 >    ^^^^^^^^^^^
3 >               ^^^^^^^^^^^^^^^
1->
2 >    namespace 
3 >               TopLevelModule2
1->Emitted(131, 5) Source(102, 1) + SourceIndex(0)
2 >Emitted(131, 16) Source(102, 11) + SourceIndex(0)
3 >Emitted(131, 31) 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(132, 9) Source(103, 5) + SourceIndex(0)
2 >Emitted(132, 13) Source(103, 22) + SourceIndex(0)
3 >Emitted(132, 23) Source(103, 32) + SourceIndex(0)
4 >Emitted(132, 24) Source(107, 6) + SourceIndex(0)
---
>>>        (function (SubModule3) {
1->^^^^^^^^
2 >        ^^^^^^^^^^^
3 >                   ^^^^^^^^^^
1->
2 >        export namespace 
3 >                   SubModule3
1->Emitted(133, 9) Source(103, 5) + SourceIndex(0)
2 >Emitted(133, 20) Source(103, 22) + SourceIndex(0)
3 >Emitted(133, 30) Source(103, 32) + SourceIndex(0)
---
>>>            class ClassA {
1 >^^^^^^^^^^^^
2 >            ^^^^^^
3 >                  ^^^^^^
4 >                        ^^^^^^^->
1 > {
  >        
2 >            export class 
3 >                  ClassA
1 >Emitted(134, 13) Source(104, 9) + SourceIndex(0)
2 >Emitted(134, 19) Source(104, 22) + SourceIndex(0)
3 >Emitted(134, 25) Source(104, 28) + SourceIndex(0)
---
>>>                AisIn2_3() { }
1->^^^^^^^^^^^^^^^^
2 >                ^^^^^^^^
3 >                        ^^^^^
4 >                             ^
1-> {
  >            public 
2 >                AisIn2_3
3 >                        () { 
4 >                             }
1->Emitted(135, 17) Source(105, 20) + SourceIndex(0)
2 >Emitted(135, 25) Source(105, 28) + SourceIndex(0)
3 >Emitted(135, 30) Source(105, 33) + SourceIndex(0)
4 >Emitted(135, 31) Source(105, 34) + SourceIndex(0)
---
>>>            }
1 >^^^^^^^^^^^^^
2 >             ^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
  >        }
1 >Emitted(136, 14) Source(106, 10) + SourceIndex(0)
---
>>>            SubModule3.ClassA = ClassA;
1->^^^^^^^^^^^^
2 >            ^^^^^^^^^^^^^^^^^
3 >                             ^^^^^^^^^
4 >                                      ^
5 >                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
2 >            ClassA
3 >                              {
  >                                         public AisIn2_3() { }
  >                                     }
4 >                                      
1->Emitted(137, 13) Source(104, 22) + SourceIndex(0)
2 >Emitted(137, 30) Source(104, 28) + SourceIndex(0)
3 >Emitted(137, 39) Source(106, 10) + SourceIndex(0)
4 >Emitted(137, 40) Source(106, 10) + SourceIndex(0)
---
>>>        })(SubModule3 = TopLevelModule2.SubModule3 || (TopLevelModule2.SubModule3 = {}));
1->^^^^^^^^
2 >        ^
3 >         ^^
4 >           ^^^^^^^^^^
5 >                     ^^^
6 >                        ^^^^^^^^^^^^^^^^^^^^^^^^^^
7 >                                                  ^^^^^
8 >                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
9 >                                                                                 ^^^^^^^^
1->
  >    
2 >        }
3 >         
4 >           SubModule3
5 >                     
6 >                        SubModule3
7 >                                                  
8 >                                                       SubModule3
9 >                                                                                  {
  >                                                                                         export class ClassA {
  >                                                                                             public AisIn2_3() { }
  >                                                                                         }
  >                                                                                     }
1->Emitted(138, 9) Source(107, 5) + SourceIndex(0)
2 >Emitted(138, 10) Source(107, 6) + SourceIndex(0)
3 >Emitted(138, 12) Source(103, 22) + SourceIndex(0)
4 >Emitted(138, 22) Source(103, 32) + SourceIndex(0)
5 >Emitted(138, 25) Source(103, 22) + SourceIndex(0)
6 >Emitted(138, 51) Source(103, 32) + SourceIndex(0)
7 >Emitted(138, 56) Source(103, 22) + SourceIndex(0)
8 >Emitted(138, 82) Source(103, 32) + SourceIndex(0)
9 >Emitted(138, 90) 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(139, 5) Source(108, 1) + SourceIndex(0)
2 >Emitted(139, 6) Source(108, 2) + SourceIndex(0)
3 >Emitted(139, 8) Source(102, 11) + SourceIndex(0)
4 >Emitted(139, 23) Source(102, 26) + SourceIndex(0)
5 >Emitted(139, 28) Source(102, 11) + SourceIndex(0)
6 >Emitted(139, 43) Source(102, 26) + SourceIndex(0)
7 >Emitted(139, 51) Source(108, 2) + SourceIndex(0)
---
>>>});
>>>//# sourceMappingURL=typeResolution.js.map