private @Nullable Boolean isInheritorOf(final int who, final int whom, IntSet visitedClasses) {
      if (who == whom) {
        return Boolean.TRUE;
      }

      for (ClassRepr repr : reprsByName(who, ClassRepr.class)) {
        if (visitedClasses == null) {
          visitedClasses = new IntOpenHashSet();
          visitedClasses.add(who);
        }
        for (TypeRepr.ClassType s : repr.getSuperTypes()) {
          if (!visitedClasses.add(s.className)) {
            continue;
          }
          if (Boolean.TRUE.equals(isInheritorOf(s.className, whom, visitedClasses))) {
            return Boolean.TRUE;
          }
        }
      }

      return null;
    }
private @Nullable Boolean isInheritorOf(final int who, final int whom, IntSet visitedClasses)