From 3146b1247134601ed000c5db078843790c31aa10 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Wed, 19 Jun 2019 15:12:35 +0300 Subject: [PATCH] Fix UL inline class delegate loading for tooComplex case (#KT-31950 Fixed) --- .../kotlin/asJava/classes/KtUltraInlineLightClass.kt | 5 +---- .../org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtUltraInlineLightClass.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtUltraInlineLightClass.kt index fc64b40dbac..2d41dacef16 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtUltraInlineLightClass.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KtUltraInlineLightClass.kt @@ -21,9 +21,6 @@ class KtUltraLightInlineClass( support: KtUltraLightSupport ) : KtUltraLightClass(classOrObject, support) { - override fun getDelegate(): PsiClass = - throw IllegalStateException("Cls delegate shouldn't be loaded for not too complex ultra-light classes! Qualified name: $qualifiedName") - override fun getScope(): PsiElement? = parent private val membersBuilder: UltraLightMembersCreator by lazyPub { @@ -74,7 +71,7 @@ class KtUltraLightInlineClass( override fun getOwnFields(): List = emptyList() - override fun getOwnMethods() = _ownMethods + override fun getOwnMethods() = if (tooComplex) super.getOwnMethods() else _ownMethods override fun getVisibleSignatures(): MutableCollection = PsiSuperMethodImplUtil.getVisibleSignatures(this) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt index 144065ee702..9c38980dcdd 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt @@ -50,7 +50,7 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor ) } - private val tooComplex: Boolean by lazyPub { support.isTooComplexForUltraLightGeneration(classOrObject) } + protected val tooComplex: Boolean by lazyPub { support.isTooComplexForUltraLightGeneration(classOrObject) } private val _deprecated by lazyPub { classOrObject.isDeprecated(support) }