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());
    }
An extension that implements the {@link com.google.auto.value.extension.memoized.Memoized}
contract.
value/src/main/java/com/google/auto/value/extension/memoized/processor/MemoizeExtension.java