diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveFilesOrDirectories/KotlinMoveFilesOrDirectoriesHandler.java b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveFilesOrDirectories/KotlinMoveFilesOrDirectoriesHandler.java index 072eda57161..9ce0dc4e31e 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveFilesOrDirectories/KotlinMoveFilesOrDirectoriesHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/move/moveFilesOrDirectories/KotlinMoveFilesOrDirectoriesHandler.java @@ -42,14 +42,21 @@ public class KotlinMoveFilesOrDirectoriesHandler extends MoveFilesOrDirectoriesH @Override public boolean canMove(PsiElement[] elements, @Nullable PsiElement targetContainer) { + ArrayList adjustedElements = new ArrayList(); for (PsiElement element : elements) { - if (!(element instanceof PsiFile) && !(element instanceof PsiDirectory) && - (!(element instanceof JetClassOrObject) || - !isMovableClass((JetClassOrObject) element))) { - return false; + if (element instanceof PsiFile || element instanceof PsiDirectory) { + adjustedElements.add(element); + continue; } + + if (element instanceof JetClassOrObject && element.getParent() instanceof JetFile) { + adjustedElements.add(element.getParent()); + continue; + } + + return false; } - return super.canMove(elements, targetContainer); + return super.canMove(adjustedElements.toArray(new PsiElement[adjustedElements.size()]), targetContainer); } @Override