boolean (@NotNull final ReferencesSearch.SearchParameters p, @NotNull final Processor<? super PsiReference> consumer) { final PsiElement refElement = p.getElementToSearch(); boolean isAnnotation = ReadAction.compute(() -> PsiUtil.isAnnotationMethod(refElement)); if (isAnnotation) { final PsiMethod method = (PsiMethod)refElement; PsiClass containingClass = ReadAction.compute(() -> { boolean isValueMethod = PsiAnnotation.DEFAULT_REFERENCED_METHOD_NAME.equals(method.getName()) && method.getParameterList().isEmpty(); return isValueMethod ? method.getContainingClass() : null; }); if (containingClass != null) { SearchScope scope = ReadAction.compute(() -> p.getEffectiveSearchScope()); final Query<PsiReference> query = ReferencesSearch.search(containingClass, scope, p.isIgnoreAccessScope()); return query.forEach(createImplicitDefaultAnnotationMethodConsumer(consumer)); } } return true; }