Move: Make applicable to type aliases

#KT-21071 Fixed
This commit is contained in:
Alexey Sedunov
2017-11-17 20:46:18 +03:00
parent bcdb46653c
commit acbf53c42e
3 changed files with 9 additions and 1 deletions
@@ -172,7 +172,7 @@ class MoveKotlinDeclarationsHandler : MoveHandlerDelegate() {
return elements.all { e ->
when {
e is KtClass || e is KtObjectDeclaration && !e.isObjectLiteral() || e is KtNamedFunction || e is KtProperty ->
e is KtClass || e is KtObjectDeclaration && !e.isObjectLiteral() || e is KtNamedFunction || e is KtProperty || e is KtTypeAlias ->
(editorMode || (e as KtNamedDeclaration).canMove()) && e.canRefactor()
e is KtFile ->
e.declarations.any { it is KtNamedDeclaration } && e.canRefactor()
@@ -0,0 +1,3 @@
class A
typealias <caret>B = A
@@ -198,4 +198,9 @@ class MoveKotlinDeclarationsHandlerTest : KotlinMultiFileTestCase() {
assert(nestedTarget.name == "C")
assert(handler.canMove(elementsToMove, nestedTarget))
}
fun testTypeAlias() = doTest { rootDir, handler ->
val typeAlias = getElementAtCaret(rootDir, "test.kt").getNonStrictParentOfType<KtTypeAlias>()!!
assert(handler.canMove(arrayOf<PsiElement>(typeAlias), null))
}
}