diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt index 4ebba2dbc1d..daac410d380 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt @@ -188,7 +188,8 @@ fun KtElement.lazilyProcessInternalReferencesToUpdateOnPackageNameChange( val prefix = containerFqName.asString() val prefixOffset = it.indexOf(prefix) val newFqName = if (prefix.isEmpty()) { - FqName("${newContainer.fqName!!.asString()}.$it") + val newContainerFqName = newContainer.fqName!! + FqName(if (newContainerFqName.isRoot) it else "${newContainer.fqName!!.asString()}.$it") } else { FqName(it.replaceRange(prefixOffset..prefixOffset + prefix.length - 1, newContainer.fqName!!.asString())) diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/after/a.kt b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/after/a.kt new file mode 100644 index 00000000000..cb0ae4689c4 --- /dev/null +++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/after/a.kt @@ -0,0 +1,6 @@ +class a { + companion object b { + fun c() = "..." + } + fun d() = c() +} \ No newline at end of file diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/after/test.kt b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/after/test.kt new file mode 100644 index 00000000000..a2c4e958bb5 --- /dev/null +++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/after/test.kt @@ -0,0 +1,3 @@ +fun foo() { + +} \ No newline at end of file diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/before/test.kt b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/before/test.kt new file mode 100644 index 00000000000..b8db41a4aac --- /dev/null +++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/before/test.kt @@ -0,0 +1,10 @@ +class a { + companion object b { + fun c() = "..." + } + fun d() = c() +} + +fun foo() { + +} \ No newline at end of file diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test new file mode 100644 index 00000000000..8ec8abf567b --- /dev/null +++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test @@ -0,0 +1,4 @@ +{ + "mainFile": "test.kt", + "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java index 268185d86ea..d2621bb36f7 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java @@ -78,6 +78,12 @@ public class MultiFileIntentionTestGenerated extends AbstractMultiFileIntentionT doTest(fileName); } + @TestMetadata("moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test") + public void testMoveDeclarationToSeparateFile_moveClassToFileInDefaultPackage_MoveClassToFileInDefaultPackage() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test"); + doTest(fileName); + } + @TestMetadata("moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test") public void testMoveDeclarationToSeparateFile_moveSingleToFile_MoveSingleToFile() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test");