[FIR] DeprecationsProvider: make evaluation of deprecations on demand
This commit is contained in:
committed by
teamcity
parent
98ebad2d75
commit
25fc948d95
@@ -185,7 +185,7 @@ abstract class FirJavaFacade(
|
||||
}
|
||||
}
|
||||
firJavaClass.replaceSuperTypeRefs(enhancedSuperTypes)
|
||||
firJavaClass.replaceDeprecation(firJavaClass.getDeprecationInfos(session.languageVersionSettings.apiVersion))
|
||||
firJavaClass.replaceDeprecationsProvider(firJavaClass.getDeprecationsProvider())
|
||||
return firJavaClass
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ class FirJavaClass @FirImplementationDetail internal constructor(
|
||||
) : FirRegularClass() {
|
||||
override val hasLazyNestedClassifiers: Boolean get() = true
|
||||
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
|
||||
override var deprecation: DeprecationsPerUseSite? = null
|
||||
override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
|
||||
|
||||
override val contextReceivers: List<FirContextReceiver>
|
||||
get() = emptyList()
|
||||
@@ -70,8 +70,8 @@ class FirJavaClass @FirImplementationDetail internal constructor(
|
||||
resolvePhase = newResolvePhase
|
||||
}
|
||||
|
||||
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {
|
||||
deprecation = newDeprecation
|
||||
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
|
||||
deprecationsProvider = newDeprecationsProvider
|
||||
}
|
||||
|
||||
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {}
|
||||
|
||||
+3
-3
@@ -43,7 +43,7 @@ class FirJavaConstructor @FirImplementationDetail constructor(
|
||||
override val dispatchReceiverType: ConeSimpleKotlinType?,
|
||||
) : FirConstructor() {
|
||||
override val receiverTypeRef: FirTypeRef? get() = null
|
||||
override var deprecation: DeprecationsPerUseSite? = null
|
||||
override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
|
||||
|
||||
init {
|
||||
symbol.bind(this)
|
||||
@@ -134,8 +134,8 @@ class FirJavaConstructor @FirImplementationDetail constructor(
|
||||
}
|
||||
|
||||
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {
|
||||
deprecation = newDeprecation
|
||||
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
|
||||
deprecationsProvider = newDeprecationsProvider
|
||||
}
|
||||
|
||||
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
|
||||
|
||||
@@ -61,8 +61,8 @@ class FirJavaField @FirImplementationDetail constructor(
|
||||
|
||||
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
|
||||
|
||||
override val deprecation: DeprecationsPerUseSite by lazy {
|
||||
annotations.getDeprecationInfosFromAnnotations(moduleData.session.languageVersionSettings.apiVersion, fromJava = true)
|
||||
override val deprecationsProvider: DeprecationsProvider by lazy {
|
||||
annotations.getDeprecationsProviderFromAnnotations(true)
|
||||
}
|
||||
|
||||
override val contextReceivers: List<FirContextReceiver>
|
||||
@@ -145,8 +145,7 @@ class FirJavaField @FirImplementationDetail constructor(
|
||||
}
|
||||
|
||||
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||
|
||||
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {}
|
||||
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {}
|
||||
|
||||
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField {
|
||||
return this
|
||||
|
||||
@@ -85,7 +85,7 @@ class FirJavaMethod @FirImplementationDetail constructor(
|
||||
get() = emptyList()
|
||||
|
||||
//not used actually, because get 'enhanced' into regular FirSimpleFunction
|
||||
override var deprecation: DeprecationsPerUseSite? = null
|
||||
override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
returnTypeRef.accept(visitor, data)
|
||||
@@ -159,8 +159,8 @@ class FirJavaMethod @FirImplementationDetail constructor(
|
||||
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||
}
|
||||
|
||||
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {
|
||||
deprecation = newDeprecation
|
||||
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
|
||||
deprecationsProvider = newDeprecationsProvider
|
||||
}
|
||||
|
||||
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
|
||||
@@ -207,7 +207,7 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
|
||||
lateinit var annotationBuilder: () -> List<FirAnnotation>
|
||||
|
||||
@Deprecated("Modification of 'deprecation' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN)
|
||||
override var deprecation: DeprecationsPerUseSite?
|
||||
override var deprecationsProvider: DeprecationsProvider
|
||||
get() = throw IllegalStateException()
|
||||
set(_) {
|
||||
throw IllegalStateException()
|
||||
|
||||
+3
-3
@@ -63,8 +63,8 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
|
||||
override val receiverTypeRef: FirTypeRef?
|
||||
get() = null
|
||||
|
||||
override val deprecation: DeprecationsPerUseSite
|
||||
get() = EmptyDeprecationsPerUseSite
|
||||
override val deprecationsProvider: DeprecationsProvider
|
||||
get() = EmptyDeprecationsProvider
|
||||
|
||||
override val initializer: FirExpression?
|
||||
get() = null
|
||||
@@ -168,7 +168,7 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
|
||||
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
|
||||
}
|
||||
|
||||
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {
|
||||
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.descriptors.SourceElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.getDeprecationInfos
|
||||
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
|
||||
@@ -151,7 +151,7 @@ class JvmClassFileBasedSymbolProvider(
|
||||
},
|
||||
kotlinClass.byteContent,
|
||||
)
|
||||
symbol.fir.replaceDeprecation(symbol.fir.getDeprecationInfos(session.languageVersionSettings.apiVersion))
|
||||
symbol.fir.replaceDeprecationsProvider(symbol.fir.getDeprecationsProvider())
|
||||
}
|
||||
|
||||
private fun String?.toPath(): Path? {
|
||||
|
||||
+2
-2
@@ -168,7 +168,7 @@ class FirSignatureEnhancement(
|
||||
delegateGetter = enhancedGetterSymbol.fir as FirSimpleFunction
|
||||
delegateSetter = enhancedSetterSymbol?.fir as FirSimpleFunction?
|
||||
status = firElement.status
|
||||
deprecation = getDeprecationsFromAccessors(delegateGetter, delegateSetter, session.languageVersionSettings.apiVersion)
|
||||
deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter)
|
||||
}.symbol
|
||||
}
|
||||
else -> {
|
||||
@@ -320,7 +320,7 @@ class FirSignatureEnhancement(
|
||||
else -> throw AssertionError("Unknown Java method to enhance: ${firMethod.render()}")
|
||||
}.apply {
|
||||
annotations += firMethod.annotations
|
||||
deprecation = annotations.getDeprecationInfosFromAnnotations(session.languageVersionSettings.apiVersion, fromJava = true)
|
||||
deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(true)
|
||||
}.build()
|
||||
|
||||
return function.symbol
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@ class JavaClassUseSiteMemberScope(
|
||||
chooseModalityForAccessor(property, delegateGetter)
|
||||
}
|
||||
)
|
||||
deprecation = getDeprecationsFromAccessors(delegateGetter, delegateSetter, session.languageVersionSettings.apiVersion)
|
||||
deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter)
|
||||
}.symbol
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user