[Analysis API] optimize RAM consumption in KtTypes
- remove cache allocation for cases when the value is fast to compute ^KTIJ-22749
This commit is contained in:
committed by
Space Team
parent
2e5d284472
commit
e0c23dae47
+1
-1
@@ -21,7 +21,7 @@ internal class KtFirDefinitelyNotNullType(
|
||||
override val token: KtLifetimeToken,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
) : KtDefinitelyNotNullType(), KtFirType {
|
||||
override val original: KtType by cached { builder.typeBuilder.buildKtType(this.coneType.original) }
|
||||
override val original: KtType = withValidityAssertion { builder.typeBuilder.buildKtType(this.coneType.original) }
|
||||
override val annotationsList: KtAnnotationsList by cached {
|
||||
KtFirAnnotationListForType.create(coneType, builder.rootSession, token)
|
||||
}
|
||||
|
||||
+2
-2
@@ -23,8 +23,8 @@ internal class KtFirFlexibleType(
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
) : KtFlexibleType(), KtFirType {
|
||||
|
||||
override val lowerBound: KtType by cached { builder.typeBuilder.buildKtType(coneType.lowerBound) }
|
||||
override val upperBound: KtType by cached { builder.typeBuilder.buildKtType(coneType.upperBound) }
|
||||
override val lowerBound: KtType get() = withValidityAssertion { builder.typeBuilder.buildKtType(coneType.lowerBound) }
|
||||
override val upperBound: KtType get() = withValidityAssertion { builder.typeBuilder.buildKtType(coneType.upperBound) }
|
||||
override val annotationsList: KtAnnotationsList by cached {
|
||||
KtFirAnnotationListForType.create(coneType, builder.rootSession, token)
|
||||
}
|
||||
|
||||
+5
-4
@@ -27,10 +27,11 @@ internal class KtFirUsualClassType(
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
) : KtUsualClassType(), KtFirType {
|
||||
override val classId: ClassId get() = withValidityAssertion { coneType.lookupTag.classId }
|
||||
override val classSymbol: KtClassLikeSymbol by cached {
|
||||
builder.classifierBuilder.buildClassLikeSymbolByLookupTag(coneType.lookupTag)
|
||||
?: errorWithFirSpecificEntries("Class was not found", coneType = coneType)
|
||||
}
|
||||
override val classSymbol: KtClassLikeSymbol
|
||||
get() = withValidityAssertion {
|
||||
builder.classifierBuilder.buildClassLikeSymbolByLookupTag(coneType.lookupTag)
|
||||
?: errorWithFirSpecificEntries("Class was not found", coneType = coneType)
|
||||
}
|
||||
|
||||
override val qualifiers by cached {
|
||||
UsualClassTypeQualifierBuilder.buildQualifiers(coneType, builder)
|
||||
|
||||
Reference in New Issue
Block a user