From 012d7e163fb5db7b90ae48e0ddb4243b6d217b68 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 17 Mar 2020 10:03:42 +0700 Subject: [PATCH] Introduce pattern variable: ignore var setting GitOrigin-RevId: a34a3b3398cb42c0cb89c4b3254198dea7355f0e --- .../introduceVariable/VariableExtractor.java | 10 +++++----- .../java/refactoring/IntroduceVariableTest.java | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableExtractor.java b/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableExtractor.java index 0c49f1be0621..820b9f1f19d8 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableExtractor.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableExtractor.java @@ -111,11 +111,11 @@ class VariableExtractor { if (!(var instanceof PsiPatternVariable)) { PsiUtil.setModifierProperty(var, PsiModifier.FINAL, mySettings.isDeclareFinal()); - } - if (mySettings.isDeclareVarType()) { - PsiTypeElement typeElement = var.getTypeElement(); - LOG.assertTrue(typeElement != null); - IntroduceVariableBase.expandDiamondsAndReplaceExplicitTypeWithVar(typeElement, var); + if (mySettings.isDeclareVarType()) { + PsiTypeElement typeElement = var.getTypeElement(); + LOG.assertTrue(typeElement != null); + IntroduceVariableBase.expandDiamondsAndReplaceExplicitTypeWithVar(typeElement, var); + } } myFieldConflictsResolver.fix(); return SmartPointerManager.getInstance(myProject).createSmartPsiElementPointer(var); diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/IntroduceVariableTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/IntroduceVariableTest.java index 599f812b827c..9fdc68f44ec8 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/IntroduceVariableTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/IntroduceVariableTest.java @@ -134,7 +134,9 @@ public class IntroduceVariableTest extends LightJavaCodeInsightTestCase { public void testPatternVariableNotUsedAfterwards() { doTest("temp", true, false, false, "boolean"); } - public void testPatternVariableDeclarationJava14Preview() { doTest("temp", true, false, false, JAVA_LANG_STRING);} + public void testPatternVariableDeclarationJava14Preview() { + doTestWithVarType(new MockIntroduceVariableHandler("temp", true, false, false, JAVA_LANG_STRING)); + } public void testPatternVariableDeclarationUsedInLocalJava14Preview() { doTest("temp", true, false, false, JAVA_LANG_STRING);} public void testPatternVariableDeclarationAfterIfJava14Preview() { doTest("temp", true, false, false, JAVA_LANG_STRING);} public void testNonPatternDeclarationJava14Preview() { doTest("temp", true, false, false, JAVA_LANG_STRING);}