diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsHandler.kt index fd2aa9bf5d0..418681c1f17 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveTopLevelDeclarations/MoveKotlinTopLevelDeclarationsHandler.kt @@ -69,8 +69,18 @@ public class MoveKotlinTopLevelDeclarationsHandler : MoveHandlerDelegate() { [suppress("UNCHECKED_CAST")] val elementsToSearch = elements.toSet() as Set - val sourceFile = elementsToSearch.mapTo(LinkedHashSet()) { it.getContainingJetFile() }.singleOrNull() + val sourceFiles = elementsToSearch.mapTo(LinkedHashSet()) { it.getContainingJetFile() } + val sourceFile = sourceFiles.singleOrNull() if (sourceFile == null) { + if (sourceFiles.all { it.getDeclarations().size() == 1 }) { + MoveFilesOrDirectoriesUtil.doMove(project, + sourceFiles.toTypedArray(), + arrayOf(targetContainer), + null) + + return true + } + CommonRefactoringUtil.showErrorMessage(RefactoringBundle.message("move.title"), "All declarations must belong to the same file", null, project) return false }