Move: Do not skip usages of declarations without light elements
#KT-18873 Fixed
This commit is contained in:
+2
-1
@@ -52,6 +52,7 @@ import org.jetbrains.kotlin.psi.*
|
|||||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
|
import org.jetbrains.kotlin.psi.psiUtil.getElementTextWithContext
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.isAncestor
|
import org.jetbrains.kotlin.psi.psiUtil.isAncestor
|
||||||
|
import org.jetbrains.kotlin.utils.ifEmpty
|
||||||
import org.jetbrains.kotlin.utils.keysToMap
|
import org.jetbrains.kotlin.utils.keysToMap
|
||||||
import java.lang.AssertionError
|
import java.lang.AssertionError
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -129,7 +130,7 @@ class MoveKotlinDeclarationsProcessor(
|
|||||||
private val elementsToMove = descriptor.elementsToMove.filter { e -> e.parent != descriptor.moveTarget.getTargetPsiIfExists(e) }
|
private val elementsToMove = descriptor.elementsToMove.filter { e -> e.parent != descriptor.moveTarget.getTargetPsiIfExists(e) }
|
||||||
private val kotlinToLightElementsBySourceFile = elementsToMove
|
private val kotlinToLightElementsBySourceFile = elementsToMove
|
||||||
.groupBy { it.containingKtFile }
|
.groupBy { it.containingKtFile }
|
||||||
.mapValues { it.value.keysToMap { it.toLightElements() } }
|
.mapValues { it.value.keysToMap { it.toLightElements().ifEmpty { listOf(it) } } }
|
||||||
private val conflicts = MultiMap<PsiElement, String>()
|
private val conflicts = MultiMap<PsiElement, String>()
|
||||||
|
|
||||||
override fun getRefactoringId() = REFACTORING_ID
|
override fun getRefactoringId() = REFACTORING_ID
|
||||||
|
|||||||
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
package headers.classes
|
||||||
|
|
||||||
|
import headers2.funs3.NonHeaderClass
|
||||||
|
import headers2.funs3.HeaderClass
|
||||||
|
|
||||||
|
fun f(p: HeaderClass) = NonHeaderClass()
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
package headers2.funs3
|
||||||
|
|
||||||
|
class NonHeaderClass
|
||||||
|
header class HeaderClass
|
||||||
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
package headers.classes
|
||||||
|
|
||||||
|
import headers.funs.NonHeaderClass
|
||||||
|
import headers.funs.HeaderClass
|
||||||
|
|
||||||
|
fun f(p: HeaderClass) = NonHeaderClass()
|
||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
package headers.funs
|
||||||
|
|
||||||
|
class NonHeaderClass
|
||||||
|
header class HeaderClass
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"mainFile": "headers/funs/funs.kt",
|
||||||
|
"type": "CHANGE_PACKAGE_DIRECTIVE",
|
||||||
|
"newPackageName": "headers2.funs3"
|
||||||
|
}
|
||||||
@@ -228,6 +228,12 @@ public class MoveTestGenerated extends AbstractMoveTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kotlin/changePackage/headerClasses/headerClasses.test")
|
||||||
|
public void testKotlin_changePackage_headerClasses_HeaderClasses() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/changePackage/headerClasses/headerClasses.test");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test")
|
@TestMetadata("kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test")
|
||||||
public void testKotlin_moveDirectory_moveDirectoryWithPackageDirectiveChange_MoveDirectoryWithPackageDirectiveChange() throws Exception {
|
public void testKotlin_moveDirectory_moveDirectoryWithPackageDirectiveChange_MoveDirectoryWithPackageDirectiveChange() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test");
|
||||||
|
|||||||
Reference in New Issue
Block a user