void (@NotNull RefElement refElem) { final PsiElement element = refElem.getPsiElement(); final RefManagerExtension<?> extension = element != null ? getExtension(element.getLanguage()) : null; if (extension != null) { extension.removeReference(refElem); } if (element != null && myRefTable.remove(createAnchor(element)) != null) return; //PsiElement may have been invalidated and new one returned by getElement() is different so we need to do this stuff. for (Map.Entry<PsiAnchor, RefElement> entry : myRefTable.entrySet()) { RefElement value = entry.getValue(); PsiAnchor anchor = entry.getKey(); if (value == refElem) { myRefTable.remove(anchor); break; } } myCachedSortedRefs = null; }