text: function _assertThisInitialized(self) {
      if (self === void 0) {
          throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
      }
      return self;
  }
  function _classCallCheck(instance, Constructor) {
      if (!(instance instanceof Constructor)) {
          throw new TypeError("Cannot call a class as a function");
      }
  }
  function _getPrototypeOf(o) {
      _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
          return o.__proto__ || Object.getPrototypeOf(o);
      };
      return _getPrototypeOf(o);
  }
  function _inherits(subClass, superClass) {
      if (typeof superClass !== "function" && superClass !== null) {
          throw new TypeError("Super expression must either be null or a function");
      }
      subClass.prototype = Object.create(superClass && superClass.prototype, {
          constructor: {
              value: subClass,
              writable: true,
              configurable: true
          }
      });
      if (superClass) _setPrototypeOf(subClass, superClass);
  }
  function _possibleConstructorReturn(self, call) {
      if (call && (_typeof(call) === "object" || typeof call === "function")) {
          return call;
      }
      return _assertThisInitialized(self);
  }
  function _setPrototypeOf(o, p) {
      _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
          o.__proto__ = p;
          return o;
      };
      return _setPrototypeOf(o, p);
  }
  var _typeof = function(obj) {
      return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
  };
  var A = function A() {
      "use strict";
      _classCallCheck(this, A);
  };
  var a;
  var b;
  a = b;
  b = a; // error
  var b2;
  a = b2;
  b2 = a; // error
  var Generics;
  (function(Generics) {
      var foo = function foo() {
          var a;
          var b;
          a = b; // error
          b = a; // error
          var b2;
          a = b2; // error
          b2 = a; // error
          var b3;
          a = b3; // ok
          b3 = a; // ok
      };
      var A1 = function A1() {
          "use strict";
          _classCallCheck(this, A1);
      };
      var B = /*#__PURE__*/ function(A) {
          "use strict";
          _inherits(B, A);
          function B() {
              _classCallCheck(this, B);
              return _possibleConstructorReturn(this, _getPrototypeOf(B).apply(this, arguments));
          }
          return B;
      }(A1);
  })(Generics || (Generics = {
  }));
  