From 191ea2533e01928cbb213dcbca2669db727acda0 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Thu, 17 Apr 2014 18:11:28 +0400 Subject: [PATCH] Dot not lengthen references to declarations contained in the moving element --- .../move/moveFilesOrDirectories/MoveKotlinFileHandler.kt | 4 +++- .../org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveFilesOrDirectories/MoveKotlinFileHandler.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveFilesOrDirectories/MoveKotlinFileHandler.kt index 60356147c57..6cf0c836854 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveFilesOrDirectories/MoveKotlinFileHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveFilesOrDirectories/MoveKotlinFileHandler.kt @@ -108,12 +108,14 @@ public class MoveKotlinFileHandler : MoveFileHandler() { val project = psiFile.getProject() val newPackageName = newParent.getPackage()?.getQualifiedName() ?: "" + val searchScope = GlobalSearchScope.projectScope(project) intersectWith + GlobalSearchScope.notScope(GlobalSearchScope.fileScope(psiFile)) return psiFile.getDeclarations().flatMap { declaration -> val name = (declaration as? JetNamedDeclaration)?.getName() if (name != null) { val newFqName = StringUtil.getQualifiedName(newPackageName, name)!! - val results = ReferencesSearch.search(declaration, GlobalSearchScope.projectScope(project), false) + val results = ReferencesSearch.search(declaration, searchScope, false) .toSet() .mapTo(ArrayList()) { ref -> val range = ref.getRangeInElement()!! diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt index 11322e269bb..8d3645f86f6 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveUtils.kt @@ -33,6 +33,9 @@ import org.jetbrains.jet.plugin.JetFileType import org.jetbrains.jet.lang.psi.JetClassOrObject import org.jetbrains.jet.lang.psi.JetNamedDeclaration import org.jetbrains.jet.plugin.imports.canBeReferencedViaImport +import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil +import org.jetbrains.jet.lang.psi.psiUtil.isInsideOf +import org.jetbrains.jet.lang.psi.psiUtil.isAncestor public class PackageNameInfo(val oldPackageName: FqName, val newPackageName: FqName) @@ -52,6 +55,9 @@ public fun JetElement.updateInternalReferencesOnPackageNameChange( } if (descriptor == null || !descriptor.canBeReferencedViaImport()) continue + val declaration = DescriptorToDeclarationUtil.getDeclaration(file, descriptor, bindingContext) + if (declaration == null || isAncestor(declaration, true)) continue + val packageName = DescriptorUtils.getParentOfType( descriptor, javaClass(), false )?.let { DescriptorUtils.getFqName(it).toSafe() }