Move: Wrap individual internal usages for better preview

Fix unused import removal for internal usages

 #KT-9158 Fixed
This commit is contained in:
Alexey Sedunov
2017-03-27 18:32:19 +03:00
parent 3c6358dd91
commit eaba215bbb
5 changed files with 8 additions and 19 deletions
@@ -122,10 +122,11 @@ class MoveKotlinDeclarationsProcessor(
fun getConflictsAsUsages(): List<UsageInfo> = conflicts.entrySet().map { ConflictUsageInfo(it.key, it.value) } fun getConflictsAsUsages(): List<UsageInfo> = conflicts.entrySet().map { ConflictUsageInfo(it.key, it.value) }
class UsagesToProcessBeforeMoveWrapper( class UsageToProcessBeforeMoveWrapper private constructor (element: PsiElement, val originalUsage: UsageInfo): UsageInfo(element) {
sourceFile: KtFile, companion object {
val usages: Collection<UsageInfo> fun create(originalUsage: UsageInfo) = originalUsage.element?.let { UsageToProcessBeforeMoveWrapper(it, originalUsage) }
): UsageInfo(sourceFile) }
}
public override fun findUsages(): Array<UsageInfo> { public override fun findUsages(): Array<UsageInfo> {
if (elementsToMove.isEmpty()) return UsageInfo.EMPTY_ARRAY if (elementsToMove.isEmpty()) return UsageInfo.EMPTY_ARRAY
@@ -198,7 +199,7 @@ class MoveKotlinDeclarationsProcessor(
val (usagesToProcessLater, usagesToProcessEarly) = internalUsages.partition { it is UnqualifiableMoveRenameUsageInfo } val (usagesToProcessLater, usagesToProcessEarly) = internalUsages.partition { it is UnqualifiableMoveRenameUsageInfo }
usages += usagesToProcessLater usages += usagesToProcessLater
usagesToProcessBeforeMove += usagesToProcessEarly usagesToProcessBeforeMove += usagesToProcessEarly
usages += UsagesToProcessBeforeMoveWrapper(sourceFile, usagesToProcessBeforeMove) usages += usagesToProcessBeforeMove.mapNotNull { UsageToProcessBeforeMoveWrapper.create(it) }
} }
descriptor.delegate.collectConflicts(descriptor, usagesToProcessBeforeMove, conflicts) descriptor.delegate.collectConflicts(descriptor, usagesToProcessBeforeMove, conflicts)
@@ -230,8 +231,8 @@ class MoveKotlinDeclarationsProcessor(
val usageList = usages.toList() val usageList = usages.toList()
val (usagesToProcessBeforeMoveWrappers, usagesToProcessAfterMove) = val (usagesToProcessBeforeMoveWrappers, usagesToProcessAfterMove) =
usageList.partition { it is UsagesToProcessBeforeMoveWrapper } usageList.partition { it is UsageToProcessBeforeMoveWrapper }
val usagesToProcessBeforeMove = usagesToProcessBeforeMoveWrappers.flatMap { (it as UsagesToProcessBeforeMoveWrapper).usages } val usagesToProcessBeforeMove = usagesToProcessBeforeMoveWrappers.map { (it as UsageToProcessBeforeMoveWrapper).originalUsage }
descriptor.delegate.preprocessUsages(project, descriptor, usagesToProcessBeforeMove) descriptor.delegate.preprocessUsages(project, descriptor, usagesToProcessBeforeMove)
descriptor.delegate.preprocessUsages(project, descriptor, usagesToProcessAfterMove) descriptor.delegate.preprocessUsages(project, descriptor, usagesToProcessAfterMove)
@@ -1,10 +1,6 @@
package second package second
import third.B
import fourth.X.Y
import third.D as D_ import third.D as D_
import fourth.*
import third.B.*
class A class A
@@ -1,10 +1,6 @@
package second package second
import third.B
import fourth.X.Y
import third.D as D_ import third.D as D_
import fourth.*
import third.B.*
class A class A
@@ -1,7 +1,5 @@
package source package source
import library.*
class Bar { class Bar {
companion object { companion object {
val c : Int val c : Int
@@ -1,7 +1,5 @@
package source package source
import library.*
class Bar { class Bar {
} }