LC: commonize facade for multi-file class

This commit is contained in:
Jinseong Jeon
2023-03-28 11:21:02 -07:00
committed by Dmitrii Gridin
parent bcee270265
commit 0ac3fae9ab
5 changed files with 9 additions and 6 deletions
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.psi.KtFile
interface KtLightClassForFacade : KtLightClass {
val facadeClassFqName: FqName
val files: Collection<KtFile>
val multiFileClass: Boolean
override fun getName(): String = facadeClassFqName.shortName().asString()
}
@@ -35,12 +35,12 @@ abstract class KtLightClassForFacadeBase constructor(
) : KtLightClassBase(files.first().manager), KtLightClassForFacade {
private val firstFileInFacade by lazyPub { files.first() }
val isMultiFileClass: Boolean by lazyPub {
override val multiFileClass: Boolean by lazyPub {
files.size > 1 || firstFileInFacade.isJvmMultifileClassFile
}
private val _modifierList: PsiModifierList by lazyPub {
if (isMultiFileClass)
if (multiFileClass)
LightModifierList(manager, KotlinLanguage.INSTANCE, PsiModifier.PUBLIC, PsiModifier.FINAL)
else
createModifierListForSimpleFacade()