private ImmutableList<AnnotationMirror> propertyFieldAnnotations(
      TypeElement type, ExecutableElement method) {
    // We need to exclude type annotations from the ones being output on the method, since
    // they will be output as part of the field's type.
    Set<String> returnTypeAnnotations =
        getReturnTypeAnnotations(method, this::annotationAppliesToFields);
    if (!hasAnnotationMirror(method, COPY_ANNOTATIONS_NAME)) {
      // If there's no @CopyAnnotations, we will still copy a @Nullable annotation, if (1) it is not
      // a TYPE_USE annotation (those appear as part of the type in the generated code) and (2) it
      // applies to fields. All known non-TYPE_USE @Nullable annotations do apply to fields, but we
      // check just in case.
      return method.getAnnotationMirrors().stream()
          .filter(
              a -> {
                TypeElement annotationType = asType(a.getAnnotationType().asElement());
                return isNullable(a)
                    && !returnTypeAnnotations.contains(annotationType.getQualifiedName().toString())
                    && annotationAppliesToFields(annotationType);
              })
          .collect(toImmutableList());
    }
    ImmutableSet<String> excludedAnnotations =
        ImmutableSet.<String>builder()
            .addAll(getExcludedAnnotationClassNames(method))
            .add(Override.class.getCanonicalName())
            .build();

    Set<String> nonFieldAnnotations =
        method.getAnnotationMirrors().stream()
            .map(a -> a.getAnnotationType().asElement())
            .map(MoreElements::asType)
            .filter(a -> !annotationAppliesToFields(a))
            .map(e -> e.getQualifiedName().toString())
            .collect(toSet());

    Set<String> excluded =
        ImmutableSet.<String>builder()
            .addAll(excludedAnnotations)
            .addAll(returnTypeAnnotations)
            .addAll(nonFieldAnnotations)
            .build();
    return annotationsToCopy(type, method, excluded);
  }
Returns the fully-qualified name of an annotation-mirror, e.g.
"com.google.auto.value.AutoValue".
value/src/main/java/com/google/auto/value/processor/AutoValueishProcessor.java