code: @VisibleForTesting
    static ImmutableSet<Class<?>> flattenHierarchy(Class<?> concreteClass) {
      try {
        return flattenHierarchyCache.getUnchecked(concreteClass);
      } catch (UncheckedExecutionException e) {
        throw Throwables.propagate(e.getCause());
      }
    }
docs: Flattens a class's type hierarchy into a set of {@code Class} objects including all
  superclasses (transitively) and all interfaces implemented by these superclasses.