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.getElementTextWithContext
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isAncestor
|
||||
import org.jetbrains.kotlin.utils.ifEmpty
|
||||
import org.jetbrains.kotlin.utils.keysToMap
|
||||
import java.lang.AssertionError
|
||||
import java.util.*
|
||||
@@ -129,7 +130,7 @@ class MoveKotlinDeclarationsProcessor(
|
||||
private val elementsToMove = descriptor.elementsToMove.filter { e -> e.parent != descriptor.moveTarget.getTargetPsiIfExists(e) }
|
||||
private val kotlinToLightElementsBySourceFile = elementsToMove
|
||||
.groupBy { it.containingKtFile }
|
||||
.mapValues { it.value.keysToMap { it.toLightElements() } }
|
||||
.mapValues { it.value.keysToMap { it.toLightElements().ifEmpty { listOf(it) } } }
|
||||
private val conflicts = MultiMap<PsiElement, String>()
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@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")
|
||||
public void testKotlin_moveDirectory_moveDirectoryWithPackageDirectiveChange_MoveDirectoryWithPackageDirectiveChange() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveDirectory/moveDirectoryWithPackageDirectiveChange/moveDirectoryWithPackageDirectiveChange.test");
|
||||
|
||||
Reference in New Issue
Block a user