text: //// [exportImportAlias.ts]
  // expect no errors here
  
  module A {
  
      export var x = 'hello world'
      export class Point {
          constructor(public x: number, public y: number) { }
      }
      export module B {
          export interface Id {
              name: string;
          }
      }
  }
  
  module C {
      export import a = A;
  }
  
  var a: string = C.a.x;
  var b: { x: number; y: number; } = new C.a.Point(0, 0);
  var c: { name: string };
  var c: C.a.B.Id;
  
  module X {
      export function Y() {
          return 42;
      }
  
      export module Y {
          export class Point {
              constructor(public x: number, public y: number) { }
          }
      }
  }
  
  module Z {
  
      // 'y' should be a fundule here
      export import y = X.Y;
  }
  
  var m: number = Z.y();
  var n: { x: number; y: number; } = new Z.y.Point(0, 0);
  
  module K {
      export class L {
          constructor(public name: string) { }
      }
  
      export module L {
          export var y = 12;
          export interface Point {
              x: number;
              y: number;
          }
      }
  }
  
  module M {
      export import D = K.L;
  }
  
  var o: { name: string };
  var o = new M.D('Hello');
  
  var p: { x: number; y: number; }
  var p: M.D.Point;
  
  //// [exportImportAlias.js]
  // expect no errors here
  var A;
  (function (A) {
      A.x = 'hello world';
      var Point = (function () {
          function Point(x, y) {
              this.x = x;
              this.y = y;
          }
          return Point;
      }());
      A.Point = Point;
  })(A || (A = {}));
  var C;
  (function (C) {
      C.a = A;
  })(C || (C = {}));
  var a = C.a.x;
  var b = new C.a.Point(0, 0);
  var c;
  var c;
  var X;
  (function (X) {
      function Y() {
          return 42;
      }
      X.Y = Y;
      var Y;
      (function (Y) {
          var Point = (function () {
              function Point(x, y) {
                  this.x = x;
                  this.y = y;
              }
              return Point;
          }());
          Y.Point = Point;
      })(Y = X.Y || (X.Y = {}));
  })(X || (X = {}));
  var Z;
  (function (Z) {
      // 'y' should be a fundule here
      Z.y = X.Y;
  })(Z || (Z = {}));
  var m = Z.y();
  var n = new Z.y.Point(0, 0);
  var K;
  (function (K) {
      var L = (function () {
          function L(name) {
              this.name = name;
          }
          return L;
      }());
      K.L = L;
      var L;
      (function (L) {
          L.y = 12;
      })(L = K.L || (K.L = {}));
  })(K || (K = {}));
  var M;
  (function (M) {
      M.D = K.L;
  })(M || (M = {}));
  var o;
  var o = new M.D('Hello');
  var p;
  var p;
  