@Override
    public Optional<AnnotationMirror> visitTypeVariable(TypeVariable t, Void unused) {
      if (!visiting.add(t)) {
        return Optional.empty();
      }
      return nullableIn(t.getAnnotationMirrors())
          .map(Optional::of)
          .orElseGet(() -> visitAll(ImmutableList.of(t.getUpperBound(), t.getLowerBound())));
    }
Returns a list that is either empty or contains a single element that is an appropriate
{@code @Nullable} type-annotation.
value/src/main/java/com/google/auto/value/processor/Nullables.java