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 prefix = containerFqName.asString()
|
||||||
val prefixOffset = it.indexOf(prefix)
|
val prefixOffset = it.indexOf(prefix)
|
||||||
val newFqName = if (prefix.isEmpty()) {
|
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 {
|
else {
|
||||||
FqName(it.replaceRange(prefixOffset..prefixOffset + prefix.length - 1, newContainer.fqName!!.asString()))
|
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);
|
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")
|
@TestMetadata("moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test")
|
||||||
public void testMoveDeclarationToSeparateFile_moveSingleToFile_MoveSingleToFile() throws Exception {
|
public void testMoveDeclarationToSeparateFile_moveSingleToFile_MoveSingleToFile() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test");
|
||||||
|
|||||||
Reference in New Issue
Block a user