private static void checkForClosurePropertySignatureOverload(PsiClass clazz,
                                                               GrMethod prototype,
                                                               final GrMethod refactoredMethod,
                                                               final MultiMap<PsiElement, String> conflicts,
                                                               final List<MethodSignature> prototypeSignatures) {
    final boolean isStatic = prototype.hasModifierProperty(PsiModifier.STATIC);
    final String name = prototype.getName();
    if (!GroovyPropertyUtils.isProperty(clazz, name, isStatic)) return;

    final PsiMethod getter = GroovyPropertyUtils.findPropertyGetter(clazz, name, isStatic, true);

    final PsiType returnType;
    if (getter instanceof GrMethod) {
      returnType = ((GrMethod)getter).getInferredReturnType();
    }
    else if (getter instanceof GrAccessorMethod) {
      returnType = ((GrAccessorMethod)getter).getInferredReturnType();
    }
    else {
      return;
    }
    if (!(returnType instanceof GrClosureType)) return;

    final List<GrSignature> signatures = ((GrClosureType)returnType).getSignatures();
    for (GrSignature signature : signatures) {
      NextSignature:
      for (MethodSignature prototypeSignature : prototypeSignatures) {
        final GrClosureParameter[] params = signature.getParameters();
        final PsiType[] types = prototypeSignature.getParameterTypes();
        if (types.length != params.length) continue;
        for (int i = 0; i < types.length; i++) {
          if (!TypesUtil.isAssignableByMethodCallConversion(types[i], params[i].getType(), refactoredMethod.getParameterList())) {
            continue NextSignature;
          }
        }
        conflicts.putValue(getter, GroovyRefactoringBundle.message("refactored.method.will.cover.closure.property", name, RefactoringUIUtil.getDescription(getter.getContainingClass(), false)));
      }
    }
  }
private static void checkForClosurePropertySignatureOverload(PsiClass clazz,
                                                               GrMethod prototype,
                                                               final GrMethod refactoredMethod,
                                                               final MultiMap<PsiElement, String> conflicts,
                                                               final List<MethodSignature> prototypeSignatures)