mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 14:23:28 +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 PsiElement?.isSingleClassContainer(): Boolean {
|
||||
if (this !is KtClass) return false
|
||||
if (this !is KtClassOrObject) return false
|
||||
val file = parent as? KtFile ?: return false
|
||||
return this == file.declarations.singleOrNull()
|
||||
}
|
||||
|
||||
@@ -70,7 +70,25 @@ class K2MoveModelTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
class Foo { }
|
||||
""".trimIndent()) as KtFile
|
||||
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 { }
|
||||
""".trimIndent()) as KtFile
|
||||
val barClass = (myFixture.addFileToProject("Bar.kt", """
|
||||
object Bar { }
|
||||
""".trimIndent()) as KtFile).declarations.single()
|
||||
val moveModel = K2MoveModel.create(arrayOf(fooFile, barClass), null)
|
||||
assertInstanceOf<K2MoveModel.Files>(moveModel)
|
||||
|
||||
Reference in New Issue
Block a user