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 }