From 25fc948d959719ab61fa083ee133ea4a87300ae4 Mon Sep 17 00:00:00 2001 From: Arseniy Terekhov Date: Wed, 10 Aug 2022 18:06:59 +0300 Subject: [PATCH] [FIR] DeprecationsProvider: make evaluation of deprecations on demand --- .../fir/components/KtFirSymbolInfoProvider.kt | 15 +- .../declaration/FirOverrideChecker.kt | 6 +- .../expression/FirDeprecationChecker.kt | 4 +- .../deserialization/ClassDeserialization.kt | 2 +- .../deserialization/FirMemberDeserializer.kt | 6 +- .../kotlin/fir/java/FirJavaFacade.kt | 2 +- .../fir/java/declarations/FirJavaClass.kt | 6 +- .../java/declarations/FirJavaConstructor.kt | 6 +- .../fir/java/declarations/FirJavaField.kt | 7 +- .../fir/java/declarations/FirJavaMethod.kt | 8 +- .../declarations/FirJavaValueParameter.kt | 6 +- .../JvmClassFileBasedSymbolProvider.kt | 4 +- .../java/enhancement/SignatureEnhancement.kt | 4 +- .../scopes/JavaClassUseSiteMemberScope.kt | 2 +- .../fir/declarations/deprecationUtils.kt | 193 +++++++++++------- .../kotlin/fir/resolve/calls/Synthetics.kt | 6 +- .../scopes/impl/FirFakeOverrideGenerator.kt | 8 +- .../jetbrains/kotlin/fir/FirCallResolver.kt | 1 + .../kotlin/fir/QualifiedNameResolution.kt | 36 +++- .../resolve/calls/ConstructorProcessing.kt | 3 +- .../fir/resolve/calls/ResolutionStages.kt | 2 +- .../providers/impl/FirTypeResolverImpl.kt | 7 +- .../FirStatusResolveTransformer.kt | 4 +- ...erRequiredAnnotationsResolveTransformer.kt | 4 +- .../fir/declarations/FirAnonymousFunction.kt | 4 +- .../fir/declarations/FirAnonymousObject.kt | 4 +- .../fir/declarations/FirBackingField.kt | 4 +- .../declarations/FirCallableDeclaration.kt | 4 +- .../kotlin/fir/declarations/FirClass.kt | 4 +- .../declarations/FirClassLikeDeclaration.kt | 4 +- .../kotlin/fir/declarations/FirConstructor.kt | 4 +- .../kotlin/fir/declarations/FirEnumEntry.kt | 4 +- .../fir/declarations/FirErrorFunction.kt | 4 +- .../fir/declarations/FirErrorProperty.kt | 4 +- .../kotlin/fir/declarations/FirField.kt | 4 +- .../kotlin/fir/declarations/FirFunction.kt | 4 +- .../kotlin/fir/declarations/FirProperty.kt | 4 +- .../fir/declarations/FirPropertyAccessor.kt | 4 +- .../fir/declarations/FirRegularClass.kt | 4 +- .../fir/declarations/FirSimpleFunction.kt | 4 +- .../kotlin/fir/declarations/FirTypeAlias.kt | 4 +- .../fir/declarations/FirValueParameter.kt | 4 +- .../kotlin/fir/declarations/FirVariable.kt | 4 +- .../builder/FirAbstractConstructorBuilder.kt | 4 +- .../builder/FirAnonymousFunctionBuilder.kt | 9 +- .../builder/FirAnonymousObjectBuilder.kt | 7 +- .../builder/FirBackingFieldBuilder.kt | 7 +- .../declarations/builder/FirClassBuilder.kt | 4 +- .../builder/FirConstructorBuilder.kt | 9 +- .../FirDefaultSetterValueParameterBuilder.kt | 7 +- .../builder/FirEnumEntryBuilder.kt | 7 +- .../builder/FirErrorFunctionBuilder.kt | 7 +- .../builder/FirErrorPropertyBuilder.kt | 7 +- .../declarations/builder/FirFieldBuilder.kt | 7 +- .../builder/FirFunctionBuilder.kt | 4 +- .../builder/FirPrimaryConstructorBuilder.kt | 7 +- .../builder/FirPropertyAccessorBuilder.kt | 9 +- .../builder/FirPropertyBuilder.kt | 9 +- .../builder/FirRegularClassBuilder.kt | 9 +- .../builder/FirSimpleFunctionBuilder.kt | 9 +- .../builder/FirTypeAliasBuilder.kt | 9 +- .../builder/FirValueParameterBuilder.kt | 9 +- .../impl/FirAnonymousFunctionImpl.kt | 8 +- .../impl/FirAnonymousObjectImpl.kt | 8 +- .../declarations/impl/FirBackingFieldImpl.kt | 8 +- .../declarations/impl/FirConstructorImpl.kt | 8 +- .../impl/FirDefaultSetterValueParameter.kt | 8 +- .../fir/declarations/impl/FirEnumEntryImpl.kt | 8 +- .../declarations/impl/FirErrorFunctionImpl.kt | 8 +- .../declarations/impl/FirErrorPropertyImpl.kt | 8 +- .../fir/declarations/impl/FirFieldImpl.kt | 8 +- .../impl/FirPrimaryConstructor.kt | 8 +- .../impl/FirPropertyAccessorImpl.kt | 8 +- .../fir/declarations/impl/FirPropertyImpl.kt | 8 +- .../declarations/impl/FirRegularClassImpl.kt | 8 +- .../impl/FirSimpleFunctionImpl.kt | 8 +- .../fir/declarations/impl/FirTypeAliasImpl.kt | 8 +- .../impl/FirValueParameterImpl.kt | 8 +- .../fir/declarations/DeprecationsProvider.kt | 97 +++++++++ .../impl/FirDefaultPropertyAccessor.kt | 3 +- .../impl/FirDefaultPropertyBackingField.kt | 7 +- .../synthetic/FirSyntheticProperty.kt | 4 +- .../synthetic/FirSyntheticPropertyAccessor.kt | 6 +- .../synthetic/FirSyntheticPropertyBuilder.kt | 6 +- .../fir/symbols/impl/FirCallableSymbol.kt | 10 +- .../fir/symbols/impl/FirClassLikeSymbol.kt | 10 +- .../fir/tree/generator/BuilderConfigurator.kt | 7 + .../fir/tree/generator/NodeConfigurator.kt | 4 +- .../kotlin/fir/tree/generator/Types.kt | 3 +- 89 files changed, 517 insertions(+), 326 deletions(-) create mode 100644 compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/DeprecationsProvider.kt diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolInfoProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolInfoProvider.kt index c95836082a6..1c214136c8b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolInfoProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolInfoProvider.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.getDeprecationForCallSite 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.load.java.JvmAbi import org.jetbrains.kotlin.name.Name @@ -27,15 +28,17 @@ internal class KtFirSymbolInfoProvider( override val analysisSession: KtFirAnalysisSession, override val token: KtLifetimeToken ) : KtSymbolInfoProvider(), KtFirAnalysisSessionComponent { + private val apiVersion = analysisSession.useSiteSession.languageVersionSettings.apiVersion + override fun getDeprecation(symbol: KtSymbol): DeprecationInfo? { if (symbol is KtFirBackingFieldSymbol || symbol is KtFirPackageSymbol) return null require(symbol is KtFirSymbol<*>) return when (val firSymbol = symbol.firSymbol) { is FirPropertySymbol -> { - firSymbol.getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY) + firSymbol.getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY) } else -> { - firSymbol.getDeprecationForCallSite() + firSymbol.getDeprecationForCallSite(apiVersion) } } @@ -44,22 +47,22 @@ internal class KtFirSymbolInfoProvider( override fun getDeprecation(symbol: KtSymbol, annotationUseSiteTarget: AnnotationUseSiteTarget?): DeprecationInfo? { require(symbol is KtFirSymbol<*>) return if (annotationUseSiteTarget != null) { - symbol.firSymbol.getDeprecationForCallSite(annotationUseSiteTarget) + symbol.firSymbol.getDeprecationForCallSite(apiVersion, annotationUseSiteTarget) } else { - symbol.firSymbol.getDeprecationForCallSite() + symbol.firSymbol.getDeprecationForCallSite(apiVersion) } } override fun getGetterDeprecation(symbol: KtPropertySymbol): DeprecationInfo? { 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? { 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 { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt index ae927dcce2f..d1069c00489 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt @@ -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.modality 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.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.toSymbol @@ -185,10 +186,11 @@ object FirOverrideChecker : FirClassChecker() { overriddenSymbols: List>, context: CheckerContext ) { - val ownDeprecation = this.deprecation + val ownDeprecation = this.getDeprecation(context.session.languageVersionSettings.apiVersion) if (ownDeprecation == null || ownDeprecation.isNotEmpty()) return for (overriddenSymbol in overriddenSymbols) { - val deprecationInfoFromOverridden = overriddenSymbol.deprecation ?: continue + val deprecationInfoFromOverridden = overriddenSymbol.getDeprecation(context.session.languageVersionSettings.apiVersion) + ?: continue val deprecationFromOverriddenSymbol = deprecationInfoFromOverridden.all ?: deprecationInfoFromOverridden.bySpecificSite?.values?.firstOrNull() ?: continue diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirDeprecationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirDeprecationChecker.kt index 9af281c4c76..35f9d96f16d 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirDeprecationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirDeprecationChecker.kt @@ -74,11 +74,11 @@ object FirDeprecationChecker : FirBasicExpressionChecker() { context: CheckerContext ): DeprecationInfo? { val deprecationInfos = listOfNotNull( - symbol.getDeprecation(callSite), + symbol.getDeprecation(context.languageVersionSettings.apiVersion, callSite), symbol.safeAs() ?.resolvedReturnTypeRef ?.toRegularClassSymbol(context.session) - ?.getDeprecation(callSite) + ?.getDeprecation(context.languageVersionSettings.apiVersion, callSite) ) return deprecationInfos.maxOrNull() } diff --git a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt index b789823282f..026490f4a6c 100644 --- a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt +++ b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt @@ -226,7 +226,7 @@ fun deserializeClassToSymbol( it.sourceElement = containerSource - it.replaceDeprecation(it.getDeprecationInfos(session.languageVersionSettings.apiVersion)) + it.replaceDeprecationsProvider(it.getDeprecationsProvider()) classProto.getExtensionOrNull(JvmProtoBuf.classModuleName)?.let { idx -> it.moduleName = nameResolver.getString(idx) diff --git a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt index 00f97966b93..70fa6cf3815 100644 --- a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt +++ b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/FirMemberDeserializer.kt @@ -421,7 +421,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { } this.containerSource = c.containerSource 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) }.apply { @@ -499,7 +499,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { ) annotations += 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 proto.contextReceiverTypes(c.typeTable).mapTo(contextReceivers, ::loadContextReceiver) @@ -578,7 +578,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) { annotations += c.annotationDeserializer.loadConstructorAnnotations(c.containerSource, proto, local.nameResolver, local.typeTable) containerSource = c.containerSource - deprecation = annotations.getDeprecationInfosFromAnnotations(c.session.languageVersionSettings.apiVersion, false) + deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(false) contextReceivers.addAll(createContextReceiversForClass(classProto)) }.build().apply { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt index 2033ad7bb46..5c6b95dbb50 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaFacade.kt @@ -185,7 +185,7 @@ abstract class FirJavaFacade( } } firJavaClass.replaceSuperTypeRefs(enhancedSuperTypes) - firJavaClass.replaceDeprecation(firJavaClass.getDeprecationInfos(session.languageVersionSettings.apiVersion)) + firJavaClass.replaceDeprecationsProvider(firJavaClass.getDeprecationsProvider()) return firJavaClass } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt index e509a5c76f8..0cb9e83a79d 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt @@ -50,7 +50,7 @@ class FirJavaClass @FirImplementationDetail internal constructor( ) : FirRegularClass() { override val hasLazyNestedClassifiers: Boolean get() = true override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override val contextReceivers: List get() = emptyList() @@ -70,8 +70,8 @@ class FirJavaClass @FirImplementationDetail internal constructor( resolvePhase = newResolvePhase } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {} diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt index ca1c5a77eb0..67f56268082 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt @@ -43,7 +43,7 @@ class FirJavaConstructor @FirImplementationDetail constructor( override val dispatchReceiverType: ConeSimpleKotlinType?, ) : FirConstructor() { override val receiverTypeRef: FirTypeRef? get() = null - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider init { symbol.bind(this) @@ -134,8 +134,8 @@ class FirJavaConstructor @FirImplementationDetail constructor( } override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt index 5897a40f838..afdd06cfaf9 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt @@ -61,8 +61,8 @@ class FirJavaField @FirImplementationDetail constructor( override val annotations: List by lazy { annotationBuilder() } - override val deprecation: DeprecationsPerUseSite by lazy { - annotations.getDeprecationInfosFromAnnotations(moduleData.session.languageVersionSettings.apiVersion, fromJava = true) + override val deprecationsProvider: DeprecationsProvider by lazy { + annotations.getDeprecationsProviderFromAnnotations(true) } override val contextReceivers: List @@ -145,8 +145,7 @@ class FirJavaField @FirImplementationDetail constructor( } override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} - - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {} + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {} override fun transformDelegate(transformer: FirTransformer, data: D): FirField { return this diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt index b9ffe27f2c7..5003406439e 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt @@ -85,7 +85,7 @@ class FirJavaMethod @FirImplementationDetail constructor( get() = emptyList() //not used actually, because get 'enhanced' into regular FirSimpleFunction - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override fun acceptChildren(visitor: FirVisitor, data: D) { returnTypeRef.accept(visitor, data) @@ -159,8 +159,8 @@ class FirJavaMethod @FirImplementationDetail constructor( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) { } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { @@ -207,7 +207,7 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder, lateinit var annotationBuilder: () -> List @Deprecated("Modification of 'deprecation' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN) - override var deprecation: DeprecationsPerUseSite? + override var deprecationsProvider: DeprecationsProvider get() = throw IllegalStateException() set(_) { throw IllegalStateException() diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt index 5a41bb30850..6aa3f08bcc8 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt @@ -63,8 +63,8 @@ class FirJavaValueParameter @FirImplementationDetail constructor( override val receiverTypeRef: FirTypeRef? get() = null - override val deprecation: DeprecationsPerUseSite - get() = EmptyDeprecationsPerUseSite + override val deprecationsProvider: DeprecationsProvider + get() = EmptyDeprecationsProvider override val initializer: FirExpression? get() = null @@ -168,7 +168,7 @@ class FirJavaValueParameter @FirImplementationDetail constructor( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) { } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/JvmClassFileBasedSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/JvmClassFileBasedSymbolProvider.kt index fe813cfde38..295220032f2 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/JvmClassFileBasedSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/JvmClassFileBasedSymbolProvider.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.ThreadSafeMutableState import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin -import org.jetbrains.kotlin.fir.declarations.getDeprecationInfos +import org.jetbrains.kotlin.fir.declarations.getDeprecationsProvider import org.jetbrains.kotlin.fir.deserialization.* import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.java.FirJavaFacade @@ -151,7 +151,7 @@ class JvmClassFileBasedSymbolProvider( }, kotlinClass.byteContent, ) - symbol.fir.replaceDeprecation(symbol.fir.getDeprecationInfos(session.languageVersionSettings.apiVersion)) + symbol.fir.replaceDeprecationsProvider(symbol.fir.getDeprecationsProvider()) } private fun String?.toPath(): Path? { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt index 62e59369156..f084251a5d9 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt @@ -168,7 +168,7 @@ class FirSignatureEnhancement( delegateGetter = enhancedGetterSymbol.fir as FirSimpleFunction delegateSetter = enhancedSetterSymbol?.fir as FirSimpleFunction? status = firElement.status - deprecation = getDeprecationsFromAccessors(delegateGetter, delegateSetter, session.languageVersionSettings.apiVersion) + deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter) }.symbol } else -> { @@ -320,7 +320,7 @@ class FirSignatureEnhancement( else -> throw AssertionError("Unknown Java method to enhance: ${firMethod.render()}") }.apply { annotations += firMethod.annotations - deprecation = annotations.getDeprecationInfosFromAnnotations(session.languageVersionSettings.apiVersion, fromJava = true) + deprecationsProvider = annotations.getDeprecationsProviderFromAnnotations(true) }.build() return function.symbol diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt index d0f04559d67..bc97d5cda0e 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt @@ -88,7 +88,7 @@ class JavaClassUseSiteMemberScope( chooseModalityForAccessor(property, delegateGetter) } ) - deprecation = getDeprecationsFromAccessors(delegateGetter, delegateSetter, session.languageVersionSettings.apiVersion) + deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter) }.symbol } } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/deprecationUtils.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/deprecationUtils.kt index 602e43dd1c9..ab7eb5a6b40 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/deprecationUtils.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/declarations/deprecationUtils.kt @@ -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.resolve.deprecation.DeprecationInfo 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>) { + fun toDeprecationsProvider(): DeprecationsProvider { + if (storage.isEmpty()) { + return EmptyDeprecationsProvider + } + @Suppress("UNCHECKED_CAST") + val specificCallSite = storage.filterKeys { it != null } as Map> + return DeprecationsProviderImpl( + storage[null], + specificCallSite.takeIf { it.isNotEmpty() } + ) + } + +} + +class DeprecationAnnotationInfoPerUseSiteStorageBuilder { + private val storage = mutableMapOf>() + + fun add(useSite: AnnotationUseSiteTarget?, info: DeprecationAnnotationInfo) { + storage.getOrPut(useSite) { mutableListOf() }.add(info) + } + + fun add(useSite: AnnotationUseSiteTarget?, infos: Iterable) { + 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) { is FirPropertySymbol -> when (callSite) { is FirVariableAssignment -> - getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY) + getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY) is FirPropertyAccessExpression -> - getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_GETTER, AnnotationUseSiteTarget.PROPERTY) + getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY_GETTER, AnnotationUseSiteTarget.PROPERTY) else -> - getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY) + getDeprecationForCallSite(apiVersion, AnnotationUseSiteTarget.PROPERTY) } else -> - getDeprecationForCallSite() + getDeprecationForCallSite(apiVersion) } } -fun FirAnnotationContainer.getDeprecationInfos(currentVersion: ApiVersion): DeprecationsPerUseSite { - val deprecationByUseSite = mutableMapOf() +fun FirAnnotationContainer.getDeprecationsProvider(): DeprecationsProvider { + return extractDeprecationInfoPerUseSite().toDeprecationsProvider() +} + +fun FirAnnotationContainer.extractDeprecationInfoPerUseSite(): DeprecationAnnotationInfoPerUseSiteStorage { val fromJava = this is FirDeclaration && this.isJavaOrEnhancement - annotations.extractDeprecationInfoPerUseSite(currentVersion, fromJava).toMap(deprecationByUseSite) - if (this is FirProperty) { - getDeprecationsFromAccessors(getter, setter, currentVersion).bySpecificSite?.forEach { (k, v) -> deprecationByUseSite[k] = v } + return buildDeprecationAnnotationInfoPerUseSiteStorage { + add(annotations.extractDeprecationAnnotationInfoPerUseSite(fromJava)) + if (this@extractDeprecationInfoPerUseSite is FirProperty) { + add(getDeprecationsAnnotationInfoByUseSiteFromAccessors(getter, setter)) + } } - - return DeprecationsPerUseSite.fromMap(deprecationByUseSite) } - -@OptIn(ExperimentalStdlibApi::class) -fun getDeprecationsFromAccessors( +fun getDeprecationsProviderFromAccessors( getter: FirFunction?, - setter: FirFunction?, - currentVersion: ApiVersion -): DeprecationsPerUseSite { - val perUseSite = buildMap { - val setterDeprecations = setter?.getDeprecationInfos(currentVersion) - setterDeprecations?.all?.let { put(AnnotationUseSiteTarget.PROPERTY_SETTER, it) } - setterDeprecations?.bySpecificSite?.let { putAll(it) } - val getterDeprecations = getter?.getDeprecationInfos(currentVersion) - getterDeprecations?.all?.let { put(AnnotationUseSiteTarget.PROPERTY_GETTER, it) } - getterDeprecations?.bySpecificSite?.let { putAll(it) } + setter: FirFunction? +): DeprecationsProvider { + return getDeprecationsAnnotationInfoByUseSiteFromAccessors(getter, setter).toDeprecationsProvider() +} +fun getDeprecationsAnnotationInfoByUseSiteFromAccessors( + getter: FirFunction?, + setter: FirFunction? +): DeprecationAnnotationInfoPerUseSiteStorage { + return buildDeprecationAnnotationInfoPerUseSiteStorage { + 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.getDeprecationInfosFromAnnotations(currentVersion: ApiVersion, fromJava: Boolean): DeprecationsPerUseSite { - val deprecationByUseSite = extractDeprecationInfoPerUseSite(currentVersion, fromJava).toMap() - return DeprecationsPerUseSite.fromMap(deprecationByUseSite) +fun List.getDeprecationsProviderFromAnnotations(fromJava: Boolean): DeprecationsProvider { + val deprecationAnnotationByUseSite = extractDeprecationAnnotationInfoPerUseSite(fromJava) + return deprecationAnnotationByUseSite.toDeprecationsProvider() } fun FirBasedSymbol<*>.getDeprecationForCallSite( + apiVersion: ApiVersion, vararg sites: AnnotationUseSiteTarget ): DeprecationInfo? { val deprecations = when (this) { - is FirCallableSymbol<*> -> deprecation - is FirClassLikeSymbol<*> -> deprecation + is FirCallableSymbol<*> -> getDeprecation(apiVersion) + is FirClassLikeSymbol<*> -> getDeprecation(apiVersion) else -> null } return (deprecations ?: EmptyDeprecationsPerUseSite).forUseSite(*sites) @@ -107,51 +163,48 @@ private fun FirAnnotation.getDeprecationLevel(): DeprecationLevelValue? { return DeprecationLevelValue.values().find { it.name == targetName } } -private fun List.extractDeprecationInfoPerUseSite( - currentVersion: ApiVersion, +private fun List.extractDeprecationAnnotationInfoPerUseSite( fromJava: Boolean -): List> { +): DeprecationAnnotationInfoPerUseSiteStorage { @Suppress("RemoveExplicitTypeArguments") val annotations = buildList> { mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.Deprecated, this) { it to false } mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.Java.Deprecated, this) { it to true } mapAnnotationsWithClassIdTo(StandardClassIds.Annotations.SinceKotlin, this) { it to false } } - return annotations.mapNotNull { (deprecated, fromJavaAnnotation) -> - if (deprecated.classId == StandardClassIds.Annotations.SinceKotlin) { - val sinceKotlinSingleArgument = deprecated.findArgumentByName(ParameterNames.sinceKotlinVersion) - val apiVersion = ((sinceKotlinSingleArgument as? FirConstExpression<*>)?.value as? String) - ?.let(ApiVersion.Companion::parse) ?: return@mapNotNull null - if (apiVersion <= currentVersion) return@mapNotNull null - val wasExperimental = this.any { it.classId == StandardClassIds.Annotations.WasExperimental } - return@mapNotNull runUnless(wasExperimental) { - deprecated.useSiteTarget to SimpleDeprecationInfo( - deprecationLevel = DeprecationLevelValue.HIDDEN, - propagatesToOverrides = true, - message = null - ) + + return buildDeprecationAnnotationInfoPerUseSiteStorage { + for ((deprecated, fromJavaAnnotation) in annotations) { + if (deprecated.classId == StandardClassIds.Annotations.SinceKotlin) { + val sinceKotlinSingleArgument = deprecated.findArgumentByName(ParameterNames.sinceKotlinVersion) + val apiVersion = ((sinceKotlinSingleArgument as? FirConstExpression<*>)?.value as? String) + ?.let(ApiVersion.Companion::parse) ?: continue + val wasExperimental = this@extractDeprecationAnnotationInfoPerUseSite.any { + it.classId == StandardClassIds.Annotations.WasExperimental + } + if (!wasExperimental) { + 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) - ) - } } } - diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt index 7b25cb1fa79..9832f7bcf4f 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/calls/Synthetics.kt @@ -6,9 +6,7 @@ package org.jetbrains.kotlin.fir.resolve.calls import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin -import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction -import org.jetbrains.kotlin.fir.declarations.getDeprecationsFromAccessors +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty import org.jetbrains.kotlin.fir.declarations.utils.isStatic import org.jetbrains.kotlin.fir.scopes.* @@ -137,7 +135,7 @@ class FirSyntheticPropertiesScope private constructor( ) delegateGetter = getter delegateSetter = matchingSetter - deprecation = getDeprecationsFromAccessors(getter, matchingSetter, session.languageVersionSettings.apiVersion) + deprecationsProvider = getDeprecationsProviderFromAccessors(getter, matchingSetter) } val syntheticSymbol = property.symbol (baseScope as? FirUnstableSmartcastTypeScope)?.apply { diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt index 45abb2fe4ca..a251a2ebeb8 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt @@ -122,7 +122,7 @@ object FirFakeOverrideGenerator { session, baseFunction, newParameterTypes, newTypeParameters, newReceiverType, newContextReceiverTypes, newReturnType, fakeOverrideSubstitution, newSymbol ).filterIsInstance() - deprecation = baseFunction.deprecation + deprecationsProvider = baseFunction.deprecationsProvider } } @@ -165,7 +165,7 @@ object FirFakeOverrideGenerator { resolvePhase = baseConstructor.resolvePhase source = baseConstructor.source attributes = baseConstructor.attributes.copy() - deprecation = baseConstructor.deprecation + deprecationsProvider = baseConstructor.deprecationsProvider }.apply { originalForSubstitutionOverrideAttr = baseConstructor } @@ -344,7 +344,7 @@ object FirFakeOverrideGenerator { newReturnType, fakeOverrideSubstitution ) - deprecation = baseProperty.deprecation + deprecationsProvider = baseProperty.deprecationsProvider } } @@ -526,7 +526,7 @@ object FirFakeOverrideGenerator { delegateGetter = getter delegateSetter = setter status = baseProperty.status - deprecation = getDeprecationsFromAccessors(getter, setter, session.languageVersionSettings.apiVersion) + deprecationsProvider = getDeprecationsProviderFromAccessors(getter, setter) }.symbol } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index 7dc73749f9b..2c2d62111b4 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -341,6 +341,7 @@ class FirCallResolver( qualifiedAccess.explicitReceiver, referencedSymbol, nonFatalDiagnosticFromExpression, + session.languageVersionSettings.apiVersion ), annotations = qualifiedAccess.annotations ) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/QualifiedNameResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/QualifiedNameResolution.kt index b638c873a3b..e655d6a634b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/QualifiedNameResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/QualifiedNameResolution.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir import org.jetbrains.kotlin.KtSourceElement +import org.jetbrains.kotlin.config.ApiVersion import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -70,7 +71,8 @@ fun BodyResolveComponents.resolveRootPartOfQualifier( source, explicitReceiver = null, it, - extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression + extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression, + session.languageVersionSettings.apiVersion ) ) }.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( @@ -115,7 +124,8 @@ fun FirResolvedQualifier.continueQualifier( source, explicitReceiver = null, nestedClassSymbol, - extraNotFatalDiagnostics = this@continueQualifier.nonFatalDiagnostics + extraNotFatalDiagnostics = this@continueQualifier.nonFatalDiagnostics, + session.languageVersionSettings.apiVersion ) ) }.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( @@ -132,7 +149,8 @@ private fun FqName.continueQualifierInPackage( typeArguments: List, nonFatalDiagnosticsFromExpression: List?, components: BodyResolveComponents, - source: KtSourceElement? + source: KtSourceElement?, + apiVersion: ApiVersion ): FirResolvedQualifier? { val childFqName = this.child(name) if (components.symbolProvider.getPackage(childFqName) != null) { @@ -160,7 +178,8 @@ private fun FqName.continueQualifierInPackage( source, explicitReceiver = null, symbol, - extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression + extraNotFatalDiagnostics = nonFatalDiagnosticsFromExpression, + apiVersion ) ) }.apply { @@ -172,12 +191,13 @@ internal fun extractNonFatalDiagnostics( source: KtSourceElement?, explicitReceiver: FirExpression?, symbol: FirClassLikeSymbol<*>, - extraNotFatalDiagnostics: List? + extraNotFatalDiagnostics: List?, + apiVersion: ApiVersion ): List { val prevDiagnostics = (explicitReceiver as? FirResolvedQualifier)?.nonFatalDiagnostics ?: emptyList() var result: MutableList? = null - val deprecation = symbol.fir.deprecation?.forUseSite() + val deprecation = symbol.getDeprecation(apiVersion)?.forUseSite() if (deprecation != null) { result = mutableListOf() result.addAll(prevDiagnostics) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt index 7eb78739643..5349e484ef7 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt @@ -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.utils.classId 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.substitution.ConeSubstitutor 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 } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt index ff479451124..a9d15badf3f 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt @@ -630,7 +630,7 @@ internal object CheckCallModifiers : CheckerStage() { internal object CheckDeprecatedSinceKotlin : ResolutionStage() { override suspend fun check(candidate: Candidate, callInfo: CallInfo, sink: CheckerSink, context: ResolutionContext) { 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) { sink.yieldDiagnostic(HiddenCandidate) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt index 8bf58722934..4c12be7d0c8 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirTypeResolverImpl.kt @@ -6,8 +6,7 @@ package org.jetbrains.kotlin.fir.resolve.providers.impl import org.jetbrains.kotlin.KtSourceElement -import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.ThreadSafeMutableState +import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirOuterClassTypeParameterRef 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.ConeUnexpectedTypeArgumentsError 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.calls.AbstractCallInfo 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.impl.ConeClassLikeTypeImpl 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.StandardClassIds import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintSystemError @@ -127,7 +124,7 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver() { diagnostic = ConeVisibilityError(symbol) } - val deprecation = symbol.getDeprecation(useSiteFile) + val deprecation = symbol.getDeprecation(session.languageVersionSettings.apiVersion, useSiteFile) if (deprecation != null && deprecation.deprecationLevel == DeprecationLevelValue.HIDDEN) { symbolApplicability = minOf(CandidateApplicability.HIDDEN, symbolApplicability) diagnostic = null diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt index e13b342cc3b..2fa1dce24ff 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt @@ -554,8 +554,8 @@ abstract class AbstractFirStatusResolveTransformer( } protected fun calculateDeprecations(simpleFunction: FirCallableDeclaration) { - if (simpleFunction.deprecation == null) { - simpleFunction.replaceDeprecation(simpleFunction.getDeprecationInfos(session.languageVersionSettings.apiVersion)) + if (simpleFunction.deprecationsProvider is UnresolvedDeprecationProvider) { + simpleFunction.replaceDeprecationsProvider(simpleFunction.getDeprecationsProvider()) } } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt index 11f8a9de424..c8a79831242 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt @@ -253,8 +253,8 @@ private class FirAnnotationResolveTransformer( } private fun calculateDeprecations(classLikeDeclaration: FirClassLikeDeclaration) { - if (classLikeDeclaration.deprecation == null) { - classLikeDeclaration.replaceDeprecation(classLikeDeclaration.getDeprecationInfos(session.languageVersionSettings.apiVersion)) + if (classLikeDeclaration.deprecationsProvider == UnresolvedDeprecationProvider) { + classLikeDeclaration.replaceDeprecationsProvider(classLikeDeclaration.getDeprecationsProvider()) } } } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt index de6f515db87..ab357cb380f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt @@ -34,7 +34,7 @@ abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner { abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -62,7 +62,7 @@ abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner { abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt index 61445e80e8d..9a28e098d6e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt @@ -29,7 +29,7 @@ abstract class FirAnonymousObject : FirClass(), FirControlFlowGraphOwner { abstract override val attributes: FirDeclarationAttributes abstract override val typeParameters: List abstract override val status: FirDeclarationStatus - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val classKind: ClassKind abstract override val superTypeRefs: List abstract override val declarations: List @@ -46,7 +46,7 @@ abstract class FirAnonymousObject : FirClass(), FirControlFlowGraphOwner { abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceSuperTypeRefs(newSuperTypeRefs: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirBackingField.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirBackingField.kt index c5973c5e697..87bfef013cc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirBackingField.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirBackingField.kt @@ -32,7 +32,7 @@ abstract class FirBackingField : FirVariable(), FirTypeParametersOwner, FirState abstract override val attributes: FirDeclarationAttributes abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -62,7 +62,7 @@ abstract class FirBackingField : FirVariable(), FirTypeParametersOwner, FirState abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt index 915f26517e0..a49eea894f1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt @@ -31,7 +31,7 @@ sealed class FirCallableDeclaration : FirMemberDeclaration() { abstract override val status: FirDeclarationStatus abstract val returnTypeRef: FirTypeRef abstract val receiverTypeRef: FirTypeRef? - abstract val deprecation: DeprecationsPerUseSite? + abstract val deprecationsProvider: DeprecationsProvider abstract override val symbol: FirCallableSymbol abstract val containerSource: DeserializedContainerSource? abstract val dispatchReceiverType: ConeSimpleKotlinType? @@ -49,7 +49,7 @@ sealed class FirCallableDeclaration : FirMemberDeclaration() { abstract fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt index 3b68db07ccd..7f995706b2c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt @@ -29,7 +29,7 @@ sealed class FirClass : FirClassLikeDeclaration(), FirStatement, FirTypeParamete abstract override val attributes: FirDeclarationAttributes abstract override val typeParameters: List abstract override val status: FirDeclarationStatus - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val symbol: FirClassSymbol abstract val classKind: ClassKind abstract val superTypeRefs: List @@ -45,7 +45,7 @@ sealed class FirClass : FirClassLikeDeclaration(), FirStatement, FirTypeParamete abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract fun replaceSuperTypeRefs(newSuperTypeRefs: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt index ee314bcf08c..07a510e9a82 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt @@ -28,7 +28,7 @@ sealed class FirClassLikeDeclaration : FirMemberDeclaration(), FirStatement { abstract override val typeParameters: List abstract override val status: FirDeclarationStatus abstract override val symbol: FirClassLikeSymbol - abstract val deprecation: DeprecationsPerUseSite? + abstract val deprecationsProvider: DeprecationsProvider override fun accept(visitor: FirVisitor, data: D): R = visitor.visitClassLikeDeclaration(this, data) @@ -38,7 +38,7 @@ sealed class FirClassLikeDeclaration : FirMemberDeclaration(), FirStatement { abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirClassLikeDeclaration diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt index 832c6c21e2f..ede3c3b15df 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt @@ -33,7 +33,7 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner { abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -57,7 +57,7 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner { abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt index 32f492396d7..40adffc9b16 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt @@ -32,7 +32,7 @@ abstract class FirEnumEntry : FirVariable() { abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -59,7 +59,7 @@ abstract class FirEnumEntry : FirVariable() { abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt index dd0c9243076..699bfe15755 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt @@ -34,7 +34,7 @@ abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder { abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -57,7 +57,7 @@ abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder { abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt index 775da05a71a..aa39171bcb7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt @@ -34,7 +34,7 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder { abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -62,7 +62,7 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder { abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt index 86e7c1cb6f6..7983528ed21 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt @@ -33,7 +33,7 @@ abstract class FirField : FirVariable(), FirControlFlowGraphOwner { abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -61,7 +61,7 @@ abstract class FirField : FirVariable(), FirControlFlowGraphOwner { abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt index 1cde95bd25e..f43be6adbce 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt @@ -35,7 +35,7 @@ sealed class FirFunction : FirCallableDeclaration(), FirTargetElement, FirContro abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -56,7 +56,7 @@ sealed class FirFunction : FirCallableDeclaration(), FirTargetElement, FirContro abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt index ead65577faa..1fff98c76a6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt @@ -33,7 +33,7 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -65,7 +65,7 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt index e4beb005096..63b8056d652 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt @@ -33,7 +33,7 @@ abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner, abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -60,7 +60,7 @@ abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner, abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt index 663384b83d8..2aa4fd5d3a1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt @@ -30,7 +30,7 @@ abstract class FirRegularClass : FirClass(), FirControlFlowGraphOwner { abstract override val attributes: FirDeclarationAttributes abstract override val typeParameters: List abstract override val status: FirDeclarationStatus - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val classKind: ClassKind abstract override val declarations: List abstract override val annotations: List @@ -51,7 +51,7 @@ abstract class FirRegularClass : FirClass(), FirControlFlowGraphOwner { abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt index 26e72ed0cc1..1c463a45846 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt @@ -33,7 +33,7 @@ abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, F abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -58,7 +58,7 @@ abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, F abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt index c1906384510..5fef60793ef 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt @@ -26,7 +26,7 @@ abstract class FirTypeAlias : FirClassLikeDeclaration(), FirTypeParametersOwner abstract override val origin: FirDeclarationOrigin abstract override val attributes: FirDeclarationAttributes abstract override val status: FirDeclarationStatus - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val typeParameters: List abstract val name: Name abstract override val symbol: FirTypeAliasSymbol @@ -41,7 +41,7 @@ abstract class FirTypeAlias : FirClassLikeDeclaration(), FirTypeParametersOwner abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract fun replaceExpandedTypeRef(newExpandedTypeRef: FirTypeRef) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt index 556e74d57d4..548bb463372 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt @@ -33,7 +33,7 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner { abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -65,7 +65,7 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner { abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt index 4080f45a9a2..97b3789e372 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt @@ -33,7 +33,7 @@ sealed class FirVariable : FirCallableDeclaration(), FirStatement { abstract override val status: FirDeclarationStatus abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val deprecation: DeprecationsPerUseSite? + abstract override val deprecationsProvider: DeprecationsProvider abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: List @@ -60,7 +60,7 @@ sealed class FirVariable : FirCallableDeclaration(), FirStatement { abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) + abstract override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) abstract override fun replaceContextReceivers(newContextReceivers: List) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt index 8931b9e037b..dfc83ec3aff 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt @@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.builder import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -45,7 +45,7 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder { abstract override var attributes: FirDeclarationAttributes abstract override var status: FirDeclarationStatus abstract override var returnTypeRef: FirTypeRef - abstract override var deprecation: DeprecationsPerUseSite? + abstract override var deprecationsProvider: DeprecationsProvider abstract override var containerSource: DeserializedContainerSource? abstract override var dispatchReceiverType: ConeSimpleKotlinType? abstract override val contextReceivers: MutableList diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt index 5f6b121d4f1..ebe758e4290 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.FirLabel import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirValueParameter 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.impl.FirAnonymousFunctionImpl import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl @@ -51,7 +52,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override lateinit var returnTypeRef: FirTypeRef var receiverTypeRef: FirTypeRef? = null - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override var containerSource: DeserializedContainerSource? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null override val contextReceivers: MutableList = mutableListOf() @@ -76,7 +77,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu attributes, returnTypeRef, receiverTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, @@ -131,7 +132,7 @@ inline fun buildAnonymousFunctionCopy(original: FirAnonymousFunction, init: FirA copyBuilder.attributes = original.attributes.copy() copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.receiverTypeRef = original.receiverTypeRef - copyBuilder.deprecation = original.deprecation + copyBuilder.deprecationsProvider = original.deprecationsProvider copyBuilder.containerSource = original.containerSource copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.contextReceivers.addAll(original.contextReceivers) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt index d4af456cb41..ec1f95fe731 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirDeclaration 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.FirResolvePhase 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.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousObjectImpl @@ -45,7 +46,7 @@ class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnn override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val typeParameters: MutableList = mutableListOf() override lateinit var status: FirDeclarationStatus - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override lateinit var classKind: ClassKind override val superTypeRefs: MutableList = mutableListOf() override val declarations: MutableList = mutableListOf() @@ -62,7 +63,7 @@ class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnn attributes, typeParameters, status, - deprecation, + deprecationsProvider, classKind, superTypeRefs, declarations, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirBackingFieldBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirBackingFieldBuilder.kt index 7030725ec9e..d012c5b3baf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirBackingFieldBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirBackingFieldBuilder.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirResolvePhase 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.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -47,7 +48,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder { var attributes: FirDeclarationAttributes = FirDeclarationAttributes() lateinit var returnTypeRef: FirTypeRef var receiverTypeRef: FirTypeRef? = null - var deprecation: DeprecationsPerUseSite? = null + var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider var containerSource: DeserializedContainerSource? = null var dispatchReceiverType: ConeSimpleKotlinType? = null val contextReceivers: MutableList = mutableListOf() @@ -75,7 +76,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder { attributes, returnTypeRef, receiverTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt index d5ccbf3b5cf..4ae1e27b362 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -41,7 +41,7 @@ interface FirClassBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder abstract override var attributes: FirDeclarationAttributes abstract val typeParameters: MutableList abstract var status: FirDeclarationStatus - abstract var deprecation: DeprecationsPerUseSite? + abstract var deprecationsProvider: DeprecationsProvider abstract var classKind: ClassKind abstract val superTypeRefs: MutableList abstract val declarations: MutableList diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt index 2d1a8b7cbb8..655cbc75541 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirTypeParameterRef 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.impl.FirConstructorImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotation @@ -49,7 +50,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC override lateinit var status: FirDeclarationStatus override lateinit var returnTypeRef: FirTypeRef override var receiverTypeRef: FirTypeRef? = null - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override var containerSource: DeserializedContainerSource? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null override val contextReceivers: MutableList = mutableListOf() @@ -70,7 +71,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC status, returnTypeRef, receiverTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, @@ -114,7 +115,7 @@ inline fun buildConstructorCopy(original: FirConstructor, init: FirConstructorBu copyBuilder.status = original.status copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.receiverTypeRef = original.receiverTypeRef - copyBuilder.deprecation = original.deprecation + copyBuilder.deprecationsProvider = original.deprecationsProvider copyBuilder.containerSource = original.containerSource copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.contextReceivers.addAll(original.contextReceivers) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt index 21d58cb8029..7e794f4b9f0 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirTypeParameterRef 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.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotation @@ -48,7 +49,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder { var attributes: FirDeclarationAttributes = FirDeclarationAttributes() lateinit var returnTypeRef: FirTypeRef var receiverTypeRef: FirTypeRef? = null - var deprecation: DeprecationsPerUseSite? = null + var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider var containerSource: DeserializedContainerSource? = null var dispatchReceiverType: ConeSimpleKotlinType? = null val contextReceivers: MutableList = mutableListOf() @@ -75,7 +76,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder { attributes, returnTypeRef, receiverTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt index 9e77f9f1d72..35d0935c051 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirResolvePhase 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.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -47,7 +48,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder { val typeParameters: MutableList = mutableListOf() lateinit var status: FirDeclarationStatus lateinit var returnTypeRef: FirTypeRef - var deprecation: DeprecationsPerUseSite? = null + var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider var containerSource: DeserializedContainerSource? = null var dispatchReceiverType: ConeSimpleKotlinType? = null val contextReceivers: MutableList = mutableListOf() @@ -67,7 +68,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder { typeParameters, status, returnTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt index f25095559c3..e78ef3f6979 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirDeclarationAttributes 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.FirTypeParameter 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.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic @@ -47,7 +48,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder { var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR lateinit var origin: FirDeclarationOrigin var attributes: FirDeclarationAttributes = FirDeclarationAttributes() - var deprecation: DeprecationsPerUseSite? = null + var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider var containerSource: DeserializedContainerSource? = null var dispatchReceiverType: ConeSimpleKotlinType? = null val contextReceivers: MutableList = mutableListOf() @@ -63,7 +64,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder { resolvePhase, origin, attributes, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt index 0080cb9ed60..8b6d7a4d824 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirResolvePhase 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.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic @@ -47,7 +48,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder { var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR lateinit var origin: FirDeclarationOrigin var attributes: FirDeclarationAttributes = FirDeclarationAttributes() - var deprecation: DeprecationsPerUseSite? = null + var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider var containerSource: DeserializedContainerSource? = null var dispatchReceiverType: ConeSimpleKotlinType? = null val contextReceivers: MutableList = mutableListOf() @@ -64,7 +65,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder { resolvePhase, origin, attributes, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt index ce13daf3d4f..fd8a4e3012c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirResolvePhase 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.impl.FirFieldImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotation @@ -50,7 +51,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde open val typeParameters: MutableList = mutableListOf() open lateinit var status: FirDeclarationStatus open lateinit var returnTypeRef: FirTypeRef - open var deprecation: DeprecationsPerUseSite? = null + open var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider open var containerSource: DeserializedContainerSource? = null open var dispatchReceiverType: ConeSimpleKotlinType? = null open val contextReceivers: MutableList = mutableListOf() @@ -72,7 +73,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde typeParameters, status, returnTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt index d500894e3d8..34dad01dea2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin @@ -42,7 +42,7 @@ interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuil abstract override var attributes: FirDeclarationAttributes abstract var status: FirDeclarationStatus abstract var returnTypeRef: FirTypeRef - abstract var deprecation: DeprecationsPerUseSite? + abstract var deprecationsProvider: DeprecationsProvider abstract var containerSource: DeserializedContainerSource? abstract var dispatchReceiverType: ConeSimpleKotlinType? abstract val contextReceivers: MutableList diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt index a6c3881ee02..9808159c3d8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirTypeParameterRef 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.impl.FirPrimaryConstructor import org.jetbrains.kotlin.fir.expressions.FirAnnotation @@ -50,7 +51,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio override lateinit var status: FirDeclarationStatus override lateinit var returnTypeRef: FirTypeRef override var receiverTypeRef: FirTypeRef? = null - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override var containerSource: DeserializedContainerSource? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null override val contextReceivers: MutableList = mutableListOf() @@ -72,7 +73,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio status, returnTypeRef, receiverTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt index 4f2ea287ca6..15759519c74 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.contracts.FirContractDescription 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.FirDeclarationAttributes 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.FirTypeParameter 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.impl.FirPropertyAccessorImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotation @@ -51,7 +52,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override lateinit var status: FirDeclarationStatus override lateinit var returnTypeRef: FirTypeRef - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override var containerSource: DeserializedContainerSource? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null override val contextReceivers: MutableList = mutableListOf() @@ -74,7 +75,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui attributes, status, returnTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, @@ -112,7 +113,7 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro copyBuilder.attributes = original.attributes.copy() copyBuilder.status = original.status copyBuilder.returnTypeRef = original.returnTypeRef - copyBuilder.deprecation = original.deprecation + copyBuilder.deprecationsProvider = original.deprecationsProvider copyBuilder.containerSource = original.containerSource copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.contextReceivers.addAll(original.contextReceivers) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt index 6c44d477884..8a853f3eab1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirResolvePhase 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.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl @@ -53,7 +54,7 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder, lateinit var status: FirDeclarationStatus lateinit var returnTypeRef: FirTypeRef var receiverTypeRef: FirTypeRef? = null - var deprecation: DeprecationsPerUseSite? = null + var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider var containerSource: DeserializedContainerSource? = null var dispatchReceiverType: ConeSimpleKotlinType? = null val contextReceivers: MutableList = mutableListOf() @@ -81,7 +82,7 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder, status, returnTypeRef, receiverTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, @@ -125,7 +126,7 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.() copyBuilder.status = original.status copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.receiverTypeRef = original.receiverTypeRef - copyBuilder.deprecation = original.deprecation + copyBuilder.deprecationsProvider = original.deprecationsProvider copyBuilder.containerSource = original.containerSource copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.contextReceivers.addAll(original.contextReceivers) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt index 84d60d38c0b..02f63d2d9ef 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirDeclaration 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.FirResolvePhase 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.FirTypeParameterRefsOwnerBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl @@ -47,7 +48,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val typeParameters: MutableList = mutableListOf() override lateinit var status: FirDeclarationStatus - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override lateinit var classKind: ClassKind override val declarations: MutableList = mutableListOf() override val annotations: MutableList = mutableListOf() @@ -67,7 +68,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu attributes, typeParameters, status, - deprecation, + deprecationsProvider, classKind, declarations, annotations, @@ -103,7 +104,7 @@ inline fun buildRegularClassCopy(original: FirRegularClass, init: FirRegularClas copyBuilder.attributes = original.attributes.copy() copyBuilder.typeParameters.addAll(original.typeParameters) copyBuilder.status = original.status - copyBuilder.deprecation = original.deprecation + copyBuilder.deprecationsProvider = original.deprecationsProvider copyBuilder.classKind = original.classKind copyBuilder.declarations.addAll(original.declarations) copyBuilder.annotations.addAll(original.annotations) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt index a3abd7796d3..c3cded573ed 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.contracts.FirContractDescription 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.FirDeclarationAttributes 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.FirTypeParameter 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.FirTypeParametersOwnerBuilder 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 returnTypeRef: FirTypeRef open var receiverTypeRef: FirTypeRef? = null - override var deprecation: DeprecationsPerUseSite? = null + override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override var containerSource: DeserializedContainerSource? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null override val contextReceivers: MutableList = mutableListOf() @@ -73,7 +74,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner status, returnTypeRef, receiverTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, @@ -111,7 +112,7 @@ inline fun buildSimpleFunctionCopy(original: FirSimpleFunction, init: FirSimpleF copyBuilder.status = original.status copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.receiverTypeRef = original.receiverTypeRef - copyBuilder.deprecation = original.deprecation + copyBuilder.deprecationsProvider = original.deprecationsProvider copyBuilder.containerSource = original.containerSource copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.contextReceivers.addAll(original.contextReceivers) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt index ca70eecfb14..c9c2f2057a4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt @@ -12,13 +12,14 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeAlias 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.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirTypeAliasImpl @@ -41,7 +42,7 @@ class FirTypeAliasBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder override lateinit var origin: FirDeclarationOrigin override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() lateinit var status: FirDeclarationStatus - var deprecation: DeprecationsPerUseSite? = null + var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider override val typeParameters: MutableList = mutableListOf() lateinit var name: Name lateinit var symbol: FirTypeAliasSymbol @@ -56,7 +57,7 @@ class FirTypeAliasBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder origin, attributes, status, - deprecation, + deprecationsProvider, typeParameters, name, symbol, @@ -87,7 +88,7 @@ inline fun buildTypeAliasCopy(original: FirTypeAlias, init: FirTypeAliasBuilder. copyBuilder.origin = original.origin copyBuilder.attributes = original.attributes.copy() copyBuilder.status = original.status - copyBuilder.deprecation = original.deprecation + copyBuilder.deprecationsProvider = original.deprecationsProvider copyBuilder.typeParameters.addAll(original.typeParameters) copyBuilder.name = original.name copyBuilder.symbol = original.symbol diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt index 60f3b7830f7..5eba8ba3278 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder 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.FirContextReceiver 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.FirTypeParameterRef 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.FirValueParameterImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotation @@ -47,7 +48,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder { open lateinit var origin: FirDeclarationOrigin open var attributes: FirDeclarationAttributes = FirDeclarationAttributes() open lateinit var returnTypeRef: FirTypeRef - open var deprecation: DeprecationsPerUseSite? = null + open var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider open var containerSource: DeserializedContainerSource? = null open var dispatchReceiverType: ConeSimpleKotlinType? = null open val contextReceivers: MutableList = mutableListOf() @@ -68,7 +69,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder { origin, attributes, returnTypeRef, - deprecation, + deprecationsProvider, containerSource, dispatchReceiverType, contextReceivers, @@ -105,7 +106,7 @@ inline fun buildValueParameterCopy(original: FirValueParameter, init: FirValuePa copyBuilder.origin = original.origin copyBuilder.attributes = original.attributes.copy() copyBuilder.returnTypeRef = original.returnTypeRef - copyBuilder.deprecation = original.deprecation + copyBuilder.deprecationsProvider = original.deprecationsProvider copyBuilder.containerSource = original.containerSource copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.contextReceivers.addAll(original.contextReceivers) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt index f2401a9c095..6dea6b84ca6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.fir.FirLabel 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -44,7 +44,7 @@ internal class FirAnonymousFunctionImpl( override val attributes: FirDeclarationAttributes, override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -144,8 +144,8 @@ internal class FirAnonymousFunctionImpl( receiverTypeRef = newReceiverTypeRef } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt index c717ce27d36..5888cb9393d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt @@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.descriptors.ClassKind 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.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -39,7 +39,7 @@ internal class FirAnonymousObjectImpl( override val attributes: FirDeclarationAttributes, override val typeParameters: MutableList, override var status: FirDeclarationStatus, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val classKind: ClassKind, override val superTypeRefs: MutableList, override val declarations: MutableList, @@ -101,8 +101,8 @@ internal class FirAnonymousObjectImpl( resolvePhase = newResolvePhase } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceSuperTypeRefs(newSuperTypeRefs: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirBackingFieldImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirBackingFieldImpl.kt index ac0b111021f..384f0820ce5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirBackingFieldImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirBackingFieldImpl.kt @@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirImplementationDetail 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -43,7 +43,7 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor( override val attributes: FirDeclarationAttributes, override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -161,8 +161,8 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor( receiverTypeRef = newReceiverTypeRef } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt index 9c479fd8908..319b04a22ec 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -44,7 +44,7 @@ internal class FirConstructorImpl( override var status: FirDeclarationStatus, override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -140,8 +140,8 @@ internal class FirConstructorImpl( receiverTypeRef = newReceiverTypeRef } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt index 1fb23fdd7c0..371f784d674 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -44,7 +44,7 @@ internal class FirDefaultSetterValueParameter( override val attributes: FirDeclarationAttributes, override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -168,8 +168,8 @@ internal class FirDefaultSetterValueParameter( receiverTypeRef = newReceiverTypeRef } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt index 38dee8715b5..f152f3afabd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -43,7 +43,7 @@ internal class FirEnumEntryImpl( override val typeParameters: MutableList, override var status: FirDeclarationStatus, override var returnTypeRef: FirTypeRef, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -146,8 +146,8 @@ internal class FirEnumEntryImpl( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt index 577a316f17b..7f241df6057 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement 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.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin @@ -43,7 +43,7 @@ internal class FirErrorFunctionImpl( override var resolvePhase: FirResolvePhase, override val origin: FirDeclarationOrigin, override val attributes: FirDeclarationAttributes, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -123,8 +123,8 @@ internal class FirErrorFunctionImpl( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt index 59566980523..48264d90230 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -43,7 +43,7 @@ internal class FirErrorPropertyImpl( override var resolvePhase: FirResolvePhase, override val origin: FirDeclarationOrigin, override val attributes: FirDeclarationAttributes, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -144,8 +144,8 @@ internal class FirErrorPropertyImpl( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt index 994cc932273..7c6cbd420ad 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt @@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirImplementationDetail 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -45,7 +45,7 @@ class FirFieldImpl @FirImplementationDetail constructor( override val typeParameters: MutableList, override var status: FirDeclarationStatus, override var returnTypeRef: FirTypeRef, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -151,8 +151,8 @@ class FirFieldImpl @FirImplementationDetail constructor( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt index 99615a97f6d..8bcf40527cf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt @@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirImplementationDetail 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -45,7 +45,7 @@ class FirPrimaryConstructor @FirImplementationDetail constructor( override var status: FirDeclarationStatus, override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -141,8 +141,8 @@ class FirPrimaryConstructor @FirImplementationDetail constructor( receiverTypeRef = newReceiverTypeRef } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt index 7ca2290bca1..83e28c1e524 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirModuleData 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.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin @@ -45,7 +45,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor( override val attributes: FirDeclarationAttributes, override var status: FirDeclarationStatus, override var returnTypeRef: FirTypeRef, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -140,8 +140,8 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt index fb5cd94f837..c6d94a862a8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -47,7 +47,7 @@ internal class FirPropertyImpl( override var status: FirDeclarationStatus, override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -171,8 +171,8 @@ internal class FirPropertyImpl( receiverTypeRef = newReceiverTypeRef } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt index 2949e9c5ac4..a100f8e4a99 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt @@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.descriptors.ClassKind 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.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -41,7 +41,7 @@ internal class FirRegularClassImpl( override val attributes: FirDeclarationAttributes, override val typeParameters: MutableList, override var status: FirDeclarationStatus, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val classKind: ClassKind, override val declarations: MutableList, override val annotations: MutableList, @@ -109,8 +109,8 @@ internal class FirRegularClassImpl( resolvePhase = newResolvePhase } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt index 0af16cda29e..f81abb428de 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt @@ -10,7 +10,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.FirModuleData 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.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin @@ -44,7 +44,7 @@ internal class FirSimpleFunctionImpl( override var status: FirDeclarationStatus, override var returnTypeRef: FirTypeRef, override var receiverTypeRef: FirTypeRef?, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -141,8 +141,8 @@ internal class FirSimpleFunctionImpl( receiverTypeRef = newReceiverTypeRef } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt index 34110054be0..769515d800b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement 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.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus @@ -35,7 +35,7 @@ internal class FirTypeAliasImpl( override val origin: FirDeclarationOrigin, override val attributes: FirDeclarationAttributes, override var status: FirDeclarationStatus, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val typeParameters: MutableList, override val name: Name, override val symbol: FirTypeAliasSymbol, @@ -85,8 +85,8 @@ internal class FirTypeAliasImpl( resolvePhase = newResolvePhase } - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceExpandedTypeRef(newExpandedTypeRef: FirTypeRef) { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt index e2eee073804..460a84fa56e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtSourceElement 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.FirContextReceiver import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes @@ -43,7 +43,7 @@ internal class FirValueParameterImpl( override val origin: FirDeclarationOrigin, override val attributes: FirDeclarationAttributes, override var returnTypeRef: FirTypeRef, - override var deprecation: DeprecationsPerUseSite?, + override var deprecationsProvider: DeprecationsProvider, override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeSimpleKotlinType?, override val contextReceivers: MutableList, @@ -151,8 +151,8 @@ internal class FirValueParameterImpl( override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {} - override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) { - deprecation = newDeprecation + override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) { + deprecationsProvider = newDeprecationsProvider } override fun replaceContextReceivers(newContextReceivers: List) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/DeprecationsProvider.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/DeprecationsProvider.kt new file mode 100644 index 00000000000..bf670955a6e --- /dev/null +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/DeprecationsProvider.kt @@ -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?, + private val bySpecificSite: Map>? +) : 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? + ) + } + + private fun List.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) + } + } +} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt index 7b0f41500e4..7585e8434e1 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.KtFakeSourceElementKind import org.jetbrains.kotlin.KtSourceElement -import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.descriptors.EffectiveVisibility import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility @@ -51,7 +50,7 @@ abstract class FirDefaultPropertyAccessor( else FirResolvedDeclarationStatusImpl(visibility, modality, effectiveVisibility), propertyTypeRef, - deprecation = null, + deprecationsProvider = UnresolvedDeprecationProvider, containerSource = null, dispatchReceiverType = null, contextReceivers = mutableListOf(), diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyBackingField.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyBackingField.kt index 9c4f7cb8456..684ad2d5e4a 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyBackingField.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyBackingField.kt @@ -8,10 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.impl import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirModuleData -import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes -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.declarations.* import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol @@ -34,7 +31,7 @@ class FirDefaultPropertyBackingField( attributes = FirDeclarationAttributes(), returnTypeRef = returnTypeRef, receiverTypeRef = null, - deprecation = null, + deprecationsProvider = UnresolvedDeprecationProvider, containerSource = null, dispatchReceiverType = null, name = BACKING_FIELD, diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt index a3bef598ca1..d93f632ffa1 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt @@ -30,7 +30,7 @@ class FirSyntheticProperty( override val getter: FirSyntheticPropertyAccessor, override val setter: FirSyntheticPropertyAccessor? = null, override val backingField: FirBackingField? = null, - override val deprecation: DeprecationsPerUseSite? = null + override val deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider ) : FirProperty() { init { symbol.bind(this) @@ -150,7 +150,7 @@ class FirSyntheticProperty( 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") } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt index ce86729706d..7dc04f9a260 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt @@ -50,8 +50,8 @@ class FirSyntheticPropertyAccessor( override val receiverTypeRef: FirTypeRef? get() = null - override val deprecation: DeprecationsPerUseSite? - get() = delegate.deprecation + override val deprecationsProvider: DeprecationsProvider + get() = delegate.deprecationsProvider override val valueParameters: List get() = delegate.valueParameters @@ -145,7 +145,7 @@ class FirSyntheticPropertyAccessor( 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") } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyBuilder.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyBuilder.kt index fc36f1ca4fc..5e92a2e6214 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyBuilder.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyBuilder.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.fir.declarations.synthetic 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.FirSimpleFunction import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol @@ -17,7 +17,7 @@ class FirSyntheticPropertyBuilder { lateinit var name: Name lateinit var symbol: FirSyntheticPropertySymbol lateinit var delegateGetter: FirSimpleFunction - lateinit var deprecation: DeprecationsPerUseSite + lateinit var deprecationsProvider: DeprecationsProvider var status: FirDeclarationStatus? = null var delegateSetter: FirSimpleFunction? = null @@ -29,7 +29,7 @@ class FirSyntheticPropertyBuilder { resolvePhase = delegateGetter.resolvePhase, getter = FirSyntheticPropertyAccessor(delegateGetter, isGetter = true), setter = delegateSetter?.let { FirSyntheticPropertyAccessor(it, isGetter = false) }, - deprecation = deprecation + deprecationsProvider = deprecationsProvider ) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt index a5e381bbb9a..1bb4f7d4c65 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.symbols.impl +import org.jetbrains.kotlin.config.ApiVersion import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase @@ -58,11 +59,10 @@ abstract class FirCallableSymbol : FirBasedSymbol val name: Name get() = callableId.callableName - val deprecation: DeprecationsPerUseSite? - get() { - lazyResolveToPhase(FirResolvePhase.STATUS) - return fir.deprecation - } + fun getDeprecation(apiVersion: ApiVersion): DeprecationsPerUseSite? { + lazyResolveToPhase(FirResolvePhase.STATUS) + return fir.deprecationsProvider.getDeprecationsInfo(apiVersion) + } private fun ensureType(typeRef: FirTypeRef?) { when (typeRef) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassLikeSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassLikeSymbol.kt index 6ec5b7cf809..8659dae1eb9 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassLikeSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassLikeSymbol.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.symbols.impl +import org.jetbrains.kotlin.config.ApiVersion import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag @@ -24,11 +25,10 @@ sealed class FirClassLikeSymbol( val name get() = classId.shortClassName - val deprecation: DeprecationsPerUseSite? - get() { - lazyResolveToPhase(FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS) - return fir.deprecation - } + fun getDeprecation(apiVersion: ApiVersion): DeprecationsPerUseSite? { + lazyResolveToPhase(FirResolvePhase.COMPILER_REQUIRED_ANNOTATIONS) + return fir.deprecationsProvider.getDeprecationsInfo(apiVersion) + } val rawStatus: FirDeclarationStatus get() = fir.status diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt index 712f16d1c08..70c4c08f717 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt @@ -423,6 +423,13 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree ) { default(it, "${declarationAttributesType.type}()") } + + configureFieldInAllLeafBuilders( + field = "deprecationsProvider" + ) { + default(it, "UnresolvedDeprecationProvider") + useTypes(unresolvedDeprecationsProviderType) + } } private inline fun findImplementationsWithElementInParents( diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index d825d546c00..5445cb87c7d 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -88,7 +88,7 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild callableDeclaration.configure { +field("returnTypeRef", typeRef, 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") +field("containerSource", type(DeserializedContainerSource::class), nullable = true) @@ -245,7 +245,7 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild classLikeDeclaration.configure { +symbol("FirClassLikeSymbol", "out FirClassLikeDeclaration") - +field("deprecation", deprecationsPerUseSiteType, nullable = true).withReplace().apply { isMutable = true} + +field("deprecationsProvider", deprecationsProviderType).withReplace().apply { isMutable = true} } klass.configure { diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt index b619dab632a..ea3477f2597 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Types.kt @@ -94,7 +94,8 @@ val functionCallOrigin = type("fir.expressions", "FirFunctionCallOrigin") 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 firPropertySymbolType = type("fir.symbols.impl", "FirPropertySymbol")