diff options
Diffstat (limited to 'plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/declarations/AbstractKotlinUClass.kt')
-rw-r--r-- | plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/declarations/AbstractKotlinUClass.kt | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/declarations/AbstractKotlinUClass.kt b/plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/declarations/AbstractKotlinUClass.kt index 27c0d1466d2d..849428388f93 100644 --- a/plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/declarations/AbstractKotlinUClass.kt +++ b/plugins/kotlin/uast/uast-kotlin-base/src/org/jetbrains/uast/kotlin/declarations/AbstractKotlinUClass.kt @@ -2,6 +2,7 @@ package org.jetbrains.uast.kotlin +import org.jetbrains.annotations.ApiStatus import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtDelegatedSuperTypeEntry @@ -10,6 +11,7 @@ import org.jetbrains.uast.* import org.jetbrains.uast.internal.acceptList import org.jetbrains.uast.visitor.UastVisitor +@ApiStatus.Internal abstract class AbstractKotlinUClass( givenParent: UElement? ) : KotlinAbstractUElement(givenParent), UClass, UAnchorOwner { @@ -23,17 +25,19 @@ abstract class AbstractKotlinUClass( } } - open val ktClass: KtClassOrObject? get() = (psi as? KtLightClass)?.kotlinOrigin + protected open val ktClass: KtClassOrObject? + get() = (psi as? KtLightClass)?.kotlinOrigin override val uastSuperTypes: List<UTypeReferenceExpression> get() = ktClass?.superTypeListEntries.orEmpty().mapNotNull { it.typeReference }.map { KotlinUTypeReferenceExpression(it, this) } - val delegateExpressions: List<UExpression> - get() = ktClass?.superTypeListEntries.orEmpty() + private val delegateExpressions: List<UExpression> by lz { + ktClass?.superTypeListEntries.orEmpty() .filterIsInstance<KtDelegatedSuperTypeEntry>() .map { KotlinSupertypeDelegationUExpression(it, this) } + } override fun accept(visitor: UastVisitor) { if (visitor.visitClass(this)) return |