Move: Drop obsolete code
This commit is contained in:
+7
-12
@@ -43,7 +43,6 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
||||
|
||||
private class MoveContext(
|
||||
val newParent: PsiDirectory,
|
||||
val internalUsages: MoveKotlinFileHandler.InternalUsagesWrapper,
|
||||
val moveDeclarationsProcessor: MoveKotlinDeclarationsProcessor?
|
||||
)
|
||||
|
||||
@@ -52,11 +51,10 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
||||
private var fileToMoveContext: MutableMap<PsiFile, MoveContext>? = null
|
||||
|
||||
private fun getOrCreateMoveContextMap(): MutableMap<PsiFile, MoveContext> {
|
||||
return fileToMoveContext
|
||||
?: HashMap<PsiFile, MoveContext>().apply {
|
||||
fileToMoveContext = this
|
||||
return fileToMoveContext ?: HashMap<PsiFile, MoveContext>().apply {
|
||||
fileToMoveContext = this
|
||||
invokeOnceOnCommandFinish { fileToMoveContext = null }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun findUsages(
|
||||
@@ -87,9 +85,7 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
||||
|
||||
val moveDeclarationsProcessor = fileHandler.initMoveProcessor(file, moveDestination)
|
||||
val moveContextMap = getOrCreateMoveContextMap()
|
||||
moveContextMap[file] = MoveContext(moveDestination,
|
||||
fileHandler.findInternalUsages(file, moveDestination),
|
||||
moveDeclarationsProcessor)
|
||||
moveContextMap[file] = MoveContext(moveDestination, moveDeclarationsProcessor)
|
||||
if (moveDeclarationsProcessor != null) {
|
||||
moveDestination.getPackage()?.let { newPackage ->
|
||||
file.packageDirective?.fqName = FqName(newPackage.qualifiedName).quoteIfNeeded()
|
||||
@@ -105,7 +101,7 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
||||
override fun postProcessUsages(usages: Array<out UsageInfo>, newDirMapper: Function<PsiDirectory, PsiDirectory>) {
|
||||
val fileToMoveContext = fileToMoveContext ?: return
|
||||
try {
|
||||
val usagesToProcessAfterMove = ArrayList<FileUsagesWrapper>()
|
||||
val usagesToProcess = ArrayList<FileUsagesWrapper>()
|
||||
usages
|
||||
.filterIsInstance<FileUsagesWrapper>()
|
||||
.forEach body@ {
|
||||
@@ -117,10 +113,9 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
||||
val moveDeclarationsProcessor = moveContext.moveDeclarationsProcessor ?: return@body
|
||||
val movedFile = moveContext.newParent.findFile(file.name) ?: return@body
|
||||
|
||||
usagesToProcessAfterMove +=
|
||||
FileUsagesWrapper(movedFile, it.usages + moveContext.internalUsages, moveDeclarationsProcessor)
|
||||
usagesToProcess += FileUsagesWrapper(movedFile, it.usages, moveDeclarationsProcessor)
|
||||
}
|
||||
usagesToProcessAfterMove.forEach { fileHandler.retargetUsages(it.usages, it.moveDeclarationsProcessor!!) }
|
||||
usagesToProcess.forEach { fileHandler.retargetUsages(it.usages, it.moveDeclarationsProcessor!!) }
|
||||
}
|
||||
finally {
|
||||
this.fileToMoveContext = null
|
||||
|
||||
+3
-11
@@ -32,16 +32,15 @@ import org.jetbrains.kotlin.idea.core.getPackage
|
||||
import org.jetbrains.kotlin.idea.core.packageMatchesDirectory
|
||||
import org.jetbrains.kotlin.idea.core.quoteIfNeeded
|
||||
import org.jetbrains.kotlin.idea.refactoring.hasIdentifiersOnly
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.*
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.ContainerChangeInfo
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.ContainerInfo
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.*
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.updatePackageDirective
|
||||
import org.jetbrains.kotlin.name.FqNameUnsafe
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
|
||||
class MoveKotlinFileHandler : MoveFileHandler() {
|
||||
internal class InternalUsagesWrapper(file: KtFile, val usages: List<UsageInfo>) : UsageInfo(file)
|
||||
|
||||
internal class FileInfo(file: KtFile) : UsageInfo(file)
|
||||
|
||||
// This is special 'PsiElement' whose purpose is to wrap MoveKotlinTopLevelDeclarationsProcessor
|
||||
@@ -107,12 +106,6 @@ class MoveKotlinFileHandler : MoveFileHandler() {
|
||||
return !JavaProjectRootsUtil.isOutsideJavaSourceRoot(element)
|
||||
}
|
||||
|
||||
internal fun findInternalUsages(file: KtFile, newParent: PsiDirectory): InternalUsagesWrapper {
|
||||
val packageNameInfo = file.getPackageNameInfo(newParent, false)
|
||||
val usages = packageNameInfo?.let { file.getInternalReferencesToUpdateOnPackageNameChange(it) } ?: emptyList()
|
||||
return InternalUsagesWrapper(file, usages)
|
||||
}
|
||||
|
||||
override fun findUsages(
|
||||
psiFile: PsiFile,
|
||||
newParent: PsiDirectory?,
|
||||
@@ -149,7 +142,6 @@ class MoveKotlinFileHandler : MoveFileHandler() {
|
||||
}
|
||||
|
||||
fun retargetUsages(usageInfos: List<UsageInfo>?, moveDeclarationsProcessor: MoveKotlinDeclarationsProcessor) {
|
||||
postProcessMoveUsages(usageInfos?.firstIsInstanceOrNull<InternalUsagesWrapper>()?.usages ?: emptyList())
|
||||
moveDeclarationsProcessor.project.runRefactoringAndKeepDelayedRequests {
|
||||
usageInfos?.let { moveDeclarationsProcessor.execute(it) }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user