@Nullable
  private static Parameter findParameterDecl(XPathExpression[] argumentList, XPathExpression expr, Parameter[] parameters) {
    for (int i = 0; i < argumentList.length; i++) {
      XPathExpression arg = argumentList[i];
      if (arg == expr) {
        if (i < parameters.length) {
          return parameters[i];
        } else if (parameters.length > 0) {
          final Parameter last = parameters[parameters.length - 1];
          if (last.kind == Parameter.Kind.VARARG) {
            return last;
          }
        }
      }
    }
    return null;
  }
@Nullable
  private static Parameter findParameterDecl(XPathExpression[] argumentList, XPathExpression expr, Parameter[] parameters)