diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt index 1efbe633712..05a7619d4fd 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt @@ -122,10 +122,11 @@ class MoveKotlinDeclarationsProcessor( fun getConflictsAsUsages(): List = conflicts.entrySet().map { ConflictUsageInfo(it.key, it.value) } - class UsagesToProcessBeforeMoveWrapper( - sourceFile: KtFile, - val usages: Collection - ): UsageInfo(sourceFile) + class UsageToProcessBeforeMoveWrapper private constructor (element: PsiElement, val originalUsage: UsageInfo): UsageInfo(element) { + companion object { + fun create(originalUsage: UsageInfo) = originalUsage.element?.let { UsageToProcessBeforeMoveWrapper(it, originalUsage) } + } + } public override fun findUsages(): Array { if (elementsToMove.isEmpty()) return UsageInfo.EMPTY_ARRAY @@ -198,7 +199,7 @@ class MoveKotlinDeclarationsProcessor( val (usagesToProcessLater, usagesToProcessEarly) = internalUsages.partition { it is UnqualifiableMoveRenameUsageInfo } usages += usagesToProcessLater usagesToProcessBeforeMove += usagesToProcessEarly - usages += UsagesToProcessBeforeMoveWrapper(sourceFile, usagesToProcessBeforeMove) + usages += usagesToProcessBeforeMove.mapNotNull { UsageToProcessBeforeMoveWrapper.create(it) } } descriptor.delegate.collectConflicts(descriptor, usagesToProcessBeforeMove, conflicts) @@ -230,8 +231,8 @@ class MoveKotlinDeclarationsProcessor( val usageList = usages.toList() val (usagesToProcessBeforeMoveWrappers, usagesToProcessAfterMove) = - usageList.partition { it is UsagesToProcessBeforeMoveWrapper } - val usagesToProcessBeforeMove = usagesToProcessBeforeMoveWrappers.flatMap { (it as UsagesToProcessBeforeMoveWrapper).usages } + usageList.partition { it is UsageToProcessBeforeMoveWrapper } + val usagesToProcessBeforeMove = usagesToProcessBeforeMoveWrappers.map { (it as UsageToProcessBeforeMoveWrapper).originalUsage } descriptor.delegate.preprocessUsages(project, descriptor, usagesToProcessBeforeMove) descriptor.delegate.preprocessUsages(project, descriptor, usagesToProcessAfterMove) diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassWithImportsRetained/after/second/A.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassWithImportsRetained/after/second/A.kt index d6a1d8cd80a..9be8812f121 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassWithImportsRetained/after/second/A.kt +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveClassWithImportsRetained/after/second/A.kt @@ -1,10 +1,6 @@ package second -import third.B -import fourth.X.Y import third.D as D_ -import fourth.* -import third.B.* class A diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/second/A.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/second/A.kt index d6a1d8cd80a..9be8812f121 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/second/A.kt +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/moveFunctionWithImportsRetained/after/second/A.kt @@ -1,10 +1,6 @@ package second -import third.B -import fourth.X.Y import third.D as D_ -import fourth.* -import third.B.* class A diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/singletonsAndStatics/after/source/Foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/singletonsAndStatics/after/source/Foo.kt index 96356f21f15..a58275ce80c 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/singletonsAndStatics/after/source/Foo.kt +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/singletonsAndStatics/after/source/Foo.kt @@ -1,7 +1,5 @@ package source -import library.* - class Bar { companion object { val c : Int diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/syntheticMembers/after/source/Foo.kt b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/syntheticMembers/after/source/Foo.kt index daeab71966c..1b889e9c870 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/syntheticMembers/after/source/Foo.kt +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/misc/syntheticMembers/after/source/Foo.kt @@ -1,7 +1,5 @@ package source -import library.* - class Bar { } \ No newline at end of file