Move: Fix incorrect FqName when moving declaration to default package
#KT-15586 Fixed
This commit is contained in:
@@ -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()))
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
class a {
|
||||
companion object b {
|
||||
fun c() = "..."
|
||||
}
|
||||
fun d() = c()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo() {
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
class <caret>a {
|
||||
companion object b {
|
||||
fun c() = "..."
|
||||
}
|
||||
fun d() = c()
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"mainFile": "test.kt",
|
||||
"intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention"
|
||||
}
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user