Move: Fix name lengthening when moving from default package

#KT-10696 Fixed
This commit is contained in:
Alexey Sedunov
2016-01-26 21:20:41 +03:00
parent d92bfd20d7
commit a05a16c1e6
6 changed files with 39 additions and 2 deletions
@@ -22,7 +22,6 @@ import com.intellij.openapi.ui.DialogWrapper
import com.intellij.openapi.util.Comparing
import com.intellij.openapi.util.Key
import com.intellij.psi.*
import com.intellij.psi.util.PsiTreeUtil
import com.intellij.refactoring.RefactoringBundle
import com.intellij.refactoring.RefactoringSettings
import com.intellij.refactoring.copy.CopyFilesOrDirectoriesHandler
@@ -183,7 +182,12 @@ fun KtElement.lazilyProcessInternalReferencesToUpdateOnPackageNameChange(
return fqName.asString().let {
val prefix = containerFqName.asString()
val prefixOffset = it.indexOf(prefix)
val newFqName = FqName(it.replaceRange(prefixOffset..prefixOffset + prefix.length - 1, newContainer.fqName!!.asString()))
val newFqName = if (prefix.isEmpty()) {
FqName("${newContainer.fqName!!.asString()}.$it")
}
else {
FqName(it.replaceRange(prefixOffset..prefixOffset + prefix.length - 1, newContainer.fqName!!.asString()))
}
MoveRenameSelfUsageInfo(refExpr.mainReference, declaration, newFqName)
}
}
@@ -0,0 +1,8 @@
package target
class Extra {
fun use() {
val v = Extra().Intro()
}
inner class Intro {}
}
@@ -0,0 +1,10 @@
class <caret>Extra {
fun use() {
val v = Extra().Intro()
}
inner class Intro {}
}
class X {
}
@@ -0,0 +1,6 @@
{
"mainFile": "test.kt",
"type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS",
"targetPackage": "target",
"withRuntime": "true"
}
@@ -419,6 +419,12 @@ public class MoveTestGenerated extends AbstractMoveTest {
doTest(fileName);
}
@TestMetadata("kotlin/moveTopLevelDeclarations/misc/moveFromDefaultPackage/moveFromDefaultPackage.test")
public void testKotlin_moveTopLevelDeclarations_misc_moveFromDefaultPackage_MoveFromDefaultPackage() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFromDefaultPackage/moveFromDefaultPackage.test");
doTest(fileName);
}
@TestMetadata("kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/moveFunctionWithImportsRetained.test")
public void testKotlin_moveTopLevelDeclarations_misc_moveFunctionWithImportsRetained_MoveFunctionWithImportsRetained() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/moveFunctionWithImportsRetained.test");