[FIR] DeprecationsProvider: caching results

This commit is contained in:
Arseniy Terekhov
2022-08-17 10:58:54 +03:00
committed by teamcity
parent 25fc948d95
commit a80870bc8f
13 changed files with 43 additions and 27 deletions
@@ -185,7 +185,7 @@ abstract class FirJavaFacade(
}
}
firJavaClass.replaceSuperTypeRefs(enhancedSuperTypes)
firJavaClass.replaceDeprecationsProvider(firJavaClass.getDeprecationsProvider())
firJavaClass.replaceDeprecationsProvider(firJavaClass.getDeprecationsProvider(session.firCachesFactory))
return firJavaClass
}
@@ -11,11 +11,11 @@ import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.caches.firCachesFactory
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.FirFieldBuilder
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
@@ -62,7 +62,7 @@ class FirJavaField @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
override val deprecationsProvider: DeprecationsProvider by lazy {
annotations.getDeprecationsProviderFromAnnotations(true)
annotations.getDeprecationsProviderFromAnnotations(true, moduleData.session.firCachesFactory)
}
override val contextReceivers: List<FirContextReceiver>
@@ -8,12 +8,12 @@ package org.jetbrains.kotlin.fir.java.deserialization
import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
import org.jetbrains.kotlin.fir.caches.firCachesFactory
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.getDeprecationsProvider
import org.jetbrains.kotlin.fir.deserialization.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.java.FirJavaFacade
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
import org.jetbrains.kotlin.load.kotlin.*
@@ -151,7 +151,7 @@ class JvmClassFileBasedSymbolProvider(
},
kotlinClass.byteContent,
)
symbol.fir.replaceDeprecationsProvider(symbol.fir.getDeprecationsProvider())
symbol.fir.replaceDeprecationsProvider(symbol.fir.getDeprecationsProvider(session.firCachesFactory))
}
private fun String?.toPath(): Path? {
@@ -168,7 +168,7 @@ class FirSignatureEnhancement(
delegateGetter = enhancedGetterSymbol.fir as FirSimpleFunction
delegateSetter = enhancedSetterSymbol?.fir as FirSimpleFunction?
status = firElement.status
deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter)
deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter, session.firCachesFactory)
}.symbol
}
else -> {
@@ -320,7 +320,7 @@ class FirSignatureEnhancement(
else -> throw AssertionError("Unknown Java method to enhance: ${firMethod.render()}")
}.apply {
annotations += firMethod.annotations
deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(true)
deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(true, session.firCachesFactory)
}.build()
return function.symbol
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.java.scopes
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.caches.firCachesFactory
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunctionCopy
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
@@ -88,7 +89,7 @@ class JavaClassUseSiteMemberScope(
chooseModalityForAccessor(property, delegateGetter)
}
)
deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter)
deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter, session.firCachesFactory)
}.symbol
}
}