[FIR] DeprecationsProvider: make evaluation of deprecations on demand

This commit is contained in:
Arseniy Terekhov
2022-08-10 18:06:59 +03:00
committed by teamcity
parent 98ebad2d75
commit 25fc948d95
89 changed files with 517 additions and 326 deletions
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.declarations.getDeprecationForCallSite import org.jetbrains.kotlin.fir.declarations.getDeprecationForCallSite
import org.jetbrains.kotlin.fir.declarations.getJvmNameFromAnnotation import org.jetbrains.kotlin.fir.declarations.getJvmNameFromAnnotation
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -27,15 +28,17 @@ internal class KtFirSymbolInfoProvider(
override val analysisSession: KtFirAnalysisSession, override val analysisSession: KtFirAnalysisSession,
override val token: KtLifetimeToken override val token: KtLifetimeToken
) : KtSymbolInfoProvider(), KtFirAnalysisSessionComponent { ) : KtSymbolInfoProvider(), KtFirAnalysisSessionComponent {
private val apiVersion = analysisSession.useSiteSession.languageVersionSettings.apiVersion
override fun getDeprecation(symbol: KtSymbol): DeprecationInfo? { override fun getDeprecation(symbol: KtSymbol): DeprecationInfo? {
if (symbol is KtFirBackingFieldSymbol || symbol is KtFirPackageSymbol) return null if (symbol is KtFirBackingFieldSymbol || symbol is KtFirPackageSymbol) return null
require(symbol is KtFirSymbol<*>) require(symbol is KtFirSymbol<*>)
return when (val firSymbol = symbol.firSymbol) { return when (val firSymbol = symbol.firSymbol) {
is FirPropertySymbol -> { is FirPropertySymbol -> {
firSymbol.getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY) firSymbol.getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY)
} }
else -> { else -> {
firSymbol.getDeprecationForCallSite() firSymbol.getDeprecationForCallSite(apiVersion)
} }
} }
@@ -44,22 +47,22 @@ internal class KtFirSymbolInfoProvider(
override fun getDeprecation(symbol: KtSymbol, annotationUseSiteTarget: AnnotationUseSiteTarget?): DeprecationInfo? { override fun getDeprecation(symbol: KtSymbol, annotationUseSiteTarget: AnnotationUseSiteTarget?): DeprecationInfo? {
require(symbol is KtFirSymbol<*>) require(symbol is KtFirSymbol<*>)
return if (annotationUseSiteTarget != null) { return if (annotationUseSiteTarget != null) {
symbol.firSymbol.getDeprecationForCallSite(annotationUseSiteTarget) symbol.firSymbol.getDeprecationForCallSite(apiVersion, annotationUseSiteTarget)
} else { } else {
symbol.firSymbol.getDeprecationForCallSite() symbol.firSymbol.getDeprecationForCallSite(apiVersion)
} }
} }
override fun getGetterDeprecation(symbol: KtPropertySymbol): DeprecationInfo? { override fun getGetterDeprecation(symbol: KtPropertySymbol): DeprecationInfo? {
require(symbol is KtFirSymbol<*>) require(symbol is KtFirSymbol<*>)
return symbol.firSymbol.getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_GETTER, AnnotationUseSiteTarget.PROPERTY) return symbol.firSymbol.getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY_GETTER, AnnotationUseSiteTarget.PROPERTY)
} }
override fun getSetterDeprecation(symbol: KtPropertySymbol): DeprecationInfo? { override fun getSetterDeprecation(symbol: KtPropertySymbol): DeprecationInfo? {
require(symbol is KtFirSymbol<*>) require(symbol is KtFirSymbol<*>)
return symbol.firSymbol.getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY) return symbol.firSymbol.getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY)
} }
override fun getJavaGetterName(symbol: KtPropertySymbol): Name { override fun getJavaGetterName(symbol: KtPropertySymbol): Name {
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.isFinal
import org.jetbrains.kotlin.fir.declarations.utils.isOverride import org.jetbrains.kotlin.fir.declarations.utils.isOverride
import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.declarations.utils.modality
import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.declarations.utils.visibility
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.originalOrSelf import org.jetbrains.kotlin.fir.originalOrSelf
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.toSymbol
@@ -185,10 +186,11 @@ object FirOverrideChecker : FirClassChecker() {
overriddenSymbols: List<FirCallableSymbol<*>>, overriddenSymbols: List<FirCallableSymbol<*>>,
context: CheckerContext context: CheckerContext
) { ) {
val ownDeprecation = this.deprecation val ownDeprecation = this.getDeprecation(context.session.languageVersionSettings.apiVersion)
if (ownDeprecation == null || ownDeprecation.isNotEmpty()) return if (ownDeprecation == null || ownDeprecation.isNotEmpty()) return
for (overriddenSymbol in overriddenSymbols) { for (overriddenSymbol in overriddenSymbols) {
val deprecationInfoFromOverridden = overriddenSymbol.deprecation ?: continue val deprecationInfoFromOverridden = overriddenSymbol.getDeprecation(context.session.languageVersionSettings.apiVersion)
?: continue
val deprecationFromOverriddenSymbol = deprecationInfoFromOverridden.all val deprecationFromOverriddenSymbol = deprecationInfoFromOverridden.all
?: deprecationInfoFromOverridden.bySpecificSite?.values?.firstOrNull() ?: deprecationInfoFromOverridden.bySpecificSite?.values?.firstOrNull()
?: continue ?: continue
@@ -74,11 +74,11 @@ object FirDeprecationChecker : FirBasicExpressionChecker() {
context: CheckerContext context: CheckerContext
): DeprecationInfo? { ): DeprecationInfo? {
val deprecationInfos = listOfNotNull( val deprecationInfos = listOfNotNull(
symbol.getDeprecation(callSite), symbol.getDeprecation(context.languageVersionSettings.apiVersion, callSite),
symbol.safeAs<FirConstructorSymbol>() symbol.safeAs<FirConstructorSymbol>()
?.resolvedReturnTypeRef ?.resolvedReturnTypeRef
?.toRegularClassSymbol(context.session) ?.toRegularClassSymbol(context.session)
?.getDeprecation(callSite) ?.getDeprecation(context.languageVersionSettings.apiVersion, callSite)
) )
return deprecationInfos.maxOrNull() return deprecationInfos.maxOrNull()
} }
@@ -226,7 +226,7 @@ fun deserializeClassToSymbol(
it.sourceElement = containerSource it.sourceElement = containerSource
it.replaceDeprecation(it.getDeprecationInfos(session.languageVersionSettings.apiVersion)) it.replaceDeprecationsProvider(it.getDeprecationsProvider())
classProto.getExtensionOrNull(JvmProtoBuf.classModuleName)?.let { idx -> classProto.getExtensionOrNull(JvmProtoBuf.classModuleName)?.let { idx ->
it.moduleName = nameResolver.getString(idx) it.moduleName = nameResolver.getString(idx)
@@ -421,7 +421,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
} }
this.containerSource = c.containerSource this.containerSource = c.containerSource
this.initializer = c.constDeserializer.loadConstant(proto, symbol.callableId, c.nameResolver) this.initializer = c.constDeserializer.loadConstant(proto, symbol.callableId, c.nameResolver)
deprecation = annotations.getDeprecationInfosFromAnnotations(c.session.languageVersionSettings.apiVersion, false) deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(false)
proto.contextReceiverTypes(c.typeTable).mapTo(contextReceivers, ::loadContextReceiver) proto.contextReceiverTypes(c.typeTable).mapTo(contextReceivers, ::loadContextReceiver)
}.apply { }.apply {
@@ -499,7 +499,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
) )
annotations += annotations +=
c.annotationDeserializer.loadFunctionAnnotations(c.containerSource, proto, local.nameResolver, local.typeTable) c.annotationDeserializer.loadFunctionAnnotations(c.containerSource, proto, local.nameResolver, local.typeTable)
deprecation = annotations.getDeprecationInfosFromAnnotations(c.session.languageVersionSettings.apiVersion, false) deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(false)
this.containerSource = c.containerSource this.containerSource = c.containerSource
proto.contextReceiverTypes(c.typeTable).mapTo(contextReceivers, ::loadContextReceiver) proto.contextReceiverTypes(c.typeTable).mapTo(contextReceivers, ::loadContextReceiver)
@@ -578,7 +578,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
annotations += annotations +=
c.annotationDeserializer.loadConstructorAnnotations(c.containerSource, proto, local.nameResolver, local.typeTable) c.annotationDeserializer.loadConstructorAnnotations(c.containerSource, proto, local.nameResolver, local.typeTable)
containerSource = c.containerSource containerSource = c.containerSource
deprecation = annotations.getDeprecationInfosFromAnnotations(c.session.languageVersionSettings.apiVersion, false) deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(false)
contextReceivers.addAll(createContextReceiversForClass(classProto)) contextReceivers.addAll(createContextReceiversForClass(classProto))
}.build().apply { }.build().apply {
@@ -185,7 +185,7 @@ abstract class FirJavaFacade(
} }
} }
firJavaClass.replaceSuperTypeRefs(enhancedSuperTypes) firJavaClass.replaceSuperTypeRefs(enhancedSuperTypes)
firJavaClass.replaceDeprecation(firJavaClass.getDeprecationInfos(session.languageVersionSettings.apiVersion)) firJavaClass.replaceDeprecationsProvider(firJavaClass.getDeprecationsProvider())
return firJavaClass return firJavaClass
} }
@@ -50,7 +50,7 @@ class FirJavaClass @FirImplementationDetail internal constructor(
) : FirRegularClass() { ) : FirRegularClass() {
override val hasLazyNestedClassifiers: Boolean get() = true override val hasLazyNestedClassifiers: Boolean get() = true
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override val contextReceivers: List<FirContextReceiver> override val contextReceivers: List<FirContextReceiver>
get() = emptyList() get() = emptyList()
@@ -70,8 +70,8 @@ class FirJavaClass @FirImplementationDetail internal constructor(
resolvePhase = newResolvePhase resolvePhase = newResolvePhase
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {} override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {}
@@ -43,7 +43,7 @@ class FirJavaConstructor @FirImplementationDetail constructor(
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
) : FirConstructor() { ) : FirConstructor() {
override val receiverTypeRef: FirTypeRef? get() = null override val receiverTypeRef: FirTypeRef? get() = null
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
init { init {
symbol.bind(this) symbol.bind(this)
@@ -134,8 +134,8 @@ class FirJavaConstructor @FirImplementationDetail constructor(
} }
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -61,8 +61,8 @@ class FirJavaField @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() } override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
override val deprecation: DeprecationsPerUseSite by lazy { override val deprecationsProvider: DeprecationsProvider by lazy {
annotations.getDeprecationInfosFromAnnotations(moduleData.session.languageVersionSettings.apiVersion, fromJava = true) annotations.getDeprecationsProviderFromAnnotations(true)
} }
override val contextReceivers: List<FirContextReceiver> override val contextReceivers: List<FirContextReceiver>
@@ -145,8 +145,7 @@ class FirJavaField @FirImplementationDetail constructor(
} }
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {}
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField { override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField {
return this return this
@@ -85,7 +85,7 @@ class FirJavaMethod @FirImplementationDetail constructor(
get() = emptyList() get() = emptyList()
//not used actually, because get 'enhanced' into regular FirSimpleFunction //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) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
@@ -159,8 +159,8 @@ class FirJavaMethod @FirImplementationDetail constructor(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) { override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
@@ -207,7 +207,7 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
lateinit var annotationBuilder: () -> List<FirAnnotation> lateinit var annotationBuilder: () -> List<FirAnnotation>
@Deprecated("Modification of 'deprecation' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN) @Deprecated("Modification of 'deprecation' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN)
override var deprecation: DeprecationsPerUseSite? override var deprecationsProvider: DeprecationsProvider
get() = throw IllegalStateException() get() = throw IllegalStateException()
set(_) { set(_) {
throw IllegalStateException() throw IllegalStateException()
@@ -63,8 +63,8 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
override val receiverTypeRef: FirTypeRef? override val receiverTypeRef: FirTypeRef?
get() = null get() = null
override val deprecation: DeprecationsPerUseSite override val deprecationsProvider: DeprecationsProvider
get() = EmptyDeprecationsPerUseSite get() = EmptyDeprecationsProvider
override val initializer: FirExpression? override val initializer: FirExpression?
get() = null get() = null
@@ -168,7 +168,7 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) { override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
} }
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.ThreadSafeMutableState import org.jetbrains.kotlin.fir.ThreadSafeMutableState
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin 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.deserialization.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.java.FirJavaFacade import org.jetbrains.kotlin.fir.java.FirJavaFacade
@@ -151,7 +151,7 @@ class JvmClassFileBasedSymbolProvider(
}, },
kotlinClass.byteContent, kotlinClass.byteContent,
) )
symbol.fir.replaceDeprecation(symbol.fir.getDeprecationInfos(session.languageVersionSettings.apiVersion)) symbol.fir.replaceDeprecationsProvider(symbol.fir.getDeprecationsProvider())
} }
private fun String?.toPath(): Path? { private fun String?.toPath(): Path? {
@@ -168,7 +168,7 @@ class FirSignatureEnhancement(
delegateGetter = enhancedGetterSymbol.fir as FirSimpleFunction delegateGetter = enhancedGetterSymbol.fir as FirSimpleFunction
delegateSetter = enhancedSetterSymbol?.fir as FirSimpleFunction? delegateSetter = enhancedSetterSymbol?.fir as FirSimpleFunction?
status = firElement.status status = firElement.status
deprecation = getDeprecationsFromAccessors(delegateGetter, delegateSetter, session.languageVersionSettings.apiVersion) deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter)
}.symbol }.symbol
} }
else -> { else -> {
@@ -320,7 +320,7 @@ class FirSignatureEnhancement(
else -> throw AssertionError("Unknown Java method to enhance: ${firMethod.render()}") else -> throw AssertionError("Unknown Java method to enhance: ${firMethod.render()}")
}.apply { }.apply {
annotations += firMethod.annotations annotations += firMethod.annotations
deprecation = annotations.getDeprecationInfosFromAnnotations(session.languageVersionSettings.apiVersion, fromJava = true) deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(true)
}.build() }.build()
return function.symbol return function.symbol
@@ -88,7 +88,7 @@ class JavaClassUseSiteMemberScope(
chooseModalityForAccessor(property, delegateGetter) chooseModalityForAccessor(property, delegateGetter)
} }
) )
deprecation = getDeprecationsFromAccessors(delegateGetter, delegateSetter, session.languageVersionSettings.apiVersion) deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter)
}.symbol }.symbol
} }
} }
@@ -24,65 +24,121 @@ import org.jetbrains.kotlin.name.StandardClassIds.Annotations.ParameterNames.dep
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.ParameterNames.deprecatedSinceKotlinWarningSince import org.jetbrains.kotlin.name.StandardClassIds.Annotations.ParameterNames.deprecatedSinceKotlinWarningSince
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
import org.jetbrains.kotlin.resolve.deprecation.SimpleDeprecationInfo
import org.jetbrains.kotlin.utils.addToStdlib.runUnless
fun FirBasedSymbol<*>.getDeprecation(callSite: FirElement?): DeprecationInfo? { class DeprecationAnnotationInfoPerUseSiteStorage(val storage: Map<AnnotationUseSiteTarget?, List<DeprecationAnnotationInfo>>) {
fun toDeprecationsProvider(): DeprecationsProvider {
if (storage.isEmpty()) {
return EmptyDeprecationsProvider
}
@Suppress("UNCHECKED_CAST")
val specificCallSite = storage.filterKeys { it != null } as Map<AnnotationUseSiteTarget, List<DeprecationAnnotationInfo>>
return DeprecationsProviderImpl(
storage[null],
specificCallSite.takeIf { it.isNotEmpty() }
)
}
}
class DeprecationAnnotationInfoPerUseSiteStorageBuilder {
private val storage = mutableMapOf<AnnotationUseSiteTarget?, MutableList<DeprecationAnnotationInfo>>()
fun add(useSite: AnnotationUseSiteTarget?, info: DeprecationAnnotationInfo) {
storage.getOrPut(useSite) { mutableListOf() }.add(info)
}
fun add(useSite: AnnotationUseSiteTarget?, infos: Iterable<DeprecationAnnotationInfo>) {
storage.getOrPut(useSite) { mutableListOf() }.addAll(infos)
}
fun add(other: DeprecationAnnotationInfoPerUseSiteStorage) {
other.storage.forEach { (useSite, info) ->
add(useSite, info)
}
}
fun build(): DeprecationAnnotationInfoPerUseSiteStorage {
return DeprecationAnnotationInfoPerUseSiteStorage(storage)
}
}
fun buildDeprecationAnnotationInfoPerUseSiteStorage(builder: DeprecationAnnotationInfoPerUseSiteStorageBuilder.() -> Unit)
: DeprecationAnnotationInfoPerUseSiteStorage {
return DeprecationAnnotationInfoPerUseSiteStorageBuilder().apply(builder).build()
}
fun FirBasedSymbol<*>.getDeprecation(apiVersion: ApiVersion, callSite: FirElement?): DeprecationInfo? {
return when (this) { return when (this) {
is FirPropertySymbol -> is FirPropertySymbol ->
when (callSite) { when (callSite) {
is FirVariableAssignment -> is FirVariableAssignment ->
getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY) getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY)
is FirPropertyAccessExpression -> is FirPropertyAccessExpression ->
getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_GETTER, AnnotationUseSiteTarget.PROPERTY) getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY_GETTER, AnnotationUseSiteTarget.PROPERTY)
else -> else ->
getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY) getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY)
} }
else -> else ->
getDeprecationForCallSite() getDeprecationForCallSite(apiVersion)
} }
} }
fun FirAnnotationContainer.getDeprecationInfos(currentVersion: ApiVersion): DeprecationsPerUseSite { fun FirAnnotationContainer.getDeprecationsProvider(): DeprecationsProvider {
val deprecationByUseSite = mutableMapOf<AnnotationUseSiteTarget?, DeprecationInfo>() return extractDeprecationInfoPerUseSite().toDeprecationsProvider()
}
fun FirAnnotationContainer.extractDeprecationInfoPerUseSite(): DeprecationAnnotationInfoPerUseSiteStorage {
val fromJava = this is FirDeclaration && this.isJavaOrEnhancement val fromJava = this is FirDeclaration && this.isJavaOrEnhancement
annotations.extractDeprecationInfoPerUseSite(currentVersion, fromJava).toMap(deprecationByUseSite)
if (this is FirProperty) { return buildDeprecationAnnotationInfoPerUseSiteStorage {
getDeprecationsFromAccessors(getter, setter, currentVersion).bySpecificSite?.forEach { (k, v) -> deprecationByUseSite[k] = v } add(annotations.extractDeprecationAnnotationInfoPerUseSite(fromJava))
if (this@extractDeprecationInfoPerUseSite is FirProperty) {
add(getDeprecationsAnnotationInfoByUseSiteFromAccessors(getter, setter))
}
} }
return DeprecationsPerUseSite.fromMap(deprecationByUseSite)
} }
fun getDeprecationsProviderFromAccessors(
@OptIn(ExperimentalStdlibApi::class)
fun getDeprecationsFromAccessors(
getter: FirFunction?, getter: FirFunction?,
setter: FirFunction?, setter: FirFunction?
currentVersion: ApiVersion ): DeprecationsProvider {
): DeprecationsPerUseSite { return getDeprecationsAnnotationInfoByUseSiteFromAccessors(getter, setter).toDeprecationsProvider()
val perUseSite = buildMap<AnnotationUseSiteTarget, DeprecationInfo> { }
val setterDeprecations = setter?.getDeprecationInfos(currentVersion) fun getDeprecationsAnnotationInfoByUseSiteFromAccessors(
setterDeprecations?.all?.let { put(AnnotationUseSiteTarget.PROPERTY_SETTER, it) } getter: FirFunction?,
setterDeprecations?.bySpecificSite?.let { putAll(it) } setter: FirFunction?
val getterDeprecations = getter?.getDeprecationInfos(currentVersion) ): DeprecationAnnotationInfoPerUseSiteStorage {
getterDeprecations?.all?.let { put(AnnotationUseSiteTarget.PROPERTY_GETTER, it) } return buildDeprecationAnnotationInfoPerUseSiteStorage {
getterDeprecations?.bySpecificSite?.let { putAll(it) } val setterDeprecations = setter?.extractDeprecationInfoPerUseSite()
setterDeprecations?.storage?.forEach { (useSite, infos) ->
if (useSite == null) {
add(AnnotationUseSiteTarget.PROPERTY_SETTER, infos)
} else {
add(useSite, infos)
}
}
val getterDeprecations = getter?.extractDeprecationInfoPerUseSite()
getterDeprecations?.storage?.forEach { (useSite, infos) ->
if (useSite == null) {
add(AnnotationUseSiteTarget.PROPERTY_GETTER, infos)
} else {
add(useSite, infos)
}
}
} }
return if (perUseSite.isEmpty()) EmptyDeprecationsPerUseSite else DeprecationsPerUseSite(null, perUseSite)
} }
fun List<FirAnnotation>.getDeprecationInfosFromAnnotations(currentVersion: ApiVersion, fromJava: Boolean): DeprecationsPerUseSite { fun List<FirAnnotation>.getDeprecationsProviderFromAnnotations(fromJava: Boolean): DeprecationsProvider {
val deprecationByUseSite = extractDeprecationInfoPerUseSite(currentVersion, fromJava).toMap() val deprecationAnnotationByUseSite = extractDeprecationAnnotationInfoPerUseSite(fromJava)
return DeprecationsPerUseSite.fromMap(deprecationByUseSite) return deprecationAnnotationByUseSite.toDeprecationsProvider()
} }
fun FirBasedSymbol<*>.getDeprecationForCallSite( fun FirBasedSymbol<*>.getDeprecationForCallSite(
apiVersion: ApiVersion,
vararg sites: AnnotationUseSiteTarget vararg sites: AnnotationUseSiteTarget
): DeprecationInfo? { ): DeprecationInfo? {
val deprecations = when (this) { val deprecations = when (this) {
is FirCallableSymbol<*> -> deprecation is FirCallableSymbol<*> -> getDeprecation(apiVersion)
is FirClassLikeSymbol<*> -> deprecation is FirClassLikeSymbol<*> -> getDeprecation(apiVersion)
else -> null else -> null
} }
return (deprecations ?: EmptyDeprecationsPerUseSite).forUseSite(*sites) return (deprecations ?: EmptyDeprecationsPerUseSite).forUseSite(*sites)
@@ -107,51 +163,48 @@ private fun FirAnnotation.getDeprecationLevel(): DeprecationLevelValue? {
return DeprecationLevelValue.values().find { it.name == targetName } return DeprecationLevelValue.values().find { it.name == targetName }
} }
private fun List<FirAnnotation>.extractDeprecationInfoPerUseSite( private fun List<FirAnnotation>.extractDeprecationAnnotationInfoPerUseSite(
currentVersion: ApiVersion,
fromJava: Boolean fromJava: Boolean
): List<Pair<AnnotationUseSiteTarget?, DeprecationInfo>> { ): DeprecationAnnotationInfoPerUseSiteStorage {
@Suppress("RemoveExplicitTypeArguments") @Suppress("RemoveExplicitTypeArguments")
val annotations = buildList<Pair<FirAnnotation, Boolean>> { val annotations = buildList<Pair<FirAnnotation, Boolean>> {
mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.Deprecated, this) { it to false } mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.Deprecated, this) { it to false }
mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.Java.Deprecated, this) { it to true } mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.Java.Deprecated, this) { it to true }
mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.SinceKotlin, this) { it to false } mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.SinceKotlin, this) { it to false }
} }
return annotations.mapNotNull { (deprecated, fromJavaAnnotation) ->
if (deprecated.classId == StandardClassIds.Annotations.SinceKotlin) { return buildDeprecationAnnotationInfoPerUseSiteStorage {
val sinceKotlinSingleArgument = deprecated.findArgumentByName(ParameterNames.sinceKotlinVersion) for ((deprecated, fromJavaAnnotation) in annotations) {
val apiVersion = ((sinceKotlinSingleArgument as? FirConstExpression<*>)?.value as? String) if (deprecated.classId == StandardClassIds.Annotations.SinceKotlin) {
?.let(ApiVersion.Companion::parse) ?: return@mapNotNull null val sinceKotlinSingleArgument = deprecated.findArgumentByName(ParameterNames.sinceKotlinVersion)
if (apiVersion <= currentVersion) return@mapNotNull null val apiVersion = ((sinceKotlinSingleArgument as? FirConstExpression<*>)?.value as? String)
val wasExperimental = this.any { it.classId == StandardClassIds.Annotations.WasExperimental } ?.let(ApiVersion.Companion::parse) ?: continue
return@mapNotNull runUnless(wasExperimental) { val wasExperimental = this@extractDeprecationAnnotationInfoPerUseSite.any {
deprecated.useSiteTarget to SimpleDeprecationInfo( it.classId == StandardClassIds.Annotations.WasExperimental
deprecationLevel = DeprecationLevelValue.HIDDEN, }
propagatesToOverrides = true, if (!wasExperimental) {
message = null add(deprecated.useSiteTarget, SinceKotlinInfo(apiVersion))
) }
} else {
val deprecationLevel = deprecated.getDeprecationLevel() ?: DeprecationLevelValue.WARNING
val propagatesToOverride = !fromJavaAnnotation && !fromJava
val deprecatedSinceKotlin = getAnnotationsByClassId(StandardClassIds.Annotations.DeprecatedSinceKotlin).firstOrNull()
val message = deprecated.getStringArgument(ParameterNames.deprecatedMessage)
val deprecatedInfo =
if (deprecatedSinceKotlin == null) {
DeprecatedInfo(deprecationLevel, propagatesToOverride, message)
} else {
DeprecatedSinceKotlinInfo(
deprecatedSinceKotlin.getVersionFromArgument(deprecatedSinceKotlinWarningSince),
deprecatedSinceKotlin.getVersionFromArgument(deprecatedSinceKotlinErrorSince),
deprecatedSinceKotlin.getVersionFromArgument(deprecatedSinceKotlinHiddenSince),
message,
propagatesToOverride
)
}
add(deprecated.useSiteTarget, deprecatedInfo)
} }
} }
val deprecationLevel = deprecated.getDeprecationLevel() ?: DeprecationLevelValue.WARNING
val deprecatedSinceKotlin = getAnnotationsByClassId(StandardClassIds.Annotations.DeprecatedSinceKotlin).firstOrNull()
fun deprecatedLevelApplied(name: Name, level: DeprecationLevelValue): DeprecationLevelValue? {
deprecatedSinceKotlin?.getVersionFromArgument(name)?.takeIf { it <= currentVersion }?.let { return level }
return level.takeIf { deprecatedSinceKotlin == null && level == deprecationLevel }
}
val appliedLevel = (deprecatedLevelApplied(deprecatedSinceKotlinHiddenSince, DeprecationLevelValue.HIDDEN)
?: deprecatedLevelApplied(deprecatedSinceKotlinErrorSince, DeprecationLevelValue.ERROR)
?: deprecatedLevelApplied(deprecatedSinceKotlinWarningSince, DeprecationLevelValue.WARNING))
appliedLevel?.let {
val inheritable = !fromJavaAnnotation && !fromJava
deprecated.useSiteTarget to SimpleDeprecationInfo(
it,
inheritable,
deprecated.getStringArgument(ParameterNames.deprecatedMessage)
)
}
} }
} }
@@ -6,9 +6,7 @@
package org.jetbrains.kotlin.fir.resolve.calls package org.jetbrains.kotlin.fir.resolve.calls
import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.declarations.getDeprecationsFromAccessors
import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty
import org.jetbrains.kotlin.fir.declarations.utils.isStatic import org.jetbrains.kotlin.fir.declarations.utils.isStatic
import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.scopes.*
@@ -137,7 +135,7 @@ class FirSyntheticPropertiesScope private constructor(
) )
delegateGetter = getter delegateGetter = getter
delegateSetter = matchingSetter delegateSetter = matchingSetter
deprecation = getDeprecationsFromAccessors(getter, matchingSetter, session.languageVersionSettings.apiVersion) deprecationsProvider = getDeprecationsProviderFromAccessors(getter, matchingSetter)
} }
val syntheticSymbol = property.symbol val syntheticSymbol = property.symbol
(baseScope as? FirUnstableSmartcastTypeScope)?.apply { (baseScope as? FirUnstableSmartcastTypeScope)?.apply {
@@ -122,7 +122,7 @@ object FirFakeOverrideGenerator {
session, baseFunction, newParameterTypes, newTypeParameters, session, baseFunction, newParameterTypes, newTypeParameters,
newReceiverType, newContextReceiverTypes, newReturnType, fakeOverrideSubstitution, newSymbol newReceiverType, newContextReceiverTypes, newReturnType, fakeOverrideSubstitution, newSymbol
).filterIsInstance<FirTypeParameter>() ).filterIsInstance<FirTypeParameter>()
deprecation = baseFunction.deprecation deprecationsProvider = baseFunction.deprecationsProvider
} }
} }
@@ -165,7 +165,7 @@ object FirFakeOverrideGenerator {
resolvePhase = baseConstructor.resolvePhase resolvePhase = baseConstructor.resolvePhase
source = baseConstructor.source source = baseConstructor.source
attributes = baseConstructor.attributes.copy() attributes = baseConstructor.attributes.copy()
deprecation = baseConstructor.deprecation deprecationsProvider = baseConstructor.deprecationsProvider
}.apply { }.apply {
originalForSubstitutionOverrideAttr = baseConstructor originalForSubstitutionOverrideAttr = baseConstructor
} }
@@ -344,7 +344,7 @@ object FirFakeOverrideGenerator {
newReturnType, newReturnType,
fakeOverrideSubstitution fakeOverrideSubstitution
) )
deprecation = baseProperty.deprecation deprecationsProvider = baseProperty.deprecationsProvider
} }
} }
@@ -526,7 +526,7 @@ object FirFakeOverrideGenerator {
delegateGetter = getter delegateGetter = getter
delegateSetter = setter delegateSetter = setter
status = baseProperty.status status = baseProperty.status
deprecation = getDeprecationsFromAccessors(getter, setter, session.languageVersionSettings.apiVersion) deprecationsProvider = getDeprecationsProviderFromAccessors(getter, setter)
}.symbol }.symbol
} }
@@ -341,6 +341,7 @@ class FirCallResolver(
qualifiedAccess.explicitReceiver, qualifiedAccess.explicitReceiver,
referencedSymbol, referencedSymbol,
nonFatalDiagnosticFromExpression, nonFatalDiagnosticFromExpression,
session.languageVersionSettings.apiVersion
), ),
annotations = qualifiedAccess.annotations annotations = qualifiedAccess.annotations
) )
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.fir package org.jetbrains.kotlin.fir
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -70,7 +71,8 @@ fun BodyResolveComponents.resolveRootPartOfQualifier(
source, source,
explicitReceiver = null, explicitReceiver = null,
it, it,
extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression,
session.languageVersionSettings.apiVersion
) )
) )
}.apply { }.apply {
@@ -80,7 +82,14 @@ fun BodyResolveComponents.resolveRootPartOfQualifier(
} }
} }
return FqName.ROOT.continueQualifierInPackage(name, typeArguments, nonFatalDiagnosticsFromExpression, this, source) return FqName.ROOT.continueQualifierInPackage(
name,
typeArguments,
nonFatalDiagnosticsFromExpression,
this,
source,
session.languageVersionSettings.apiVersion
)
} }
fun FirResolvedQualifier.continueQualifier( fun FirResolvedQualifier.continueQualifier(
@@ -115,7 +124,8 @@ fun FirResolvedQualifier.continueQualifier(
source, source,
explicitReceiver = null, explicitReceiver = null,
nestedClassSymbol, nestedClassSymbol,
extraNotFatalDiagnostics = this@continueQualifier.nonFatalDiagnostics extraNotFatalDiagnostics = this@continueQualifier.nonFatalDiagnostics,
session.languageVersionSettings.apiVersion
) )
) )
}.apply { }.apply {
@@ -124,7 +134,14 @@ fun FirResolvedQualifier.continueQualifier(
} }
} }
return packageFqName.continueQualifierInPackage(name, typeArguments, nonFatalDiagnosticsFromExpression, components, source) return packageFqName.continueQualifierInPackage(
name,
typeArguments,
nonFatalDiagnosticsFromExpression,
components,
source,
session.languageVersionSettings.apiVersion
)
} }
private fun FqName.continueQualifierInPackage( private fun FqName.continueQualifierInPackage(
@@ -132,7 +149,8 @@ private fun FqName.continueQualifierInPackage(
typeArguments: List<FirTypeProjection>, typeArguments: List<FirTypeProjection>,
nonFatalDiagnosticsFromExpression: List<ConeDiagnostic>?, nonFatalDiagnosticsFromExpression: List<ConeDiagnostic>?,
components: BodyResolveComponents, components: BodyResolveComponents,
source: KtSourceElement? source: KtSourceElement?,
apiVersion: ApiVersion
): FirResolvedQualifier? { ): FirResolvedQualifier? {
val childFqName = this.child(name) val childFqName = this.child(name)
if (components.symbolProvider.getPackage(childFqName) != null) { if (components.symbolProvider.getPackage(childFqName) != null) {
@@ -160,7 +178,8 @@ private fun FqName.continueQualifierInPackage(
source, source,
explicitReceiver = null, explicitReceiver = null,
symbol, symbol,
extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression,
apiVersion
) )
) )
}.apply { }.apply {
@@ -172,12 +191,13 @@ internal fun extractNonFatalDiagnostics(
source: KtSourceElement?, source: KtSourceElement?,
explicitReceiver: FirExpression?, explicitReceiver: FirExpression?,
symbol: FirClassLikeSymbol<*>, symbol: FirClassLikeSymbol<*>,
extraNotFatalDiagnostics: List<ConeDiagnostic>? extraNotFatalDiagnostics: List<ConeDiagnostic>?,
apiVersion: ApiVersion
): List<ConeDiagnostic> { ): List<ConeDiagnostic> {
val prevDiagnostics = (explicitReceiver as? FirResolvedQualifier)?.nonFatalDiagnostics ?: emptyList() val prevDiagnostics = (explicitReceiver as? FirResolvedQualifier)?.nonFatalDiagnostics ?: emptyList()
var result: MutableList<ConeDiagnostic>? = null var result: MutableList<ConeDiagnostic>? = null
val deprecation = symbol.fir.deprecation?.forUseSite() val deprecation = symbol.getDeprecation(apiVersion)?.forUseSite()
if (deprecation != null) { if (deprecation != null) {
result = mutableListOf() result = mutableListOf()
result.addAll(prevDiagnostics) result.addAll(prevDiagnostics)
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.buildConstructedClassTypePa
import org.jetbrains.kotlin.fir.declarations.builder.buildConstructorCopy import org.jetbrains.kotlin.fir.declarations.builder.buildConstructorCopy
import org.jetbrains.kotlin.fir.declarations.utils.classId import org.jetbrains.kotlin.fir.declarations.utils.classId
import org.jetbrains.kotlin.fir.declarations.utils.isInner import org.jetbrains.kotlin.fir.declarations.utils.isInner
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.*
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
@@ -104,7 +105,7 @@ private fun FirDeclaration.isInvisibleOrHidden(session: FirSession, bodyResolveC
} }
} }
val deprecation = symbol.getDeprecationForCallSite() val deprecation = symbol.getDeprecationForCallSite(session.languageVersionSettings.apiVersion)
return deprecation != null && deprecation.deprecationLevel == DeprecationLevelValue.HIDDEN return deprecation != null && deprecation.deprecationLevel == DeprecationLevelValue.HIDDEN
} }
@@ -630,7 +630,7 @@ internal object CheckCallModifiers : CheckerStage() {
internal object CheckDeprecatedSinceKotlin : ResolutionStage() { internal object CheckDeprecatedSinceKotlin : ResolutionStage() {
override suspend fun check(candidate: Candidate, callInfo: CallInfo, sink: CheckerSink, context: ResolutionContext) { override suspend fun check(candidate: Candidate, callInfo: CallInfo, sink: CheckerSink, context: ResolutionContext) {
val symbol = candidate.symbol as? FirCallableSymbol<*> ?: return val symbol = candidate.symbol as? FirCallableSymbol<*> ?: return
val deprecation = symbol.getDeprecation(callInfo.callSite) val deprecation = symbol.getDeprecation(context.session.languageVersionSettings.apiVersion, callInfo.callSite)
if (deprecation != null && deprecation.deprecationLevel == DeprecationLevelValue.HIDDEN) { if (deprecation != null && deprecation.deprecationLevel == DeprecationLevelValue.HIDDEN) {
sink.yieldDiagnostic(HiddenCandidate) sink.yieldDiagnostic(HiddenCandidate)
} }
@@ -6,8 +6,7 @@
package org.jetbrains.kotlin.fir.resolve.providers.impl package org.jetbrains.kotlin.fir.resolve.providers.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.impl.FirOuterClassTypeParameterRef import org.jetbrains.kotlin.fir.declarations.impl.FirOuterClassTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.utils.isEnumClass import org.jetbrains.kotlin.fir.declarations.utils.isEnumClass
@@ -16,7 +15,6 @@ import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.ConeUnexpectedTypeArgumentsError import org.jetbrains.kotlin.fir.diagnostics.ConeUnexpectedTypeArgumentsError
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
import org.jetbrains.kotlin.fir.render
import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.*
import org.jetbrains.kotlin.fir.resolve.calls.AbstractCallInfo import org.jetbrains.kotlin.fir.resolve.calls.AbstractCallInfo
import org.jetbrains.kotlin.fir.resolve.calls.AbstractCandidate import org.jetbrains.kotlin.fir.resolve.calls.AbstractCandidate
@@ -33,7 +31,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
import org.jetbrains.kotlin.fir.visibilityChecker
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintSystemError import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintSystemError
@@ -127,7 +124,7 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver() {
diagnostic = ConeVisibilityError(symbol) diagnostic = ConeVisibilityError(symbol)
} }
val deprecation = symbol.getDeprecation(useSiteFile) val deprecation = symbol.getDeprecation(session.languageVersionSettings.apiVersion, useSiteFile)
if (deprecation != null && deprecation.deprecationLevel == DeprecationLevelValue.HIDDEN) { if (deprecation != null && deprecation.deprecationLevel == DeprecationLevelValue.HIDDEN) {
symbolApplicability = minOf(CandidateApplicability.HIDDEN, symbolApplicability) symbolApplicability = minOf(CandidateApplicability.HIDDEN, symbolApplicability)
diagnostic = null diagnostic = null
@@ -554,8 +554,8 @@ abstract class AbstractFirStatusResolveTransformer(
} }
protected fun calculateDeprecations(simpleFunction: FirCallableDeclaration) { protected fun calculateDeprecations(simpleFunction: FirCallableDeclaration) {
if (simpleFunction.deprecation == null) { if (simpleFunction.deprecationsProvider is UnresolvedDeprecationProvider) {
simpleFunction.replaceDeprecation(simpleFunction.getDeprecationInfos(session.languageVersionSettings.apiVersion)) simpleFunction.replaceDeprecationsProvider(simpleFunction.getDeprecationsProvider())
} }
} }
} }
@@ -253,8 +253,8 @@ private class FirAnnotationResolveTransformer(
} }
private fun calculateDeprecations(classLikeDeclaration: FirClassLikeDeclaration) { private fun calculateDeprecations(classLikeDeclaration: FirClassLikeDeclaration) {
if (classLikeDeclaration.deprecation == null) { if (classLikeDeclaration.deprecationsProvider == UnresolvedDeprecationProvider) {
classLikeDeclaration.replaceDeprecation(classLikeDeclaration.getDeprecationInfos(session.languageVersionSettings.apiVersion)) classLikeDeclaration.replaceDeprecationsProvider(classLikeDeclaration.getDeprecationsProvider())
} }
} }
} }
@@ -34,7 +34,7 @@ abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -62,7 +62,7 @@ abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner {
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -29,7 +29,7 @@ abstract class FirAnonymousObject : FirClass(), FirControlFlowGraphOwner {
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
abstract override val typeParameters: List<FirTypeParameterRef> abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val classKind: ClassKind abstract override val classKind: ClassKind
abstract override val superTypeRefs: List<FirTypeRef> abstract override val superTypeRefs: List<FirTypeRef>
abstract override val declarations: List<FirDeclaration> abstract override val declarations: List<FirDeclaration>
@@ -46,7 +46,7 @@ abstract class FirAnonymousObject : FirClass(), FirControlFlowGraphOwner {
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>) abstract override fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>)
@@ -32,7 +32,7 @@ abstract class FirBackingField : FirVariable(), FirTypeParametersOwner, FirState
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -62,7 +62,7 @@ abstract class FirBackingField : FirVariable(), FirTypeParametersOwner, FirState
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -31,7 +31,7 @@ sealed class FirCallableDeclaration : FirMemberDeclaration() {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract val returnTypeRef: FirTypeRef abstract val returnTypeRef: FirTypeRef
abstract val receiverTypeRef: FirTypeRef? abstract val receiverTypeRef: FirTypeRef?
abstract val deprecation: DeprecationsPerUseSite? abstract val deprecationsProvider: DeprecationsProvider
abstract override val symbol: FirCallableSymbol<out FirCallableDeclaration> abstract override val symbol: FirCallableSymbol<out FirCallableDeclaration>
abstract val containerSource: DeserializedContainerSource? abstract val containerSource: DeserializedContainerSource?
abstract val dispatchReceiverType: ConeSimpleKotlinType? abstract val dispatchReceiverType: ConeSimpleKotlinType?
@@ -49,7 +49,7 @@ sealed class FirCallableDeclaration : FirMemberDeclaration() {
abstract fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -29,7 +29,7 @@ sealed class FirClass : FirClassLikeDeclaration(), FirStatement, FirTypeParamete
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
abstract override val typeParameters: List<FirTypeParameterRef> abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val symbol: FirClassSymbol<out FirClass> abstract override val symbol: FirClassSymbol<out FirClass>
abstract val classKind: ClassKind abstract val classKind: ClassKind
abstract val superTypeRefs: List<FirTypeRef> abstract val superTypeRefs: List<FirTypeRef>
@@ -45,7 +45,7 @@ sealed class FirClass : FirClassLikeDeclaration(), FirStatement, FirTypeParamete
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>) abstract fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>)
@@ -28,7 +28,7 @@ sealed class FirClassLikeDeclaration : FirMemberDeclaration(), FirStatement {
abstract override val typeParameters: List<FirTypeParameterRef> abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val symbol: FirClassLikeSymbol<out FirClassLikeDeclaration> abstract override val symbol: FirClassLikeSymbol<out FirClassLikeDeclaration>
abstract val deprecation: DeprecationsPerUseSite? abstract val deprecationsProvider: DeprecationsProvider
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitClassLikeDeclaration(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitClassLikeDeclaration(this, data)
@@ -38,7 +38,7 @@ sealed class FirClassLikeDeclaration : FirMemberDeclaration(), FirStatement {
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirClassLikeDeclaration abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirClassLikeDeclaration
@@ -33,7 +33,7 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -57,7 +57,7 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner {
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -32,7 +32,7 @@ abstract class FirEnumEntry : FirVariable() {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -59,7 +59,7 @@ abstract class FirEnumEntry : FirVariable() {
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -34,7 +34,7 @@ abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -57,7 +57,7 @@ abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder {
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -34,7 +34,7 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -62,7 +62,7 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder {
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -33,7 +33,7 @@ abstract class FirField : FirVariable(), FirControlFlowGraphOwner {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -61,7 +61,7 @@ abstract class FirField : FirVariable(), FirControlFlowGraphOwner {
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -35,7 +35,7 @@ sealed class FirFunction : FirCallableDeclaration(), FirTargetElement, FirContro
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -56,7 +56,7 @@ sealed class FirFunction : FirCallableDeclaration(), FirTargetElement, FirContro
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -33,7 +33,7 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -65,7 +65,7 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -33,7 +33,7 @@ abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner,
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -60,7 +60,7 @@ abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner,
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -30,7 +30,7 @@ abstract class FirRegularClass : FirClass(), FirControlFlowGraphOwner {
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
abstract override val typeParameters: List<FirTypeParameterRef> abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val classKind: ClassKind abstract override val classKind: ClassKind
abstract override val declarations: List<FirDeclaration> abstract override val declarations: List<FirDeclaration>
abstract override val annotations: List<FirAnnotation> abstract override val annotations: List<FirAnnotation>
@@ -51,7 +51,7 @@ abstract class FirRegularClass : FirClass(), FirControlFlowGraphOwner {
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?)
@@ -33,7 +33,7 @@ abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, F
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -58,7 +58,7 @@ abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, F
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -26,7 +26,7 @@ abstract class FirTypeAlias : FirClassLikeDeclaration(), FirTypeParametersOwner
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val typeParameters: List<FirTypeParameter> abstract override val typeParameters: List<FirTypeParameter>
abstract val name: Name abstract val name: Name
abstract override val symbol: FirTypeAliasSymbol abstract override val symbol: FirTypeAliasSymbol
@@ -41,7 +41,7 @@ abstract class FirTypeAlias : FirClassLikeDeclaration(), FirTypeParametersOwner
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract fun replaceExpandedTypeRef(newExpandedTypeRef: FirTypeRef) abstract fun replaceExpandedTypeRef(newExpandedTypeRef: FirTypeRef)
@@ -33,7 +33,7 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -65,7 +65,7 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner {
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -33,7 +33,7 @@ sealed class FirVariable : FirCallableDeclaration(), FirStatement {
abstract override val status: FirDeclarationStatus abstract override val status: FirDeclarationStatus
abstract override val returnTypeRef: FirTypeRef abstract override val returnTypeRef: FirTypeRef
abstract override val receiverTypeRef: FirTypeRef? abstract override val receiverTypeRef: FirTypeRef?
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecationsProvider: DeprecationsProvider
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver> abstract override val contextReceivers: List<FirContextReceiver>
@@ -60,7 +60,7 @@ sealed class FirVariable : FirCallableDeclaration(), FirStatement {
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) abstract override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>)
@@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.builder
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -45,7 +45,7 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder {
abstract override var attributes: FirDeclarationAttributes abstract override var attributes: FirDeclarationAttributes
abstract override var status: FirDeclarationStatus abstract override var status: FirDeclarationStatus
abstract override var returnTypeRef: FirTypeRef abstract override var returnTypeRef: FirTypeRef
abstract override var deprecation: DeprecationsPerUseSite? abstract override var deprecationsProvider: DeprecationsProvider
abstract override var containerSource: DeserializedContainerSource? abstract override var containerSource: DeserializedContainerSource?
abstract override var dispatchReceiverType: ConeSimpleKotlinType? abstract override var dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: MutableList<FirContextReceiver> abstract override val contextReceivers: MutableList<FirContextReceiver>
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.FirLabel
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.InlineStatus import org.jetbrains.kotlin.fir.declarations.InlineStatus
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
@@ -51,7 +52,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
var receiverTypeRef: FirTypeRef? = null var receiverTypeRef: FirTypeRef? = null
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -76,7 +77,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
attributes, attributes,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -131,7 +132,7 @@ inline fun buildAnonymousFunctionCopy(original: FirAnonymousFunction, init: FirA
copyBuilder.attributes = original.attributes.copy() copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.receiverTypeRef = original.receiverTypeRef copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.deprecation = original.deprecation copyBuilder.deprecationsProvider = original.deprecationsProvider
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers) copyBuilder.contextReceivers.addAll(original.contextReceivers)
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder
import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousObjectImpl import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousObjectImpl
@@ -45,7 +46,7 @@ class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnn
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf() override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override lateinit var classKind: ClassKind override lateinit var classKind: ClassKind
override val superTypeRefs: MutableList<FirTypeRef> = mutableListOf() override val superTypeRefs: MutableList<FirTypeRef> = mutableListOf()
override val declarations: MutableList<FirDeclaration> = mutableListOf() override val declarations: MutableList<FirDeclaration> = mutableListOf()
@@ -62,7 +63,7 @@ class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnn
attributes, attributes,
typeParameters, typeParameters,
status, status,
deprecation, deprecationsProvider,
classKind, classKind,
superTypeRefs, superTypeRefs,
declarations, declarations,
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.impl.FirBackingFieldImpl import org.jetbrains.kotlin.fir.declarations.impl.FirBackingFieldImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -47,7 +48,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder {
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
lateinit var returnTypeRef: FirTypeRef lateinit var returnTypeRef: FirTypeRef
var receiverTypeRef: FirTypeRef? = null var receiverTypeRef: FirTypeRef? = null
var deprecation: DeprecationsPerUseSite? = null var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -75,7 +76,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder {
attributes, attributes,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -41,7 +41,7 @@ interface FirClassBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder
abstract override var attributes: FirDeclarationAttributes abstract override var attributes: FirDeclarationAttributes
abstract val typeParameters: MutableList<FirTypeParameterRef> abstract val typeParameters: MutableList<FirTypeParameterRef>
abstract var status: FirDeclarationStatus abstract var status: FirDeclarationStatus
abstract var deprecation: DeprecationsPerUseSite? abstract var deprecationsProvider: DeprecationsProvider
abstract var classKind: ClassKind abstract var classKind: ClassKind
abstract val superTypeRefs: MutableList<FirTypeRef> abstract val superTypeRefs: MutableList<FirTypeRef>
abstract val declarations: MutableList<FirDeclaration> abstract val declarations: MutableList<FirDeclaration>
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirAbstractConstructorBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirAbstractConstructorBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirConstructorImpl import org.jetbrains.kotlin.fir.declarations.impl.FirConstructorImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
@@ -49,7 +50,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
override var receiverTypeRef: FirTypeRef? = null override var receiverTypeRef: FirTypeRef? = null
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -70,7 +71,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
status, status,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -114,7 +115,7 @@ inline fun buildConstructorCopy(original: FirConstructor, init: FirConstructorBu
copyBuilder.status = original.status copyBuilder.status = original.status
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.receiverTypeRef = original.receiverTypeRef copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.deprecation = original.deprecation copyBuilder.deprecationsProvider = original.deprecationsProvider
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers) copyBuilder.contextReceivers.addAll(original.contextReceivers)
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultSetterValueParameter import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultSetterValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
@@ -48,7 +49,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
lateinit var returnTypeRef: FirTypeRef lateinit var returnTypeRef: FirTypeRef
var receiverTypeRef: FirTypeRef? = null var receiverTypeRef: FirTypeRef? = null
var deprecation: DeprecationsPerUseSite? = null var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -75,7 +76,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
attributes, attributes,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirEnumEntry
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -47,7 +48,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf() val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
lateinit var status: FirDeclarationStatus lateinit var status: FirDeclarationStatus
lateinit var returnTypeRef: FirTypeRef lateinit var returnTypeRef: FirTypeRef
var deprecation: DeprecationsPerUseSite? = null var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -67,7 +68,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
typeParameters, typeParameters,
status, status,
returnTypeRef, returnTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.impl.FirErrorFunctionImpl import org.jetbrains.kotlin.fir.declarations.impl.FirErrorFunctionImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
@@ -47,7 +48,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
var deprecation: DeprecationsPerUseSite? = null var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -63,7 +64,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
resolvePhase, resolvePhase,
origin, origin,
attributes, attributes,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirErrorProperty
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.impl.FirErrorPropertyImpl import org.jetbrains.kotlin.fir.declarations.impl.FirErrorPropertyImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
@@ -47,7 +48,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
var deprecation: DeprecationsPerUseSite? = null var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -64,7 +65,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
resolvePhase, resolvePhase,
origin, origin,
attributes, attributes,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.declarations.FirField
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
@@ -50,7 +51,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
open val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf() open val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
open lateinit var status: FirDeclarationStatus open lateinit var status: FirDeclarationStatus
open lateinit var returnTypeRef: FirTypeRef open lateinit var returnTypeRef: FirTypeRef
open var deprecation: DeprecationsPerUseSite? = null open var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
open var containerSource: DeserializedContainerSource? = null open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeSimpleKotlinType? = null open var dispatchReceiverType: ConeSimpleKotlinType? = null
open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -72,7 +73,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
typeParameters, typeParameters,
status, status,
returnTypeRef, returnTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -42,7 +42,7 @@ interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuil
abstract override var attributes: FirDeclarationAttributes abstract override var attributes: FirDeclarationAttributes
abstract var status: FirDeclarationStatus abstract var status: FirDeclarationStatus
abstract var returnTypeRef: FirTypeRef abstract var returnTypeRef: FirTypeRef
abstract var deprecation: DeprecationsPerUseSite? abstract var deprecationsProvider: DeprecationsProvider
abstract var containerSource: DeserializedContainerSource? abstract var containerSource: DeserializedContainerSource?
abstract var dispatchReceiverType: ConeSimpleKotlinType? abstract var dispatchReceiverType: ConeSimpleKotlinType?
abstract val contextReceivers: MutableList<FirContextReceiver> abstract val contextReceivers: MutableList<FirContextReceiver>
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirAbstractConstructorBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirAbstractConstructorBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
@@ -50,7 +51,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
override var receiverTypeRef: FirTypeRef? = null override var receiverTypeRef: FirTypeRef? = null
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -72,7 +73,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
status, status,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyAccessorImpl import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyAccessorImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
@@ -51,7 +52,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -74,7 +75,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
attributes, attributes,
status, status,
returnTypeRef, returnTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -112,7 +113,7 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro
copyBuilder.attributes = original.attributes.copy() copyBuilder.attributes = original.attributes.copy()
copyBuilder.status = original.status copyBuilder.status = original.status
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.deprecation = original.deprecation copyBuilder.deprecationsProvider = original.deprecationsProvider
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers) copyBuilder.contextReceivers.addAll(original.contextReceivers)
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirPropertyBodyResolveState import org.jetbrains.kotlin.fir.declarations.FirPropertyBodyResolveState
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder
import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl
@@ -53,7 +54,7 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
lateinit var status: FirDeclarationStatus lateinit var status: FirDeclarationStatus
lateinit var returnTypeRef: FirTypeRef lateinit var returnTypeRef: FirTypeRef
var receiverTypeRef: FirTypeRef? = null var receiverTypeRef: FirTypeRef? = null
var deprecation: DeprecationsPerUseSite? = null var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -81,7 +82,7 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
status, status,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -125,7 +126,7 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
copyBuilder.status = original.status copyBuilder.status = original.status
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.receiverTypeRef = original.receiverTypeRef copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.deprecation = original.deprecation copyBuilder.deprecationsProvider = original.deprecationsProvider
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers) copyBuilder.contextReceivers.addAll(original.contextReceivers)
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirClassBuilder
import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterRefsOwnerBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterRefsOwnerBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl import org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl
@@ -47,7 +48,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf() override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override lateinit var classKind: ClassKind override lateinit var classKind: ClassKind
override val declarations: MutableList<FirDeclaration> = mutableListOf() override val declarations: MutableList<FirDeclaration> = mutableListOf()
override val annotations: MutableList<FirAnnotation> = mutableListOf() override val annotations: MutableList<FirAnnotation> = mutableListOf()
@@ -67,7 +68,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu
attributes, attributes,
typeParameters, typeParameters,
status, status,
deprecation, deprecationsProvider,
classKind, classKind,
declarations, declarations,
annotations, annotations,
@@ -103,7 +104,7 @@ inline fun buildRegularClassCopy(original: FirRegularClass, init: FirRegularClas
copyBuilder.attributes = original.attributes.copy() copyBuilder.attributes = original.attributes.copy()
copyBuilder.typeParameters.addAll(original.typeParameters) copyBuilder.typeParameters.addAll(original.typeParameters)
copyBuilder.status = original.status copyBuilder.status = original.status
copyBuilder.deprecation = original.deprecation copyBuilder.deprecationsProvider = original.deprecationsProvider
copyBuilder.classKind = original.classKind copyBuilder.classKind = original.classKind
copyBuilder.declarations.addAll(original.declarations) copyBuilder.declarations.addAll(original.declarations)
copyBuilder.annotations.addAll(original.annotations) copyBuilder.annotations.addAll(original.annotations)
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder
import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl
@@ -51,7 +52,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
override lateinit var status: FirDeclarationStatus override lateinit var status: FirDeclarationStatus
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
open var receiverTypeRef: FirTypeRef? = null open var receiverTypeRef: FirTypeRef? = null
override var deprecation: DeprecationsPerUseSite? = null override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -73,7 +74,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
status, status,
returnTypeRef, returnTypeRef,
receiverTypeRef, receiverTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -111,7 +112,7 @@ inline fun buildSimpleFunctionCopy(original: FirSimpleFunction, init: FirSimpleF
copyBuilder.status = original.status copyBuilder.status = original.status
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.receiverTypeRef = original.receiverTypeRef copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.deprecation = original.deprecation copyBuilder.deprecationsProvider = original.deprecationsProvider
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers) copyBuilder.contextReceivers.addAll(original.contextReceivers)
@@ -12,13 +12,14 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder
import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirTypeAliasImpl import org.jetbrains.kotlin.fir.declarations.impl.FirTypeAliasImpl
@@ -41,7 +42,7 @@ class FirTypeAliasBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
lateinit var status: FirDeclarationStatus lateinit var status: FirDeclarationStatus
var deprecation: DeprecationsPerUseSite? = null var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf() override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
lateinit var name: Name lateinit var name: Name
lateinit var symbol: FirTypeAliasSymbol lateinit var symbol: FirTypeAliasSymbol
@@ -56,7 +57,7 @@ class FirTypeAliasBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder
origin, origin,
attributes, attributes,
status, status,
deprecation, deprecationsProvider,
typeParameters, typeParameters,
name, name,
symbol, symbol,
@@ -87,7 +88,7 @@ inline fun buildTypeAliasCopy(original: FirTypeAlias, init: FirTypeAliasBuilder.
copyBuilder.origin = original.origin copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy() copyBuilder.attributes = original.attributes.copy()
copyBuilder.status = original.status copyBuilder.status = original.status
copyBuilder.deprecation = original.deprecation copyBuilder.deprecationsProvider = original.deprecationsProvider
copyBuilder.typeParameters.addAll(original.typeParameters) copyBuilder.typeParameters.addAll(original.typeParameters)
copyBuilder.name = original.name copyBuilder.name = original.name
copyBuilder.symbol = original.symbol copyBuilder.symbol = original.symbol
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.UnresolvedDeprecationProvider
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
@@ -47,7 +48,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
open lateinit var origin: FirDeclarationOrigin open lateinit var origin: FirDeclarationOrigin
open var attributes: FirDeclarationAttributes = FirDeclarationAttributes() open var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
open lateinit var returnTypeRef: FirTypeRef open lateinit var returnTypeRef: FirTypeRef
open var deprecation: DeprecationsPerUseSite? = null open var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
open var containerSource: DeserializedContainerSource? = null open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeSimpleKotlinType? = null open var dispatchReceiverType: ConeSimpleKotlinType? = null
open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf() open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
@@ -68,7 +69,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
origin, origin,
attributes, attributes,
returnTypeRef, returnTypeRef,
deprecation, deprecationsProvider,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers, contextReceivers,
@@ -105,7 +106,7 @@ inline fun buildValueParameterCopy(original: FirValueParameter, init: FirValuePa
copyBuilder.origin = original.origin copyBuilder.origin = original.origin
copyBuilder.attributes = original.attributes.copy() copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.deprecation = original.deprecation copyBuilder.deprecationsProvider = original.deprecationsProvider
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers) copyBuilder.contextReceivers.addAll(original.contextReceivers)
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
import org.jetbrains.kotlin.fir.FirLabel import org.jetbrains.kotlin.fir.FirLabel
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -44,7 +44,7 @@ internal class FirAnonymousFunctionImpl(
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -144,8 +144,8 @@ internal class FirAnonymousFunctionImpl(
receiverTypeRef = newReceiverTypeRef receiverTypeRef = newReceiverTypeRef
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -39,7 +39,7 @@ internal class FirAnonymousObjectImpl(
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override val typeParameters: MutableList<FirTypeParameterRef>, override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val classKind: ClassKind, override val classKind: ClassKind,
override val superTypeRefs: MutableList<FirTypeRef>, override val superTypeRefs: MutableList<FirTypeRef>,
override val declarations: MutableList<FirDeclaration>, override val declarations: MutableList<FirDeclaration>,
@@ -101,8 +101,8 @@ internal class FirAnonymousObjectImpl(
resolvePhase = newResolvePhase resolvePhase = newResolvePhase
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>) { override fun replaceSuperTypeRefs(newSuperTypeRefs: List<FirTypeRef>) {
@@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -43,7 +43,7 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor(
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -161,8 +161,8 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor(
receiverTypeRef = newReceiverTypeRef receiverTypeRef = newReceiverTypeRef
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -44,7 +44,7 @@ internal class FirConstructorImpl(
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -140,8 +140,8 @@ internal class FirConstructorImpl(
receiverTypeRef = newReceiverTypeRef receiverTypeRef = newReceiverTypeRef
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -44,7 +44,7 @@ internal class FirDefaultSetterValueParameter(
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -168,8 +168,8 @@ internal class FirDefaultSetterValueParameter(
receiverTypeRef = newReceiverTypeRef receiverTypeRef = newReceiverTypeRef
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -43,7 +43,7 @@ internal class FirEnumEntryImpl(
override val typeParameters: MutableList<FirTypeParameterRef>, override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -146,8 +146,8 @@ internal class FirEnumEntryImpl(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -43,7 +43,7 @@ internal class FirErrorFunctionImpl(
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin, override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -123,8 +123,8 @@ internal class FirErrorFunctionImpl(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -43,7 +43,7 @@ internal class FirErrorPropertyImpl(
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val origin: FirDeclarationOrigin, override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -144,8 +144,8 @@ internal class FirErrorPropertyImpl(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -45,7 +45,7 @@ class FirFieldImpl @FirImplementationDetail constructor(
override val typeParameters: MutableList<FirTypeParameterRef>, override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -151,8 +151,8 @@ class FirFieldImpl @FirImplementationDetail constructor(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -45,7 +45,7 @@ class FirPrimaryConstructor @FirImplementationDetail constructor(
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -141,8 +141,8 @@ class FirPrimaryConstructor @FirImplementationDetail constructor(
receiverTypeRef = newReceiverTypeRef receiverTypeRef = newReceiverTypeRef
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -45,7 +45,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -140,8 +140,8 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -47,7 +47,7 @@ internal class FirPropertyImpl(
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -171,8 +171,8 @@ internal class FirPropertyImpl(
receiverTypeRef = newReceiverTypeRef receiverTypeRef = newReceiverTypeRef
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -41,7 +41,7 @@ internal class FirRegularClassImpl(
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override val typeParameters: MutableList<FirTypeParameterRef>, override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val classKind: ClassKind, override val classKind: ClassKind,
override val declarations: MutableList<FirDeclaration>, override val declarations: MutableList<FirDeclaration>,
override val annotations: MutableList<FirAnnotation>, override val annotations: MutableList<FirAnnotation>,
@@ -109,8 +109,8 @@ internal class FirRegularClassImpl(
resolvePhase = newResolvePhase resolvePhase = newResolvePhase
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
@@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -44,7 +44,7 @@ internal class FirSimpleFunctionImpl(
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?, override var receiverTypeRef: FirTypeRef?,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -141,8 +141,8 @@ internal class FirSimpleFunctionImpl(
receiverTypeRef = newReceiverTypeRef receiverTypeRef = newReceiverTypeRef
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -35,7 +35,7 @@ internal class FirTypeAliasImpl(
override val origin: FirDeclarationOrigin, override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var status: FirDeclarationStatus, override var status: FirDeclarationStatus,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val typeParameters: MutableList<FirTypeParameter>, override val typeParameters: MutableList<FirTypeParameter>,
override val name: Name, override val name: Name,
override val symbol: FirTypeAliasSymbol, override val symbol: FirTypeAliasSymbol,
@@ -85,8 +85,8 @@ internal class FirTypeAliasImpl(
resolvePhase = newResolvePhase resolvePhase = newResolvePhase
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceExpandedTypeRef(newExpandedTypeRef: FirTypeRef) { override fun replaceExpandedTypeRef(newExpandedTypeRef: FirTypeRef) {
@@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -43,7 +43,7 @@ internal class FirValueParameterImpl(
override val origin: FirDeclarationOrigin, override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override var deprecation: DeprecationsPerUseSite?, override var deprecationsProvider: DeprecationsProvider,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>, override val contextReceivers: MutableList<FirContextReceiver>,
@@ -151,8 +151,8 @@ internal class FirValueParameterImpl(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecation = newDeprecation deprecationsProvider = newDeprecationsProvider
} }
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) { override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -0,0 +1,97 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
import org.jetbrains.kotlin.resolve.deprecation.SimpleDeprecationInfo
import org.jetbrains.kotlin.utils.addToStdlib.runUnless
abstract class DeprecationsProvider {
abstract fun getDeprecationsInfo(version: ApiVersion): DeprecationsPerUseSite?
}
class DeprecationsProviderImpl(
private val all: List<DeprecationAnnotationInfo>?,
private val bySpecificSite: Map<AnnotationUseSiteTarget, List<DeprecationAnnotationInfo>>?
) : DeprecationsProvider() {
override fun getDeprecationsInfo(version: ApiVersion): DeprecationsPerUseSite {
@Suppress("UNCHECKED_CAST")
return DeprecationsPerUseSite(
all?.computeDeprecationInfoOrNull(version),
bySpecificSite?.mapValues { (_, info) -> info.computeDeprecationInfoOrNull(version) }?.filterValues { it != null }
as Map<AnnotationUseSiteTarget, DeprecationInfo>?
)
}
private fun List<DeprecationAnnotationInfo>.computeDeprecationInfoOrNull(version: ApiVersion): DeprecationInfo? {
return firstNotNullOfOrNull { it.computeDeprecationInfo(version) }
}
}
object EmptyDeprecationsProvider : DeprecationsProvider() {
override fun getDeprecationsInfo(version: ApiVersion): DeprecationsPerUseSite {
return EmptyDeprecationsPerUseSite
}
}
object UnresolvedDeprecationProvider : DeprecationsProvider() {
override fun getDeprecationsInfo(version: ApiVersion): DeprecationsPerUseSite? {
return null
}
}
sealed interface DeprecationAnnotationInfo {
fun computeDeprecationInfo(apiVersion: ApiVersion): DeprecationInfo?
}
class SinceKotlinInfo(val sinceVersion: ApiVersion) : DeprecationAnnotationInfo {
override fun computeDeprecationInfo(apiVersion: ApiVersion): DeprecationInfo? {
return runUnless(sinceVersion <= apiVersion) {
SimpleDeprecationInfo(
deprecationLevel = DeprecationLevelValue.HIDDEN,
propagatesToOverrides = true,
message = null
)
}
}
}
class DeprecatedInfo(
val level: DeprecationLevelValue,
val propagatesToOverride: Boolean,
val message: String?
) : DeprecationAnnotationInfo {
override fun computeDeprecationInfo(apiVersion: ApiVersion): DeprecationInfo {
return SimpleDeprecationInfo(
level,
propagatesToOverride,
message
)
}
}
class DeprecatedSinceKotlinInfo(
val warningVersion: ApiVersion?,
val errorVersion: ApiVersion?,
val hiddenVersion: ApiVersion?,
val message: String?,
val propagatesToOverride: Boolean
) : DeprecationAnnotationInfo {
override fun computeDeprecationInfo(apiVersion: ApiVersion): DeprecationInfo? {
fun ApiVersion.takeLevelIfDeprecated(level: DeprecationLevelValue) = level.takeIf { this <= apiVersion }
val appliedLevel = hiddenVersion?.takeLevelIfDeprecated(DeprecationLevelValue.HIDDEN)
?: errorVersion?.takeLevelIfDeprecated(DeprecationLevelValue.ERROR)
?: warningVersion?.takeLevelIfDeprecated(DeprecationLevelValue.WARNING)
return appliedLevel?.let {
SimpleDeprecationInfo(it, propagatesToOverride, message)
}
}
}
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtFakeSourceElementKind import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.descriptors.EffectiveVisibility import org.jetbrains.kotlin.descriptors.EffectiveVisibility
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
@@ -51,7 +50,7 @@ abstract class FirDefaultPropertyAccessor(
else else
FirResolvedDeclarationStatusImpl(visibility, modality, effectiveVisibility), FirResolvedDeclarationStatusImpl(visibility, modality, effectiveVisibility),
propertyTypeRef, propertyTypeRef,
deprecation = null, deprecationsProvider = UnresolvedDeprecationProvider,
containerSource = null, containerSource = null,
dispatchReceiverType = null, dispatchReceiverType = null,
contextReceivers = mutableListOf(), contextReceivers = mutableListOf(),
@@ -8,10 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
@@ -34,7 +31,7 @@ class FirDefaultPropertyBackingField(
attributes = FirDeclarationAttributes(), attributes = FirDeclarationAttributes(),
returnTypeRef = returnTypeRef, returnTypeRef = returnTypeRef,
receiverTypeRef = null, receiverTypeRef = null,
deprecation = null, deprecationsProvider = UnresolvedDeprecationProvider,
containerSource = null, containerSource = null,
dispatchReceiverType = null, dispatchReceiverType = null,
name = BACKING_FIELD, name = BACKING_FIELD,
@@ -30,7 +30,7 @@ class FirSyntheticProperty(
override val getter: FirSyntheticPropertyAccessor, override val getter: FirSyntheticPropertyAccessor,
override val setter: FirSyntheticPropertyAccessor? = null, override val setter: FirSyntheticPropertyAccessor? = null,
override val backingField: FirBackingField? = null, override val backingField: FirBackingField? = null,
override val deprecation: DeprecationsPerUseSite? = null override val deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
) : FirProperty() { ) : FirProperty() {
init { init {
symbol.bind(this) symbol.bind(this)
@@ -150,7 +150,7 @@ class FirSyntheticProperty(
throw AssertionError("Mutation of synthetic property isn't supported") throw AssertionError("Mutation of synthetic property isn't supported")
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
throw AssertionError("Mutation of synthetic property isn't supported") throw AssertionError("Mutation of synthetic property isn't supported")
} }
@@ -50,8 +50,8 @@ class FirSyntheticPropertyAccessor(
override val receiverTypeRef: FirTypeRef? override val receiverTypeRef: FirTypeRef?
get() = null get() = null
override val deprecation: DeprecationsPerUseSite? override val deprecationsProvider: DeprecationsProvider
get() = delegate.deprecation get() = delegate.deprecationsProvider
override val valueParameters: List<FirValueParameter> override val valueParameters: List<FirValueParameter>
get() = delegate.valueParameters get() = delegate.valueParameters
@@ -145,7 +145,7 @@ class FirSyntheticPropertyAccessor(
throw AssertionError("Mutation of synthetic property accessor isn't supported") throw AssertionError("Mutation of synthetic property accessor isn't supported")
} }
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
throw AssertionError("Mutation of synthetic property accessor isn't supported") throw AssertionError("Mutation of synthetic property accessor isn't supported")
} }
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.synthetic package org.jetbrains.kotlin.fir.declarations.synthetic
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsProvider
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
@@ -17,7 +17,7 @@ class FirSyntheticPropertyBuilder {
lateinit var name: Name lateinit var name: Name
lateinit var symbol: FirSyntheticPropertySymbol lateinit var symbol: FirSyntheticPropertySymbol
lateinit var delegateGetter: FirSimpleFunction lateinit var delegateGetter: FirSimpleFunction
lateinit var deprecation: DeprecationsPerUseSite lateinit var deprecationsProvider: DeprecationsProvider
var status: FirDeclarationStatus? = null var status: FirDeclarationStatus? = null
var delegateSetter: FirSimpleFunction? = null var delegateSetter: FirSimpleFunction? = null
@@ -29,7 +29,7 @@ class FirSyntheticPropertyBuilder {
resolvePhase = delegateGetter.resolvePhase, resolvePhase = delegateGetter.resolvePhase,
getter = FirSyntheticPropertyAccessor(delegateGetter, isGetter = true), getter = FirSyntheticPropertyAccessor(delegateGetter, isGetter = true),
setter = delegateSetter?.let { FirSyntheticPropertyAccessor(it, isGetter = false) }, setter = delegateSetter?.let { FirSyntheticPropertyAccessor(it, isGetter = false) },
deprecation = deprecation deprecationsProvider = deprecationsProvider
) )
} }
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.fir.symbols.impl package org.jetbrains.kotlin.fir.symbols.impl
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
@@ -58,11 +59,10 @@ abstract class FirCallableSymbol<D : FirCallableDeclaration> : FirBasedSymbol<D>
val name: Name val name: Name
get() = callableId.callableName get() = callableId.callableName
val deprecation: DeprecationsPerUseSite? fun getDeprecation(apiVersion: ApiVersion): DeprecationsPerUseSite? {
get() { lazyResolveToPhase(FirResolvePhase.STATUS)
lazyResolveToPhase(FirResolvePhase.STATUS) return fir.deprecationsProvider.getDeprecationsInfo(apiVersion)
return fir.deprecation }
}
private fun ensureType(typeRef: FirTypeRef?) { private fun ensureType(typeRef: FirTypeRef?) {
when (typeRef) { when (typeRef) {
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.fir.symbols.impl package org.jetbrains.kotlin.fir.symbols.impl
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
@@ -24,11 +25,10 @@ sealed class FirClassLikeSymbol<D : FirClassLikeDeclaration>(
val name get() = classId.shortClassName val name get() = classId.shortClassName
val deprecation: DeprecationsPerUseSite? fun getDeprecation(apiVersion: ApiVersion): DeprecationsPerUseSite? {
get() { lazyResolveToPhase(FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS)
lazyResolveToPhase(FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS) return fir.deprecationsProvider.getDeprecationsInfo(apiVersion)
return fir.deprecation }
}
val rawStatus: FirDeclarationStatus val rawStatus: FirDeclarationStatus
get() = fir.status get() = fir.status
@@ -423,6 +423,13 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
) { ) {
default(it, "${declarationAttributesType.type}()") default(it, "${declarationAttributesType.type}()")
} }
configureFieldInAllLeafBuilders(
field = "deprecationsProvider"
) {
default(it, "UnresolvedDeprecationProvider")
useTypes(unresolvedDeprecationsProviderType)
}
} }
private inline fun findImplementationsWithElementInParents( private inline fun findImplementationsWithElementInParents(
@@ -88,7 +88,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
callableDeclaration.configure { callableDeclaration.configure {
+field("returnTypeRef", typeRef, withReplace = true).withTransform() +field("returnTypeRef", typeRef, withReplace = true).withTransform()
+field("receiverTypeRef", typeRef, nullable = true, withReplace = true).withTransform() +field("receiverTypeRef", typeRef, nullable = true, withReplace = true).withTransform()
+field("deprecation", deprecationsPerUseSiteType, nullable = true).withReplace().apply { isMutable = true } +field("deprecationsProvider", deprecationsProviderType).withReplace().apply { isMutable = true }
+symbol("FirCallableSymbol", "out FirCallableDeclaration") +symbol("FirCallableSymbol", "out FirCallableDeclaration")
+field("containerSource", type(DeserializedContainerSource::class), nullable = true) +field("containerSource", type(DeserializedContainerSource::class), nullable = true)
@@ -245,7 +245,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
classLikeDeclaration.configure { classLikeDeclaration.configure {
+symbol("FirClassLikeSymbol", "out FirClassLikeDeclaration") +symbol("FirClassLikeSymbol", "out FirClassLikeDeclaration")
+field("deprecation", deprecationsPerUseSiteType, nullable = true).withReplace().apply { isMutable = true} +field("deprecationsProvider", deprecationsProviderType).withReplace().apply { isMutable = true}
} }
klass.configure { klass.configure {
@@ -94,7 +94,8 @@ val functionCallOrigin = type("fir.expressions", "FirFunctionCallOrigin")
val resolvedDeclarationStatusImplType = type("fir.declarations.impl", "FirResolvedDeclarationStatusImpl") val resolvedDeclarationStatusImplType = type("fir.declarations.impl", "FirResolvedDeclarationStatusImpl")
val deprecationsPerUseSiteType = type("fir.declarations", "DeprecationsPerUseSite") val deprecationsProviderType = type("fir.declarations", "DeprecationsProvider")
val unresolvedDeprecationsProviderType = type("fir.declarations", "UnresolvedDeprecationProvider")
val emptyAnnotationArgumentMappingType = type("fir.expressions.impl", "FirEmptyAnnotationArgumentMapping") val emptyAnnotationArgumentMappingType = type("fir.expressions.impl", "FirEmptyAnnotationArgumentMapping")
val firPropertySymbolType = type("fir.symbols.impl", "FirPropertySymbol") val firPropertySymbolType = type("fir.symbols.impl", "FirPropertySymbol")