void (AnnotationHolder holder, XPathVariableReference reference, @NotNull ContextProvider contextProvider) { if (reference.resolve() == null) { final VariableContext variableResolver = contextProvider.getVariableContext(); if (variableResolver == null) return; if (!variableResolver.canResolve()) { final Object[] variablesInScope = variableResolver.getVariablesInScope(reference); if (variablesInScope instanceof String[]) { final Set<String> variables = ContainerUtil.newHashSet((String[])variablesInScope); if (!variables.contains(reference.getReferencedName())) { markUnresolvedVariable(reference, holder); } } else if (variablesInScope instanceof QName[]) { final Set<QName> variables = ContainerUtil.newHashSet((QName[])variablesInScope); if (!variables.contains(contextProvider.getQName(reference))) { markUnresolvedVariable(reference, holder); } } } else { markUnresolvedVariable(reference, holder); } } }