code: final boolean detectInheritanceCycle() {
      if (detectImplicitPrototypeCycle()
          || Iterables.contains(this.getCtorImplementedInterfaces(), this)) {
          return true;
      }
      FunctionType fnType = this.getConstructor();
      return fnType != null && fnType.checkExtendsLoop() != null;
    }
docs: Detects cycles in either the implicit prototype chain, or the implemented/extended
  interfaces.<p>
  
  @return True iff a cycle was detected.