private boolean determineIfUnambiguousTypeuse(String annotationClassName) {
      TypeElement annotationTypeElement = processing().getElementUtils().getTypeElement(annotationClassName);
      @Nullable Target targetAnnotation = annotationTypeElement.getAnnotation(Target.class);
      if (targetAnnotation == null) {
        // annotation can be used anywhere
        return false;
      }
      boolean isTypeUse = false;
      for (ElementType elementType : targetAnnotation.value()) {
        switch (elementType) {
          case LOCAL_VARIABLE:
          case PARAMETER:
          case FIELD:
          case METHOD:
            // these might conflict with TYPE_USE
            return false;
          case TYPE_USE:
            isTypeUse = true;
            continue;
          default: // skip
        }
      }
      return isTypeUse;
    }
Check if {@code qualifiedName} is known to current environment (annotation processor).
Retrieve (by canonical name) {@link TypeElement} from APT environment.
value-processor/src/org/immutables/value/processor/meta/Proto.java