diff --git a/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/KtLightClassForDecompiledFacade.kt b/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/KtLightClassForDecompiledFacade.kt index b01df47036b..0664d1a2de0 100644 --- a/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/KtLightClassForDecompiledFacade.kt +++ b/analysis/decompiled/light-classes-for-decompiled/src/org/jetbrains/kotlin/analysis/decompiled/light/classes/KtLightClassForDecompiledFacade.kt @@ -25,4 +25,6 @@ internal class KtLightClassForDecompiledFacade( override fun getName(): String = super.getName() override val facadeClassFqName: FqName get() = file.javaFileFacadeFqName override val originKind: LightClassOriginKind get() = LightClassOriginKind.BINARY + + override val multiFileClass: Boolean = false } \ No newline at end of file diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacade.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacade.kt index 7bf1f48c7df..e6464cb00c0 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacade.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacade.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.psi.KtFile interface KtLightClassForFacade : KtLightClass { val facadeClassFqName: FqName val files: Collection + val multiFileClass: Boolean override fun getName(): String = facadeClassFqName.shortName().asString() } diff --git a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacadeBase.kt b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacadeBase.kt index ae3862d5f28..17868d009c9 100644 --- a/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacadeBase.kt +++ b/analysis/light-classes-base/src/org/jetbrains/kotlin/asJava/classes/KtLightClassForFacadeBase.kt @@ -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() diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt index 64a08940316..80b0b08edf9 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt @@ -102,7 +102,7 @@ internal class SymbolLightClassForFacade( } } - private val multiFileClass: Boolean get() = files.size > 1 || firstFileInFacade.isJvmMultifileClassFile + override val multiFileClass: Boolean get() = files.size > 1 || firstFileInFacade.isJvmMultifileClassFile context(KtAnalysisSession) private fun loadFieldsFromFile( diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraKtLightClassForFacade.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraKtLightClassForFacade.kt index 411fc910049..6c705d7ec08 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraKtLightClassForFacade.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraKtLightClassForFacade.kt @@ -39,7 +39,7 @@ class KtUltraLightClassForFacade( } override val givenAnnotations: List? - get() = if (isMultiFileClass) emptyList() else _givenAnnotations + get() = if (multiFileClass) emptyList() else _givenAnnotations override fun createModifierListForSimpleFacade(): PsiModifierList = _modifierListForSimpleFacade @@ -94,7 +94,7 @@ class KtUltraLightClassForFacade( override fun createOwnFields(): List = hashSetOf().let { nameCache -> filesWithSupportsWithCreators.flatMap { (file, _, creator) -> val allProperties = file.declarations.filterIsInstance() - val properties = if (isMultiFileClass) allProperties.filter { it.hasModifier(KtTokens.CONST_KEYWORD) } else allProperties + val properties = if (multiFileClass) allProperties.filter { it.hasModifier(KtTokens.CONST_KEYWORD) } else allProperties properties.mapNotNull { creator.createPropertyField(it, nameCache, forceStatic = true) } @@ -106,7 +106,7 @@ class KtUltraLightClassForFacade( loadMethodsFromFile(file, support, creator, result) } - if (!isMultiFileClass) result else result.filterNot { it.hasModifierProperty(PsiModifier.PRIVATE) } + if (!multiFileClass) result else result.filterNot { it.hasModifierProperty(PsiModifier.PRIVATE) } } override fun copy(): KtLightClassForFacade = KtUltraLightClassForFacade(facadeClassFqName, files, filesWithSupports)