code: static int excessArgumentsMatchesVargsParameter(Parameter[] params, ClassNode[] args) {
          // we already know parameter length is bigger zero and last is a vargs
          // the excess arguments are all put in an array for the vargs call
          // so check against the component type
          int dist = 0;
          ClassNode vargsBase = params[params.length - 1].getType().getComponentType();
          for (int i = params.length; i < args.length; i++) {
              if (!isAssignableTo(args[i],vargsBase)) return -1;
              else if (!args[i].equals(vargsBase)) dist+=getDistance(args[i], vargsBase);
          }
          return dist;
      }
docs: Checks that excess arguments match the vararg signature parameter.
  @param params
  @param args
  @return -1 if no match, 0 if all arguments matches the vararg type and >0 if one or more vararg argument is
  assignable to the vararg type, but still not an exact match