private static String actualTypeParametersString(TypeElement type) {
    List<? extends TypeParameterElement> typeParameters = type.getTypeParameters();
    if (typeParameters.isEmpty()) {
      return "";
    }
    return typeParameters.stream()
        .map(e -> e.getSimpleName().toString())
        .collect(joining(", ", "<", ">"));
  }
An AutoValue extension that generates a subclass that does nothing useful.
value/src/it/functional/src/test/java/com/google/auto/value/gwt/EmptyExtension.java