From 1b5df35a547d38fff8c6a0c61746074c14b0740b Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 31 Jul 2012 15:02:41 +0200 Subject: [PATCH] inplace introduce: insert suggested name by type on restart when current variable was empty (IDEA-89382) --- .../introduceField/InplaceIntroduceConstantPopup.java | 2 +- .../introduceField/InplaceIntroduceFieldPopup.java | 2 +- .../introduceParameter/IntroduceParameterHandler.java | 4 ++-- .../introduce/inplace/AbstractInplaceIntroducer.java | 9 +++++++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java index 447594a67388..ef251bfce7e8 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java @@ -158,7 +158,7 @@ public class InplaceIntroduceConstantPopup extends AbstractInplaceIntroduceField @Override protected String[] suggestNames(PsiType defaultType, String propName) { - return IntroduceConstantDialog.createNameSuggestionGenerator(propName, myExpr, JavaCodeStyleManager.getInstance(myProject), null, + return IntroduceConstantDialog.createNameSuggestionGenerator(propName, myExpr != null && myExpr.isValid() ? myExpr : null, JavaCodeStyleManager.getInstance(myProject), null, myParentClass) .getSuggestedNameInfo(defaultType).names; } diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java index 102b021103e3..fa8cac363d57 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java @@ -102,7 +102,7 @@ public class InplaceIntroduceFieldPopup extends AbstractInplaceIntroduceFieldPop @Override protected String[] suggestNames(PsiType defaultType, String propName) { - return suggestFieldName(defaultType, (PsiLocalVariable)getLocalVariable(), myExpr, myStatic, myParentClass).names; + return suggestFieldName(defaultType, (PsiLocalVariable)getLocalVariable(), myExpr != null && myExpr.isValid() ? myExpr : null, myStatic, myParentClass).names; } public static SuggestedNameInfo suggestFieldName(@Nullable PsiType defaultType, diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java index 877de83b4027..f020f8b72a5e 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java @@ -282,8 +282,8 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { return new NameSuggestionsGenerator() { public SuggestedNameInfo getSuggestedNameInfo(PsiType type) { final JavaCodeStyleManager codeStyleManager = JavaCodeStyleManager.getInstance(project); - SuggestedNameInfo info = codeStyleManager.suggestVariableName(VariableKind.PARAMETER, propName, expr, type); - if (expr != null) { + SuggestedNameInfo info = codeStyleManager.suggestVariableName(VariableKind.PARAMETER, propName, expr != null && expr.isValid() ? expr : null, type); + if (expr != null && expr.isValid()) { info = codeStyleManager.suggestUniqueVariableName(info, expr, true); } final String[] strings = AbstractJavaInplaceIntroducer.appendUnresolvedExprName(JavaCompletionUtil diff --git a/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceIntroducer.java b/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceIntroducer.java index d86db67e3db1..270eaf75fc02 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceIntroducer.java +++ b/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceIntroducer.java @@ -310,6 +310,15 @@ public abstract class AbstractInplaceIntroducer