private ImmutableList<TypeVariableName> annotatedTypeVariableNames() {
    return context.autoValueClass().getTypeParameters().stream()
        .map(
            p ->
                TypeVariableName.get(p)
                    .annotated(
                        p.getAnnotationMirrors().stream()
                            .map(AnnotationSpec::get)
                            .collect(toImmutableList())))
        .collect(toImmutableList());
  }
A factory for {@link TypeSpec}s used in {@link AutoValueExtension} implementations.

<p>This is copied from {@link
com.google.auto.value.extension.memoized.processor.MemoizeExtension} until we find a better
location to consolidate the code.
value/src/main/java/com/google/auto/value/extension/toprettystring/processor/ExtensionClassTypeSpecBuilder.java