mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 17:20:55 +07:00
[kotlin] Fix incorrect error on moving file and object at the same time
#KTIJ-29825 Fixed GitOrigin-RevId: 705f1a01a1f529a68cb368b04dfe4221b62429ff
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b70ef0fea3
commit
b405c2a7f7
@@ -167,7 +167,7 @@ sealed class K2MoveModel {
|
|||||||
fun isMultiFileMove(movedElements: List<KtElement>) = movedElements.map { it.containingFile }.toSet().size > 1
|
fun isMultiFileMove(movedElements: List<KtElement>) = movedElements.map { it.containingFile }.toSet().size > 1
|
||||||
|
|
||||||
fun PsiElement?.isSingleClassContainer(): Boolean {
|
fun PsiElement?.isSingleClassContainer(): Boolean {
|
||||||
if (this !is KtClass) return false
|
if (this !is KtClassOrObject) return false
|
||||||
val file = parent as? KtFile ?: return false
|
val file = parent as? KtFile ?: return false
|
||||||
return this == file.declarations.singleOrNull()
|
return this == file.declarations.singleOrNull()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,25 @@ class K2MoveModelTest : KotlinLightCodeInsightFixtureTestCase() {
|
|||||||
class Foo { }
|
class Foo { }
|
||||||
""".trimIndent()) as KtFile
|
""".trimIndent()) as KtFile
|
||||||
val barClass = (myFixture.addFileToProject("Bar.kt", """
|
val barClass = (myFixture.addFileToProject("Bar.kt", """
|
||||||
|
class Bar { }
|
||||||
|
""".trimIndent()) as KtFile).declarations.single()
|
||||||
|
val moveModel = K2MoveModel.create(arrayOf(fooFile, barClass), null)
|
||||||
|
assertInstanceOf<K2MoveModel.Files>(moveModel)
|
||||||
|
val moveFilesModel = moveModel as K2MoveModel.Files
|
||||||
|
assertSize(2, moveFilesModel.source.elements)
|
||||||
|
val firstElem = moveFilesModel.source.elements.first()
|
||||||
|
assert(firstElem.name == "Foo.kt")
|
||||||
|
val lastElem = moveFilesModel.source.elements.last()
|
||||||
|
assert(lastElem.name == "Bar.kt")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun `test single object and file from source directory without target move`() {
|
||||||
|
PsiTestUtil.addSourceRoot(module, myFixture.getTempDirFixture().getFile("")!!)
|
||||||
|
val fooFile = myFixture.addFileToProject("Foo.kt", """
|
||||||
class Foo { }
|
class Foo { }
|
||||||
|
""".trimIndent()) as KtFile
|
||||||
|
val barClass = (myFixture.addFileToProject("Bar.kt", """
|
||||||
|
object Bar { }
|
||||||
""".trimIndent()) as KtFile).declarations.single()
|
""".trimIndent()) as KtFile).declarations.single()
|
||||||
val moveModel = K2MoveModel.create(arrayOf(fooFile, barClass), null)
|
val moveModel = K2MoveModel.create(arrayOf(fooFile, barClass), null)
|
||||||
assertInstanceOf<K2MoveModel.Files>(moveModel)
|
assertInstanceOf<K2MoveModel.Files>(moveModel)
|
||||||
|
|||||||
Reference in New Issue
Block a user