diff --git a/xml/impl/src/com/intellij/xml/util/XmlEnumeratedValueReferenceProvider.java b/xml/impl/src/com/intellij/xml/util/XmlEnumeratedValueReferenceProvider.java index f7c5e4d38f55..56c0c0aac86c 100644 --- a/xml/impl/src/com/intellij/xml/util/XmlEnumeratedValueReferenceProvider.java +++ b/xml/impl/src/com/intellij/xml/util/XmlEnumeratedValueReferenceProvider.java @@ -45,11 +45,6 @@ public class XmlEnumeratedValueReferenceProvider extends P if (XmlSchemaTagsProcessor.PROCESSING_FLAG.get() != null || context.get(SUPPRESS) != null) { return PsiReference.EMPTY_ARRAY; } - - @SuppressWarnings("unchecked") PsiElement host = getHost((T)element); - if (host instanceof PsiLanguageInjectionHost && InjectedLanguageUtil.hasInjections((PsiLanguageInjectionHost)host)) { - return PsiReference.EMPTY_ARRAY; - } if (XmlHighlightVisitor.skipValidation(element)) { return PsiReference.EMPTY_ARRAY; @@ -61,16 +56,22 @@ public class XmlEnumeratedValueReferenceProvider extends P } @SuppressWarnings("unchecked") final Object descriptor = getDescriptor((T)element); - if (descriptor instanceof XmlEnumerationDescriptor enumerationDescriptor) { + if (!(descriptor instanceof XmlEnumerationDescriptor enumerationDescriptor)) { + return PsiReference.EMPTY_ARRAY; + } - if (enumerationDescriptor.isFixed() || enumerationDescriptor.isEnumerated((XmlElement)element)) { - //noinspection unchecked - return enumerationDescriptor.getValueReferences((XmlElement)element, unquotedValue); - } - else if (unquotedValue.equals(enumerationDescriptor.getDefaultValue())) { // todo case insensitive - return ContainerUtil.map2Array(enumerationDescriptor.getValueReferences((XmlElement)element, unquotedValue), PsiReference.class, - reference -> PsiDelegateReference.createSoft(reference, true)); - } + @SuppressWarnings("unchecked") PsiElement host = getHost((T)element); + if (host instanceof PsiLanguageInjectionHost && InjectedLanguageUtil.hasInjections((PsiLanguageInjectionHost)host)) { + return PsiReference.EMPTY_ARRAY; + } + + if (enumerationDescriptor.isFixed() || enumerationDescriptor.isEnumerated((XmlElement)element)) { + //noinspection unchecked + return enumerationDescriptor.getValueReferences((XmlElement)element, unquotedValue); + } + else if (unquotedValue.equals(enumerationDescriptor.getDefaultValue())) { // todo case insensitive + return ContainerUtil.map2Array(enumerationDescriptor.getValueReferences((XmlElement)element, unquotedValue), PsiReference.class, + reference -> PsiDelegateReference.createSoft(reference, true)); } return PsiReference.EMPTY_ARRAY; }