diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/KotlinMoveDirectoryWithClassesHelper.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/KotlinMoveDirectoryWithClassesHelper.kt index b342e997662..9d09c7baf91 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/KotlinMoveDirectoryWithClassesHelper.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveFilesOrDirectories/KotlinMoveDirectoryWithClassesHelper.kt @@ -90,7 +90,11 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() { moveContextMap[file] = MoveContext(moveDestination, fileHandler.findInternalUsages(file, moveDestination), moveDeclarationsProcessor) - moveDestination.getPackage()?.let { newPackage -> file.packageDirective?.fqName = FqName(newPackage.qualifiedName).quoteIfNeeded() } + if (moveDeclarationsProcessor != null) { + moveDestination.getPackage()?.let { newPackage -> + file.packageDirective?.fqName = FqName(newPackage.qualifiedName).quoteIfNeeded() + } + } return true } @@ -109,10 +113,12 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() { val moveContext = fileToMoveContext[file] ?: return@body MoveFilesOrDirectoriesUtil.doMoveFile(file, moveContext.newParent) + + val moveDeclarationsProcessor = moveContext.moveDeclarationsProcessor ?: return@body val movedFile = moveContext.newParent.findFile(file.name) ?: return@body usagesToProcessAfterMove += - FileUsagesWrapper(movedFile, it.usages + moveContext.internalUsages, moveContext.moveDeclarationsProcessor) + FileUsagesWrapper(movedFile, it.usages + moveContext.internalUsages, moveDeclarationsProcessor) } usagesToProcessAfterMove.forEach { fileHandler.retargetUsages(it.usages, it.moveDeclarationsProcessor!!) } } diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/after/A/A.iml b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/after/A/A.iml new file mode 100644 index 00000000000..245d3429faa --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/after/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/after/A/src/z/dummy.txt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/after/A/src/z/dummy.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/after/A/src/z/x/test.kt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/after/A/src/z/x/test.kt new file mode 100644 index 00000000000..b3a0f5894f1 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/after/A/src/z/x/test.kt @@ -0,0 +1,5 @@ +package y + +fun foo() { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/before/A/A.iml b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/before/A/A.iml new file mode 100644 index 00000000000..245d3429faa --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/before/A/A.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/before/A/src/x/test.kt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/before/A/src/x/test.kt new file mode 100644 index 00000000000..b3a0f5894f1 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/before/A/src/x/test.kt @@ -0,0 +1,5 @@ +package y + +fun foo() { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/before/A/src/z/dummy.txt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/before/A/src/z/dummy.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/moveDirectoryKeepPackageDirective.test b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/moveDirectoryKeepPackageDirective.test new file mode 100644 index 00000000000..4d78f2fae2e --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/moveDirectoryKeepPackageDirective.test @@ -0,0 +1,7 @@ +{ + "mainFile": "A/src/x/test.kt", + "type": "MOVE_DIRECTORY_WITH_CLASSES", + "sourceDir": "A/src/x", + "targetDir": "A/src/z", + "isMultiModule": "true" +} diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/after/p1/M.kt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p1/M.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/after/p1/M.kt rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p1/M.kt diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/after/p2/JJ.java b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p2/JJ.java similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/after/p2/JJ.java rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p2/JJ.java diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/after/p2/L.kt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p2/L.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/after/p2/L.kt rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p2/L.kt diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/after/p2/p/J.java b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p2/p/J.java similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/after/p2/p/J.java rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p2/p/J.java diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/after/p2/p/K.kt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p2/p/K.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/after/p2/p/K.kt rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/after/p2/p/K.kt diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/before/p1/M.kt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p1/M.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/before/p1/M.kt rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p1/M.kt diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/before/p1/p/J.java b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p1/p/J.java similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/before/p1/p/J.java rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p1/p/J.java diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/before/p1/p/K.kt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p1/p/K.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/before/p1/p/K.kt rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p1/p/K.kt diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/before/p2/JJ.java b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p2/JJ.java similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/before/p2/JJ.java rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p2/JJ.java diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/before/p2/L.kt b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p2/L.kt similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/before/p2/L.kt rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/before/p2/L.kt diff --git a/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectory.test b/idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test similarity index 100% rename from idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectory.test rename to idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java index 9ec9e06bb5c..f0dd610fe37 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java @@ -228,9 +228,15 @@ public class MoveTestGenerated extends AbstractMoveTest { doTest(fileName); } - @TestMetadata("kotlin/moveDirectory/moveDirectory.test") - public void testKotlin_moveDirectory_MoveDirectory() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectory.test"); + @TestMetadata("kotlin/moveDirectory/moveDirectoryKeepPackageDirective/moveDirectoryKeepPackageDirective.test") + public void testKotlin_moveDirectory_moveDirectoryKeepPackageDirective_MoveDirectoryKeepPackageDirective() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryKeepPackageDirective/moveDirectoryKeepPackageDirective.test"); + doTest(fileName); + } + + @TestMetadata("kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test") + public void testKotlin_moveDirectory_moveDirectoryWithPackageDirectiveChange_MoveDirectoryWithPackageDirectiveChange() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test"); doTest(fileName); }