From d1857d68bc9e3929e469e12fcb348dbe483dddf3 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Thu, 9 Mar 2017 01:28:30 +0300 Subject: [PATCH] Move: Fix element listener retrieval Get element listener before original declaration is invalidated by the refactoring --- .../move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt index 8c6b8e2679f..325a56fedb5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveKotlinDeclarationsProcessor.kt @@ -260,6 +260,8 @@ class MoveKotlinDeclarationsProcessor( ) for ((sourceFile, kotlinToLightElements) in kotlinToLightElementsBySourceFile) { for ((oldDeclaration, oldLightElements) in kotlinToLightElements) { + val elementListener = transaction!!.getElementListener(oldDeclaration) + val newDeclaration = moveDeclaration(oldDeclaration, descriptor.moveTarget) if (newDeclaration == null) { for (oldElement in oldLightElements) { @@ -270,7 +272,7 @@ class MoveKotlinDeclarationsProcessor( oldToNewElementsMapping[sourceFile] = newDeclaration.containingKtFile - transaction!!.getElementListener(oldDeclaration).elementMoved(newDeclaration) + elementListener.elementMoved(newDeclaration) for ((oldElement, newElement) in oldLightElements.asSequence().zip(newDeclaration.toLightElements().asSequence())) { oldToNewElementsMapping[oldElement] = newElement }