void (@NotNull final ProgressIndicator indicator) { final Collection<PsiReference> references = Collections.synchronizedSet(new HashSet<>()); final Processor<PsiReference> consumer = psiReference -> { references.add(psiReference); return true; }; ReferencesSearch.search(namedElem).forEach(consumer); boolean isProperty = ReadAction.compute(() -> namedElem instanceof GrField && ((GrField)namedElem).isProperty()); if (isProperty) { final GrAccessorMethod[] getters = ReadAction.compute(() -> ((GrField)namedElem).getGetters()); for (GrAccessorMethod getter : getters) { MethodReferencesSearch.search(getter).forEach(consumer); } } for (final PsiReference reference : references) { ApplicationManager.getApplication().runReadAction(() -> { final PsiElement element = reference.getElement(); occurrences.add(element); }); } }