void (AnnotationHolder holder, XPathNodeTypeTest test, boolean wildcardAllowed, int min, int max) { final XPathExpression[] arguments = test.getArgumentList(); if (arguments.length >= min) { for (XPathExpression arg : arguments) { final PrefixedName argument = findQName(arg); if (argument == null) { holder.newAnnotation(HighlightSeverity.ERROR, XPathBundle.message("annotator.error.qname.expected")).range(arg).create(); } else { if (!wildcardAllowed && ("*".equals(argument.getPrefix()) || "*".equals(argument.getLocalName()))) { holder.newAnnotation(HighlightSeverity.ERROR, XPathBundle.message("annotator.error.qname.expected")).range(arg).create(); } } } } else { holder.newAnnotation(HighlightSeverity.ERROR, XPathBundle.message("annotator.error.missing.argument.for.node.kind.test")).create(); } markExceedingArguments(holder, arguments, max); }