From a6bbf74b7837fc5ea57b23be8039c5cbf3911530 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 26 Mar 2020 12:27:08 +0700 Subject: [PATCH] EA-228757 - IOE: PsiElementFactoryImpl.createVariableDeclarationStatement GitOrigin-RevId: 0bbefa07fde8fb4dd234aa221c4a360ae9d9b829 --- .../refactoring/introduceVariable/IntroduceVariableBase.java | 2 +- .../inplaceIntroduceVariable/noNameSuggested.java | 5 +++++ .../inplaceIntroduceVariable/noNameSuggested_after.java | 5 +++++ .../java/refactoring/InplaceIntroduceVariableTest.java | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/refactoring/inplaceIntroduceVariable/noNameSuggested.java create mode 100644 java/java-tests/testData/refactoring/inplaceIntroduceVariable/noNameSuggested_after.java diff --git a/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java b/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java index 5e16ef3c6c85..8ed0dea681f4 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceVariable/IntroduceVariableBase.java @@ -1055,7 +1055,7 @@ public abstract class IntroduceVariableBase extends IntroduceHandlerBase { final JavaReplaceChoice replaceChoice) { final boolean replaceAll = replaceChoice.isAll(); final SuggestedNameInfo suggestedName = getSuggestedName(typeSelectorManager.getDefaultType(), expr, anchor); - final String variableName = suggestedName.names.length > 0 ? suggestedName.names[0] : ""; + final String variableName = suggestedName.names.length > 0 ? suggestedName.names[0] : "v"; final boolean declareFinal = replaceAll && declareFinalIfAll || !anyAssignmentLHS && createFinals(anchor.getContainingFile()) || anchor instanceof PsiSwitchLabelStatementBase; final boolean declareVarType = canBeExtractedWithoutExplicitType(expr) && createVarType() && !replaceChoice.isChain(); diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceVariable/noNameSuggested.java b/java/java-tests/testData/refactoring/inplaceIntroduceVariable/noNameSuggested.java new file mode 100644 index 000000000000..9ab9c1e051bf --- /dev/null +++ b/java/java-tests/testData/refactoring/inplaceIntroduceVariable/noNameSuggested.java @@ -0,0 +1,5 @@ +class _ { + { + new _(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/inplaceIntroduceVariable/noNameSuggested_after.java b/java/java-tests/testData/refactoring/inplaceIntroduceVariable/noNameSuggested_after.java new file mode 100644 index 000000000000..19ecbe396e81 --- /dev/null +++ b/java/java-tests/testData/refactoring/inplaceIntroduceVariable/noNameSuggested_after.java @@ -0,0 +1,5 @@ +class _ { + { + _ xyz = new _(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceVariableTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceVariableTest.java index 09ea3a2e13f8..a23f6d124e91 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceVariableTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/InplaceIntroduceVariableTest.java @@ -73,6 +73,10 @@ public class InplaceIntroduceVariableTest extends AbstractJavaInplaceIntroduceTe type("expr"); }); } + + public void testNoNameSuggested() { + doTest(introducer -> type("xyz")); + } public void testPlaceInsideLoopAndRename() { doTest(introducer -> type("expr"));