@NotNull
  private DeclarationHolder getAppropriateHolder(@Nullable AnnotationHint hint) {
    boolean mayUseCache = useCache();
    if (hint == null) {
      if (mayUseCache || myAnnotationsCache.hasUpToDateValue() && myDeclarationsCache.hasUpToDateValue()) {
        return myAllCachedDeclarations;
      }
    }
    else if (hint.isAnnotationResolve()) {
      if (mayUseCache || myAnnotationsCache.hasUpToDateValue()) {
        return myAnnotationsCache.getValue();
      }
    }
    else {
      if (mayUseCache || myDeclarationsCache.hasUpToDateValue()) {
        return myDeclarationsCache.getValue();
      }
    }
    return this::processDeclarationsNoCache;
  }
@NotNull
  private DeclarationHolder getAppropriateHolder(@Nullable AnnotationHint hint)