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 dccbcfd516e..22a3434ccb5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt @@ -163,7 +163,10 @@ fun KtElement.processInternalReferencesToUpdateOnPackageNameChange( } .firstOrNull() - if (isExtension || containerFqName != null || isImported(descriptor)) return { + val isImported = isImported(descriptor) + if (isImported && this is KtFile) return null + + if (isExtension || containerFqName != null || isImported) return { createMoveUsageInfoIfPossible(it.mainReference, declaration, false, true) } diff --git a/idea/testData/refactoring/move/kotlin/moveFile/internalReferences/after/target/A.kt b/idea/testData/refactoring/move/kotlin/moveFile/internalReferences/after/target/A.kt index 4cb9c1b227b..6dd7a1e2fa2 100644 --- a/idea/testData/refactoring/move/kotlin/moveFile/internalReferences/after/target/A.kt +++ b/idea/testData/refactoring/move/kotlin/moveFile/internalReferences/after/target/A.kt @@ -16,6 +16,6 @@ public fun test(a: A) { a.bar() a.foo() B().foo().bar() - B().foo().bar() + library.B().foo().bar() B().bar().foo() } \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/after/one/Target.kt b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/after/one/Target.kt new file mode 100644 index 00000000000..2e5e9e6dfe4 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/after/one/Target.kt @@ -0,0 +1,3 @@ +package one + +class ImportedWithAlias \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/after/three/Source.kt b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/after/three/Source.kt new file mode 100644 index 00000000000..50ef2772c7d --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/after/three/Source.kt @@ -0,0 +1,6 @@ +package three + +import one.ImportedWithAlias as WithAlias + +val v1 = WithAlias() +val v2 = 2 \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/after/two/dummy.txt b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/after/two/dummy.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/before/one/Target.kt b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/before/one/Target.kt new file mode 100644 index 00000000000..2e5e9e6dfe4 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/before/one/Target.kt @@ -0,0 +1,3 @@ +package one + +class ImportedWithAlias \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/before/two/Source.kt b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/before/two/Source.kt new file mode 100644 index 00000000000..252f63b8680 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/before/two/Source.kt @@ -0,0 +1,6 @@ +package two + +import one.ImportedWithAlias as WithAlias + +val v1 = WithAlias() +val v2 = 2 \ No newline at end of file diff --git a/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/before/two/dummy.txt b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/before/two/dummy.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/keepImportAliasRefs.test b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/keepImportAliasRefs.test new file mode 100644 index 00000000000..b36477953f3 --- /dev/null +++ b/idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/keepImportAliasRefs.test @@ -0,0 +1,5 @@ +{ + "mainFile": "two/Source.kt", + "type": "MOVE_FILES", + "targetPackage": "three" +} \ No newline at end of file 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 ff5cad26f1c..25faeb03e2e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java @@ -258,6 +258,12 @@ public class MoveTestGenerated extends AbstractMoveTest { doTest(fileName); } + @TestMetadata("kotlin/moveFile/keepImportAliasRefs/keepImportAliasRefs.test") + public void testKotlin_moveFile_keepImportAliasRefs_KeepImportAliasRefs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveFile/keepImportAliasRefs/keepImportAliasRefs.test"); + doTest(fileName); + } + @TestMetadata("kotlin/moveFile/moveFileAndDirWithJavaFileReferringToPackageFragementWithUnmatchedDir/moveFileAndDirWithJavaFileReferringToPackageFragementWithUnmatchedDir.test") public void testKotlin_moveFile_moveFileAndDirWithJavaFileReferringToPackageFragementWithUnmatchedDir_MoveFileAndDirWithJavaFileReferringToPackageFragementWithUnmatchedDir() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveFile/moveFileAndDirWithJavaFileReferringToPackageFragementWithUnmatchedDir/moveFileAndDirWithJavaFileReferringToPackageFragementWithUnmatchedDir.test");