From db251eff7298f03d4b071c589da759fef6d3d4cb Mon Sep 17 00:00:00 2001 From: Alexandr Suhinin Date: Thu, 7 Jan 2021 16:33:34 +0200 Subject: [PATCH] IDEA-259050 refactor this: don't suggest `Move Instance Method` under constructor declaration GitOrigin-RevId: f3fd88cdbc1ec8eb6cfd916673b4b22aea7e6f46 --- .../moveInstanceMethod/MoveInstanceMethodHandlerDelegate.java | 1 + .../refactoring/refactorThis/MoveIsFilteredOnConstructor.java | 3 +++ .../testSrc/com/intellij/java/refactoring/RefactorThisTest.kt | 4 ++++ 3 files changed, 8 insertions(+) create mode 100644 java/java-tests/testData/refactoring/refactorThis/MoveIsFilteredOnConstructor.java diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveInstanceMethod/MoveInstanceMethodHandlerDelegate.java b/java/java-impl/src/com/intellij/refactoring/move/moveInstanceMethod/MoveInstanceMethodHandlerDelegate.java index 99ae422bdd59..c5761a9b01c1 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveInstanceMethod/MoveInstanceMethodHandlerDelegate.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveInstanceMethod/MoveInstanceMethodHandlerDelegate.java @@ -36,6 +36,7 @@ public class MoveInstanceMethodHandlerDelegate extends MoveHandlerDelegate { if (!(element instanceof PsiMethod)) return false; if (element instanceof SyntheticElement) return false; PsiMethod method = (PsiMethod) element; + if (method.isConstructor()) return false; if (method.hasModifierProperty(PsiModifier.STATIC)) return false; return targetContainer == null || super.canMove(elements, targetContainer, reference); } diff --git a/java/java-tests/testData/refactoring/refactorThis/MoveIsFilteredOnConstructor.java b/java/java-tests/testData/refactoring/refactorThis/MoveIsFilteredOnConstructor.java new file mode 100644 index 000000000000..689017c0e315 --- /dev/null +++ b/java/java-tests/testData/refactoring/refactorThis/MoveIsFilteredOnConstructor.java @@ -0,0 +1,3 @@ +public class Test { + Test() {} +} diff --git a/java/java-tests/testSrc/com/intellij/java/refactoring/RefactorThisTest.kt b/java/java-tests/testSrc/com/intellij/java/refactoring/RefactorThisTest.kt index f33e8214eb80..83144fd17f18 100644 --- a/java/java-tests/testSrc/com/intellij/java/refactoring/RefactorThisTest.kt +++ b/java/java-tests/testSrc/com/intellij/java/refactoring/RefactorThisTest.kt @@ -103,6 +103,10 @@ class RefactorThisTest: LightJavaCodeInsightTestCase() { assertTrue(doActionExists()) } + fun testMoveOnClassDeclaration() { + assertTrue(doActionExists()) + } + private inline fun doActionExists(): Boolean { configureByFile("$BASE_PATH/${getTestName(false)}.java") return findAvailableActions().any { action -> action is A }