From 62c5972eca6f6237657c9f00185ad34a9a252bf1 Mon Sep 17 00:00:00 2001 From: Andrey Uskov Date: Tue, 25 Dec 2018 18:23:35 +0300 Subject: [PATCH] Minor refactoring in MoveKotlinDeclarationsHandler during unique container calculation --- .../MoveKotlinDeclarationsHandler.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsHandler.kt index de86e428c67..509ffc93404 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsHandler.kt @@ -48,17 +48,21 @@ import java.util.* class MoveKotlinDeclarationsHandler : MoveHandlerDelegate() { private fun getUniqueContainer(elements: Array): PsiElement? { + val allTopLevel = elements.all { isTopLevelInFileOrScript(it) } + val getContainer: (PsiElement) -> PsiElement? = - if (elements.any { !isTopLevelInFileOrScript(it) }) { e -> + { e -> + if (allTopLevel) { + e.containingFile?.parent + } else { when (e) { is KtNamedDeclaration -> e.containingClassOrObject ?: e.parent is KtFile -> e.parent else -> null } } - else { e -> - e.containingFile?.parent - } + } + return elements.mapNotNullTo(LinkedHashSet(), getContainer).singleOrNull() }