diff --git a/xml/dom-impl/src/com/intellij/util/xml/impl/GenericDomValueReference.java b/xml/dom-impl/src/com/intellij/util/xml/impl/GenericDomValueReference.java index 6bd16b7622b6..18c97c2a839d 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/impl/GenericDomValueReference.java +++ b/xml/dom-impl/src/com/intellij/util/xml/impl/GenericDomValueReference.java @@ -20,10 +20,12 @@ import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupValueFactory; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.pom.PomTarget; import com.intellij.pom.references.PomService; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiManager; import com.intellij.psi.PsiReferenceBase; +import com.intellij.psi.impl.PomTargetPsiElementImpl; import com.intellij.psi.xml.XmlAttributeValue; import com.intellij.psi.xml.XmlElement; import com.intellij.psi.xml.XmlTag; @@ -110,10 +112,15 @@ public class GenericDomValueReference extends PsiReferenceBase im final Converter converter = getConverter(); if (converter instanceof ResolvingConverter) { T value = myGenericValue.getValue(); - PsiElement resolvedElement = ((ResolvingConverter)converter).getPsiElement(value); - if (resolvedElement != null) { - return ((ResolvingConverter)converter).isReferenceTo(element, getStringValue(), value, getConvertContext()); + if (value instanceof DomElement && element instanceof PomTargetPsiElementImpl) { + PomTarget target = ((PomTargetPsiElementImpl)element).getTarget(); + if (target instanceof DomTarget) { + if (value.equals(((DomTarget)target).getDomElement())) { + return true; + } + } } + return ((ResolvingConverter)converter).isReferenceTo(element, getStringValue(), value, getConvertContext()); } return super.isReferenceTo(element); }