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