Minor: Code cleanup
This commit is contained in:
+2
-4
@@ -30,8 +30,7 @@ import com.intellij.psi.PsiWhiteSpace
|
|||||||
|
|
||||||
public class MoveJavaInnerClassKotlinUsagesHandler: MoveInnerClassUsagesHandler {
|
public class MoveJavaInnerClassKotlinUsagesHandler: MoveInnerClassUsagesHandler {
|
||||||
override fun correctInnerClassUsage(usage: UsageInfo, outerClass: PsiClass) {
|
override fun correctInnerClassUsage(usage: UsageInfo, outerClass: PsiClass) {
|
||||||
val innerCall = usage.getElement()?.getParent() as? JetCallExpression
|
val innerCall = usage.getElement()?.getParent() as? JetCallExpression ?: return
|
||||||
if (innerCall == null) return
|
|
||||||
|
|
||||||
val receiver = (innerCall.getParent() as? JetQualifiedExpression)?.getReceiverExpression()
|
val receiver = (innerCall.getParent() as? JetQualifiedExpression)?.getReceiverExpression()
|
||||||
val outerClassRef = when (receiver) {
|
val outerClassRef = when (receiver) {
|
||||||
@@ -41,8 +40,7 @@ public class MoveJavaInnerClassKotlinUsagesHandler: MoveInnerClassUsagesHandler
|
|||||||
} as? JetSimpleNameExpression
|
} as? JetSimpleNameExpression
|
||||||
if (outerClassRef?.getReference()?.resolve() != outerClass) return
|
if (outerClassRef?.getReference()?.resolve() != outerClass) return
|
||||||
|
|
||||||
val outerCall = outerClassRef!!.getParent() as? JetCallExpression
|
val outerCall = outerClassRef!!.getParent() as? JetCallExpression ?: return
|
||||||
if (outerCall == null) return
|
|
||||||
|
|
||||||
val psiFactory = JetPsiFactory(usage.getProject())
|
val psiFactory = JetPsiFactory(usage.getProject())
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -62,8 +62,7 @@ public class MoveKotlinFileHandler : MoveFileHandler() {
|
|||||||
|
|
||||||
if (psiFile !is JetFile || !psiFile.packageMatchesDirectory()) return null
|
if (psiFile !is JetFile || !psiFile.packageMatchesDirectory()) return null
|
||||||
|
|
||||||
val newPackage = newParent.getPackage()
|
val newPackage = newParent.getPackage() ?: return null
|
||||||
if (newPackage == null) return null
|
|
||||||
|
|
||||||
val packageNameInfo = PackageNameInfo(psiFile.getPackageFqName(), FqName(newPackage.getQualifiedName()))
|
val packageNameInfo = PackageNameInfo(psiFile.getPackageFqName(), FqName(newPackage.getQualifiedName()))
|
||||||
val project = psiFile.getProject()
|
val project = psiFile.getProject()
|
||||||
|
|||||||
+2
-2
@@ -44,7 +44,7 @@ public class MoveKotlinTopLevelDeclarationsHandler : MoveHandlerDelegate() {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
if (!CommonRefactoringUtil.checkReadOnlyStatusRecursively(project, elements.toList(), true)) return false
|
if (!CommonRefactoringUtil.checkReadOnlyStatusRecursively(project, elements.toList(), true)) return false
|
||||||
|
|
||||||
[suppress("UNCHECKED_CAST")]
|
@suppress("UNCHECKED_CAST")
|
||||||
val elementsToSearch = elements.toSet() as Set<JetNamedDeclaration>
|
val elementsToSearch = elements.toSet() as Set<JetNamedDeclaration>
|
||||||
|
|
||||||
val sourceFiles = elementsToSearch.mapTo(LinkedHashSet<JetFile>()) { it.getContainingJetFile() }
|
val sourceFiles = elementsToSearch.mapTo(LinkedHashSet<JetFile>()) { it.getContainingJetFile() }
|
||||||
@@ -104,7 +104,7 @@ public class MoveKotlinTopLevelDeclarationsHandler : MoveHandlerDelegate() {
|
|||||||
override fun tryToMove(
|
override fun tryToMove(
|
||||||
element: PsiElement, project: Project, dataContext: DataContext?, reference: PsiReference?, editor: Editor?
|
element: PsiElement, project: Project, dataContext: DataContext?, reference: PsiReference?, editor: Editor?
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val elementsToMove = array(element)
|
val elementsToMove = arrayOf(element)
|
||||||
val targetContainer = dataContext?.let { dataContext -> LangDataKeys.TARGET_PSI_ELEMENT.getData(dataContext) }
|
val targetContainer = dataContext?.let { dataContext -> LangDataKeys.TARGET_PSI_ELEMENT.getData(dataContext) }
|
||||||
|
|
||||||
return canMove(elementsToMove, targetContainer) && doMoveWithCheck(project, elementsToMove, targetContainer, null)
|
return canMove(elementsToMove, targetContainer) && doMoveWithCheck(project, elementsToMove, targetContainer, null)
|
||||||
|
|||||||
+7
-9
@@ -65,7 +65,7 @@ import java.util.HashSet
|
|||||||
|
|
||||||
trait Mover: (originalElement: JetNamedDeclaration, targetFile: JetFile) -> JetNamedDeclaration {
|
trait Mover: (originalElement: JetNamedDeclaration, targetFile: JetFile) -> JetNamedDeclaration {
|
||||||
object Default: Mover {
|
object Default: Mover {
|
||||||
[suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")]
|
@suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
|
||||||
override fun invoke(originalElement: JetNamedDeclaration, targetFile: JetFile): JetNamedDeclaration {
|
override fun invoke(originalElement: JetNamedDeclaration, targetFile: JetFile): JetNamedDeclaration {
|
||||||
val newElement = targetFile.add(originalElement) as JetNamedDeclaration
|
val newElement = targetFile.add(originalElement) as JetNamedDeclaration
|
||||||
originalElement.delete()
|
originalElement.delete()
|
||||||
@@ -74,7 +74,7 @@ trait Mover: (originalElement: JetNamedDeclaration, targetFile: JetFile) -> JetN
|
|||||||
}
|
}
|
||||||
|
|
||||||
object Idle: Mover {
|
object Idle: Mover {
|
||||||
[suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")]
|
@suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
|
||||||
override fun invoke(originalElement: JetNamedDeclaration, targetFile: JetFile) = originalElement
|
override fun invoke(originalElement: JetNamedDeclaration, targetFile: JetFile) = originalElement
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,8 +93,6 @@ public class MoveKotlinTopLevelDeclarationsProcessor(
|
|||||||
val options: MoveKotlinTopLevelDeclarationsOptions,
|
val options: MoveKotlinTopLevelDeclarationsOptions,
|
||||||
val mover: Mover = Mover.Default) : BaseRefactoringProcessor(project) {
|
val mover: Mover = Mover.Default) : BaseRefactoringProcessor(project) {
|
||||||
companion object {
|
companion object {
|
||||||
private val LOG: Logger = Logger.getInstance(javaClass<MoveKotlinTopLevelDeclarationsProcessor>())
|
|
||||||
|
|
||||||
private val REFACTORING_NAME: String = JetRefactoringBundle.message("refactoring.move.top.level.declarations")
|
private val REFACTORING_NAME: String = JetRefactoringBundle.message("refactoring.move.top.level.declarations")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,7 +103,7 @@ public class MoveKotlinTopLevelDeclarationsProcessor(
|
|||||||
|
|
||||||
override fun createUsageViewDescriptor(usages: Array<out UsageInfo>?): UsageViewDescriptor {
|
override fun createUsageViewDescriptor(usages: Array<out UsageInfo>?): UsageViewDescriptor {
|
||||||
return MoveMultipleElementsViewDescriptor(
|
return MoveMultipleElementsViewDescriptor(
|
||||||
elementsToMove.copyToArray(),
|
elementsToMove.toTypedArray(),
|
||||||
MoveClassesOrPackagesUtil.getPackageName(options.moveTarget.packageWrapper)
|
MoveClassesOrPackagesUtil.getPackageName(options.moveTarget.packageWrapper)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -222,7 +220,7 @@ public class MoveKotlinTopLevelDeclarationsProcessor(
|
|||||||
val usages = collectUsages()
|
val usages = collectUsages()
|
||||||
collectConflictsInUsages(usages)
|
collectConflictsInUsages(usages)
|
||||||
collectConflictsInDeclarations()
|
collectConflictsInDeclarations()
|
||||||
return UsageViewUtil.removeDuplicatedUsages(usages.copyToArray())
|
return UsageViewUtil.removeDuplicatedUsages(usages.toTypedArray())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun preprocessUsages(refUsages: Ref<Array<UsageInfo>>): Boolean {
|
override fun preprocessUsages(refUsages: Ref<Array<UsageInfo>>): Boolean {
|
||||||
@@ -275,12 +273,12 @@ public class MoveKotlinTopLevelDeclarationsProcessor(
|
|||||||
oldToNewElementsMapping[oldFile] = newDeclaration.getContainingJetFile()
|
oldToNewElementsMapping[oldFile] = newDeclaration.getContainingJetFile()
|
||||||
|
|
||||||
getTransaction()!!.getElementListener(oldDeclaration).elementMoved(newDeclaration)
|
getTransaction()!!.getElementListener(oldDeclaration).elementMoved(newDeclaration)
|
||||||
for ((oldElement, newElement) in oldLightElements.stream() zip newDeclaration.toLightElements().stream()) {
|
for ((oldElement, newElement) in oldLightElements.asSequence() zip newDeclaration.toLightElements().asSequence()) {
|
||||||
oldToNewElementsMapping[oldElement] = newElement
|
oldToNewElementsMapping[oldElement] = newElement
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nonCodeUsages = postProcessMoveUsages(usageList, oldToNewElementsMapping).copyToArray()
|
nonCodeUsages = postProcessMoveUsages(usageList, oldToNewElementsMapping).toTypedArray()
|
||||||
}
|
}
|
||||||
catch (e: IncorrectOperationException) {
|
catch (e: IncorrectOperationException) {
|
||||||
nonCodeUsages = null
|
nonCodeUsages = null
|
||||||
@@ -294,7 +292,7 @@ public class MoveKotlinTopLevelDeclarationsProcessor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun execute(usages: List<UsageInfo>) {
|
fun execute(usages: List<UsageInfo>) {
|
||||||
execute(usages.copyToArray())
|
execute(usages.toTypedArray())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getCommandName(): String = REFACTORING_NAME
|
override fun getCommandName(): String = REFACTORING_NAME
|
||||||
|
|||||||
@@ -52,12 +52,11 @@ import java.util.Comparator
|
|||||||
public class PackageNameInfo(val oldPackageName: FqName, val newPackageName: FqName)
|
public class PackageNameInfo(val oldPackageName: FqName, val newPackageName: FqName)
|
||||||
|
|
||||||
public fun JetElement.getInternalReferencesToUpdateOnPackageNameChange(packageNameInfo: PackageNameInfo): List<UsageInfo> {
|
public fun JetElement.getInternalReferencesToUpdateOnPackageNameChange(packageNameInfo: PackageNameInfo): List<UsageInfo> {
|
||||||
val file = getContainingFile() as? JetFile
|
val file = getContainingFile() as? JetFile ?: return listOf()
|
||||||
if (file == null) return Collections.emptyList()
|
|
||||||
|
|
||||||
val importPaths = file.getImportDirectives().map { it.getImportPath() }.filterNotNull()
|
val importPaths = file.getImportDirectives().map { it.getImportPath() }.filterNotNull()
|
||||||
|
|
||||||
[tailRecursive] fun isImported(descriptor: DeclarationDescriptor): Boolean {
|
@tailRecursive fun isImported(descriptor: DeclarationDescriptor): Boolean {
|
||||||
val fqName = DescriptorUtils.getFqName(descriptor).let { if (it.isSafe()) it.toSafe() else return@isImported false }
|
val fqName = DescriptorUtils.getFqName(descriptor).let { if (it.isSafe()) it.toSafe() else return@isImported false }
|
||||||
if (importPaths.any { fqName.isImported(it, false) }) return true
|
if (importPaths.any { fqName.isImported(it, false) }) return true
|
||||||
|
|
||||||
@@ -180,7 +179,7 @@ private fun updateJavaReference(reference: PsiReferenceExpression, oldElement: P
|
|||||||
|
|
||||||
val newClass = newElement.getContainingClass()
|
val newClass = newElement.getContainingClass()
|
||||||
if (newClass != null && reference.getQualifierExpression() != null) {
|
if (newClass != null && reference.getQualifierExpression() != null) {
|
||||||
val mockMoveMembersOptions = MockMoveMembersOptions(newClass.getQualifiedName(), array(newElement))
|
val mockMoveMembersOptions = MockMoveMembersOptions(newClass.getQualifiedName(), arrayOf(newElement))
|
||||||
val moveMembersUsageInfo = MoveMembersProcessor.MoveMembersUsageInfo(
|
val moveMembersUsageInfo = MoveMembersProcessor.MoveMembersUsageInfo(
|
||||||
newElement, reference.getElement(), newClass, reference.getQualifierExpression(), reference)
|
newElement, reference.getElement(), newClass, reference.getQualifierExpression(), reference)
|
||||||
val moveMemberHandler = MoveMemberHandler.EP_NAME.forLanguage(reference.getElement().getLanguage())
|
val moveMemberHandler = MoveMemberHandler.EP_NAME.forLanguage(reference.getElement().getLanguage())
|
||||||
|
|||||||
Reference in New Issue
Block a user