text: //// [localTypes5.ts]
  function foo<A>() {
      class X {
          m<B, C>() {
              return (function <D>() {
                  class Y<E> {
                  }
                  return new Y<string>();
              })<Date>();
          }
      }
      var x = new X();
      return x.m<number, boolean>();
  }
  var x = foo<void>();
  
  
  //// [localTypes5.js]
  function foo() {
      var X = (function () {
          function X() {
          }
          X.prototype.m = function () {
              return (function () {
                  var Y = (function () {
                      function Y() {
                      }
                      return Y;
                  }());
                  return new Y();
              })();
          };
          return X;
      }());
      var x = new X();
      return x.m();
  }
  var x = foo();
  