public static void checkParametersToDelete(PsiMethod method,
                                               boolean[] toRemove,
                                               MultiMap<PsiElement, @DialogMessage String> conflictDescriptions) {
      if (method instanceof SyntheticElement) return;
      final PsiParameter[] parameters = method.getParameterList().getParameters();
      final PsiCodeBlock body = method.getBody();
      if (body != null) {
        final LocalSearchScope searchScope = new LocalSearchScope(body);
        final PsiMethodCallExpression superCall = getSuperCall(method, body);
        for (int i = 0; i < toRemove.length; i++) {
          if (toRemove[i]) {
            for (PsiReference ref : ReferencesSearch.search(parameters[i], searchScope)) {
              if (superCall == null || !passUnchangedParameterToSuperCall(superCall, i, ref)) {
                String paramName = StringUtil.capitalize(RefactoringUIUtil.getDescription(parameters[i], true));
                conflictDescriptions.putValue(parameters[i], JavaRefactoringBundle.message("parameter.used.in.method.body.warning", paramName));
                break;
              }
            }
          }
        }
      }
    }
public static void checkParametersToDelete(PsiMethod method,
                                               boolean[] toRemove,
                                               MultiMap<PsiElement, @DialogMessage String> conflictDescriptions)