From 496e9e4e4e27ab3eaa6889a2f9a9aee53dd61c96 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 25 Apr 2012 17:15:18 +0200 Subject: [PATCH] suggest unique names in batch (IDEA-85203) --- .../impl/CreateFieldFromParameterAction.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/CreateFieldFromParameterAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/CreateFieldFromParameterAction.java index d37a7f695002..5cefd9fbfd20 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/CreateFieldFromParameterAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/CreateFieldFromParameterAction.java @@ -284,8 +284,9 @@ public class CreateFieldFromParameterAction implements IntentionAction { processParameter(project, ((ParameterClassMember)selectedElements.get(0)).getParameter(), isInteractive); } else { //do not ask for names in batch + final HashSet usedNames = new HashSet(); for (ClassMember selectedElement : selectedElements) { - processParameter(project, ((ParameterClassMember)selectedElement).getParameter(), false); + processParameter(project, ((ParameterClassMember)selectedElement).getParameter(), false, usedNames); } } } @@ -300,6 +301,13 @@ public class CreateFieldFromParameterAction implements IntentionAction { private static void processParameter(final Project project, final PsiParameter myParameter, boolean isInteractive) { + processParameter(project, myParameter, isInteractive, new HashSet()); + } + + private static void processParameter(final Project project, + final PsiParameter myParameter, + boolean isInteractive, + final Set usedNames) { IdeDocumentHistory.getInstance(project).includeCurrentPlaceAsChangePlace(); final PsiType[] types = getTypes(myParameter); final JavaCodeStyleManager styleManager = JavaCodeStyleManager.getInstance(project); @@ -347,7 +355,12 @@ public class CreateFieldFromParameterAction implements IntentionAction { } else { isFinalToCalc = !isMethodStatic && method.isConstructor(); - fieldNameToCalc = names[0]; + if (usedNames.add(names[0])) { + fieldNameToCalc = names[0]; + } + else { + fieldNameToCalc = JavaCodeStyleManager.getInstance(project).suggestUniqueVariableName(names[0], myParameter, true); + } type= types[0]; }