@Override
    public @Nullable Void visitDeclared(DeclaredType t, ImmutableSet.Builder<TypeElement> p) {
      p.add(MoreElements.asType(t.asElement()));
      for (TypeMirror typeArgument : t.getTypeArguments()) {
        typeArgument.accept(this, p);
      }
      return null;
    }
Returns the set of {@linkplain TypeElement types} that are referenced by the given {@link
TypeMirror}.
common/src/main/java/com/google/auto/common/MoreTypes.java