private static OptionalInt nullableAnnotationIndex(List<? extends AnnotationMirror> annotations) {
    return IntStream.range(0, annotations.size())
        .filter(i -> isNullable(annotations.get(i)))
        .findFirst();
  }
Returns an appropriate annotation spelling to indicate the nullability of an element. If the
return value is a non-empty Optional, that indicates that the element is nullable, and the
string should be used to annotate it. If the return value is an empty Optional, the element is
not nullable. The return value can be {@code Optional.of("")}, which indicates that the element
is nullable but that the nullability comes from a type annotation. In this case, the annotation
will appear when the type is written, and must not be specified again. If the Optional contains
a present non-empty string then that string will end with a space.

@param element the element that might be {@code @Nullable}, either a method or a parameter.
@param elementType the relevant type of the element: the return type for a method, or the
    parameter type for a parameter.
value/src/main/java/com/google/auto/value/processor/AutoValueishProcessor.java