private static int matchMethodArguments(PsiMethod method, List<ReflectiveType> argumentTypes) {
    final PsiParameter[] parameters = method.getParameterList().getParameters();
    if (parameters.length != argumentTypes.size()) {
      return -1;
    }
    int mismatchCount = 0;
    for (int i = 0; i < parameters.length; i++) {
      final ReflectiveType argumentType = argumentTypes.get(i);
      if (argumentType == null) {
        mismatchCount++;
        continue;
      }
      if (!argumentType.isEqualTo(parameters[i].getType())) {
        return -1;
      }
    }
    return mismatchCount;
  }
private static int matchMethodArguments(PsiMethod method, List<ReflectiveType> argumentTypes)