diff --git a/java/java-tests/testData/refactoring/extractMethod/PatternVariable.java b/java/java-tests/testData/refactoring/extractMethod/PatternVariable.java new file mode 100644 index 000000000000..2ceef69bc6c8 --- /dev/null +++ b/java/java-tests/testData/refactoring/extractMethod/PatternVariable.java @@ -0,0 +1,7 @@ +class X { + void test(Object obj) { + if (obj instanceof String a) { + System.out.println(a.length()); + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/refactoring/extractMethod/PatternVariable_after.java b/java/java-tests/testData/refactoring/extractMethod/PatternVariable_after.java new file mode 100644 index 000000000000..fb2ef49b8387 --- /dev/null +++ b/java/java-tests/testData/refactoring/extractMethod/PatternVariable_after.java @@ -0,0 +1,11 @@ +class X { + void test(Object obj) { + if (obj instanceof String a) { + System.out.println(newMethod(a)); + } + } + + private int newMethod(String a) { + return a.length(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/ExtractMethodTest.java b/java/java-tests/testSrc/com/intellij/java/refactoring/ExtractMethodTest.java index d808694eb03b..c07b3ab52412 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/ExtractMethodTest.java +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/ExtractMethodTest.java @@ -940,6 +940,10 @@ public class ExtractMethodTest extends LightJavaCodeInsightTestCase { public void testParametrizedDuplicateExpression() throws Exception { doDuplicatesTest(); } + + public void testPatternVariable() throws Exception { + doTestWithLanguageLevel(LanguageLevel.JDK_14_PREVIEW); + } public void testSuggestChangeSignatureWithChangedParameterName() throws Exception { configureByFile(BASE_PATH + getTestName(false) + ".java");