diff --git a/java/java-tests/testData/refactoring/introduceVariable/PatternVariableDeclarationUsedInLocalJava14Preview.after.java b/java/java-tests/testData/refactoring/introduceVariable/PatternVariableDeclarationUsedInLocalJava14Preview.after.java new file mode 100644 index 000000000000..32a3271cfff2 --- /dev/null +++ b/java/java-tests/testData/refactoring/introduceVariable/PatternVariableDeclarationUsedInLocalJava14Preview.after.java @@ -0,0 +1,8 @@ +class A { + void test(Object obj) { + if (obj instanceof String temp) { + String s = temp.trim(); + System.out.println("Found"); + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/introduceVariable/PatternVariableDeclarationUsedInLocalJava14Preview.java b/java/java-tests/testData/refactoring/introduceVariable/PatternVariableDeclarationUsedInLocalJava14Preview.java new file mode 100644 index 000000000000..c6e0070d88b9 --- /dev/null +++ b/java/java-tests/testData/refactoring/introduceVariable/PatternVariableDeclarationUsedInLocalJava14Preview.java @@ -0,0 +1,8 @@ +class A { + void test(Object obj) { + if (obj instanceof String) { + String s = ((String)obj).trim(); + System.out.println("Found"); + } + } +} \ No newline at end of file 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 b3322e1c7281..a6ec1d4f39b9 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/IntroduceVariableTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/IntroduceVariableTest.java @@ -135,6 +135,7 @@ public class IntroduceVariableTest extends LightJavaCodeInsightTestCase { doTest("temp", true, false, false, "boolean"); } public void testPatternVariableDeclarationJava14Preview() { doTest("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);} diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/InstanceOfUtils.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/InstanceOfUtils.java index 13f366ff7584..ceea98230266 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/InstanceOfUtils.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/InstanceOfUtils.java @@ -179,7 +179,7 @@ public class InstanceOfUtils { } } if ((context instanceof PsiExpression && !(context instanceof PsiLambdaExpression)) || - context instanceof PsiExpressionList) { + context instanceof PsiExpressionList || context instanceof PsiLocalVariable) { context = context.getParent(); continue; }