PsiAnchor (@NotNull PsiElement element) { for (SmartPointerAnchorProvider provider : SmartPointerAnchorProvider.EP_NAME.getExtensionList()) { PsiElement anchorElement = provider.getAnchor(element); if (anchorElement != null && anchorElement != element) { PsiAnchor wrappedAnchor = create(anchorElement); if (!(wrappedAnchor instanceof HardReference)) { return new WrappedElementAnchor(provider, wrappedAnchor); } } } return new HardReference(element); }